import socket
import base64
def read_line(socket):
request_line = '';
while not request_line.endswith('\n'):
request_line += socket.recv(1).decode('ascii')
return request_line
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
sock.connect(('192.168.0.111', 62910));
chunks = []
bytes_recd = 0
request_line = '';
header=read_line(sock);
print(header);
commandM=read_line(sock);
print(commandM);
commandMParameters=commandM[2:].split(',');
mCommandData=base64.decodestring(str.encode(commandMParameters[2]));
numberOfRooms=mCommandData[2];
print('Nubmer of Rooms: ', numberOfRooms);
mRoomData=mCommandData[3:]
mCommandData=mRoomData;
for i in range(1,numberOfRooms+1):
room = {'id':0,'name':'','groupAddress':0}
room['id'] = mCommandData[0];
room['name'] = mCommandData[2:2+mCommandData[1]].decode('utf-8');
room['grouAddress'] = mCommandData[mRoomData[1]+2:mCommandData[1]+5];
print(str(room));
mRoomData=mCommandData[mCommandData[1]+5:]
mCommandData=mRoomData;
numberOfDevices=mCommandData[0];
print('Number of Devices',numberOfDevices);
mTempData=mCommandData[1:]
mCommandData=mTempData;
for i in range(1,numberOfDevices+1):
device = {'type' : 0, 'rfAddress' : 0, 'serialNumber' : '', 'name' : '', 'roomId' : 0};
device['type'] = mCommandData[0];
device['rfAddress'] = mCommandData[1:4];
device['serialNumber'] = mCommandData[4:14].decode('utf-8');
nameLength = mCommandData[14];
device['name'] = mCommandData[15:15+nameLength].decode('utf-8');
device['roomId'] = mCommandData[nameLength+15];
mTempData=mCommandData[nameLength+16:]
mCommandData=mTempData;
print(device);
print();
sock.close();
čtvrtek 23. února 2017
eQ3-MAX! Komunikace s MAX Cube Gateway v Python
Příklad Python skriptu pro načtení údajů o struktuře místnostní a zařízení z MAX Cube LAN Gateway v lokální síti.
Přihlásit se k odběru:
Komentáře k příspěvku (Atom)
Žádné komentáře:
Okomentovat