zigpy / zigpy-zigate

A library which communicates with ZiGate radios for zigpy
GNU General Public License v3.0
30 stars 18 forks source link

Homeassistant zigbee 2022.10.0 not starting with zigpy error #133

Open guirem opened 1 year ago

guirem commented 1 year ago

Hi,

Zigbee Homeassistant component is no longer starting since latest upgrade yesterday on version 2022.10. I'm using a zigate dongle.

Hard to see from the logs if it originates int zigpy or zigpy-zigate as both got recent update.

I'm opening an issue in zigpy repo as well.

Screenshot below and full log attached.

image

zigpy-bug.txt

guirem commented 1 year ago

Associated zigpy issue: https://github.com/zigpy/zigpy/issues/1067

puddly commented 1 year ago

Could you include a debug log of it correctly starting up with the last-working release?

guirem commented 1 year ago

I downgraded to previous release 2022.9.7 and it's working again.

Below the logs zigpy-bug2.txt

puddly commented 1 year ago

It appears that even in this version, every single packet is failing to send but the error is being ignored:

2022-10-06 22:07:13.621 DEBUG (MainThread) [zigpy_zigate.zigbee.application] APS Data confirm Fail 196 Status.unknown_0xD4

What hardware specifically are you using? Is this a ZiGate or ZiGate+?

guirem commented 1 year ago

ZiGate first version

puddly commented 1 year ago

Can you try to update your ZiGate's firmware? It looks like the latest version is now 3.21: https://github.com/fairecasoimeme/ZiGate/releases

guirem commented 1 year ago

Do you know if I can safely upgrade from 3.1d to 3.21 without having to repair all devices ? I've got about 40 devices and I can't do that easily.

puddly commented 1 year ago

I don't own a first generation ZiGate so I am not sure.

@pipiche38 any ideas? Is this error code expected?

guirem commented 1 year ago

It seems that 3.21 is for v2 only. I'm not that far off with my current version 3.1d.

pipiche38 commented 1 year ago

I don't own a first generation ZiGate so I am not sure.

@pipiche38 any ideas? Is this error code expected?

I don't know what you mean is this code expected. In fact these are linked to 0x8011 and 0x8012 APS Success/Failure. 3.1d for me is an old stuff and 3.21 which is also almost 1 year old is the best to take for ZiGate V1 ( https://github.com/fairecasoimeme/ZiGate/releases/ )

Last you will have to check with @fairecasoimeme if you don't need to re-initialise the Zigate due to the newest firmware version ? and so re-pair all devices

puddly commented 1 year ago

I'm referring to this:

# Sending a `permit(0)` broadcast
2022-10-06 10:15:54.101 DEBUG (MainThread) [zigpy_zigate.zigbee.application] Sending packet ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.Broadcast: 15>, address=<BroadcastAddress.ALL_ROUTERS_AND_COORDINATOR: 65532>), dst_ep=0, source_route=None, extended_timeout=False, tsn=10, profile_id=0, cluster_id=<ZDOCmd.Mgmt_Permit_Joining_req: 0x0036>, data=Serialized[b'\n\x00\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)

# Corresponding ZiGate command
2022-10-06 10:15:54.101 DEBUG (MainThread) [zigpy_zigate.api] Sending CommandId.SEND_RAW_APS_DATA_PACKET (b'\x04\xff\xfc\x00\x00\x006\x00\x00\x00\x00\x03\n\x00\x00'), waiting for status: True, waiting for response: None
2022-10-06 10:15:54.101 DEBUG (MainThread) [zigpy_zigate.uart] Send: 0x0530 b'04fffc0000003600000000030a0000'
2022-10-06 10:15:54.102 DEBUG (MainThread) [zigpy_zigate.uart] Frame to send: b'\x050\x00\x0f\x02\x04\xff\xfc\x00\x00\x006\x00\x00\x00\x00\x03\n\x00\x00'
2022-10-06 10:15:54.102 DEBUG (MainThread) [zigpy_zigate.uart] Frame escaped: b'\x02\x150\x02\x10\x02\x1f\x02\x12\x02\x14\xff\xfc\x02\x10\x02\x10\x02\x106\x02\x10\x02\x10\x02\x10\x02\x10\x02\x13\x02\x1a\x02\x10\x02\x10'
2022-10-06 10:15:54.104 DEBUG (MainThread) [zigpy_zigate.api] Wait for status to command CommandId.SEND_RAW_APS_DATA_PACKET
2022-10-06 10:15:54.191 DEBUG (MainThread) [zigpy_zigate.uart] Frame received: 8000000714a6000530000000

# Received an unknown 0xA6 status
2022-10-06 10:15:54.191 DEBUG (MainThread) [zigpy_zigate.api] data received 0x8000 b'a60005300000' LQI:0
2022-10-06 10:15:54.192 DEBUG (MainThread) [zigpy_zigate.zigbee.application] zigate_callback_handler ResponseId.STATUS [<Status.unknown_0xA6: 166>, 0, 1328, b'\x00\x00']
                                                                                                                                ^^^^^^^^^^^^

According to https://www.nxp.com/docs/en/user-guide/JN-UG-3113.pdf:

0xA6: zps_APL_APS_E_INVALID_PARAMETER

@guirem's log shows that every single request fails with this same error code (which zigpy-zigate was ignoring), yet the network is functional.

pipiche38 commented 1 year ago

to be check with @fairecasoimeme, that is pure ZiGate firmware related things and even more in a RAW Mode manner. In all cases you shouldn't have any differences between HW version of ZiGate.

puddly commented 1 year ago

I've downgraded my ZiGate+ to 3.1e (the earliest firmware available for it) and it still works as before. It must be some problem with 3.1d.

doudz commented 1 year ago

I'm confirm this is a firmware problem. I have no problem with ZiGate V1 USB TTL on firmware 3.21.

You really should upgrade

guirem commented 1 year ago

@doudz can I safely upgrade from 3.1d to 3.21-legacy without having to repair all devices?

doudz commented 1 year ago

Yes you could upgrade without repairing devices but you just have to take care to not erase the EEPROM

stephane commented 1 year ago

I really tried to upgrade my PiZigate v1 w/o success (I have been successful in the past). I booted on an official image of RPi Debian Bullseye 64bits.

I find the documentation of zigate.fr difficult to browse so after many clicks I collected these steps:

  1. sudo nano /boot/config.txt to add enable_uart=1
  2. sudo nano /boot/cmdline.txt to remove console=serial0,115200

After the reboot, the blue light still low. I don't know if it's OK.

  1. It isn't possible anymore to install the required https://project-downloads.drogon.net/wiringpi-latest.deb package :/

  2. I tried to reproduce the Flash instructions by using:

    raspi-gpio set 0 op
    raspi-gpio set 2 op
    raspi-gpio set 2 dh
    raspi-gpio set 0 dl
    raspi-gpio set 0 dh
  3. flash with v0.7(r56124)

    sudo JennicModuleProgrammer -V 6 -P 115200 -f ZiGate_v3.21-legacy.bin -s /dev/ttyAMA0

    Error setting baudrate...