Raspberry Pi 2 domotique : commande via trames TCP (10)

On en a peu parlé ces dernières semaines, mais le développement du Raspberry Pi domotique se poursuit, un peu plus lentement car les journées ne durent que 24h sur notre bonne vielle Terre 😉

Le script de gestion a été totalement revu :

  • utilisation de fonctions, appelées uniquement en cas de besoin (détection trame radio / rfid / TCP)
  • script de réception des trames tcp désormais en tâche de fond, avec lecture du code dans un simple tcp.txt
  • optimisation du code Python3
  • ajout des développements futurs, basés sur les ESP8266 essentiellement

Voyons ici l’évolution de la partie TCP, celle qui reçoit des trames avec un script enregistré dans tcpserv.py :

import socket, os, sys
# Activation serveur TCP
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.close()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# On affecte IP de reception et port d ecoute
server_address = ('192.168.1.124', 5665)
sock.bind(server_address)
# Ecoute des trames entrantes
sock.listen(1)
while True:
    # Attente connexion
    connection, client_address = sock.accept()
    try:
        while True:
            #
            # on ecrit la trame recue dans tcp.txt
            #
            data = connection.recv(16)
            tcp = open('/home/pi/tcp.txt', 'w')
            tcp.write(str(data, encoding='utf8'))
            tcp.close()
            if data:

               break
    finally:
        # Fermeture connexion
        connection.close()

 

Lancez ce script en tâche de fond avec python3 tcpserv.py & et si vous voulez l’avoir dès le démarrage du Raspberry Pi, allez l’ajouter dans /etc/rc.local :

sudo python3 /home/pi/tcpserv.py &

Désormais, CHAQUE trame reçue sur le port 5665, à destination de l’adresse IP 192.168.1.124 (à modifier par celle de votre Pi), sera écrite dans le fichier tcp.txt. Il ne vous reste alors plus qu’à venir lire ce fichier dans votre script python3, et à en tirer des actions.

Dans notre cas, nous testons simplement le contenu de tcp.txt :

  if len(tcp) > 2:
    print(tcp)
    print("appel lecture TCP")
    tcpframe(tcp)
    continue

En plus clair, si, après l’avoir ouvert et lu, tcp.txt contient plus de 2 caractères, alors on appelle la fonction tcpframe(tcp) pour que le contenu soit analysé, une fonction dont voici un exemple :

def tcpframe(code):
  if "porte1" in code:
    print("porte 1 ouverte")
  if "porte2" in code:
    print("porte 2 ouverte")
  if "porte3" in code:
    print("porte 3 ouverte")

  os.system("echo 0 > /home/pi/tcp.txt")

A la fin de l’interprétation de la trame TCP reçue, on efface tout dans tcp.txt, en lui mettant un simple « 0 » (zéro).

Vous suivez à peu près jusqu’à présent ? 🙂

—————————————————

Voyons maintenant comment envoyer simplement des trames TCP, via une application Android (désolé, je ne suis pas utilisateur d’iOS fermé lol), UDP TCP SERVER. Une fois installée, vous allez pouvoir configurer des tas de boutons :

udptcp_raspberry

Dans cet exemple, si je presse SALON ON, une trame salonon est envoyée sur le port 5665, vers mon Raspberry Pi 192.168.1.124, qui va alors allumer le salon en lançant la bonne commande. Idem pour l’Alarme, que j’active et désactive à volonté.

Ma prochaine étape sera alors de venir programmer des ESP8266 pour, là encore, utiliser l’envoi de trames TCP : ouverture de porte, température, etc. A suivre donc…

 

 

Publications similaires

  • Devolo sort le CPL à 1.2 Gbps

    Avec 12 années d’expertise, Devolo dévoile un nouveau produit, sous la forme d’un pack CPL fonctionnant à 1.2 Gbps sur votre installation électrique :   Avec une consommation maximale de 4,2 Watt en fonctionnement et seulement 0,7 Watt en attente, le dLAN® 1200+ saura se faire oublier et limitera votre consommation. Il dispose d’une prise électrique avec protection enfants, d’un cryptage 128 bits AES et bien évidemment d’un port ethernet gigabit. La génération dLAN® 1200 reste compatible avec les dLAN® 200, dLAN® 500 et dLAN® 650, ainsi…

  • Boutique en ligne : bascule en cours

    La boutique en ligne d’Infracom sera temporairement perturbée, le temps d’effectuer la bascule sur la nouvelle version, plus aérée, plus performante. Merci donc pour votre patience, il est inutile de nous inonder d’emails en indiquant un mauvais fonctionnement, ce sera normal, le temps de terminer la bascule 😉 Les derniers réglages se feront ensuite au fur et à mesure.

  • |

    Freebox Mini 4K : testez vous même

    Il semblerait que l’essuyage des plâtres refasse surface chez Free, puisque les utilisateurs les plus pressés d’utiliser la nouvelle Freebox Mini 4K rapportent un nombre conséquent de plantages et autres dysfonctionnements. Or, souvenez-nous, en balbutiant lors de la dernière conférence de presse, Xavier Niel avait confirmé utiliser la Freebox Mini 4K durant déjà plusieurs mois à son domicile. De deux choses l’une, soit St Niel ne regarde jamais la TV et n’a donc pas pu expérimenter lui aussi les bugs…

  • OVH ADSL : valable ?

    La question est posée : est-ce que l’offre ADSL d’OVH est valable ? A mon sens oui, et je vais expliquer pourquoi dans ce billet. Commençons par poser quelques bases : Infracom utilise généralement deux connexions internet, simple question de sécurité. Par le passé, nous avions une connexion satellitaire, désormais nous n’utilisons plus que deux lignes ADSL. Nous avons testé Orange : débits limités, coût élevé, mais certes aucun filtrage, le bonheur. Nous utilisons Free : débit de 7 à…

  • |

    Cash Investigation : Free et le Pitbull Lucet

    Hier, 26 Septembre, retour d’un nouveau numéro de Cash Investigation, cette émission où cinq caméras suivent cette Elise Lucet transformée en pitbull hargneux et tout permis. Le molosse débarque dans une entreprise, invective son dirigeant sous prétexte de représenter la presse toute puissante et ne lâchera prise qu’une fois la confession obtenue ou après avoir réussi à mettre plus de 10 minutes d’images compromettantes en boite ! Woof, ces méthodes musclées de journaleuse en manque d’audimat  sont souvent pointées du…

  • Hotspot Wifipak complet : -10%

    Envie de vous équiper d’un hotspot WiFi performant, sans contraintes, sans engagements cachés ? Voici la solution Wifipak avec son enregistreur de connexions, avec une remise de 10% sur le stock actuellement disponible !! Wifipak est une solution hotspot simple, sans engagement, sans abonnement, et surtout, sans aucune limitation d’accès : nous vous livrons le matériel préconfiguré, à votre enseigne, et c’est tout ! Vous n’avez pas à payer une licence supplémentaire pour avoir plus d’utilisateurs, vous n’avez pas à nous…