ParadoxAlarmInterface / pai

Paradox Magellan, Spectra and EVO, with MQTT, Signal, Pushbullet, Pushover and others
https://gitter.im/paradox-alarm-interface
Eclipse Public License 2.0
348 stars 92 forks source link

Payolad error, unable to parse date from SP4000 at boot #423

Closed amaduain closed 5 months ago

amaduain commented 8 months ago

Alarm system

Spectra SP4000

Environment

Git branch

No branch, Home Assistant Addon

Describe the bug

After connecting to the alarm the following message is shown as error:

2024-01-17 13:23:05,529 - ERROR    - PAI.paradox.hardware.spectra_magellan.panel - Exception parsing message: b'SANITIZED PAYLOAD''
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/paradox/hardware/spectra_magellan/panel.py", line 173, in parse_message
    return parsers.LiveEvent.parse(message)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 308, in parse
    return self.parse_stream(io.BytesIO(data), **contextkw)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 320, in parse_stream
    return self._parsereport(stream, context, "(parsing)")
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse
    subobj = sc._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse
    return self.subcon._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 4368, in _parse
    obj = self.subcon._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse
    subobj = sc._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse
    return self.subcon._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 719, in _parse
    return self._decode(obj, context, path)
  File "/usr/local/lib/python3.9/site-packages/paradox/hardware/spectra_magellan/adapters.py", line 10, in _decode
    return datetime.datetime(obj[0] * 100 + obj[1], obj[2], obj[3], obj[4], obj[5])
ValueError: month must be in 1..12

To Reproduce

Steps to reproduce the behavior: Restart the Home Assistant Addon

Logs

--> Sanitized log:

2024-01-17 12:14:16,491 - INFO     - PAI - Starting Paradox Alarm Interface 3.4.0
2024-01-17 12:14:16,491 - INFO     - PAI - Config loaded from /data/options.json
2024-01-17 12:14:16,492 - INFO     - PAI - Console Log level set to 20
2024-01-17 12:14:16,534 - INFO     - PAI.paradox.interfaces - Starting BasicMQTTInterface Interface
2024-01-17 12:14:16,535 - INFO     - PAI.paradox.interfaces.mqtt.core - MQTT loop started
2024-01-17 12:14:16,541 - INFO     - PAI.paradox.interfaces - Starting HomeAssistantMQTTInterface Interface
2024-01-17 12:14:16,541 - INFO     - PAI - Starting...
2024-01-17 12:14:16,542 - INFO     - PAI.paradox.paradox - Connecting to interface
2024-01-17 12:14:16,542 - INFO     - PAI.paradox.paradox - Using IP Connection
2024-01-17 12:14:16,650 - INFO     - PAI.paradox.connections.ip.connection - Connecting. Try 1/3
2024-01-17 12:14:16,654 - INFO     - PAI.paradox.connections.connection - Connection established
2024-01-17 12:14:16,654 - INFO     - PAI.paradox.connections.ip.commands - Authenticating with IP Module
2024-01-17 12:14:16,660 - INFO     - PAI.paradox.connections.ip.commands - Authentication Success. IP(114) Module version 20, firmware: 5.6, serial: XXXXXXXXXXX
2024-01-17 12:14:16,671 - INFO     - PAI.paradox.connections.ip.commands - Session successfully established with IP Module
2024-01-17 12:14:16,671 - INFO     - PAI.paradox.paradox - Connecting to Panel
2024-01-17 12:14:16,767 - INFO     - PAI.paradox.paradox - Panel Identified SP4000 version 5.40 build 8
2024-01-17 12:14:16,767 - INFO     - PAI.paradox.paradox - Initiating panel connection
2024-01-17 12:14:16,874 - INFO     - PAI.paradox.hardware.spectra_magellan.panel - Installer login
2024-01-17 12:14:17,014 - INFO     - PAI.paradox.hardware.spectra_magellan.panel - Authentication Success
2024-01-17 12:14:17,014 - INFO     - PAI.paradox.paradox - Connection OK
2024-01-17 12:14:17,014 - INFO     - PAI.paradox.paradox - Loading data from panel memory
2024-01-17 12:14:17,014 - INFO     - PAI.paradox.hardware.panel - Loading definitions
2024-01-17 12:14:17,014 - INFO     - PAI.paradox.hardware.panel - Updating Definitions from Panel
2024-01-17 12:14:17,537 - INFO     - PAI.paradox.interfaces.mqtt.core - MQTT Broker Connected
2024-01-17 12:14:22,024 - ERROR    - PAI.paradox.paradox - Timeout while connecting to panel. Is an other connection active?
2024-01-17 12:14:22,024 - ERROR    - PAI - Unable to connect to alarm
2024-01-17 12:14:25,028 - INFO     - PAI - Starting...
2024-01-17 12:14:25,028 - INFO     - PAI.paradox.paradox - Disconnecting from the Alarm Panel
2024-01-17 12:14:25,028 - INFO     - PAI.paradox.paradox - Clean Session
2024-01-17 12:14:25,028 - INFO     - PAI.paradox.paradox - Cleaning previous session. Closing connection
2024-01-17 12:14:25,029 - ERROR    - PAI.paradox.connections.protocols - Connection was closed: None
2024-01-17 12:14:25,029 - ERROR    - PAI.paradox.connections.connection - Connection was lost
2024-01-17 12:14:25,030 - INFO     - PAI.paradox.paradox - Disconnected from the Alarm Panel
2024-01-17 12:14:25,030 - INFO     - PAI.paradox.paradox - Connecting to interface
2024-01-17 12:14:25,030 - INFO     - PAI.paradox.connections.ip.connection - Connecting. Try 1/3
2024-01-17 12:14:25,034 - INFO     - PAI.paradox.connections.connection - Connection established
2024-01-17 12:14:25,034 - INFO     - PAI.paradox.connections.ip.commands - Authenticating with IP Module
2024-01-17 12:14:25,040 - INFO     - PAI.paradox.connections.ip.commands - Authentication Success. IP(114) Module version 20, firmware: 5.6, serial: XXXXXXXXXXX
2024-01-17 12:14:25,049 - INFO     - PAI.paradox.connections.ip.commands - Session successfully established with IP Module
2024-01-17 12:14:25,050 - INFO     - PAI.paradox.paradox - Connecting to Panel
2024-01-17 12:14:25,161 - INFO     - PAI.paradox.paradox - Panel Identified SP4000 version 5.40 build 8
2024-01-17 12:14:25,162 - INFO     - PAI.paradox.paradox - Initiating panel connection
2024-01-17 12:14:25,257 - INFO     - PAI.paradox.hardware.spectra_magellan.panel - Installer login
2024-01-17 12:14:25,355 - INFO     - PAI.paradox.hardware.spectra_magellan.panel - Authentication Success
2024-01-17 12:14:25,355 - INFO     - PAI.paradox.paradox - Connection OK
2024-01-17 12:14:25,355 - INFO     - PAI.paradox.paradox - Loading data from panel memory
2024-01-17 12:14:25,355 - INFO     - PAI.paradox.hardware.panel - Loading definitions
2024-01-17 12:14:25,355 - INFO     - PAI.paradox.hardware.panel - Updating Definitions from Panel
2024-01-17 12:14:25,765 - INFO     - PAI.paradox.hardware.panel - Zone definitions loaded (0.41s)
2024-01-17 12:14:26,167 - INFO     - PAI.paradox.hardware.panel - Pgm definitions loaded (0.4s)
2024-01-17 12:14:26,172 - INFO     - PAI.paradox.hardware.panel - Loading labels
2024-01-17 12:14:26,172 - INFO     - PAI.paradox.hardware.panel - Updating Labels from Panel
2024-01-17 12:14:26,878 - INFO     - PAI.paradox.hardware.panel - Zone labels loaded (0.71s): XXXXXXXXXXX,XXXXXXXXXXX,XXXXXXXXXXX
2024-01-17 12:14:26,975 - INFO     - PAI.paradox.hardware.panel - Pgm labels loaded (0.1s): Output 01, Output 02
2024-01-17 12:14:27,072 - INFO     - PAI.paradox.hardware.panel - Partition labels loaded (0.1s): XXXXXXXXXXX,XXXXXXXXXXX
2024-01-17 12:14:27,595 - INFO     - PAI.paradox.hardware.panel - User labels loaded (0.52s): System Master, Master 1, Master 2, User 04, User 05, User 06, User 07, User 08, User 09, User 10
2024-01-17 12:14:27,595 - INFO     - PAI.paradox.hardware.panel - Module labels loaded (0.0s): 
2024-01-17 12:14:27,595 - INFO     - PAI.paradox.hardware.panel - Repeater labels loaded (0.0s): 
2024-01-17 12:14:27,595 - INFO     - PAI.paradox.hardware.panel - Keypad labels loaded (0.0s): 
2024-01-17 12:14:27,696 - INFO     - PAI.paradox.hardware.panel - Site labels loaded (0.1s): Your Alarm Site
2024-01-17 12:14:27,966 - INFO     - PAI.paradox.hardware.panel - Siren labels loaded (0.27s): , , 
2024-01-17 12:14:27,966 - INFO     - PAI.paradox.paradox - Running
2024-01-17 13:23:05,529 - ERROR    - PAI.paradox.hardware.spectra_magellan.panel - Exception parsing message: b'SANITIZED PAYLOAD'
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/paradox/hardware/spectra_magellan/panel.py", line 173, in parse_message
    return parsers.LiveEvent.parse(message)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 308, in parse
    return self.parse_stream(io.BytesIO(data), **contextkw)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 320, in parse_stream
    return self._parsereport(stream, context, "(parsing)")
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse
    subobj = sc._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse
    return self.subcon._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 4368, in _parse
    obj = self.subcon._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2000, in _parse
    subobj = sc._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 2489, in _parse
    return self.subcon._parsereport(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 332, in _parsereport
    obj = self._parse(stream, context, path)
  File "/usr/local/lib/python3.9/site-packages/construct/core.py", line 719, in _parse
    return self._decode(obj, context, path)
  File "/usr/local/lib/python3.9/site-packages/paradox/hardware/spectra_magellan/adapters.py", line 10, in _decode
    return datetime.datetime(obj[0] * 100 + obj[1], obj[2], obj[3], obj[4], obj[5])
ValueError: month must be in 1..12
yozik04 commented 8 months ago

Live events usually do not have anything sensitive in them. You can send the full version to my email if you are still concerned. But without the payload I am not able to understand what is wrong.

amaduain commented 8 months ago

Thanks for the info, here it comes the whole payload: PAI.paradox.hardware.spectra_magellan.panel - Exception parsing message: b'e21811170700000058204e545241444120202020200000000000fd41414141414141414141'

yozik04 commented 7 months ago

Do you have partition 33, zone 88, zone label: 'A AAAA'?

In date bytes there is junk. I am trying to understand if the rest of the message is junk.

yozik04 commented 5 months ago

Stale. Received no reply.