ZigBee DeviceType parse() not getting called


(Serge Sozonoff) #1

Hi All,

I am working on getting a 3rd party motion sensor working with ST. I have the fingerprint working but I dont understand why I am not getting any messages from it. i.e. parse() not getting called ? I dont know much about ZigBee HA at the moment but typically do the sensors push out sensor information or do I need to poll for it ?

I dont have any documentation for this sensor so I am sort of hacking my way around.

Thanks,
Serge


#2

Sensors push in a zigbee mesh network, polling should not be necessary.


(Patrick Stuart [@pstuart]) #3

Are you seeing any messages from an unknown device in the IDE log? Did you pair it and assign your devicetype to the paired device in the devices tab in the IDE?

Lastly, in the IDE simulator, did you choose that device?


(Serge Sozonoff) #4

Hi Patrick,

 Are you seeing any messages from an unknown device in the IDE log?

I see the message when the device is discovered, basically the join.

Did you pair it and assign your devicetype to the paired device in the devices tab in the IDE?

Yes but that actually happened automatically based on the fingerprinting.

Lastly, in the IDE simulator, did you choose that device?

I have not used the simulator.

When messages are pushed in the ZigBee network do all the DeviceType’s receive the message and then filter within the parse() method ?

Thanks,
Serge


(Patrick Stuart [@pstuart]) #5

If it shows an unknown device then it probably didn’t pick the device type.

If you aren’t using the ide how are you tracking the parse?

If you run the simular in the ide and choose your thing does it show up and log device events?


(Serge Sozonoff) #6
If you aren't using the ide how are you tracking the parse?

Debug logging - log.trace(description)

If you run the simular in the ide and choose your thing does it show up and log device events?

I need to try

Thanks


(Patrick Stuart [@pstuart]) #7

No, they are routed to / from the specific devices based on the zigbee id via the hub.

The IDE Live log will show nothing if it picks up a paired “unknown” device. In order to fix this, you either need to create the proper fingerprint in the devicetype and remove the unknown device and repair or go in to the devices tab of the IDE and change the device to the proper device.

Then in the IDE, you can run the simulator and see the logging in real time and simulate device / response conditions if you want. Or track the real time status of the device mapped to the simulator.

This is where the parse() will show for that specific device.


(Serge Sozonoff) #8

Hi Patrick,

No, they are routed to / from the specific devices based on the zigbee id via the hub.

What would explain the below. This is the join from the device I am testing and it looks like the Hue Bridge Location Handler is see’ing the message.

3:36:53 PM: info LOCATION HANDLER: desc: 08 0104 0402 00 03 0000 0003 0500 01 0003
3:36:52 PM: trace NON-HUE EVENT ep_cnt:1, ep:08
3:36:51 PM: trace NON-HUE EVENT join

Thanks


(Serge Sozonoff) #9

Hi,

I see the following and the device is added with my DeviceType. The parse() method is called once with an “updated” message and then never again.

7dc26981-2b99-49d2-8132-173ea6b1d708 8:53:31 AM: debug ** PIR02 parse received ** updated
7dc26981-2b99-49d2-8132-173ea6b1d708 8:53:31 AM: debug ** PIR02 ** configure called for device with network ID 8D1A

So to me it looks like unless I send some additional commands to the ZigBee device (Sercuifi SZ-PIR02) its is not going to send me any motion events ?

I guess the only way to figure that out is with a spec. or a sniffer.