Utilities#
Solarman Scan Utility#
1""" Scan local network for Solarman data loggers """
2
3import socket
4
5
6def main():
7 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
8 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
9 sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
10 sock.settimeout(1.0)
11
12 request = "WIFIKIT-214028-READ"
13 address = ("<broadcast>", 48899)
14
15 sock.sendto(request.encode(), address)
16 while True:
17 try:
18 data = sock.recv(1024)
19 except socket.timeout:
20 break
21 keys = dict.fromkeys(['ipaddress', 'mac', 'serial'])
22 values = data.decode().split(",")
23 result = dict(zip(keys, values))
24 print(result)
25
26
27if __name__ == "__main__":
28 main()