-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsystemstatus.py
More file actions
105 lines (95 loc) · 5.38 KB
/
systemstatus.py
File metadata and controls
105 lines (95 loc) · 5.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/python3
from wiserHeatingAPI import wiserHub
import json
import sys
dev="false" # set to true to see raw data
# Get Wiser Parameters from keyfile
try:
with open('wiserkeys.params', 'r') as f:
data = f.read().split('\n')
except FileNotFoundError as e:
print("{}, {}/{}".format(e.strerror, 'wiserkeys.params', keyfile) )
else:
wiserkey=""
wiserip=""
for lines in data:
line=lines.split('=')
if line[0]=='wiserkey':
wiserkey=line[1]
if line[0]=='wiserhubip':
wiserip=line[1]
try:
#
try:
wh = wiserHub.wiserHub(wiserip,wiserkey)
except:
print("Unable to connect to Wiser Hub {}".format(sys.exc_info()[1]) )
print (' Wiser Hub IP= {}'.format(wiserip))
print (' WiserKey= {}'.format(wiserkey))
else:
if dev=="true":
# Heating State
print("--------------------------------")
print ("System Data {} ".format(wh.getSystem()))
print("--------------------------------")
print("--------------------------------")
print ("Hub Data {} ".format(wh.getHubData()))
print("--------------------------------")
print("--------------------------------")
print ("Raw Room Data {} ".format(wh.getRooms()))
print("--------------------------------")
print("--------------------------------")
print ("Device Data {} ".format(wh.getDevices()))
print ("--------------------------------")
system=wh.getSystem()
print ("System\n {}".format(system.get("LocalDateAndTime") ) )
print (" Heating: {}, HeatingButtonOverride: {}".format(wh.getHeatingRelayStatus(),system.get("HeatingButtonOverrideState") ) )
if wh.getHotwater():
print (" Hot Water: {}, HotWaterButtonOverride: {}\n".format(wh.getHotwaterRelayStatus(),system.get("HotWaterButtonOverrideState") ) )
print (" Pairing: {}, CloudConnection: {}, OpenThermConnection: {}\n".format(system.get("PairingStatus"),system.get("CloudConnectionStatus"),system.get("OpenThermConnectionStatus") ) )
print ("Controller")
dev=wh.getDevice(0)
print (" {}, F/W: {}, Locked: {}".format(dev.get("ModelIdentifier"),system.get("ActiveSystemVersion"),dev.get("DeviceLockEnabled") ) )
print (" WiFi Signal: {}, ReceiveCont: {}".format(dev.get("DisplayedSignalStrength"),dev.get("ReceptionOfController") ) )
zig=wh.getHubData().get("Zigbee")
print (" Zigbee: {}".format(zig ) )
print (" UpgradeInfo:")
for firm in wh.getHubData().get("UpgradeInfo"):
print (" {}".format(firm))
# List all Rooms
findValve=0
roomName=None
print()
for room in wh.getRooms():
smartValves=room.get("SmartValveIds")
roomStat=room.get("RoomStatId")
print ("{} - setpoint: {}C, current temp: {}C, Demand: {}%, OutputState: {}".format(room.get("Name"),room.get("CurrentSetPoint")/10,room.get("CalculatedTemperature")/10,room.get("PercentageDemand"),room.get("ControlOutputState") ) )
if roomStat:
# print ("\troomStatId: {}".format(roomStat))
dev=wh.getDevice(roomStat)
bat = dev.get("BatteryVoltage")
if bat != None:
bat = bat/10
else:
bat = "?.?"
batlevel=dev.get("BatteryLevel")
if batlevel == None:
batlevel = "Unknown"
print (" {} H/W: {}, SerialNo: {}, F/W: {}, Batt: {}V {}, Locked: {}".format(dev.get("ProductType"),dev.get("HardwareVersion"),dev.get("SerialNumber"),dev.get("ActiveFirmwareVersion"),bat,batlevel,dev.get("DeviceLockEnabled") ) )
print (" Signal: {}, ReceiveCont: {}, 'ReceiveDev: {}".format(dev.get("DisplayedSignalStrength"),dev.get("ReceptionOfController"),dev.get("ReceptionOfDevice") ) )
if smartValves:
# print (" SmartValveIds: {}".format(smartValves))
for smartvalve in smartValves:
dev=wh.getDevice(smartvalve)
bat = dev.get("BatteryVoltage")
if bat != None:
bat = bat/10
else:
bat = "?.?"
batlevel=dev.get("BatteryLevel")
if batlevel == None:
batlevel = "Unknown"
print (" {} H/W: {}, SerialNo: {}, F/W: {}, Batt: {}V {}, Locked: {}".format(dev.get("ProductType"),dev.get("HardwareVersion"),dev.get("SerialNumber"),dev.get("ActiveFirmwareVersion"),bat,batlevel,dev.get("DeviceLockEnabled") ) )
print (" Signal: {}, ReceiveCont: {}, 'ReceiveDev: {}".format(dev.get("DisplayedSignalStrength"),dev.get("ReceptionOfController"),dev.get("ReceptionOfDevice") ) )
except json.decoder.JSONDecodeError as ex:
print("JSON Exception")