nebulous / infinitude

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

Is there a way to tell if the carrier thermostat is online? #170

Closed brettonw closed 1 year ago

brettonw commented 1 year ago

TL/DR: I want to make a red/green status indicator for whether infinitude is actually communicating with the thermostat

Story: I have an internal monitor page where I check that various parts of my home are online and I put a red or green indicator for it. I have one for the infinitude server.

Screenshot 2023-04-03 at 9 41 45 AM

Recently, my Unifi network has been letting my Infinity thermostats drop off the WiFi network. When it happens, the infinitude server looks like it is still connected and everything appears to be working correctly, so I don't really notice until the temperature changes dramatically or the energy usage spikes (often around 3am). The only way I can get it back online is to reboot the AP (I have a support ticket open with Unifi for this because it just started happening).

What I'd like is to add a condition to the dashboard showing the thermostat is online, ideally if the infinitude server is online with it.

I noticed a timestamp in notifications.json, but this doesn't necessarily seem to be linked directly to "online" status.

Is there an easy way to do this?

nebulous commented 1 year ago

In my case I had to create a dedicated 802.11g network separate from my Unifi devices for the stat to connect/remain connected, so you're not alone with that problem.

Regarding connectivity...

Each http request/response is stored by Infinitude in the state folder, and each http response will contain a date string, so that's another means to verify connectivity.

the status endpoint is the most often called, so look in your state folder for the status request/response files ls -l state/re*-status*

stat state/req-status* should return the dates for the last time the thermostat contacted Infinitude stat state/res-status* should return the dates for the last time Carrier replied to Infinitude grep -a Date: state/res-status* should also verify the response time from Carrier to Infinitude

so a naïve cli check for connectivity might be

find state/ -mmin -16|grep req-systems && echo Infinitude alive || echo No request from Infinitude in the last 16 minutes