UniversalDevicesInc / polyglot-v2

Polyglot Version 2 for use with the ISY 994i 5.0+
MIT License
30 stars 18 forks source link

V2.2.6 Ecobee controller node flashes Authorized=false every 60 minutes #79

Closed larryllix closed 5 years ago

larryllix commented 5 years ago

It seems my previous RPi polyglot version's heartbeat has disappeared in polisy/polyglot, and I have been monitoring the three status fields. All three stay true while the ecobee NS is being served by the ecobee AP and connected to ISY.

However, the Authorized field flashes False every hour (exactly but not on the hour), for some very short duration. I suspect this was not intended to happen, or to be a heartbeat of any type as the field name would not seem to be a proper label for that function and a full hour would be quick enough.

jimboca commented 5 years ago

This all sounds like an ecobee ns issue, not polyglot. Each ns has their own issues ecobee is here https://github.com/Einstein42/udi-ecobee-poly/issues

larryllix commented 5 years ago

This was not an issue before polisy/polyglot v2.2.5. Polyglot on RPi and polisy/polyglot v2.2.4 worked fine and ecobee NS has not been modified. Now an additional field from Ecobee Controller Connection is randomly flashing false and then returning to True, also.

It seems polisy/polyglot v2.2.5 is sending status changes that other versions didn't without any change to the ecobee NS version.

jimboca commented 5 years ago

It is normal for authorized to go false for a short period while the node server re-authorizes, I verified this was the case on older Polyglot 2.2.4 as well. The ns could be smarter and re-auth before it expires but it currently doesn't.

larryllix commented 5 years ago

I installed a wait 10 seconds and it eliminated the hourly Authorised flash to false and back reporting. The Controller Connected field flashed False and then back to True that same night at 11:06 PM and 11:10 PM November12, but hasn't done it since then.

I got thinking about the Auth=False and knowing how to avoid nuisance reports it could double as a heartbeat signal. LOL

jimboca commented 5 years ago

Not sure why you say heartbeat is missing, it's working fine for me. DON/DOF are sent every longPoll, there is no visible change on the node server because it's not a status and never has been.

larryllix commented 5 years ago

I don't know what heartbeat you are referring to. I have no fields labelled "heartbeat" I was using a field in the "controller" device page previously but that doesn't exist anymore, and none of the fields ever change state except for the two we discussed flashing false for a very short period.

The ecobee device page has a connected field but it never changes. I see the DON/DOFF being logged anytime I look but I assumed it was not processed yet at the ISY end of polyglot.

jimboca commented 5 years ago

In your original report you said "heartbeat has disappeared". The heartbeat has never been shown anywhere expect as a control DON/DOF which is available in control only:

Polyglot Ecobee 12 HB - [ID 001B][Parent 001E]

If
        'Ecobee / Ecobee 12 Controller Polisy' is switched On
     Or 'Ecobee / Ecobee 12 Controller Polisy' is switched Off

Then
        $s.Polyglot.Ecobee.12.HB  = 1
        Wait  10 minutes 
        $s.Polyglot.Ecobee.12.HB  = 2
        Run Program 'Polyglot Problem' (Then Path)

Else
        $s.Polyglot.Ecobee.12.HB  = 2

Note: Your controller will just be called 'Ecobee Controller', I rename mine because it's my dev box and I have 4 of them running...

larryllix commented 5 years ago

My "Ecobee Controller" device contains four fields. Nodeserver Online, Ecobee Connection Status, Authrorized, Logger Level.

None of them alternate status or change status except Authorized flashes False every hour and Controller Connection Status did twice randomly. I am monitoring them all.

I was using a monitoring program very similar to your posted program but after the upgrade to polisy v2.2.6 it reported failed and never retriggered again.

Here is my defunct program:

Ecobee.Stats Comm.OK - [ID 0029][Parent 00CD][Not Enabled]

If 'Dining Room / Ecobee Controller' Ecobee Connection Status is True Or 'Dining Room / Ecobee Controller' Ecobee Connection Status is False

Then $GathRm.stat.updating = $cTRUE $RecRm.stat.updating = $cTRUE Wait 3 minutes and 30 seconds Run Program 'Ecobee.Stats Comm.OK' (Else Path)

Else $GathRm.stat.updating = $cFALSE $RecRm.stat.updating = $cFALSE Wait 20 minutes $sAlarm.level = 2 Send Notification to 'eMail Larry' content 'Device comm report' Repeat While $sHouse.vacation is $cFALSE Send Notification to 'Text Larry' content 'Device comm report' $sSayCheckComms = 1 Wait 3 seconds $sSayCheckComms = 0 Wait 4 hours

jimboca commented 5 years ago

Please check Control NOT Status. This has not changed.

larryllix commented 5 years ago

Oh shoot! I messed up when I had to rebuild the ecobee programs. Can't have to be and not to be in the same If section. Thanks for that one!!

larryllix commented 5 years ago

Yeah! It works!. I guess I got flustered when things crashed and didn't see straight. I am quite embarrassed now. Thank you so much jimbo!!