Jump to content

Polyglot Honeywell Total Connect v2 NodeServer


dbarentine

Recommended Posts

@Colecaz Lets move this conversation over to the Honeywell Home thread: 

As for your update issue the two things I need to know are what version of the nodeserver and do you see any errors in the log file?

 

 

 

Link to comment
Share on other sites

  • 9 months later...

Can you add a Query command to use in programs.   I had some nodeservers (not only yours) get into a loop in programs because even though the admin console shows TRUE for up status the program kept running in a loop.  I ran it by some people and they said add a query.  I did for all the others and that fixes the issue.  But TotalConnect does not have a query in programs when you go to Your Devices- TotalConnect Controller-

Can you please add it?

 

Thanks!!!

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Now another issue.  Look at logs.  Seems like they changed their API wanting a lower level user and also a user code.

I dont want to publish my settings but nothing has changed.  I could arm, disarm, etc. when I last tried but I have had my sister here for a couple weeks and did not use the system during that time.

 

 

TotalConnect_logs_2-13-2021_83253_AM.zip

Link to comment
Share on other sites

@dbarentine, thanks for adding the query function. For me it works just fine for the the "zone" panel AND for standalone zone queries.  There does seem to be an issue when a global zone query is executed at long poll intervals.  I have 23 individual "zones" to be queried in succession.  This does not work and creates the following warnings (only the last two 22 & 23 are shown, but the others are the same):

2021-02-13 12:09:09,309 Controller polyinterface DEBUG zone_node:query: Query zone z_219735_22

2021-02-13 12:09:09,509 Controller polyinterface WARNING zone_node:query: Unable to refresh zone, code 4101 message We are unable to connect to the security panel. Please try again later or contact support

2021-02-13 12:09:09,510 Controller polyinterface INFO polyinterface:reportDrivers: Updating All Drivers to ISY for RBH - 3RD BEDROOM FRONT(z_219735_22)

2021-02-13 12:09:09,510 Controller polyinterface DEBUG zone_node:query: Query zone z_219735_23

2021-02-13 12:09:09,716 Controller polyinterface WARNING zone_node:query: Unable to refresh zone, code 4101 message We are unable to connect to the security panel. Please try again later or contact support

2021-02-13 12:09:09,717 Controller polyinterface INFO polyinterface:reportDrivers: Updating All Drivers to ISY for RBH - 3RD BEDROOM SIDE(z_219735_23)

2021-02-13 12:09:09,718 Controller polyinterface DEBUG security_panel_node:query: Query zone panel_219735

2021-02-13 12:09:09,956 Controller polyinterface INFO polyinterface:reportDrivers: Updating All Drivers to ISY for RBH - 7847i-512(panel_21973

2021-02-13 12:09:09,957 Controller polyinterface INFO polyinterface:reportDrivers: Updating All Drivers to ISY for RBH - 7847i-512(panel_219735)

It would appear that there is insufficient delay between sequential zone queries for the panel to recover/respond.  As I said before, querying an individual zone works fine every time.

One other observation/suggestion: If a zone is faulted, there should be a reportable condition "disarmed, not ready to arm" that would indicate the need to clear the fault or bypass the zone.  If this condition could be made available to the ISY, it would be greatly appreciated.  Thanks for your efforts on this Node Server..

Link to comment
Share on other sites

@macjeff Could you try stopping and then restarting the node server? I've had random errors in my own system that look similar and a restart normally fixes it. It's a problem somewhere in the library I'm using. I will see if a workaround can be put in place.

@vspete It's possible their API is rate limiting you. But as it's undocumented I have no clue if that's the problem or they have some other limitation between the API -> Panel. Right now on global zone query there is no delay between zones. What I could do is add a configurable delay for you. That would allow you to play with the timing of the long poll and delay between zone queries.

I will look into the not ready to arm condition. I looked through the library I'm using to access the API and I don't see anything obvious. It's possible there is a property buried somewhere that isn't obvious though. Do you know if that condition shows up in the UI or mobile app?

 

Link to comment
Share on other sites

On 2/13/2021 at 3:19 PM, dbarentine said:

 #1 It's possible their API is rate limiting you. But as it's undocumented I have no clue if that's the problem or they have some other limitation between the API -> Panel. Right now on global zone query there is no delay between zones. What I could do is add a configurable delay for you. That would allow you to play with the timing of the long poll and delay between zone queries.

#2 I will look into the not ready to arm condition. I looked through the library I'm using to access the API and I don't see anything obvious. It's possible there is a property buried somewhere that isn't obvious though. Do you know if that condition shows up in the UI or mobile app?

 

@dbarentine, regarding #1: If it is possible to set a delay between zone queries in the global zone query, that should remedy that error.  I note that when the node server is first started and the zones are initially queried/discovered, the process proceeds more slowly and the connection "warning" (error) doesn't appear.  The initial "global or discovery" query for my 23 zones takes about 23 seconds had has no issues.  The long poll driven "global" query goes through the 23 zones in about 8 seconds and throws the connection warning/error shown above when querying each and every zone.

regarding #2: See the iOS app TC2 screen shots, the left shows the normal arming screen with all sensors okay. The right side is displayed with one window open.

TC2.thumb.jpg.97e8078f43ef68785ea88cf55a4cde7a.jpg

 

For me, I am not sure that having the #2 functionality is all that important unless you are using the ISY to arm the panel based on a schedule or some other information the the ISY has access to. For my automation purposes, quickly determining the armed/disarmed state and whether an alarm has been triggered in a timely manner is of the greatest value. My VISTA panel issues x10 signals for armed away, armed stay, disarmed, burglar, and fire. Occasionally, these momentary signals are not successfully received by the ISY. When they work, they are instantaneous and do not require a query, which is ideal.  I expect that I will use the TC node server to corroborate the delivery of these messages and ensure that the state variable " status flags" set by these messages are correct. While the TC node server will be inherently more reliable, there will always be unavoidable delays in addition to those attributable to polling.

Thanks again!

Link to comment
Share on other sites

@macjeff Could you try stopping and then restarting the node server? I've had random errors in my own system that look similar and a restart normally fixes it. It's a problem somewhere in the library I'm using. I will see if a workaround can be put in place.

 I replied above but did not quote that I restarted, updated all nodeservers, updated polisy, and also rebooted polisy.  No changes. 

But figured two things out after talking to my security installer.

1. Total Connect API no longer wants the master user to be used.  So just create a user and enter that.

2. My modem was in a fault state which prevented the communication.   We reset it from now but he said its due to bad connection in basement so he is moving it upstairs.

 

But for now its working

 

Jeff

Link to comment
Share on other sites

  • 2 weeks later...

@vspete version 1.3.4 that I just pushed will have the delay between zone queries. It is configurable in the node server settings as zone_query_delay_ms. The time is in milliseconds (1000 ms = 1 second) and I've currently got it set to a default one second delay.

I have not dug into #2 yet.

Link to comment
Share on other sites

@dbarentineThanks for quickly pushing out this version.  I tried numerous delay settings between zone queries. Unfortunately, inserting the a delay doesn't seem to address the panel connection warning issue. I always get some zone updates without the warning,  when the warnings stop seems somewhat random.  Generally, updates of zones 1 to somewhere between zone 11 and zone 15 all get the warning and the remaining zones through zone 23 are warning free.  Only occasionally, will one of the upper zones throw a warning.

I have been using the default nodeserver configuration: Short Poll: 60 sec; Long Poll: 240 sec. I thought I would try varying these settings.  I set the zone_query_delay to 10ms (didn't know if 0 would be acceptable).  I set the short poll at 30 seconds and the long poll at 60 seconds. Now all zone queries update without any warnings.  I note that the long poll zone query also polls the panel. As I get through the 23 zones plus the panel under 30 seconds, I now get two panel polls close to one another then after about 30 seconds the sequence starts again zones 1 through 23; two panel polls; 30 second break then repeat.

Don't know whether there was some query overlap or whether reauthentication was playing a role, but everything is working smoothly with these settings.  Thanks again for you efforts here.

Link to comment
Share on other sites

  • 2 weeks later...

Has anyone seen a discovery error in polisy?

The node server seems to work, but gives me the following error:

 ERROR    totalconnect-poly:discover: Discovery failed with error argument of type 'NoneType' is not iterable
Traceback (most recent call last):
  File "./totalconnect-poly.py", line 135, in discover
    if device['DeviceName'] in VALID_DEVICES or 'PanelType' in device['DeviceFlags']:
TypeError: argument of type 'NoneType' is not iterable

 

Interestingly, I do not have any camera devices in TotalConnect.

 

Thanks,

Craig

Link to comment
Share on other sites

@cwitter What does the log above that look like?

It should have something like:
Adding devices for location {} with name {}
Found device [DeviceName] in location [Location]

You might (probably) have multiples of the Found device log message.

My guess is you are getting tripped up on the device['DeviceFlags'] as that only exists in the security panel. We ignore the automation devices and my guess is either the TC2 api has changed the name of it or as added another one to the list that causes issues. Known what device names show up in your logs will help me determine where the issue is.

Link to comment
Share on other sites

Looks to me like it's the doorbell device

 

2021-03-16 07:59:36,751 NodeServer polyinterface      DEBUG    totalconnect-poly:discover: Found device Video DoorBell in location Home
2021-03-16 07:59:36,755 NodeServer polyinterface      INFO     polyinterface:addNotice: Sending addnotice to Polyglot: {'key': 'discovery_failed', 'value': 'Discovery failed please check logs for a more detailed error.'}
2021-03-16 07:59:36,760 NodeServer polyinterface      ERROR    totalconnect-poly:discover: Discovery failed with error argument of type 'NoneType' is not iterable
Traceback (most recent call last):
  File "./totalconnect-poly.py", line 143, in discover
    if device['DeviceName'] in VALID_DEVICES or 'PanelType' in device['DeviceFlags']:

 

Attaching log file as well. 

 

Thanks in advance,

Craig

TotalConnect_3-16-2021_75955_AM.txt

Link to comment
Share on other sites

@JC Bond Is this on a Polisy?

Nothing has changed in terms of the required packages for a number of versions. So I'm not sure why it would be having issues. The library it's upset about is a native library. I'd have to see the installation log which gets created in the node server directory. That requires SSH access if it's on a Polisy.

Link to comment
Share on other sites

Well that's weird. The lxml library shows as installing just fine. Normally if it tried to install but libxslt wasn't installed it would try to compile and install it. And if it couldn't do that then it would throw an error. So given it looks like it installed correctly I'm not sure why it's complaining.

You probably have two options.

1) Remove the node server and try and reinstall it again and see if that fixes it.
2) Manually install libxslt via SSH. For Ubuntu: sudo apt install libxslt-dev

Link to comment
Share on other sites

Manually installing libxslt, fixed the problems I was having. Now I wanted to show you the install notice I received when I manually installed it, as maybe this will give you an idea of what was happening. Particularly look at this "Note, selecting 'libxslt1-dev' instead of 'libxslt-dev'"

 

sudo apt install libxslt-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libxslt1-dev' instead of 'libxslt-dev'
The following additional packages will be installed:
  icu-devtools libicu-dev libxml2-dev libxslt1.1
Suggested packages:
  icu-doc
The following NEW packages will be installed:
  icu-devtools libicu-dev libxml2-dev libxslt1-dev libxslt1.1
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.4 MB of archives.
After this operation, 45.7 MB of additional disk space will be used.

Link to comment
Share on other sites

  • 3 weeks later...

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...