Simple toolkit driver to help developers peer deep into the guts of Zigbee devices.
Note: This driver is useless to non-developers as it cannot actually control any smart device.
Spells | Attributes Report |
---|---|
Skulking around Knockturn Alley? Dodgy place. Don’t want no one to see you there.
– Hagrid
This driver has no registered fingerprints and no configuration / initialization procedure so it does not support the pairing process for new devices. Regular hacking workflow goes like this:
Knockturn Alley
.Knockturn Alley
driver. Have the Logs
section opened in a separate tab since the driver talks to you mostly via log entries.Obliviate
spell with option 1
to get rid of the ka_*
device state entries (we clean our own mess).Spells for auto discovering Zigbee features:
Spells for handling Zigbee Attributes:
Spells for executing Zigbee Commands and managing driver state:
Spells for handling Neighbors Table (LQI), Routing Table and Bindings Table:
Legilimens
spell automatically collects information on all Zigbee attributes and commands that the device exposes. When cast, it will:
Note: If you specify a manufacturer code (optional), the spell will try to also discover attributes and commands specific to that manufacturer. In the generated report, manufacturer specific attributes and commands are prefixed by 0_
(e.g.: attribute 0_0043
, command 0_01
).
Before casting the spell, have the Logs section open in order to take a peak at the chatty conversation that the driver is having with the device. Be patient, the discovering process will take about 1 minute to finish (depending on the number of endpoints/clusters/attributes). Keep your eyes on the Logs to see when the driver stops adding log entries.
Important: If the device is battery-powered, press any button to wake it before casting the
Legilimens
spell; then, keep on pressing buttons every 5 seconds or so in order to prevent the device from going back to sleep.
When the discovery process is complete, refresh the device details page to see what data was gathered. This data will be hard to follow in its raw form, so you should continue with casting the next spell.
Scourgify
spell cleans up the data mess we got after casting the Legilimens
spell. When cast, it will:
Legilimens
spell. You need to first cast the Legilimens
, otherwise nothing will happen.After casting the spell, refresh the device details page to see the generated report.
You can Control + Click anywhere on the generated report to select all text, and now you’re ready to share it using Copy / Paste.
Obliviate
spell is used to forget specific information present in the device details page. When cast, it can remove:
Device Details -> Data
section. Useful when switching drivers.After casting the spell, refresh the device details page to see that the specified information vanished into the void.
Accio
spell retrieves information about the Zigbee attribute identified by the endpoint / cluster / attribute coordinates. When cast, it can:
Before casting the spell, have the Logs section open in order to see the device response.
Everte Statum
spell updates the value for the specified Zigbee attribute. You can now fight back and do some real damage to your devices!
After casting the spell, you may want to cast Accio
to query the device for the updated attribute value.
Oppugno
spell configures the reporting details for the specified Zigbee attribute.
Notes:
After casting the spell, you may want to cast Accio
to query the device for the updated reporting configuration for that specific attribute.
Imperio
spell executes the specified Zigbee command. Keep an eye on the Logs section to see if you got the command payload right!
Bombarda
spell executes the specified raw Zigbee command. Keep an eye on the Logs section to see if you got it right!
Note: the following string replacements happen before the command is sent to the Zigbee layer:
.replace(".addr", "0x${device.deviceNetworkId}")
Revelio
spell retrieves information about the:
Before casting the spell, have the Logs section open in order to see the device response.
Unbreakable Vow
spell will help you to add/remove entries to/from the Bindings Table.
After casting the spell, you may want to cast Revelio
to query the device for the updated Bindings Table.