XaF / qolsysgw

Qolsys IQ Panel 2+ gateway to an Home Assistant Alarm Control Panel
MIT License
134 stars 13 forks source link

SSL handshake is taking longer than 60.0 seconds: aborting the connection #11

Closed jsb5151 closed 1 year ago

jsb5151 commented 2 years ago

Tried migrating from the old Qolsys app to the new one, but this one seems to be experiencing connection issues...

2022-02-01 21:12:30.432494 ERROR qolsys_panel: error while listening Traceback (most recent call last): File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen reader, writer = await asyncio.open_connection(

File "/usr/lib/python3.9/asyncio/streams.py", line 52, in openconnection transport, = await loop.create_connection(

File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection transport, protocol = await self._create_connection_transport(

File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport await waiter ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection

XaF commented 2 years ago

Mh sorry it's not working as it should, but it's very difficult to figure out what's happening here with just the log message, as it only states it's having troubles establishing the secure connection.

Is there anything specific you put in your configuration? Have you verified that the hostname and port are the correct ones ?

paulkearney commented 2 years ago

I am having the same issue. New install of QolsysGW, previously had ad-qolsys installed. I can connect to the panel with openssl.

My config:

qolsys_panel:
  module: gateway
  class: QolsysGateway
  panel_host: 192.168.150.138
  panel_token: ABCDEF
  panel_user_code: 8065
  ha_check_user_code: false
  log_level: DEBUG

Debug log:


2022-02-04 10:20:25.952997 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/mqtt/listener.py - ignoring
2022-02-04 10:20:25.956047 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/mqtt/updater.py - ignoring
2022-02-04 10:20:25.958350 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/mqtt/utils.py - ignoring
2022-02-04 10:20:25.961236 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/mqtt/exceptions.py - ignoring
2022-02-04 10:20:25.963543 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/socket.py - ignoring
2022-02-04 10:20:25.965969 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/config.py - ignoring
2022-02-04 10:20:25.969266 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/state.py - ignoring
2022-02-04 10:20:25.972587 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/partition.py - ignoring
2022-02-04 10:20:25.975486 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/control.py - ignoring
2022-02-04 10:20:25.978656 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/utils.py - ignoring
2022-02-04 10:20:25.981369 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/observable.py - ignoring
2022-02-04 10:20:25.984386 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/actions.py - ignoring
2022-02-04 10:20:25.987504 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/sensors.py - ignoring
2022-02-04 10:20:25.994623 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/events.py - ignoring
2022-02-04 10:20:25.997881 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/qolsysgw/qolsys/exceptions.py - ignoring
2022-02-04 10:20:26.001134 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/ad-qolsys/door_window.py - ignoring
2022-02-04 10:20:26.003942 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/ad-qolsys/qolsys_client.py - ignoring
2022-02-04 10:20:26.006957 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/ad-qolsys/qolsys_socket.py - ignoring
2022-02-04 10:20:26.010121 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/ad-qolsys/partition.py - ignoring
2022-02-04 10:20:26.012903 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/ad-qolsys/qolsys_requests.py - ignoring
2022-02-04 10:20:26.015398 INFO AppDaemon: Initializing app qolsys_panel using class QolsysGateway from module gateway
2022-02-04 10:20:26.228722 INFO qolsys_panel: Starting
2022-02-04 10:20:26.237304 ERROR qolsys_panel: Error setting state unavailable; pursuing
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/gateway.py", line 87, in initialize
    self._factory.wrap(self._state).set_unavailable()
  File "/config/appdaemon/apps/qolsysgw/mqtt/updater.py", line 500, in wrap
    return klass(obj, *self._args, **self._kwargs)
  File "/config/appdaemon/apps/qolsysgw/mqtt/updater.py", line 205, in __init__
    super().__init__(*args, **kwargs)
  File "/config/appdaemon/apps/qolsysgw/mqtt/updater.py", line 86, in __init__
    self._birth_topic = mqtt_plugin_cfg.get('birth_topic')
AttributeError: 'NoneType' object has no attribute 'get'
2022-02-04 10:20:26.243533 DEBUG qolsys_panel: Registering <mqtt.updater.MqttUpdater object at 0x7f9f5b77f0> to <qolsys.state.QolsysState object at 0x7f9f458520> updates
2022-02-04 10:20:26.249495 INFO qolsys_panel: Started
2022-02-04 10:20:26.251684 INFO AppDaemon: App initialization complete
2022-02-04 10:20:26.253948 DEBUG qolsys_panel: call_service: mqtt/subscribe, {'namespace': 'mqtt', 'topic': 'qolsys/qolsys_panel/event'}
2022-02-04 10:20:26.255351 DEBUG qolsys_panel: call_service: mqtt/subscribe, {'namespace': 'mqtt', 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/set'}
2022-02-04 10:20:26.263016 ERROR qolsys_panel: Task exception was never retrieved
future: <Task finished name='Task-1971' coro=<ADAPI.call_service() done, defined at /usr/lib/python3.9/site-packages/appdaemon/adapi.py:1677> exception=NamespaceException('Unknown namespace (%s) in call_service from %s', 'mqtt', 'qolsys_panel')>
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/appdaemon/adapi.py", line 1748, in call_service
    return await self.AD.services.call_service(namespace, d, s, kwargs)
  File "/usr/lib/python3.9/site-packages/appdaemon/services.py", line 152, in call_service
    raise NamespaceException("Unknown namespace (%s) in call_service from %s", namespace, name)
NamespaceException: ('Unknown namespace (%s) in call_service from %s', 'mqtt', 'qolsys_panel')
2022-02-04 10:20:26.264438 DEBUG qolsys_panel: Calling listen_event for qolsys_panel
2022-02-04 10:20:26.273340 ERROR qolsys_panel: Task exception was never retrieved
future: <Task finished name='Task-1973' coro=<ADAPI.call_service() done, defined at /usr/lib/python3.9/site-packages/appdaemon/adapi.py:1677> exception=NamespaceException('Unknown namespace (%s) in call_service from %s', 'mqtt', 'qolsys_panel')>
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/appdaemon/adapi.py", line 1748, in call_service
    return await self.AD.services.call_service(namespace, d, s, kwargs)
  File "/usr/lib/python3.9/site-packages/appdaemon/services.py", line 152, in call_service
    raise NamespaceException("Unknown namespace (%s) in call_service from %s", namespace, name)
NamespaceException: ('Unknown namespace (%s) in call_service from %s', 'mqtt', 'qolsys_panel')
2022-02-04 10:20:26.274294 DEBUG qolsys_panel: Calling listen_event for qolsys_panel
2022-02-04 10:20:26.289060 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
2022-02-04 10:20:29.467186 INFO AppDaemon: New client Admin Client connected
2022-02-04 10:21:26.381932 ERROR qolsys_panel: error while listening
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen
    reader, writer = await asyncio.open_connection(
  File "/usr/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
    await waiter
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
2022-02-04 10:21:26.388684 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:21:26.395513 ERROR qolsys_panel: Task exception was never retrieved
future: <Task finished name='Task-2012' coro=<QolsysSocket.listen() done, defined at /config/appdaemon/apps/qolsysgw/qolsys/socket.py:60> exception=AttributeError("'NoneType' object has no attribute 'get'")>
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 119, in listen
    await self._disconnected_callback()
  File "/config/appdaemon/apps/qolsysgw/gateway.py", line 158, in qolsys_disconnected_callback
    self._factory.wrap(self._state).set_unavailable()
  File "/config/appdaemon/apps/qolsysgw/mqtt/updater.py", line 500, in wrap
    return klass(obj, *self._args, **self._kwargs)
  File "/config/appdaemon/apps/qolsysgw/mqtt/updater.py", line 205, in __init__
    super().__init__(*args, **kwargs)
  File "/config/appdaemon/apps/qolsysgw/mqtt/updater.py", line 86, in __init__
    self._birth_topic = mqtt_plugin_cfg.get('birth_topic')
AttributeError: 'NoneType' object has no attribute 'get'
2022-02-04 10:22:06.120188 INFO qolsys_panel: 192.168.1.42 [04/Feb/2022:17:22:06 +0000] "GET /aui/index.html HTTP/1.1" 200 235 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15"
2022-02-04 10:22:06.150085 INFO AppDaemon: Client disconnection from Admin Client
2022-02-04 10:22:06.539736 INFO AppDaemon: New client Admin Client connected```
XaF commented 2 years ago

@paulkearney does not seem to be the same issue, seems you haven't enabled the MQTT plugin in AppDaemon?

paulkearney commented 2 years ago

@XaF I do have the MQTT plugin configured in AppDaemon. Your comment made me go in and I realized I didn't have the MQTT namespace matching in appdaemon.yaml vs apps.yaml, but I have now corrected it. I do see the connection from qolsysgateway to the MQTT broker in the mosquitto logs. I am still getting the same errors as above.

Updated '/config/appdaemon/apps/apps.yaml':

qolsys_panel:
  module: gateway
  class: QolsysGateway
  panel_host: 192.168.150.138
  panel_token: 769v3j
  panel_user_code: 8065
  ha_check_user_code: false
  log_level: DEBUG
  mqtt_namespace: qolsysgateway

From /config/appdaemon/appdaemon.yaml:

appdaemon:
  latitude: 123.45
  longitude: -123.45
  elevation: 1768
  time_zone: America/Denver
  plugins:
    HASS:
      type: hass
    MQTT:
      type: mqtt
      namespace: qolsysgateway
      client_host: 192.168.1.169
      client_port: 1883
      client_user: qolsysgateway
      client_password: secret
paulkearney commented 2 years ago

Actually, the logs are slightly different. Let me know if you'd rather I open a new issue.

2022-02-04 10:54:20.699301 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:54:20.703857 INFO qolsys_panel: sleeping 1 second(s) before reconnecting
2022-02-04 10:54:20.705203 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'qolsysgateway', 'retain': True, 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/availability', 'payload': 'offline'}
2022-02-04 10:54:21.713462 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
2022-02-04 10:55:21.820519 ERROR qolsys_panel: error while listening
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen
    reader, writer = await asyncio.open_connection(
  File "/usr/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
    await waiter
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
2022-02-04 10:55:21.826315 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:55:21.831410 INFO qolsys_panel: sleeping 2 second(s) before reconnecting
2022-02-04 10:55:21.832688 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'qolsysgateway', 'retain': True, 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/availability', 'payload': 'offline'}
2022-02-04 10:55:23.842552 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
2022-02-04 10:56:23.975288 ERROR qolsys_panel: error while listening
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen
    reader, writer = await asyncio.open_connection(
  File "/usr/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
    await waiter
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
2022-02-04 10:56:23.980118 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:56:23.984794 INFO qolsys_panel: sleeping 4 second(s) before reconnecting
2022-02-04 10:56:23.986512 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'qolsysgateway', 'retain': True, 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/availability', 'payload': 'offline'}
2022-02-04 10:56:27.990189 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
2022-02-04 10:57:28.078958 ERROR qolsys_panel: error while listening
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen
    reader, writer = await asyncio.open_connection(
  File "/usr/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
    await waiter
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
2022-02-04 10:57:28.088529 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:57:28.093299 INFO qolsys_panel: sleeping 8 second(s) before reconnecting
2022-02-04 10:57:28.095266 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'qolsysgateway', 'retain': True, 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/availability', 'payload': 'offline'}
2022-02-04 10:57:36.103412 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
2022-02-04 10:58:36.174381 ERROR qolsys_panel: error while listening
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen
    reader, writer = await asyncio.open_connection(
  File "/usr/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
    await waiter
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
2022-02-04 10:58:36.182222 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:58:36.187269 INFO qolsys_panel: sleeping 16 second(s) before reconnecting
2022-02-04 10:58:36.188515 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'qolsysgateway', 'retain': True, 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/availability', 'payload': 'offline'}
2022-02-04 10:58:52.195430 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
2022-02-04 10:59:52.251597 ERROR qolsys_panel: error while listening
Traceback (most recent call last):
  File "/config/appdaemon/apps/qolsysgw/qolsys/socket.py", line 73, in listen
    reader, writer = await asyncio.open_connection(
  File "/usr/lib/python3.9/asyncio/streams.py", line 52, in open_connection
    transport, _ = await loop.create_connection(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1081, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 1111, in _create_connection_transport
    await waiter
ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
2022-02-04 10:59:52.257090 DEBUG qolsys_panel: Qolsys callback for disconnection event
2022-02-04 10:59:52.263029 INFO qolsys_panel: sleeping 32 second(s) before reconnecting
2022-02-04 10:59:52.264668 DEBUG qolsys_panel: call_service: mqtt/publish, {'namespace': 'qolsysgateway', 'retain': True, 'topic': 'homeassistant/alarm_control_panel/qolsys_panel/availability', 'payload': 'offline'}
2022-02-04 11:00:24.274017 INFO qolsys_panel: Establishing connection to 192.168.150.138:12345
westonnovelli commented 2 years ago

I just migrated to this from the ad-qolsys as well. I was also seeing the ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection error.

I found my panel (IQ Panel 2) was running 2.5.2 software. Despite this comment on the original thread, I couldn't get a connection. I upgraded my panel to 2.5.3 (per these instructions). After the upgrade, I had to re-enable 3rd Part Integration. Restarting AppDaemon after the panel upgrade connected just fine. HA detected my security devices and I'm off and running.

Also, acknowledging this requirement is mentioned: A Qolsys IQ Panel 2 or 2+ (software version 2.5.3 or greater).