jimboca/udi-poly-airscape

How to tell if you have a Gen 2 controller?

fryfrog opened this issue · 8 comments

I think my Airscape fan is too old, the logs are failing to query status.json.cgi and when I try to get to http://whf/status.json.cgi, it doesn't exist. But fanspd.cgi does, which I see in the forum thread from someone's script.

A screenshot of the webui showing my model and version: https://i.imgur.com/4vu0ssR.png

Is there a way to update the software on the controller? Or do I need to contact them about a newer controller? I think your older version of this node server worked w/ my whf, because I'd replaced my dumb url queries with it. :(

2020-05-12 19:42:05,847 Controller urllib3.connectionpool DEBUG    connectionpool:_new_conn: Starting new HTTP connection (183): whf:80
2020-05-12 19:42:05,943 Controller polyinterface      ERROR    pgSession:l_error: Airscape whf:get: Connection error for http://whf/status.json.cgi: HTTPConnectionPool(host='whf', port=80): Max retries exceeded with url: /status.json.cgi (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x802ddf5d0>: Failed to establish a new connection: [Errno 8] hostname nor servname provided, or not known'))
2020-05-12 19:42:05,944 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:set_from_response: In: False
2020-05-12 19:42:05,945 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:set_from_response: Out: {}

That's strange, I looked back at the code and checking status.json.cgi has been there since release 2.0.1 of the nodeserver, but the original 2.0.0 version did poll status.xml.cgi, does that work for you?
My Airscape controller is software version 2.15.1 and yours is 2.0.0 so that could be the difference.
The status is documented on their page https://blog.airscapefans.com/archives/gen-2-controls-api so probably best to email them at the address on that page and ask what the deal is and if yours can be updated.

Thanks, I'll do that. status.xml.cgi didn't work either. Maybe I was mistaken about it working previously. Or maybe in the early versions, polling the status didn't effect the ability to increase and decrease speed and turn it off?

Yes, it is possible that failing status may have just caused an error and not caused it all to fail. Let me know what you hear from them and I can look at reworking the code to get around that being an error.

Also, was that the entire log, there is nothing after those 4 lines?

There are sections of other interesting logs, but for the most part it is of course filled w/ the failure to query status over and over and over and over. :)

2020-05-12 19:21:13,300 MainThread polyinterface      INFO     polyinterface:init_interface: Received Config from STDIN.
2020-05-12 19:21:13,302 MainThread polyinterface      INFO     __init__:<module>: UDI Polyglot v2 Interface 2.0.40 Starting...
2020-05-12 19:21:14,523 MainThread polyinterface      DEBUG    polyinterface:get_network_interface: gws: {'default': {2: ('10.0.1.1', 'igb0')}, 2: [('10.0.1.1', 'igb0', True)]}
2020-05-12 19:21:14,524 MainThread polyinterface      DEBUG    polyinterface:get_network_interface: gw: default=('10.0.1.1', 'igb0')
2020-05-12 19:21:14,524 MainThread polyinterface      DEBUG    polyinterface:get_network_interface: ifad: igb0=[{'addr': '10.0.1.7', 'netmask': '255.255.255.0', 'broadcast': '10.0.1.255'}]
2020-05-12 19:21:14,525 MainThread polyinterface      INFO     polyinterface:__init__: Connect: Network Interface: {'addr': '10.0.1.7', 'netmask': '255.255.255.0', 'broadcast': '10.0.1.255'}
2020-05-12 19:21:14,526 Interface  polyinterface      INFO     polyinterface:_startMqtt: Connecting to MQTT... localhost:1883
2020-05-12 19:21:14,559 MQTT       polyinterface      INFO     polyinterface:_connect: MQTT Connected with result code 0 (Success)
2020-05-12 19:21:14,561 MQTT       polyinterface      INFO     polyinterface:_connect: MQTT Subscribing to topic: udi/polyglot/ns/1 -  MID: 1 Result: 0
2020-05-12 19:21:14,562 MQTT       polyinterface      INFO     polyinterface:_connect: MQTT Subscribing to topic: udi/polyglot/connections/polyglot -  MID: 2 Result: 0
2020-05-12 19:21:14,563 MQTT       polyinterface      INFO     polyinterface:_connect: Sent Connected message to Polyglot
2020-05-12 19:21:14,568 MQTT       polyinterface      INFO     polyinterface:_subscribe: MQTT Subscribed Succesfully for Message ID: 1 - QoS: (0,)
2020-05-12 19:21:14,570 MQTT       polyinterface      INFO     polyinterface:_subscribe: MQTT Subscribed Succesfully for Message ID: 2 - QoS: (0,)
2020-05-12 19:21:14,778 MQTT       polyinterface      INFO     polyinterface:addNode: Adding node Airscape Controller(controller)
2020-05-12 19:21:14,779 MQTT       polyinterface      INFO     polyinterface:_gotConfig: Waiting on Controller node to be added.......
2020-05-12 19:21:14,780 NodeServer polyinterface      INFO     Controller:start: Started Airscape NodeServer
2020-05-12 19:21:14,781 NodeServer polyinterface      INFO     Controller:l_info: controller:set_debug_mode: None
2020-05-12 19:21:14,781 NodeServer polyinterface      INFO     polyinterface:reportDriver: Updating Driver controller - GV1: 30, uom: 25
2020-05-12 19:21:14,782 NodeServer polyinterface      INFO     Controller:l_info: controller:set_all_logs: 30
2020-05-12 19:25:16,742 MainThread polyinterface      INFO     polyinterface:init_interface: Received Config from STDIN.
2020-05-12 19:25:16,744 MainThread polyinterface      INFO     __init__:<module>: UDI Polyglot v2 Interface 2.0.40 Starting...
2020-05-12 19:25:17,753 MainThread polyinterface      DEBUG    polyinterface:get_network_interface: gws: {'default': {2: ('10.0.1.1', 'igb0')}, 2: [('10.0.1.1', 'igb0', True)]}
2020-05-12 19:25:17,754 MainThread polyinterface      DEBUG    polyinterface:get_network_interface: gw: default=('10.0.1.1', 'igb0')
2020-05-12 19:25:17,754 MainThread polyinterface      DEBUG    polyinterface:get_network_interface: ifad: igb0=[{'addr': '10.0.1.7', 'netmask': '255.255.255.0', 'broadcast': '10.0.1.255'}]
2020-05-12 19:25:17,755 MainThread polyinterface      INFO     polyinterface:__init__: Connect: Network Interface: {'addr': '10.0.1.7', 'netmask': '255.255.255.0', 'broadcast': '10.0.1.255'}
2020-05-12 19:25:17,756 Interface  polyinterface      INFO     polyinterface:_startMqtt: Connecting to MQTT... localhost:1883
2020-05-12 19:25:17,790 MQTT       polyinterface      INFO     polyinterface:_connect: MQTT Connected with result code 0 (Success)
2020-05-12 19:25:17,791 MQTT       polyinterface      INFO     polyinterface:_connect: MQTT Subscribing to topic: udi/polyglot/ns/1 -  MID: 1 Result: 0
2020-05-12 19:25:17,792 MQTT       polyinterface      INFO     polyinterface:_connect: MQTT Subscribing to topic: udi/polyglot/connections/polyglot -  MID: 2 Result: 0
2020-05-12 19:25:17,793 MQTT       polyinterface      INFO     polyinterface:_connect: Sent Connected message to Polyglot
2020-05-12 19:25:17,796 MQTT       polyinterface      INFO     polyinterface:_subscribe: MQTT Subscribed Succesfully for Message ID: 1 - QoS: (0,)
2020-05-12 19:25:17,799 MQTT       polyinterface      INFO     polyinterface:_subscribe: MQTT Subscribed Succesfully for Message ID: 2 - QoS: (0,)
2020-05-12 19:25:17,908 NodeServer polyinterface      INFO     Controller:start: Started Airscape NodeServer
2020-05-12 19:25:17,909 NodeServer polyinterface      INFO     Controller:l_info: controller:set_debug_mode: None
2020-05-12 19:25:17,910 NodeServer polyinterface      INFO     Controller:l_info: controller:set_all_logs: 10
2020-05-12 19:25:17,910 NodeServer polyinterface      INFO     Controller:l_info: controller:set_debug_mode:  session debug_level=0
2020-05-12 19:25:17,911 NodeServer polyinterface      DEBUG    Controller:heartbeat: heartbeat hb=0
2020-05-12 19:25:17,999 NodeServer polyinterface      INFO     Controller:l_info: controller:check_profile: profile_info={'version': '2.0.7'}
2020-05-12 19:25:18,000 NodeServer polyinterface      INFO     Controller:l_info: controller:check_profile:   customData={'profile_info': {'version': '2.0.7'}}
2020-05-12 19:25:18,001 NodeServer polyinterface      INFO     Controller:l_info: controller:check_profile: No updated needed: "2.0.7" == "2.0.7"
2020-05-12 19:25:18,001 NodeServer polyinterface      INFO     polyinterface:save_typed_params: Sending typed parameters to Polyglot.
2020-05-12 19:25:18,004 NodeServer polyinterface      INFO     polyinterface:removeNotice: Sending removenotice to Polyglot for index {'key': 'config'}
2020-05-12 19:25:18,011 NodeServer polyinterface      INFO     polyinterface:addNode: Adding node Airscape whf(whf)
2020-05-12 19:25:19,136 Controller polyinterface      INFO     Airscape2:l_info: airscape2_F:Airscape whf:start: config={'host': 'whf', 'name': 'whf'}
2020-05-12 19:25:19,139 Controller polyinterface      DEBUG    pgSession:l_debug: Airscape whf:get: Sending: url=http://whf/status.json.cgi payload={}
2020-05-12 19:25:19,140 Controller polyinterface      DEBUG    pgSession:l_debug: Airscape whf:get: headers={}
2020-05-12 19:25:19,167 Controller urllib3.connectionpool DEBUG    connectionpool:_new_conn: Starting new HTTP connection (1): whf:80
2020-05-12 19:25:19,277 Controller polyinterface      ERROR    pgSession:l_error: Airscape whf:get: Connection error for http://whf/status.json.cgi: HTTPConnectionPool(host='whf', port=80): Max retries exceeded with url: /status.json.cgi (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x802be23d0>: Failed to establish a new connection: [Errno 8] hostname nor servname provided, or not known'))
2020-05-12 19:25:19,278 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:set_from_response: In: False
2020-05-12 19:25:19,279 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:set_from_response: Out: {}
2020-05-12 19:25:19,279 Controller polyinterface      INFO     polyinterface:reportDrivers: Updating All Drivers to ISY for Airscape whf(whf)
2020-05-12 19:25:22,840 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:shortPoll: ...
2020-05-12 19:25:22,841 Controller polyinterface      DEBUG    pgSession:l_debug: Airscape whf:get: Sending: url=http://whf/status.json.cgi payload={}
2020-05-12 19:25:22,842 Controller polyinterface      DEBUG    pgSession:l_debug: Airscape whf:get: headers={}
2020-05-12 19:25:22,855 Controller urllib3.connectionpool DEBUG    connectionpool:_new_conn: Starting new HTTP connection (2): whf:80
2020-05-12 19:25:22,960 Controller polyinterface      ERROR    pgSession:l_error: Airscape whf:get: Connection error for http://whf/status.json.cgi: HTTPConnectionPool(host='whf', port=80): Max retries exceeded with url: /status.json.cgi (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x802be2950>: Failed to establish a new connection: [Errno 8] hostname nor servname provided, or not known'))
2020-05-12 19:25:22,962 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:set_from_response: In: False
2020-05-12 19:25:22,962 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:set_from_response: Out: {}
2020-05-12 19:25:27,870 Controller polyinterface      DEBUG    Airscape2:l_debug: airscape2_F:Airscape whf:shortPoll: ...
2020-05-12 19:25:27,871 Controller polyinterface      DEBUG    pgSession:l_debug: Airscape whf:get: Sending: url=http://whf/status.json.cgi payload={}
2020-05-12 19:25:27,872 Controller polyinterface      DEBUG    pgSession:l_debug: Airscape whf:get: headers={}

Would it be possible to have a fallback option that doesn't use the status? Maybe if they say it isn't possible to update the software on the controller? :/

Yes I could make that an option.

I've paid for a newer board. :)