Betreiben Sie ECHONET Lite-Haushaltsgeräte mit Python

Einführung

Ich werde den Beispielcode für den Betrieb von Haushaltsgeräten von ECHONET Lite mit Python veröffentlichen.

Was ich machen will; was ich vorhabe zu tun

  1. EIN / AUS-Steuerung von Haushaltsgeräten
  2. Erfassung des Betriebsstatus von Haushaltsgeräten

Die Ruby-Version finden Sie unter Steuern von ECHONET Lite-Haushaltsgeräten mit Ruby. Schauen Sie also dort nach.

Umgebung

● Luftreiniger (kompatibel mit ECHONET Lite)  ⇒ Sharp KI-EX100 ● Windows 7 ● Python 2.7.11

Schalten Sie den Betriebszustand ein

ip = "192.168. ○. ○" Bitte geben Sie die IP Ihres Geräts ein

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))

Schalten Sie den Betriebszustand aus

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))

Was ist anders im obigen Programm Nur in der Nachrichtenvariablen in der 7. Zeile

Wenn sie auf message = "1081000005FF010135016101800130"

Wenn AUS message = "1081000005FF010135016101800131"

Überprüfen Sie den Betriebszustand

Mit einem Programm, das eine Anfrage nach dem Betriebsstatus von Haushaltsgeräten sendet Die Erklärung ist in Programme unterteilt, die den Betriebsstatus von Haushaltsgeräten erhalten.

Programm senden

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))

Empfangsprogramm

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()

Wenn Sie es gut empfangen können, sollte die folgende Meldung angezeigt werden Die richtigen Informationen befinden sich in der ersten Zeile. Die zweite Zeile ist nicht hexadezimal codiert und wird nicht korrekt angezeigt. Ich wollte Ihnen nur etwas Nützliches sagen, weil recvform Ihnen die IP des Absenders mitteilt. Dieses Mal habe ich die 11. Zeile des Beispielcodes zum Testen eingefügt, aber bitte löschen Sie sie, da es sich um unnötigen Code handelt.

図1.jpg

Übrigens die 9. Zeile des Beispielcodes

data[0].endode("hex")

Scheint nur mit der Python2-Serie zu funktionieren. Ich habe also noch keine 3 Serien ausprobiert. Suchen Sie daher die Codierungsmethode und führen Sie sie aus, um sie selbst zu einer Hexadezimalzahl zu machen.

Wenn Sie nicht verstehen, was Sie sagen, z. B. 3 oder 2, führen Sie an der Eingabeaufforderung oder am Terminal die folgenden Schritte aus.

$ python --version

Das Display ist Im Fall von Python 2. ○. ○ ist es 2 System Im Fall von Python 3. ○. ○ handelt es sich um 3 Serien

Recommended Posts

Betreiben Sie ECHONET Lite-Haushaltsgeräte mit Python
Betreiben Sie Haushaltsgeräte mit Python und IRKit
Kinesis mit Python betreiben
Betreiben Sie Blender mit Python
Betreiben Sie Excel mit Python (1)
Betreiben Sie Excel mit Python (2)
* Python * Steuert ECHONET Lite-kompatible Haushaltsgeräte (Emulatoren)
Betreiben Sie Excel mit Python Open Pyxl
Betreiben Sie TwitterBot mit Lambda, Python
[Hinweis] Betreiben Sie MongoDB mit Python
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Bedienen Sie den Belegdrucker mit Python
Versuchen Sie, Facebook mit Python zu betreiben
[GCP] Betreiben Sie Google Cloud Storage mit Python
[Pyto] Betreibe die Taptic Engine des iPhone mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
FizzBuzz in Python3
Scraping mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Bearbeiten Sie Redmine mit Python Redmine
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Scraping mit Python + PhantomJS
Fahren Sie WebDriver mit Python
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
[Python] Mit CGIHTTPServer umleiten
Sprachanalyse mit Python