watchforstock / evohome-client

Python client to access the Evohome web service
Apache License 2.0
88 stars 52 forks source link

control_systems is empty #122

Closed martin3000 closed 2 years ago

martin3000 commented 2 years ago

I had a honeywell rth8580wf thermostat which I now replaced with a rth9585wf thermostat. With the new thermostat (registered to international.mytotalconnectcomfort.com) the control_systems is empty:

client.locations[0]._gateways[0]:

{'_control_systems': [],
 'client': <evohomeclient2.EvohomeClient object at 0x7fad23765670>,
 'control_systems': {},
 'crc': '8888',
 'gatewayId': '555555',
 'isWiFi': True,
 'location': <evohomeclient2.location.Location object at 0x7fad23674d30>,
 'mac': '4444444444444'}

But the status call returns good values:

status: {'locationId': '777777', 'gateways': [{'gatewayId': '5555555', 'temperatureControlSystems': [{'systemId': '4444444', 'zones': [{'zoneId': '7777777', 'temperatureStatus': {'temperature': 22.5, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 22.5, 'setpointMode': 'TemporaryOverride', 'until': '2022-03-19T14:00:00Z'}, 'name': 'THERMOSTAT'}], 'activeFaults': [], 'systemModeStatus': {'mode': 'Heat', 'isPermanent': True}}], 'activeFaults': []}]}

What could be the reason for the empty control systems?

zxdavb commented 2 years ago

@martin3000 You are using an NA (North American) device on the EU (European) TCC website...

This is such an edge-case that the reality is: you're probably on your own, sorry.

I also note that it appears this appears to be an XY problem - you may be more successful if you explain what you're trying to do, rather than simply request your perceived solution?

zxdavb commented 2 years ago

For the benefit off destiny, below is the direct message (DM) I received that is associated with the above. Note: I do not respond to DMs unless they are explicitly solicited.


I'm a home assistant user and I recently bought a honeywell rth9585wf US thermostat. I registered it through https://international.mytotalconnectcomfort.com/, but the API is not working correctly with this thermostat. This is the output from a small python test program:

client.locations[0]._gateways[0]:

{'_control_systems': [],
 'client': <evohomeclient2.EvohomeClient object at 0x7f6d4dd3670>,
 'control_systems': {},
 'crc': '8888',
 'gatewayId': '555555',
 'isWiFi': True,
 'location': <evohomeclient2.location.Location object at 0x7f6d54ce2d30>,
 'mac': '4444444444444'}

As you see, the control systems are empty.

But for some reasons, the status() call gives good results:

{'locationId': '555556', 'gateways': [{'gatewayId': '555555', 'temperatureControlSystems': [{'systemId': '7777777', 'zones': [{'zoneId': '7777777', 'temperatureStatus': {'temperature': 22.5, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 22.5, 'setpointMode': 'TemporaryOverride', 'until': '2022-03-19T14:00:00Z'}, 'name': 'THERMOSTAT'}], 'activeFaults': [], 'systemModeStatus': {'mode': 'Heat', 'isPermanent': True}}], 'activeFaults': []}]}

Do you have an idea what is happening?

I would prefer to use the US site at https://mytotalconnectcomfort.com/ also because the app is much better, but then the thermostat is running with the US time :-(

zxdavb commented 2 years ago

I suggest this issue be closed.

martin3000 commented 2 years ago

I was using a rth8580wf and it was working fine in europe, whereas the rth9585wf does not work. Looking into the code I see that the control systems info is fetched incorrectly because all data is extracted from the installation_info. Using my own python code, I can control the thermostat. So it is no problem, I will use a fork of the evohome-async-client. Closed.