code
MessageGenerator4ECHONET-Lite.py
#! /uer/bin/env python
# -*- coding: utf-8 -*-
import sys
#initial value
setget_flag = True # True:set,False:I don't know if 0 or 1, which represents the time of get, is faster.
i = 0 #counter
ipv6Addr = "AAAAAAAA" #Dummy value. It's actually longer, but it doesn't matter right now, so leave it as it is.
GET_E2 = b"\x10\x81\x12\x34\x05\xFF\x01\x02\x88\x01\x62\x01\xE2\x00"
#Integrated electric energy measurement value history 1(Positive measurement)(EPC=0xE2)
SET_E5_base = "1081123405FF010288016201E501"
#Accumulation history collection date 1(0:On the day 1~99:Days of the previous day)(EPC=E5)
#The while statement is used for the convenience of the application destination.
while 1:
if setget_flag == True:
#Behavior at set
#Create an E5 telegram
SET_E5 = bytes.fromhex(SET_E5_base + '{:02X}'.format(i))
command = "SKSENDTO 1 {0} 0E1A 1 {1:04X} {2}".format(ipv6Addr, len(SET_E5), SET_E5)
setget_flag = False #False flag:to get
print(command)
else :
#Behavior at get
#The E2 telegram is the same every time, so leave it as it is
command = "SKSENDTO 1 {0} 0E1A 1 {1:04X} {2}".format(ipv6Addr, len(GET_E2), GET_E2)
setget_flag = True #Flag True:to set
i += 1 #Increment on the telegram side to be sent later
print(command)
#When the number of telegrams created is 100, the thread winter ends
if i == 100:
print("100th thread winter end")
sys.exit() ####Thread winter end####
SKSENDTO 1 AAAAAAAA 0E1A 1 000F b'\x10\x81\x124\x05\xff\x01\x02\x88\x01b\x01\xe5\x01\x00'
SKSENDTO 1 AAAAAAAA 0E1A 1 000E b'\x10\x81\x124\x05\xff\x01\x02\x88\x01b\x01\xe2\x00'
~abridgement~
SKSENDTO 1 AAAAAAAA 0E1A 1 000F b'\x10\x81\x124\x05\xff\x01\x02\x88\x01b\x01\xe5\x01c'
SKSENDTO 1 AAAAAAAA 0E1A 1 000E b'\x10\x81\x124\x05\xff\x01\x02\x88\x01b\x01\xe2\x00'
100th thread winter end
How to write Python comments and comment outs