Jump to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Thermostat Won't Discover

Featured Replies

I have a Venstar T7800 with the wifi adapter. The thermostat is logged into Venstar Skyport and that works. I enabled Local API.

I installed the PG3x node. I clicked "discover". It gave me a message that it failed to find a thermostat. I manually entered an incorrect IP address and it gave the same message (this was an accident, transposed two digits). I corrected that mistake and then hit discover and it does nothing. No messages, no nodes, it is like I didn't hit the discover button. I tried deleting the node and installing again in a different slot. Same results. I tried changing back to an incorrect IP and it gives the message that nothing is there again. The discover button is activating, it changes from almost black to black when I click it. It would seem that the node server is seeing something there but getting in some failure loop or something?

Next step?

Thanks.

EDIT: Also I have put the latest firmware on the thermostat.

EDIT2: I put the url (http://192.168.3.127) into a web browser and got this response. {"api_ver":5,"type":"residential"}

If put http://192.168.3.127/query/status it just spins and spins.

I'm going to try power cycling the thermostat later today when I am physically there. I'm working through a local pc via vpn/remote desktop.

@Goose66

here is some of the log

AutoScroll


      

2026-02-12 10:01:26.107 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message discover

2026-02-12 10:01:26.108 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING discover

2026-02-12 10:01:26.109 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS discover message {} from Polyglot

2026-02-12 10:01:26.110 Thread-54 (_discover_handler) udi_interface.custom DEBUG custom:clear: CUSTOM: Clear ...saving

2026-02-12 10:01:26.111 Thread-54 (_discover_handler) udi_interface.custom INFO custom:_save: Sending data notices to Polyglot.

2026-02-12 10:01:26.111 Thread-54 (_discover_handler) udi_interface DEBUG venstarapi:getThermostatInfo: in getThermostatInfo()...

2026-02-12 10:01:26.119 Thread-1 (send_thread) udi_interface.interface DEBUG interface:_send: PUBLISHING {'set': [{'key': 'notices', 'value': {}}]}

2026-02-12 10:01:26.167 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message custom

2026-02-12 10:01:26.168 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING custom

2026-02-12 10:01:26.169 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS custom message {'notices': '{}'} from Polyglot

2026-02-12 10:01:26.169 Command udi_interface.interface DEBUG interface:_handleInput: Process custom message notices from Polyglot

2026-02-12 10:01:26.170 Command udi_interface.custom DEBUG custom:load: CUSTOM: load {}

2026-02-12 10:01:26.208 MQTT udi_interface.interface INFO interface:_message: Successfully set key = notices

2026-02-12 10:01:26.418 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message shortPoll

2026-02-12 10:01:26.419 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING shortPoll

2026-02-12 10:01:26.419 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS shortPoll message {} from Polyglot

2026-02-12 10:01:26.420 Thread-55 (_poll_handler) udi_interface INFO venstarns:shortPoll: Updating node states in shortPoll()...

2026-02-12 10:01:26.528 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: Exception in thread

2026-02-12 10:01:26.528 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: Thread-54 (_discover_handler)

2026-02-12 10:01:26.529 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: :

2026-02-12 10:01:26.529 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: Traceback (most recent call last):

2026-02-12 10:01:26.529 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/site-packages/requests/models.py", line 976, in json

2026-02-12 10:01:26.532 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: return complexjson.loads(self.text, **kwargs)

2026-02-12 10:01:26.534 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.534 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.535 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.535 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.535 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.536 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.536 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.537 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.537 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.538 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.538 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.539 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.539 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.540 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.540 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.540 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.541 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.541 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.542 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.542 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.543 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.543 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.543 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.544 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.544 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.544 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.545 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.545 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.546 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.546 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.547 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.547 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.548 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.548 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.548 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.549 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.549 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.550 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.550 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/json/__init__.py", line 346, in loads

2026-02-12 10:01:26.553 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: return defaultdecoder.decode(s)

2026-02-12 10:01:26.554 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.554 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.555 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.555 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.556 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.556 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.557 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.557 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.557 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.558 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.558 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.559 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.559 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.560 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.560 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.561 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.561 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.561 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.562 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.562 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.563 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.563 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.563 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.564 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.564 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.565 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.565 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode

2026-02-12 10:01:26.567 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: obj, end = self.raw_decode(s, idx=_w(s, 0).end())

2026-02-12 10:01:26.568 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.569 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.569 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.570 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.570 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.570 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.571 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.571 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.572 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.572 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.572 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.573 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.573 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.573 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.574 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.574 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.575 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.575 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.575 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.576 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.576 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.577 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.577 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.577 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.578 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.578 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.579 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.579 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.579 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.580 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.580 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.581 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.581 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.581 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.582 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.582 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.582 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.583 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.583 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode

2026-02-12 10:01:26.585 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: raise JSONDecodeError("Expecting value", s, err.value) from None

2026-02-12 10:01:26.586 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: json.decoder

2026-02-12 10:01:26.587 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: .

2026-02-12 10:01:26.588 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: JSONDecodeError

2026-02-12 10:01:26.588 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: :

2026-02-12 10:01:26.589 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: Expecting value: line 1 column 1 (char 0)

2026-02-12 10:01:26.589 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: During handling of the above exception, another exception occurred:

2026-02-12 10:01:26.590 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: Traceback (most recent call last):

2026-02-12 10:01:26.590 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/threading.py", line 1045, in bootstrapinner

2026-02-12 10:01:26.594 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: self.run()

2026-02-12 10:01:26.595 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/threading.py", line 982, in run

2026-02-12 10:01:26.598 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: self._target(*self._args, **self._kwargs)

2026-02-12 10:01:26.600 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/var/polyglot/pg3/ns/000db9593970_8/venstarns/nslib.py", line 87, in discoverhandler

2026-02-12 10:01:26.602 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: self.discover()

2026-02-12 10:01:26.603 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/var/polyglot/pg3/ns/000db9593970_8/venstarns/venstarns.py", line 143, in discover

2026-02-12 10:01:26.604 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: thermoInfo = api.getThermostatInfo(hostName, LOGGER)

2026-02-12 10:01:26.605 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.606 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.607 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.607 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.608 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.608 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.608 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.609 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.609 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.610 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.610 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.611 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.611 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.612 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.612 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.613 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.613 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.614 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.614 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.615 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.615 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.616 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.616 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.617 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.617 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.618 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.618 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.618 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.619 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.619 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.620 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.620 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.621 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.621 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.622 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.622 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.622 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.623 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.623 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.624 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/var/polyglot/pg3/ns/000db9593970_8/venstarns/venstarapi.py", line 385, in getThermostatInfo

2026-02-12 10:01:26.625 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: thermostatInfo.update(response.json())

2026-02-12 10:01:26.626 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.627 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.627 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.628 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.628 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.629 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.629 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.630 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.630 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.631 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.631 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.631 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.632 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.632 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.632 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: ^

2026-02-12 10:01:26.633 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: File "/usr/local/lib/python3.11/site-packages/requests/models.py", line 980, in json

2026-02-12 10:01:26.636 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)

2026-02-12 10:01:26.637 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: requests.exceptions

2026-02-12 10:01:26.638 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: .

2026-02-12 10:01:26.638 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: JSONDecodeError

2026-02-12 10:01:26.639 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: :

2026-02-12 10:01:26.639 Thread-54 (_discover_handler) udi_interface ERROR udi_interface:write: Expecting value: line 1 column 1 (char 0)

2026-02-12 10:01:46.389 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message shortPoll

2026-02-12 10:01:46.390 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING shortPoll

2026-02-12 10:01:46.390 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS shortPoll message {} from Polyglot

2026-02-12 10:01:46.392 Thread-56 (_poll_handler) udi_interface INFO venstarns:shortPoll: Updating node states in shortPoll()...

2026-02-12 10:02:06.406 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message shortPoll

2026-02-12 10:02:06.407 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING shortPoll

2026-02-12 10:02:06.408 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS shortPoll message {} from Polyglot

2026-02-12 10:02:06.409 Thread-57 (_poll_handler) udi_interface INFO venstarns:shortPoll: Updating node states in shortPoll()...

2026-02-12 10:02:10.370 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message stop

2026-02-12 10:02:10.371 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING stop

2026-02-12 10:02:10.372 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS stop message {} from Polyglot

2026-02-12 10:02:10.372 Command udi_interface.interface INFO interface:_handleInput: Received stop from Polyglot... Shutting Down.

2026-02-12 10:02:10.374 Thread-58 (_stop_handler) udi_interface DEBUG venstarns:stop: In node server stop()...

2026-02-12 10:02:10.375 Thread-58 (_stop_handler) udi_interface.interface INFO interface:stop: Disconnecting from MQTT... localhost:8883

2026-02-12 10:02:10.379 Thread-58 (_stop_handler) udi_interface.interface INFO interface:_disconnect: MQTT Unexpected disconnection. Reason code: Normal disconnection. Sent by server: False. Retry in 10 seconds.

2026-02-12 10:02:20.505 MainThread udi_interface INFO polylogger:set_basic_config: set_basic_config: enable=True level=30

2026-02-12 10:02:20.506 MainThread udi_interface INFO init:<module>: UDI interface initializing

2026-02-12 10:02:20.506 MainThread udi_interface INFO init:<module>: User=None

2026-02-12 10:02:20.507 MainThread udi_interface INFO init:<module>: Home=/var/polyglot/pg3/ns/000db9593970_8

2026-02-12 10:02:20.508 MainThread udi_interface INFO init:<module>: Node Server Path=/var/polyglot/pg3/ns/000db9593970_8

2026-02-12 10:02:20.508 MainThread udi_interface INFO init:<module>: PG3INIT=eyJ1dWlkIjoiMDA6MGQ6Yjk6NTk6Mzk6NzAiLCJwcm9maWxlTnVtIjo4LCJsb2dMZXZlbCI6IkRFQlVHIiwidG9rZW4iOiJsMElGVS1DSmdNUDBvTmt2IiwibXF0dEhvc3QiOiJsb2NhbGhvc3QiLCJtcXR0UG9ydCI6ODg4Mywic2VjdXJlIjoxLCJpc1BHM3giOnRydWUsInBnM1ZlcnNpb24iOiIzLjQuMTEiLCJpc3lWZXJzaW9uIjoiNi4wLjQiLCJlZGl0aW9uIjoiU3RhbmRhcmQifQ==

2026-02-12 10:02:20.509 MainThread udi_interface INFO init:<module>: Loading interface module

2026-02-12 10:02:20.778 MainThread udi_interface INFO interface:<module>: Loading MQTT module

2026-02-12 10:02:23.590 MainThread udi_interface INFO interface:<module>: MQTT module loaded

2026-02-12 10:02:24.891 MainThread udi_interface INFO init:<module>: Loading udi_interface module

2026-02-12 10:02:24.895 MainThread udi_interface INFO init:<module>: Loading node module

2026-02-12 10:02:24.896 MainThread udi_interface INFO init:<module>: Loading custom module

2026-02-12 10:02:24.896 MainThread udi_interface INFO init:<module>: Loading isy module

2026-02-12 10:02:24.897 MainThread udi_interface INFO init:<module>: Loading OAuth module

2026-02-12 10:02:24.900 MainThread udi_interface INFO init:<module>: UDI interface initialized

2026-02-12 10:02:24.901 MainThread udi_interface INFO init:<module>: UDI Python Interface for Polyglot version 3 3.4.5 Starting...

2026-02-12 10:02:24.923 MainThread udi_interface.interface INFO interface:__init__: Initialization received from Polyglot V3 3.4.11 [ISY: 6.0.4, Slot: 8]

2026-02-12 10:02:24.924 MainThread udi_interface.interface INFO interface:__init__: Connect: Network Interface: {'addr': '192.168.3.82', 'netmask': '255.255.255.0', 'broadcast': '192.168.3.255'}

2026-02-12 10:02:24.927 Interface udi_interface.interface INFO interface:_startMqtt: Connecting to MQTT... localhost:8883

2026-02-12 10:02:24.929 MainThread udi_interface INFO main:<module>: Starting VenstarCT node server...

2026-02-12 10:02:24.931 Interface udi_interface.interface INFO interface:_startMqtt: Using SSL cert: 000db9593970_8.cert key: 000db9593970_8.key ca: /usr/local/etc/ssl/certs/ud.ca.cert

2026-02-12 10:02:24.966 Interface udi_interface.interface INFO interface:_startMqtt: MQTT keepalive is 300 seconds.

2026-02-12 10:02:24.995 MainThread udi_interface.interface INFO interface:updateProfile: Sending Install Profile command to Polyglot.

2026-02-12 10:02:25.091 MQTT udi_interface.interface INFO interface:_connect: MQTT Connected with Reason code: Success

2026-02-12 10:02:25.093 MQTT udi_interface.interface INFO interface:_connect: MQTT Subscribing to topic: udi/pg3/ns/clients/00:0d:b9:59:39:70_8 - MID: 2 Result: 0

2026-02-12 10:02:25.142 MQTT udi_interface.interface INFO interface:_subscribe: MQTT Subscribed Successfully for Message ID: 2. Reason codes: ['Granted QoS 0']

2026-02-12 10:02:25.260 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message getAll

2026-02-12 10:02:25.261 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING getAll

2026-02-12 10:02:25.262 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': '5280b596-377f-4116-b330-a854973396f8', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'customparams', 'value': '{"hostname":"192.168.3.127"}', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.265 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message getNsInfo

2026-02-12 10:02:25.266 Thread-3 (_parameters_handler) udi_interface.custom DEBUG custom:load: CUSTOM: load {'hostname': '192.168.3.127'}

2026-02-12 10:02:25.267 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': '4b876651-db51-462a-a395-5cfe8f28e21d', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'customparamsdoc', 'value': '<h2>VenstarCT NodeServer Configuration</h2>\n\n<h4>Advanced Configuration:</h4>\n\n<ul>\n<li>key: shortPoll, value: polling interval for thermostat states on the local network in seconds (default 15)</li>\n<li>key: longPoll, value: polling interval for alerts, sensor states, and runtimes in seconds (default 150)</li>\n</ul>\n\n<h4>Custom Configuration Parameters:</h4>\n\n<ul>\n<li>key: hostname, value: hostname(s) or IP address(es) for thermostat(s), seperated by semicolons, to bypass SSDP discovery (optional)</li>\n</ul>\n', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.269 Thread-3 (_parameters_handler) udi_interface.custom DEBUG custom:load: CUSTOM: -- checking hostname / 192.168.3.127

2026-02-12 10:02:25.269 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message custom

2026-02-12 10:02:25.270 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': '354710a9-207c-4206-b98c-9bd1880bb47b', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'customtypeddata', 'value': '{}', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.273 MQTT udi_interface.interface INFO interface:_message: Successfully set key = customparamsdoc

2026-02-12 10:02:25.273 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': 'e5d74080-c776-4845-a528-057e04335fa2', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'notices', 'value': '{}', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.275 Command udi_interface.custom DEBUG custom:load: CUSTOM: load {}

2026-02-12 10:02:25.275 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': 'd2817683-f838-48f8-97a4-f173961bdabc', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'nsdata', 'value': 'null', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.276 Command udi_interface.interface DEBUG interface:_handleInput: Key nsdata should be passed to node server.

2026-02-12 10:02:25.278 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': 'bcf70dd4-e466-4935-a198-0cf59c984ebf', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'oauth', 'value': 'null', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.278 Command udi_interface.interface DEBUG interface:_handleInput: Key oauth should be passed to node server.

2026-02-12 10:02:25.282 Thread-8 (_configdone_handler) udi_interface DEBUG venstarns:start: In node server start()...

2026-02-12 10:02:25.284 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING getNsInfo

2026-02-12 10:02:25.285 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getNsInfo message {'id': '06508a20-b2e2-47f7-8d13-5484a60f48e2', 'uuid': '00:0d:b9:59:39:70', 'name': 'Sensibo', 'nsid': '2cd1ff14-8482-4947-a806-e5fa6f42f793', 'expires': 0, 'nickname': None, 'profileNum': 3, 'developerMode': 0, 'timeAdded': 1760666052837, 'timeStarted': 1770587657120, 'timeModified': 1770587665363, 'version': '2.0.13', 'edition': 'Free', 'branch': 'master', 'url': 'https://github.com/UniversalDevicesInc-PG3/udi-sensibo-poly.git', 'home': '/var/polyglot/pg3/ns/000db9593970_3', 'log': 'logs/debug.log', 'logLevel': 'INFO', 'logLevelList': '[{"id":4,"name":"Debug","value":"DEBUG","level":10},{"id":3,"name":"Info","value":"INFO","level":20},{"id":2,"name":"Warning","value":"WARNING","level":30},{"id":1,"name":"Error","value":"ERROR","level":40},{"id":0,"name":"Critical","value":"CRITICAL","level":50}]', 'enabled': 1, 'connected': 1, 'devMode': 0, 'type': 'python3', 'executable': 'sensibo_poly.py', 'shortPoll': 60, 'longPoll': 600, 'allowIsyAccess': 0, 'nsInfoPoll': 0, 'discover': 1, 'oauth': 0, 'requestId': 0, 'status_node': None, 'status_driver': None, 'orderId': None, 'store': 'Production', 'option': 'e24dff66-902a-4401-80ed-513fc7bca3e9', 'noLicense': 0, 'latestVersion': '2.0.13', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.285 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getNsInfo message {'id': 'e93316a8-833e-426f-9a15-bc37f487ae78', 'uuid': '00:0d:b9:59:39:70', 'name': 'Virtual', 'nsid': '2bc787f3-277a-42b1-839f-e85561e1604f', 'expires': 0, 'nickname': None, 'profileNum': 6, 'developerMode': 0, 'timeAdded': 1767895590458, 'timeStarted': 1770587711402, 'timeModified': 1770587718394, 'version': '3.1.26', 'edition': 'Free', 'branch': 'v3.1.2x', 'url': 'https://github.com/UniversalDevicesInc-PG3/Virtual.git', 'home': '/var/polyglot/pg3/ns/000db9593970_6', 'log': 'logs/debug.log', 'logLevel': 'INFO', 'logLevelList': '[{"id":4,"name":"Debug","value":"DEBUG","level":10},{"id":3,"name":"Info","value":"INFO","level":20},{"id":2,"name":"Warning","value":"WARNING","level":30},{"id":1,"name":"Error","value":"ERROR","level":40},{"id":0,"name":"Critical","value":"CRITICAL","level":50}]', 'enabled': 1, 'connected': 1, 'devMode': 0, 'type': 'python3', 'executable': 'udi-Virtual-pg3.py', 'shortPoll': 3, 'longPoll': 30, 'allowIsyAccess': 1, 'nsInfoPoll': 0, 'discover': 1, 'oauth': 0, 'requestId': 0, 'status_node': 'controller', 'status_driver': 'ST', 'orderId': None, 'store': 'Production', 'option': '671a0b64-3de5-434d-a20e-350e38ee5a37', 'noLicense': 0, 'latestVersion': '3.1.26', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.286 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getNsInfo message {'id': 'a9cd23b9-ab9f-421e-9d9b-1bcca6006273', 'uuid': '00:0d:b9:59:39:70', 'name': 'VenstarCT', 'nsid': '639a432c-972f-4b09-a168-0225f01d08a0', 'expires': 1773006399000, 'nickname': None, 'profileNum': 8, 'developerMode': 0, 'timeAdded': 1770911132984, 'timeStarted': 1770912140230, 'timeModified': 1770912145163, 'version': '3.0.11', 'edition': 'Standard', 'branch': None, 'url': 'https://pg3store.isy.io/v2/nodeservers/production/venstar-pg3-3.0.11.zip', 'home': '/var/polyglot/pg3/ns/000db9593970_8', 'log': 'logs/debug.log', 'logLevel': 'DEBUG', 'logLevelList': '[{"id":4,"name":"Debug","value":"DEBUG","level":10},{"id":3,"name":"Info","value":"INFO","level":20},{"id":2,"name":"Warning","value":"WARNING","level":30},{"id":1,"name":"Error","value":"ERROR","level":40},{"id":0,"name":"Critical","value":"CRITICAL","level":50}]', 'enabled': 1, 'connected': 1, 'devMode': 0, 'type': 'python3', 'executable': 'main.py', 'shortPoll': 20, 'longPoll': 150, 'allowIsyAccess': 0, 'nsInfoPoll': 0, 'discover': 1, 'oauth': 0, 'requestId': 0, 'status_node': None, 'status_driver': None, 'orderId': None, 'store': 'Production', 'option': '05cc4cc4-406d-46a0-8a80-1582d54d344f', 'noLicense': 0, 'latestVersion': '3.0.11', 'dbVersion': 1} from Polyglot

2026-02-12 10:02:25.286 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING custom

2026-02-12 10:02:25.287 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS custom message {'customparamsdoc': '<h2>VenstarCT NodeServer Configuration</h2>\n\n<h4>Advanced Configuration:</h4>\n\n<ul>\n<li>key: shortPoll, value: polling interval for thermostat states on the local network in seconds (default 15)</li>\n<li>key: longPoll, value: polling interval for alerts, sensor states, and runtimes in seconds (default 150)</li>\n</ul>\n\n<h4>Custom Configuration Parameters:</h4>\n\n<ul>\n<li>key: hostname, value: hostname(s) or IP address(es) for thermostat(s), seperated by semicolons, to bypass SSDP discovery (optional)</li>\n</ul>\n'} from Polyglot

2026-02-12 10:02:25.287 Command udi_interface.interface DEBUG interface:_handleInput: Process custom message customparamsdoc from Polyglot

2026-02-12 10:02:29.145 MQTT udi_interface.interface INFO interface:_message: Profile installation finished

2026-02-12 10:02:40.234 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message shortPoll

2026-02-12 10:02:40.236 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING shortPoll

2026-02-12 10:02:40.236 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS shortPoll message {} from Polyglot

2026-02-12 10:02:40.238 Thread-9 (_poll_handler) udi_interface INFO venstarns:shortPoll: Updating node states in shortPoll()...

2026-02-12 10:02:52.618 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message stop

2026-02-12 10:02:52.619 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING stop

2026-02-12 10:02:52.620 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS stop message {} from Polyglot

2026-02-12 10:02:52.621 Command udi_interface.interface INFO interface:_handleInput: Received stop from Polyglot... Shutting Down.

2026-02-12 10:02:52.622 Thread-10 (_stop_handler) udi_interface DEBUG venstarns:stop: In node server stop()...

2026-02-12 10:02:52.623 Thread-10 (_stop_handler) udi_interface.interface INFO interface:stop: Disconnecting from MQTT... localhost:8883

2026-02-12 10:02:52.626 Thread-10 (_stop_handler) udi_interface.interface INFO interface:_disconnect: MQTT Unexpected disconnection. Reason code: Normal disconnection. Sent by server: False. Retry in 10 seconds.

2026-02-12 10:03:02.937 MainThread udi_interface INFO polylogger:set_basic_config: set_basic_config: enable=True level=30

2026-02-12 10:03:02.938 MainThread udi_interface INFO init:<module>: UDI interface initializing

2026-02-12 10:03:02.939 MainThread udi_interface INFO init:<module>: User=None

2026-02-12 10:03:02.940 MainThread udi_interface INFO init:<module>: Home=/var/polyglot/pg3/ns/000db9593970_8

2026-02-12 10:03:02.940 MainThread udi_interface INFO init:<module>: Node Server Path=/var/polyglot/pg3/ns/000db9593970_8

2026-02-12 10:03:02.941 MainThread udi_interface INFO init:<module>: PG3INIT=eyJ1dWlkIjoiMDA6MGQ6Yjk6NTk6Mzk6NzAiLCJwcm9maWxlTnVtIjo4LCJsb2dMZXZlbCI6IkRFQlVHIiwidG9rZW4iOiJsMElGVS1DSmdNUDBvTmt2IiwibXF0dEhvc3QiOiJsb2NhbGhvc3QiLCJtcXR0UG9ydCI6ODg4Mywic2VjdXJlIjoxLCJpc1BHM3giOnRydWUsInBnM1ZlcnNpb24iOiIzLjQuMTEiLCJpc3lWZXJzaW9uIjoiNi4wLjQiLCJlZGl0aW9uIjoiU3RhbmRhcmQifQ==

2026-02-12 10:03:02.942 MainThread udi_interface INFO init:<module>: Loading interface module

2026-02-12 10:03:03.299 MainThread udi_interface INFO interface:<module>: Loading MQTT module

2026-02-12 10:03:06.293 MainThread udi_interface INFO interface:<module>: MQTT module loaded

2026-02-12 10:03:07.848 MainThread udi_interface INFO init:<module>: Loading udi_interface module

2026-02-12 10:03:07.852 MainThread udi_interface INFO init:<module>: Loading node module

2026-02-12 10:03:07.853 MainThread udi_interface INFO init:<module>: Loading custom module

2026-02-12 10:03:07.854 MainThread udi_interface INFO init:<module>: Loading isy module

2026-02-12 10:03:07.854 MainThread udi_interface INFO init:<module>: Loading OAuth module

2026-02-12 10:03:07.857 MainThread udi_interface INFO init:<module>: UDI interface initialized

2026-02-12 10:03:07.858 MainThread udi_interface INFO init:<module>: UDI Python Interface for Polyglot version 3 3.4.5 Starting...

2026-02-12 10:03:07.886 MainThread udi_interface.interface INFO interface:__init__: Initialization received from Polyglot V3 3.4.11 [ISY: 6.0.4, Slot: 8]

2026-02-12 10:03:07.887 MainThread udi_interface.interface INFO interface:__init__: Connect: Network Interface: {'addr': '192.168.3.82', 'netmask': '255.255.255.0', 'broadcast': '192.168.3.255'}

2026-02-12 10:03:07.889 Interface udi_interface.interface INFO interface:_startMqtt: Connecting to MQTT... localhost:8883

2026-02-12 10:03:07.892 MainThread udi_interface INFO main:<module>: Starting VenstarCT node server...

2026-02-12 10:03:07.893 Interface udi_interface.interface INFO interface:_startMqtt: Using SSL cert: 000db9593970_8.cert key: 000db9593970_8.key ca: /usr/local/etc/ssl/certs/ud.ca.cert

2026-02-12 10:03:07.930 Interface udi_interface.interface INFO interface:_startMqtt: MQTT keepalive is 300 seconds.

2026-02-12 10:03:07.966 MainThread udi_interface.interface INFO interface:updateProfile: Sending Install Profile command to Polyglot.

2026-02-12 10:03:08.058 MQTT udi_interface.interface INFO interface:_connect: MQTT Connected with Reason code: Success

2026-02-12 10:03:08.059 MQTT udi_interface.interface INFO interface:_connect: MQTT Subscribing to topic: udi/pg3/ns/clients/00:0d:b9:59:39:70_8 - MID: 2 Result: 0

2026-02-12 10:03:08.112 MQTT udi_interface.interface INFO interface:_subscribe: MQTT Subscribed Successfully for Message ID: 2. Reason codes: ['Granted QoS 0']

2026-02-12 10:03:08.168 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message getAll

2026-02-12 10:03:08.169 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING getAll

2026-02-12 10:03:08.170 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': '5280b596-377f-4116-b330-a854973396f8', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'customparams', 'value': '{"hostname":"192.168.3.127"}', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.172 Thread-3 (_parameters_handler) udi_interface.custom DEBUG custom:load: CUSTOM: load {'hostname': '192.168.3.127'}

2026-02-12 10:03:08.173 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': '4b876651-db51-462a-a395-5cfe8f28e21d', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'customparamsdoc', 'value': '<h2>VenstarCT NodeServer Configuration</h2>\n\n<h4>Advanced Configuration:</h4>\n\n<ul>\n<li>key: shortPoll, value: polling interval for thermostat states on the local network in seconds (default 15)</li>\n<li>key: longPoll, value: polling interval for alerts, sensor states, and runtimes in seconds (default 150)</li>\n</ul>\n\n<h4>Custom Configuration Parameters:</h4>\n\n<ul>\n<li>key: hostname, value: hostname(s) or IP address(es) for thermostat(s), seperated by semicolons, to bypass SSDP discovery (optional)</li>\n</ul>\n', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.174 Thread-3 (_parameters_handler) udi_interface.custom DEBUG custom:load: CUSTOM: -- checking hostname / 192.168.3.127

2026-02-12 10:03:08.175 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': '354710a9-207c-4206-b98c-9bd1880bb47b', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'customtypeddata', 'value': '{}', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.176 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': 'e5d74080-c776-4845-a528-057e04335fa2', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'notices', 'value': '{}', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.177 Command udi_interface.custom DEBUG custom:load: CUSTOM: load {}

2026-02-12 10:03:08.177 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': 'd2817683-f838-48f8-97a4-f173961bdabc', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'nsdata', 'value': 'null', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.178 Command udi_interface.interface DEBUG interface:_handleInput: Key nsdata should be passed to node server.

2026-02-12 10:03:08.180 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getAll message {'id': 'bcf70dd4-e466-4935-a198-0cf59c984ebf', 'uuid': '00:0d:b9:59:39:70', 'profileNum': 8, 'key': 'oauth', 'value': 'null', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.180 Command udi_interface.interface DEBUG interface:_handleInput: Key oauth should be passed to node server.

2026-02-12 10:03:08.185 Thread-8 (_configdone_handler) udi_interface DEBUG venstarns:start: In node server start()...

2026-02-12 10:03:08.206 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message getNsInfo

2026-02-12 10:03:08.207 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING getNsInfo

2026-02-12 10:03:08.208 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message custom

2026-02-12 10:03:08.209 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getNsInfo message {'id': '06508a20-b2e2-47f7-8d13-5484a60f48e2', 'uuid': '00:0d:b9:59:39:70', 'name': 'Sensibo', 'nsid': '2cd1ff14-8482-4947-a806-e5fa6f42f793', 'expires': 0, 'nickname': None, 'profileNum': 3, 'developerMode': 0, 'timeAdded': 1760666052837, 'timeStarted': 1770587657120, 'timeModified': 1770587665363, 'version': '2.0.13', 'edition': 'Free', 'branch': 'master', 'url': 'https://github.com/UniversalDevicesInc-PG3/udi-sensibo-poly.git', 'home': '/var/polyglot/pg3/ns/000db9593970_3', 'log': 'logs/debug.log', 'logLevel': 'INFO', 'logLevelList': '[{"id":4,"name":"Debug","value":"DEBUG","level":10},{"id":3,"name":"Info","value":"INFO","level":20},{"id":2,"name":"Warning","value":"WARNING","level":30},{"id":1,"name":"Error","value":"ERROR","level":40},{"id":0,"name":"Critical","value":"CRITICAL","level":50}]', 'enabled': 1, 'connected': 1, 'devMode': 0, 'type': 'python3', 'executable': 'sensibo_poly.py', 'shortPoll': 60, 'longPoll': 600, 'allowIsyAccess': 0, 'nsInfoPoll': 0, 'discover': 1, 'oauth': 0, 'requestId': 0, 'status_node': None, 'status_driver': None, 'orderId': None, 'store': 'Production', 'option': 'e24dff66-902a-4401-80ed-513fc7bca3e9', 'noLicense': 0, 'latestVersion': '2.0.13', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.210 MQTT udi_interface.interface INFO interface:_message: Successfully set key = customparamsdoc

2026-02-12 10:03:08.212 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getNsInfo message {'id': 'e93316a8-833e-426f-9a15-bc37f487ae78', 'uuid': '00:0d:b9:59:39:70', 'name': 'Virtual', 'nsid': '2bc787f3-277a-42b1-839f-e85561e1604f', 'expires': 0, 'nickname': None, 'profileNum': 6, 'developerMode': 0, 'timeAdded': 1767895590458, 'timeStarted': 1770587711402, 'timeModified': 1770587718394, 'version': '3.1.26', 'edition': 'Free', 'branch': 'v3.1.2x', 'url': 'https://github.com/UniversalDevicesInc-PG3/Virtual.git', 'home': '/var/polyglot/pg3/ns/000db9593970_6', 'log': 'logs/debug.log', 'logLevel': 'INFO', 'logLevelList': '[{"id":4,"name":"Debug","value":"DEBUG","level":10},{"id":3,"name":"Info","value":"INFO","level":20},{"id":2,"name":"Warning","value":"WARNING","level":30},{"id":1,"name":"Error","value":"ERROR","level":40},{"id":0,"name":"Critical","value":"CRITICAL","level":50}]', 'enabled': 1, 'connected': 1, 'devMode': 0, 'type': 'python3', 'executable': 'udi-Virtual-pg3.py', 'shortPoll': 3, 'longPoll': 30, 'allowIsyAccess': 1, 'nsInfoPoll': 0, 'discover': 1, 'oauth': 0, 'requestId': 0, 'status_node': 'controller', 'status_driver': 'ST', 'orderId': None, 'store': 'Production', 'option': '671a0b64-3de5-434d-a20e-350e38ee5a37', 'noLicense': 0, 'latestVersion': '3.1.26', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.213 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS getNsInfo message {'id': 'a9cd23b9-ab9f-421e-9d9b-1bcca6006273', 'uuid': '00:0d:b9:59:39:70', 'name': 'VenstarCT', 'nsid': '639a432c-972f-4b09-a168-0225f01d08a0', 'expires': 1773006399000, 'nickname': None, 'profileNum': 8, 'developerMode': 0, 'timeAdded': 1770911132984, 'timeStarted': 1770912182556, 'timeModified': 1770912188126, 'version': '3.0.11', 'edition': 'Standard', 'branch': None, 'url': 'https://pg3store.isy.io/v2/nodeservers/production/venstar-pg3-3.0.11.zip', 'home': '/var/polyglot/pg3/ns/000db9593970_8', 'log': 'logs/debug.log', 'logLevel': 'DEBUG', 'logLevelList': '[{"id":4,"name":"Debug","value":"DEBUG","level":10},{"id":3,"name":"Info","value":"INFO","level":20},{"id":2,"name":"Warning","value":"WARNING","level":30},{"id":1,"name":"Error","value":"ERROR","level":40},{"id":0,"name":"Critical","value":"CRITICAL","level":50}]', 'enabled': 1, 'connected': 1, 'devMode': 0, 'type': 'python3', 'executable': 'main.py', 'shortPoll': 20, 'longPoll': 150, 'allowIsyAccess': 0, 'nsInfoPoll': 0, 'discover': 1, 'oauth': 0, 'requestId': 0, 'status_node': None, 'status_driver': None, 'orderId': None, 'store': 'Production', 'option': '05cc4cc4-406d-46a0-8a80-1582d54d344f', 'noLicense': 0, 'latestVersion': '3.0.11', 'dbVersion': 1} from Polyglot

2026-02-12 10:03:08.214 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING custom

2026-02-12 10:03:08.214 Command udi_interface.interface DEBUG interface:_handleInput: PROCESS custom message {'customparamsdoc': '<h2>VenstarCT NodeServer Configuration</h2>\n\n<h4>Advanced Configuration:</h4>\n\n<ul>\n<li>key: shortPoll, value: polling interval for thermostat states on the local network in seconds (default 15)</li>\n<li>key: longPoll, value: polling interval for alerts, sensor states, and runtimes in seconds (default 150)</li>\n</ul>\n\n<h4>Custom Configuration Parameters:</h4>\n\n<ul>\n<li>key: hostname, value: hostname(s) or IP address(es) for thermostat(s), seperated by semicolons, to bypass SSDP discovery (optional)</li>\n</ul>\n'} from Polyglot

2026-02-12 10:03:08.215 Command udi_interface.interface DEBUG interface:_handleInput: Process custom message customparamsdoc from Polyglot

2026-02-12 10:03:09.227 MQTT udi_interface.interface INFO interface:_message: Profile installation finished

2026-02-12 10:03:22.569 MQTT udi_interface.interface DEBUG interface:_message: QUEUING incoming message shortPoll

2026-02-12 10:03:22.570 Command udi_interface.interface DEBUG interface:_parseInput: DEQUEING shortPoll

Edited by apostolakisl

FWIW I had several different color touch stats going back over 10 years including the T7850s

I had these stats in the nodelink days, and query/status is the 'bread and butter' of the api. I used the browser a lot to discover things and debug problems. If that's not working from a browser, I don't see pg3 having luck

They can have pin settings, is that being used or maybe set unintentionally?

I have two T7900's with built-in wifi, and a T6800 with the plug in wifi dongle. The plugin sees the T7900's but not the T6800. Skyport sees all three. There must be differences in the data format from the different thermostats.

  • Author
3 hours ago, paulbates said:

FWIW I had several different color touch stats going back over 10 years including the T7850s

I had these stats in the nodelink days, and query/status is the 'bread and butter' of the api. I used the browser a lot to discover things and debug problems. If that's not working from a browser, I don't see pg3 having luck

They can have pin settings, is that being used or maybe set unintentionally?

No pin is set. The thermostat is not locked, anyone can walk up and change the settings. ChatGPT says

So now we have:

  • / → works

  • /query/sensors → works

  • /query/status → hangs

That means:

Web server is fine
API framework is running
Sensor subsystem is responding
The status handler specifically is blocking

This is not a network problem.
It’s not VPN.
It’s not UniFi.
It’s not DNS.

This is almost certainly the thermostat blocking while trying to assemble the full status payload.


Why /query/status Is Special

/query/status pulls:

  • Equipment state

  • Heat/cool stage status

  • Fan state

  • Mode

  • Schedule status

  • Possibly cloud state

  • Possibly accessory state (humidifier, dehumidifier, etc.)

If any one of those internal calls hangs, the entire endpoint never returns.

/query/sensors is simpler — it only pulls temperature/humidity inputs.


The Most Likely Cause

After firmware update:

  • One internal module didn’t restart cleanly

  • Or the equipment interface process is stuck

  • Or there’s a bad state flag from the update

This is classic “partial subsystem deadlock.”


What Will Fix It (Almost Certainly)

A full cold power pull.

Not menu reboot.

Physically remove it from the wall for 60+ seconds.

The T7800 WiFi module does not fully reset on soft reboot.


Why Skyport Works

Skyport uses:

  • Outbound connection

  • Different internal status routine

  • Not the same HTTP handler

So cloud working does NOT mean /query/status will work.


Extremely Important Question

Is the thermostat currently:

  • Actively heating or cooling?

  • Calling a stage?

  • In auto mode?

  • Connected to any accessories?

Because I’ve seen /query/status hang when:

  • A stage output is misconfigured

  • A heat pump reversing valve state is weird

  • Accessory configuration doesn’t match hardware


Next Steps

When you’re onsite:

  1. Power pull

  2. Immediately test /query/status

  3. If it works → done

  4. If it still hangs → we dig into configuration (not networking)


It says to power cycle. Whish is certainly a descent idea. I'll do it later today.

  • Author

I just installed a second Venstar T7850 this time. Same exact thing.

So either there is some setting on the thermostat I am not setting correctly, or something is up with the node.

  • Author

Chat GPT thinks it is the v5 firmware. It thinks when skyport is connected it restricts the local api. I don't know. I don't know how to get the older firmware to try. I suppose I can try disconnecting skyport.

I have latest firmware on mine and use the skyport app and via the plugin. It’s been years since I set it up using nodelink and then migrating them to the Venstar Ct plugin but all I recall was having to authorize the local api. On thermostat it’s under WiFi enable local api. Probably can do it via skyport app too.

  • Author

@paulbates @hart2hart

The local api is enabled on both of them. It was off by default and I clicked to turn it on. There is a second line that is greyed out that says it is http.

If local api were off, I'm not sure I would get anything when I go to the url. For exmple, if I do a sensor query I get this.

{"sensors":[{"name":"Thermostat","temp":73.0},{"name":"Space Temp","temp":73.0}]}

Edited by apostolakisl

Did you just turn them to enabled now and they still don’t discover in plugin? If so I’d find the option in thermostat menu to restart them.

Are all three joined to a secure WiFi access name? If the one saying http is not it sounds like it’s saying secured access is required.

  • Author
1 hour ago, hart2hart said:

Did you just turn them to enabled now and they still don’t discover in plugin? If so I’d find the option in thermostat menu to restart them.

Are all three joined to a secure WiFi access name? If the one saying http is not it sounds like it’s saying secured access is required.

Yes, they are all on the same network as the polisy and of course the wifi is password secured, though that shouldn't have anything to do with anything. They connect to star net and I can ping them and I can go to the http:// address of the units and get a response. Lots of things on that network that polisy connects to fine. I set them to enabled local api right away when I first configured them. I have rebooted the one via a full 60 seconds power down. The http is just the venstar reporting that it is not requiring authentication for the api. I imagine yours says the same thing. Both of mine are identical on the page that toggles the api on/off.

I wasn’t suggesting your WiFi was not password protected. I was suggesting they might be connected to different SSIDs and one of the ssid was setup on its access point without choosing encryption in its setup.

None of mine say http.

  • Author

Polisy isn't connected to wifi, it is hard wired, only the thermostats are connected to ssid's. They are all on the same corporate vlan. No firewalls between devices. From a pc on the same vlan I get responses from the IP address of the thermostats. The manual also shows that it has options to http vs https. But once you turn on api, it greyed out to http. Perhaps https could be selected first and then you turn on api?

5 minutes ago, hart2hart said:

I wasn’t suggesting your WiFi was not password protected. I was suggesting they might be connected to different SSIDs and one of the ssid was setup on its access point without choosing encryption in its setup.

None of mine say http.

Untitled.png

Untitled.png

Edited by apostolakisl

  • Author
10 hours ago, hart2hart said:

Can you ping the thermostats from the Polisy?

yes, I can ping both of them. Mostly the response times are in the 5-10ms, though a few are much longer.

image.png

EDIT

And I get a response on port 80. Not sure if I should check any other ports.

image.png

Edited by apostolakisl

  • Author

I changed the T7800 to https and set a username and password. Nodelink when set to http gave the error that the connection was refused. I changed to https and added the username and password and now the error is a timeout error. So it seems that the thermostat is accepting the https authorization but then ignoring whatever command nodelink is issuing to it. I can only assume that there is something going on with a firmware mismatch.

Edited by apostolakisl

Create an account or sign in to comment

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.