파이토존에서 ECHONET Lite 가전제품 조작

개시하다


python에 ECHONET Lite의 가전 작업에 대한 샘플 코드를 업로드합니다.
※ ECHONET Lite(ISO/IEC 14543-4) 국제 표준
하고 싶은 일
1. 가전제품의 ON/OFF 제어
2. 가전제품의 동작 상태 얻기
루비 버전루비로 ECHONET Lite 가전제품을 제어하다에 있어요. 저쪽을 보세요.
※ 아래 샘플 절차는 공기청정기를 목표로 합니다.
에어컨과 조명을 컨트롤하려면 위의 루비판에 상세한 설명이 있으니 참고하세요.

컨디션


● 공기청정기(ECHONET Lite 지원)
 ⇒  Sharp KI-EX100
● Windows 7
● Python 2.7.11

동작 상태를 ON으로 설정


ip="192.168.0"의 부분은 각 기기의 IP 주소를 사용하십시오.
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))

동작 상태 닫기


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))
상술한 절차가 다른 것은
일곱 번째 줄의 메시지 변수에서만
온시
message = "1081000005FF010135016101800130"
OFF 시
message = "1081000005FF010135016101800131"

동작 상태 확인


가전제품 동작 상태를 보내는 프로그램과
가전제품으로부터 동작 상태를 받는 프로그램에 대해 설명하다.

송신 프로그램


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

수신 프로그램


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

만약 잘 받아들일 수 있다면 다음과 같은 정보를 표시할 것이다
정확한 정보는 첫 번째 줄이다.
두 번째 줄은 16진수로 인코딩되지 않아 제대로 표시할 수 없습니다.저는 단지 여러분께 recvform을 사용하면 발송자의 IP 주소를 알 수 있고 매우 편리하다는 것을 알려드리고 싶습니다.
이번에는 테스트를 위해 11번째 샘플 코드를 넣었습니다. 필요하지 않은 코드이기 때문에 삭제해 주십시오.

참고로 샘플 코드 9행은
data[0].endode("hex")
python 2 시스템만 작동하는 것 같습니다.따라서 3과를 시험해 본 적이 없기 때문에 16진법의 인코딩 방법을 찾아 실행하세요.
3 계열인지 2 계열인지 모르면 명령 알림이나 터미널에서 다음과 같은 조작을 할 수 있다
$ python --version
다음으로 표시
python 2.○.○의 경우 2학과
python 3.○.○의 경우 3 계열

좋은 웹페이지 즐겨찾기