nebulous / infinitude

Open control of Carrier/Bryant thermostats
MIT License
225 stars 50 forks source link

Weird behavior if I turn off all schedules #128

Closed brettonw closed 2 years ago

brettonw commented 2 years ago

I have a weirdness - Using the Home Assistant Integration, if I disable schedules entirely on infinitude, the integration will no longer connect. It might be an issue with the integration, but is there a reason this might not work as expected? I have to leave at least one scheduled transition to the Home comfort profile enabled in the list.

nebulous commented 2 years ago

I'm guessing this is an edge with the interaction between the HA Integration and Infinitude having to do with missing keys which are assumed to exist in the thermostat state store. You've already identified a workaround - have some transition, however meaningless - but if you want to pass along your systems.json file in the working and broken states, we should be able to spot the difference and fix it in Infinitude, or @MizterB might fix it in the integration, or both. Thanks for the report.

brettonw commented 2 years ago

Where do I find a systems.json file (not in the infinitude configuration directory, but there is systems+2ejson.dat). FWIW, I have two infinitude systems and both exhibit this behavior, so I suspect it's readily reproducible.

nebulous commented 2 years ago

http://yourInfinitudeIP:3000/systems.json should do it.

*and systems+2ejson.dat is the same file, but including a header that specifies caching parameters/ttl etc

brettonw commented 2 years ago

systems.json.zip both files zipped together.

nebulous commented 2 years ago

wow, ok. The only difference between those two files is the single enabled key at

["system",0,"config",0,"zones",0,"zone",0,"program",0,"day",0,"period",0,"enabled",0]

I think the HA integration may make an assumption that the zone is disabled if it doesn't have any enabled schedules. Taking a quick look at its code, looks like the issue might be around line 358 here: https://github.com/MizterB/homeassistant-infinitude/blob/master/custom_components/infinitude/climate.py#L358

@MizterB can correct my assumptions though. Probably it would make sense to file an Issue with him mentioning what happens vs what you would expect to happen when a zone has no enabled schedules. (or workaround by leaving a single schedule enabled to Home 😉 )