Skip to content

Commit 40da361

Browse files
authored
chore(docs): update TRV sample data (#615)
* update trv sample data * cleanup * Update test_TestForMissingProperties.py * Update test_TestForMissingProperties.py * Update test_TestForMissingProperties.py
1 parent 479bc73 commit 40da361

File tree

3 files changed

+195
-39
lines changed

3 files changed

+195
-39
lines changed

tests/response/zigbee_zk03840_trv.json

Lines changed: 173 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,36 @@
44
"apiVersion": 1,
55
"commands": {},
66
"deviceId": "zigbee-048727fffe196e03",
7-
"feature": "device.messages.errors.raw",
7+
"feature": "device.heatingCircuitId",
88
"gatewayId": "################",
99
"isEnabled": true,
1010
"isReady": true,
1111
"properties": {
12-
"entries": {
13-
"type": "array",
14-
"value": []
12+
"value": {
13+
"type": "number",
14+
"unit": "",
15+
"value": 0
16+
}
17+
},
18+
"timestamp": "2025-10-04T09:15:48.411Z",
19+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.heatingCircuitId"
20+
},
21+
{
22+
"apiVersion": 1,
23+
"commands": {},
24+
"deviceId": "zigbee-048727fffe196e03",
25+
"feature": "device.identification",
26+
"gatewayId": "################",
27+
"isEnabled": true,
28+
"isReady": true,
29+
"properties": {
30+
"triggered": {
31+
"type": "boolean",
32+
"value": false
1533
}
1634
},
17-
"timestamp": "2024-10-01T00:31:25.906Z",
18-
"uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.messages.errors.raw"
35+
"timestamp": "2025-10-04T09:15:48.411Z",
36+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.identification"
1937
},
2038
{
2139
"apiVersion": 1,
@@ -34,7 +52,7 @@
3452
"type": "string"
3553
}
3654
},
37-
"uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.name/commands/setName"
55+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.name/commands/setName"
3856
}
3957
},
4058
"deviceId": "zigbee-048727fffe196e03",
@@ -48,8 +66,26 @@
4866
"value": ""
4967
}
5068
},
51-
"timestamp": "2024-10-01T00:31:25.906Z",
52-
"uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.name"
69+
"timestamp": "2025-10-04T09:15:48.411Z",
70+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.name"
71+
},
72+
{
73+
"apiVersion": 1,
74+
"commands": {},
75+
"deviceId": "zigbee-048727fffe196e03",
76+
"feature": "device.power.battery",
77+
"gatewayId": "################",
78+
"isEnabled": true,
79+
"isReady": true,
80+
"properties": {
81+
"level": {
82+
"type": "number",
83+
"unit": "percent",
84+
"value": 7
85+
}
86+
},
87+
"timestamp": "2025-10-04T09:15:48.411Z",
88+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.power.battery"
5389
},
5490
{
5591
"apiVersion": 1,
@@ -70,8 +106,113 @@
70106
"value": 18.4
71107
}
72108
},
73-
"timestamp": "2024-10-01T15:31:33.915Z",
74-
"uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.sensors.temperature"
109+
"timestamp": "2025-10-04T09:15:48.411Z",
110+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.sensors.temperature"
111+
},
112+
{
113+
"apiVersion": 1,
114+
"commands": {},
115+
"deviceId": "zigbee-048727fffe196e03",
116+
"feature": "device.zigbee.lqi",
117+
"gatewayId": "################",
118+
"isEnabled": true,
119+
"isReady": true,
120+
"properties": {
121+
"strength": {
122+
"type": "number",
123+
"unit": "percent",
124+
"value": 18
125+
}
126+
},
127+
"timestamp": "2025-10-04T09:28:21.894Z",
128+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.zigbee.lqi"
129+
},
130+
{
131+
"apiVersion": 1,
132+
"commands": {},
133+
"deviceId": "zigbee-048727fffe196e03",
134+
"feature": "device.zigbee.parent.id",
135+
"gatewayId": "################",
136+
"isEnabled": true,
137+
"isReady": true,
138+
"properties": {
139+
"value": {
140+
"type": "string",
141+
"value": "8c6fb9fffead237f"
142+
}
143+
},
144+
"timestamp": "2025-10-04T09:15:48.411Z",
145+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.zigbee.parent.id"
146+
},
147+
{
148+
"apiVersion": 1,
149+
"commands": {},
150+
"deviceId": "zigbee-048727fffe196e03",
151+
"feature": "device.zigbee.parent.rx",
152+
"gatewayId": "################",
153+
"isEnabled": true,
154+
"isReady": true,
155+
"properties": {
156+
"value": {
157+
"type": "number",
158+
"unit": "",
159+
"value": 52
160+
}
161+
},
162+
"timestamp": "2025-10-04T09:16:13.050Z",
163+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.zigbee.parent.rx"
164+
},
165+
{
166+
"apiVersion": 1,
167+
"commands": {},
168+
"deviceId": "zigbee-048727fffe196e03",
169+
"feature": "device.zigbee.parent.tx",
170+
"gatewayId": "################",
171+
"isEnabled": true,
172+
"isReady": true,
173+
"properties": {
174+
"value": {
175+
"type": "number",
176+
"unit": "",
177+
"value": 60
178+
}
179+
},
180+
"timestamp": "2025-10-04T09:28:21.894Z",
181+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/device.zigbee.parent.tx"
182+
},
183+
{
184+
"apiVersion": 1,
185+
"commands": {},
186+
"deviceId": "zigbee-048727fffe196e03",
187+
"feature": "trv.childLock",
188+
"gatewayId": "################",
189+
"isEnabled": true,
190+
"isReady": true,
191+
"properties": {
192+
"status": {
193+
"type": "string",
194+
"value": "inactive"
195+
}
196+
},
197+
"timestamp": "2025-10-04T09:15:48.411Z",
198+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.childLock"
199+
},
200+
{
201+
"apiVersion": 1,
202+
"commands": {},
203+
"deviceId": "zigbee-048727fffe196e03",
204+
"feature": "trv.mountingMode",
205+
"gatewayId": "################",
206+
"isEnabled": true,
207+
"isReady": true,
208+
"properties": {
209+
"active": {
210+
"type": "boolean",
211+
"value": false
212+
}
213+
},
214+
"timestamp": "2025-10-04T09:15:48.411Z",
215+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.mountingMode"
75216
},
76217
{
77218
"apiVersion": 1,
@@ -90,7 +231,7 @@
90231
"type": "number"
91232
}
92233
},
93-
"uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.temperature/commands/setTargetTemperature"
234+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.temperature/commands/setTargetTemperature"
94235
}
95236
},
96237
"deviceId": "zigbee-048727fffe196e03",
@@ -105,8 +246,26 @@
105246
"value": 8
106247
}
107248
},
108-
"timestamp": "2024-10-01T08:44:50.292Z",
109-
"uri": "https://api.viessmann-climatesolutions.com/iot/v1/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.temperature"
249+
"timestamp": "2025-10-04T09:15:48.411Z",
250+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.temperature"
251+
},
252+
{
253+
"apiVersion": 1,
254+
"commands": {},
255+
"deviceId": "zigbee-048727fffe196e03",
256+
"feature": "trv.valve.position",
257+
"gatewayId": "################",
258+
"isEnabled": true,
259+
"isReady": true,
260+
"properties": {
261+
"position": {
262+
"type": "number",
263+
"unit": "percent",
264+
"value": 0
265+
}
266+
},
267+
"timestamp": "2025-10-04T09:15:48.411Z",
268+
"uri": "https://api.viessmann-climatesolutions.com/iot/v2/features/installations/#######/gateways/################/devices/zigbee-048727fffe196e03/features/trv.valve.position"
110269
}
111270
]
112271
}

tests/test_TestForMissingProperties.py

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,20 @@ def test_missingProperties(self):
2323
'device.messages.service.raw',
2424
'device.messages.status.raw',
2525
'device.parameterIdentification.version',
26+
'device.productIdentification',
27+
'device.productMatrix',
28+
'device.time.daylightSaving',
29+
'device.identification',
30+
'device.zigbee.parent.rx',
31+
'device.zigbee.parent.tx',
32+
'device.heatingCircuitId',
33+
'device.configuration.houseLocation',
34+
'device.lock.malfunction',
35+
'device.timeseries.burner.stops',
36+
'device.timeseries.dhw.burner.stops',
37+
'device.timeseries.ignitionTimeSteps',
38+
'device.timeseries.monitoringIonization',
39+
'device.timeseries.water.pressure.peaks',
2640

2741
'device.configuration.houseLocation',
2842
'device.lock.malfunction',
@@ -58,7 +72,6 @@ def test_missingProperties(self):
5872
'heating.operating.programs.holiday',
5973
'heating.device.time.offset',
6074
'heating.configuration.multiFamilyHouse',
61-
'heating.boiler.temperature', # ignore as value is to low to be plausible in response data
6275
'heating.boiler.airflaps.0.position.current',
6376
'heating.boiler.airflaps.1.position.current',
6477
'heating.boiler.pumps.internal',
@@ -77,11 +90,6 @@ def test_missingProperties(self):
7790
'heating.dhw.hygiene.trigger',
7891
'heating.dhw.operating.modes.off',
7992
'heating.dhw.temperature.hygiene',
80-
'heating.power.production.cumulative',
81-
'heating.power.purchase.cumulative',
82-
'heating.power.purchase.current',
83-
'heating.power.sold.cumulative',
84-
'heating.power.sold.current',
8593
'heating.sensors.temperature.allengra',
8694

8795
'heating.dhw.operating.modes.active',
@@ -93,7 +101,6 @@ def test_missingProperties(self):
93101
'heating.circuits.0.operating.programs.noDemand.hmiState', # TODO: to analyse, from Vitodens 100W
94102
'heating.circuits.0.name', # TODO: to analyse, from Vitodens 100W
95103
'heating.circuits.0.zone.mode', # TODO: to analyse, from Vitocal 250A
96-
'heating.dhw.sensors.temperature.dhwCylinder',
97104

98105
'heating.configuration.dhw.temperature.dhwCylinder.max', # TODO: to analyse, from Vitocal 333G
99106

@@ -105,26 +112,10 @@ def test_missingProperties(self):
105112
'heating.burner', # deprecated FIXME: remove once test data is updated
106113

107114
# Ignored for now as they are not documented in https://documentation.viessmann.com/static/iot/data-points
108-
'device.configuration.houseLocation',
109-
'device.lock.malfunction',
110-
'device.messages.errors.raw',
111-
'device.name',
112-
'device.power.battery',
113-
'device.productIdentification',
114-
'device.productMatrix',
115-
'device.timeseries.burner.stops',
116-
'device.timeseries.dhw.burner.stops',
117-
'device.timeseries.ignitionTimeSteps',
118-
'device.timeseries.monitoringIonization',
119-
'device.timeseries.water.pressure.peaks',
120-
'device.zigbee.active',
121-
'device.zigbee.status',
122115
'heating.device.variant',
123-
'device.time.daylightSaving',
124116
'heating.device.software',
125117

126118
# gateway
127-
'gateway.devices', # not used
128119

129120
# ventilation - not yet used
130121
'ventilation.levels.levelOne',
@@ -137,7 +128,6 @@ def test_missingProperties(self):
137128
'ventilation.quickmodes.comfort',
138129
'ventilation.quickmodes.eco',
139130
'ventilation.quickmodes.holiday',
140-
'ventilation.operating.state', # TODO: to analyse, from Vitocal 111S
141131
'heating.heatingRod.power.consumption.summary.dhw',
142132
'heating.heatingRod.power.consumption.summary.heating',
143133
'heating.heatingRod.status',
@@ -164,6 +154,13 @@ def test_missingProperties(self):
164154
'photovoltaic.installedPeakPower',
165155
'photovoltaic.string.current',
166156
'photovoltaic.string.voltage',
157+
158+
# TRVs
159+
'device.zigbee.lqi',
160+
'device.zigbee.parent.id',
161+
'trv.childLock',
162+
'trv.mountingMode',
163+
'trv.valve.position',
167164
]
168165

169166
all_features = self.read_all_features()

tests/test_VitovalorPT2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,6 @@ def test_getFuelCellGasConsumptionYears(self):
180180
def test_getFuelCellGasConsumptionThisYear(self):
181181
self.assertEqual(self.device.getFuelCellGasConsumptionThisYear(), 651.1)
182182

183-
def test_getHeatingSupplyPressure(self):
183+
def test_getSupplyPressure(self):
184184
self.assertEqual(self.device.getSupplyPressure(), 1.7)
185185
self.assertEqual(self.device.getSupplyPressureUnit(), "bar")

0 commit comments

Comments
 (0)