Faites fonctionner les appareils électroménagers ECHONET Lite avec Python

introduction

Je publierai l'exemple de code de fonctionnement de l'électroménager par ECHONET Lite avec python.

Ce que je veux faire

  1. Commande ON / OFF des appareils ménagers
  2. Acquisition de l'état de fonctionnement des appareils ménagers

La version Ruby peut être trouvée dans Contrôler les appareils électroménagers ECHONET Lite avec Ruby, veuillez donc y jeter un œil.

environnement

● Purificateur d'air (compatible avec ECHONET Lite)  ⇒ Sharp KI-EX100 ● Windows 7 ● Python 2.7.11

Activer l'état de fonctionnement

ip = Veuillez utiliser l'adresse IP de votre appareil pour la partie "192.168. ○. ○".

ON_send.py


# coding: utf-8
import socket

ip = "192.168.2.166"
ECHONETport = 3610

message = "1081000005FF010135016101800130"
msg = message.decode("hex")

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(msg, (ip, ECHONETport))

Éteignez l'état de fonctionnement

OFF_send.py


# coding: utf-8
import socket

ip = "192.168.2.166"
ECHONETport = 3610

message = "1081000005FF010135016101800131"
msg = message.decode("hex")

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(msg, (ip, ECHONETport))

Ce qui est différent dans le programme ci-dessus Uniquement dans la variable message sur la 7ème ligne

Quand ON message = "1081000005FF010135016101800130"

Quand OFF message = "1081000005FF010135016101800131"

Vérifiez l'état de fonctionnement

Avec un programme qui envoie une demande d'état de fonctionnement des appareils ménagers L'explication est divisée en programmes qui reçoivent l'état de fonctionnement des appareils ménagers.

Envoyer le programme

get_send.py


# coding: utf-8
import socket

ip = "192.168.2.166"
ECHONETport = 3610

message = "1081000005FF0101350162018000"
msg = message.decode("hex")

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(msg, (ip, ECHONETport))

Programme de réception

receive.py


# coding: utf-8
import socket

port = 3610
bufsize = 4096

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("0.0.0.0", port))
data = sock.recvfrom(bufsize)
print data[0].encode('hex')
print data
sock.close()

Si vous pouvez bien le recevoir, le message suivant devrait s'afficher Les informations correctes se trouvent sur la première ligne. La deuxième ligne n'est pas codée en hexadécimal et ne s'affichera pas correctement. Je voulais juste vous dire quelque chose d'utile car recvform vous indique l'adresse IP de l'expéditeur. Cette fois, j'ai mis la 11e ligne de l'exemple de code pour le test, mais supprimez-la car c'est du code inutile.

図1.jpg

À propos, la 9e ligne de l'exemple de code

data[0].endode("hex")

Semble fonctionner uniquement avec la série python2. Je n'ai donc pas essayé 3 séries, alors veuillez trouver et exécuter la méthode de codage pour en faire un nombre hexadécimal par vous-même.

Si vous ne comprenez pas ce que vous dites, par exemple 3 ou 2, exécutez ce qui suit à l'invite de commande ou au terminal.

$ python --version

L'affichage est Dans le cas de python 2. ○. ○, c'est 2 système Dans le cas de python 3. ○. ○, il s'agit de 3 séries

Recommended Posts

Faites fonctionner les appareils électroménagers ECHONET Lite avec Python
Faites fonctionner des appareils électroménagers avec Python et IRKit
Utiliser Kinesis avec Python
Faire fonctionner Blender avec Python
Utiliser Excel avec Python (1)
Utiliser Excel avec Python (2)
* Python * Contrôle les appareils ménagers compatibles ECHONET Lite (émulateurs)
Exploitez Excel avec Python open pyxl
Exploitez TwitterBot avec Lambda, Python
[Note] Faites fonctionner MongoDB avec Python
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Faites fonctionner l'imprimante de reçus avec python
Essayez d'exploiter Facebook avec Python
[GCP] Exploitez Google Cloud Storage avec Python
[Pyto] Faites fonctionner le Taptic Engine de l'iPhone avec Python
[Python] Utiliser automatiquement le navigateur avec Selenium
FizzBuzz en Python3
Grattage avec Python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Manipuler Redmine à l'aide de Python Redmine
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
Exécutez prepDE.py avec python3
1.1 Premiers pas avec Python
Collecter des tweets avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Grattage avec Python + PhantomJS
Conduisez WebDriver avec python
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
[Python] Redirection avec CGIHTTPServer
Analyse vocale par python