Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
11.96k stars 1.67k forks source link

Device NAS-AB02B0 pairs but does not work #7407

Closed BerndK closed 3 years ago

BerndK commented 3 years ago

Was not able to use Zigbee Siren https://www.zigbee2mqtt.io/devices/NAS-AB02B0.html

What happened

I pressed the button in the back of the siren (close to the batteries) for 3 secs, a beep and Device joined and paired. I paired the siren more or less successfully. System reports successful pairing and reports proper description (see log below). Using Assistant GUI also reports the correct picture, so something seems to work perhaps a duplicate of https://github.com/Koenkk/zigbee-herdsman-converters/issues/1932 or #7051 ?

What did you expect to happen

I would expect to receive some messages with payload like humidity, temperature and other values (similar to the last line in log which is another device). Next thing I expect is that I will be able to send data to the siren like zigbee2mqtt/0x804b50fffe0482ae/set { "alarm": true } nothing happens. While playing around for hours once I got this error: Zigbee2MQTT:error 2021-05-09 12:53:18: Publish 'set' 'alarm' to '0x804b50fffe0482ae' failed: 'Error: Command 0x804b50fffe0482ae/1 manuSpecificTuya.setData({"status":0,"transid":10,"dp":104,"datatype":1,"length_hi":0,"length_lo":1,"data":[1]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))' Was not able to reproduce the error. After normal sending data just nothing happens. I'm able to send data to other devices like e.g an OSRAM Plug switch without problems.

How to reproduce it (minimal and precise)

I pressed button 3 secs, beep, got the log below. Siren is constantly blinking when powered up with USB. Blinking continues after pairing and after repower...

Debug info

Device: NAS-AB02B0 Zigbee Id is 0x804b50fffe0482ae. Address on Zigbee Network is 0x6474. Link quality is 102/255. Model is TS0601 by _TZE200_d0yu2xgi. Hardware version is 1. Firmware version is unknown. This device type is EndDevice I did not flash the device with other firmware!? It should run original FW.

Version of Zigbee2Mqtt: 1.18.1 [Update] updated to Version 1.18.3, same observation Coordinator version: 20190425 Coordinator Zigbee Id: 0x00124b0018df4239 Adapter hardware: CC25xx USB Dongle Rev 1.0 Adapter firmware version: ?

This is the log I see: All items belong to the siren (0x804b50fffe0482ae) except the last lane that shoudl show that ohter items works well, so the overall setup is not broken.

Zigbee2MQTT:info  2021-05-09 13:21:54: Device '0x804b50fffe0482ae' joined
Zigbee2MQTT:info  2021-05-09 13:21:54: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae"},"type":"device_joined"}'
Zigbee2MQTT:info  2021-05-09 13:21:54: Starting interview of '0x804b50fffe0482ae'
Zigbee2MQTT:info  2021-05-09 13:21:54: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae","status":"started"},"type":"device_interview"}'
Zigbee2MQTT:info  2021-05-09 13:21:54: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"0x804b50fffe0482ae"},"type":"device_connected"}'
Zigbee2MQTT:info  2021-05-09 13:21:54: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_started","meta":{"friendly_name":"0x804b50fffe0482ae"},"type":"pairing"}'
Zigbee2MQTT:info  2021-05-09 13:22:09: Successfully interviewed '0x804b50fffe0482ae', device has successfully been paired
Zigbee2MQTT:info  2021-05-09 13:22:09: Device '0x804b50fffe0482ae' is supported, identified as: Neo Temperature & humidity sensor and alarm (NAS-AB02B0)
Zigbee2MQTT:info  2021-05-09 13:22:09: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Temperature & humidity sensor and alarm","exposes":[{"access":1,"description":"Measured temperature value","name":"temperature","property":"temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Measured relative humidity","name":"humidity","property":"humidity","type":"numeric","unit":"%"},{"access":3,"name":"humidity_alarm","property":"humidity_alarm","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"temperature_alarm","property":"temperature_alarm","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"alarm","property":"alarm","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"melody","property":"melody","type":"enum","values":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"]},{"access":3,"name":"duration","property":"duration","type":"numeric","unit":"second"},{"access":3,"name":"temperature_min","property":"temperature_min","type":"numeric","unit":"°C"},{"access":3,"name":"temperature_max","property":"temperature_max","type":"numeric","unit":"°C"},{"access":3,"name":"humidity_min","property":"humidity_min","type":"numeric","unit":"%"},{"access":3,"name":"humidity_max","property":"humidity_max","type":"numeric","unit":"%"},{"access":3,"name":"volume","property":"volume","type":"enum","values":["low","medium","high"]},{"access":1,"name":"power_type","property":"power_type","type":"enum","values":["battery_full","battery_high","battery_medium","battery_low","usb"]},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"NAS-AB02B0","supports_ota":false,"vendor":"Neo"},"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae","status":"successful","supported":true},"type":"device_interview"}'
Zigbee2MQTT:info  2021-05-09 13:22:09: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"description":"Temperature & humidity sensor and alarm","friendly_name":"0x804b50fffe0482ae","model":"NAS-AB02B0","supported":true,"vendor":"Neo"},"type":"pairing"}'
Zigbee2MQTT:info  2021-05-09 13:22:30: MQTT publish: topic 'zigbee2mqtt/0x00158d0002559476', payload '{"battery":80,"humidity":46.24,"linkquality":115,"temperature":23.13,"voltage":2965}'
dfrome commented 3 years ago

Hi Bernd. Do you have a native Tuya gateway ? It seems nobody can prepare a working HA integration as long as we can't find anybody to sniff conversations between this siren and a tuya gateway.

BerndK commented 3 years ago

No I don't have a Tuya Gateway. There is an App for mobile phones (iOS, Android), but I did not use it. Alos not sure if this app talks WiFi or ZigBee!? I'm not a real expert in ZigBee. I just realized that the pairing works great and the report of the available values looks promising. Perhaps we have to use another firmware like Tasmota? If there is someone out there, that can do the sniffing - I'm willing to send the device to Europe locations!

BerndK commented 3 years ago

Now I bought an Tuya coordinator and an additional CC2531 and were able to create some sniffing files. I’m not an expert in Zigbee, but am a SW developer, so I tried to analyze the communication from tuya to the Siren NAS-AB02B0. I found that the datapoints seems to be OK. To Device:

Alarm ON : 00076801000101 DP 0x68 (104) Bool (01) fn:00, Data 0101 (01=length=1???, Bits: 1 = ON)
Alarm OFF: 00086801000100
From Device
Humidity? : 00196a0200040000004f DP 0x6a (106) Value (04) fn:00, Data 04 length?, 0000004f = 79%?
Temp?     : 002369020004000000f6 DP 0x69 (105) Value (04) fn:00, Data 04 length?, 000000f6 = 246 24,6?

This looks as expected (from my point of view)!

But please remember, that the initial problem is that the device seems not to pair completely. Not sure about that statement, but the siren keeps blinking when pairing with zigbee2mqtt. When I pair it to the tuya hub, the blinking stops. To dig deeper, I will include a part of the zigbee2mqtt logs, a wireshark file while pairing to tuya and one pairing to zigbee2mqtt. There is also a file that shows alarm on/off via Tuya app. Without having more info, to me it looks like the device is waiting for a „warm welcome tot he network message“ to complete pairing and stop blinking. Perhaps it waits for some time settings (see the unknown datapoint debug message) and will then be happy. Perhaps it waits for the result of command 0x24 with data 0006 (pairing with zigbee2mqtt - packet 233) wich is answered by the tuya hub (pairing with tuya - packets 406, 412) with 0x24 Data 003d60b0cbbf60b0e7df ??? Not being a zigbee expert, I don’t know what that command is for. Please let me know, if I can do any further sniffs or tests.

Keys (to encrypt the Wireshark files, see attached zip file): 5A:69:67:42:65:65:41:6C:6C:69:61:6E:63:65:30:39 29c640fe2398d435b9e208bafc2f9440 01030507090b0d0f00020406080a0c0d

ZigBeeToMQTT log: (Plese note the last few messages) Attaching to zigbee2mqtt

zigbee2mqtt             | Using '/app/data' as data directory
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:16: Loaded state from file /app/data/state.json
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:16: Logging to console and directory: '/app/data/log/2021-05-29.10-43-13' filename: log.txt
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:16: Removing old log directory '/app/data/log/2021-05-28.09-24-09'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:16: Starting Zigbee2MQTT version 1.18.3 (commit #f2e39af)
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:16: Starting zigbee-herdsman (0.13.92)
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:16: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null,"delay":null},"backupPath":"/app/data/coordinator_backup.json","databaseBackupPath":"/app/data/database.db.backup","databasePath":"/app/data/database.db","network":{"channelList":[11],"extendedPanID":[221,221,221,221,221,221,221,221],"networkKey":"HIDDEN","panID":6754},"serialPort":{"path":"/dev/ttyACM0"}}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: zigbee-herdsman started
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: Coordinator firmware version: '{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201127,"transportrev":2},"type":"zStack12"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Zigbee network parameters: {"channel":11,"extendedPanID":"0xdddddddddddddddd","panID":6754}
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: Currently 3 devices are joined:
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: AquaraTempSensor_1 (0x00158d0002559476): WSDCGQ01LM - Xiaomi MiJia temperature & humidity sensor (EndDevice)
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: XiaomiSwitch_1 (0x00158d00029233d9): WXKG01LM - Xiaomi MiJia wireless switch (EndDevice)
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: 0x804b50fffe0482ae (0x804b50fffe0482ae): NAS-AB02B0 - Neo Temperature & humidity sensor and alarm (EndDevice)
zigbee2mqtt             | Zigbee2MQTT:warn  2021-05-29 10:43:19: `permit_join` set to  `true` in configuration.yaml.
zigbee2mqtt             | Zigbee2MQTT:warn  2021-05-29 10:43:19: Allowing new devices to join.
zigbee2mqtt             | Zigbee2MQTT:warn  2021-05-29 10:43:19: Set `permit_join` to `false` once you joined all devices.
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: Zigbee: allowing new devices to join.
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: Connecting to MQTT server at mqtt://127.0.0.1:1883
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Using MQTT anonymous login
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: Connected to MQTT server
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: MQTT publish: topic 'zigbee2mqtt/AquaraTempSensor_1', payload '{"battery":80,"humidity":45.67,"linkquality":102,"temperature":20.7,"voltage":2965}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:19: MQTT publish: topic 'zigbee2mqtt/XiaomiSwitch_1', payload '{"battery":100,"linkquality":42,"voltage":3042}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Received MQTT message on 'zigbee2mqtt/bridge/info' with data '{"commit":"f2e39af","config":{"advanced":{"adapter_concurrent":null,"adapter_delay":null,"availability_blacklist":[],"availability_blocklist":[],"availability_passlist":[],"availability_timeout":0,"availability_whitelist":[],"cache_state":true,"cache_state_persistent":true,"cache_state_send_on_startup":true,"channel":11,"elapsed":false,"ext_pan_id":[221,221,221,221,221,221,221,221],"homeassistant_discovery_topic":"homeassistant","homeassistant_legacy_triggers":true,"homeassistant_status_topic":"hass/status","last_seen":"disable","legacy_api":true,"log_directory":"/app/data/log/%TIMESTAMP%","log_file":"log.txt","log_level":"debug","log_output":["console","file"],"log_rotation":true,"log_symlink_current":false,"log_syslog":{},"pan_id":6754,"report":false,"soft_reset_timeout":0,"timestamp_format":"YYYY-MM-DD HH:mm:ss"},"ban":[],"blocklist":[],"device_options":{},"devices":{"0x00158d0002559476":{"friendly_name":"AquaraTempSensor_1","retain":false},"0x00158d00025ed311":{"friendly_name":"AquaraDoorSensor_1"},"0x00158d00029233d9":{"friendly_name":"XiaomiSwitch_1","retain":false},"0x7cb03eaa00b23e29":{"friendly_name":"OSRAM_PlugSwitch_1"}},"experimental":{"output":"json"},"external_converters":[],"groups":{},"homeassistant":false,"map_options":{"graphviz":{"colors":{"fill":{"coordinator":"#e04e5d","enddevice":"#fff8ce","router":"#4ea3e0"},"font":{"coordinator":"#ffffff","enddevice":"#000000","router":"#ffffff"},"line":{"active":"#009900","inactive":"#994444"}}}},"mqtt":{"base_topic":"zigbee2mqtt","force_disable_retain":false,"include_device_information":false,"server":"mqtt://127.0.0.1:1883"},"ota":{"disable_automatic_update_check":false,"update_check_interval":1440},"passlist":[],"permit_join":true,"serial":{"disable_led":false,"port":"/dev/ttyACM0"},"whitelist":[]},"config_schema":{"definitions":{"device":{"properties":{"debounce":{"description":"Debounces messages of this device","title":"Debounce","type":"number"},"debounce_ignore":{"description":"Protects unique payload values of specified payload properties from overriding within debounce time","examples":["action"],"items":{"type":"string"},"title":"Ignore debounce","type":"array"},"filtered_attributes":{"description":"Allows to prevent certain attributes from being published","examples":["temperature","battery","action"],"items":{"type":"string"},"title":"Filtered attributes","type":"array"},"friendly_name":{"description":"Used in the MQTT topic of a device. By default this is the device ID","readOnly":true,"title":"Friendly name","type":"string"},"icon":{"description":"The user-defined device icon for the frontend. It can be a link to an image (not a path to a file) or base64 encoded data URL like: image/svg+xml;base64,PHN2ZyB3aW....R0aD","title":"Icon","type":"string"},"optimistic":{"description":"Publish optimistic state after set (default true)","title":"Optimistic","type":"boolean"},"qos":{"descritption":"QoS level for MQTT messages of this device","title":"QoS","type":"number"},"retain":{"description":"Retain MQTT messages of this device","title":"Retain","type":"boolean"},"retention":{"description":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","title":"Retention","type":"number"}},"required":["friendly_name"],"type":"object"},"group":{"properties":{"devices":{"items":{"type":"string"},"type":"array"},"filtered_attributes":{"items":{"type":"string"},"type":"array"},"friendly_name":{"type":"string"},"optimistic":{"type":"boolean"},"qos":{"type":"number"},"retain":{"type":"boolean"}},"required":["friendly_name"],"type":"object"}},"properties":{"advanced":{"properties":{"adapter_concurrent":{"description":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","requiresRestart":true,"title":"Adapter concurrency","type":["number","null"]},"adapter_delay":{"description":"Adapter delay","requiresRestart":true,"title":"Adapter delay","type":["number","null"]},"availability_blacklist":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Availability blacklist (deprecated, use availability_blocklist)","type":"array"},"availability_blocklist":{"description":"Prevent devices from being checked for availability","items":{"type":"string"},"requiresRestart":true,"title":"Availability Blocklist","type":"array"},"availability_passlist":{"description":"Only enable availability check for certain devices","items":{"type":"string"},"requiresRestart":true,"title":"Availability passlist","type":"array"},"availability_timeout":{"default":0,"description":"Availability timeout in seconds when enabled, devices will be checked if they are still online. Only AC powered routers are checked for availability","minimum":0,"requiresRestart":true,"title":"Availability Timeout","type":"number"},"availability_whitelist":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Availability whitelist (deprecated, use passlist)","type":"array"},"baudrate":{"description":"Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600","examples":[38400,57600,115200],"requiresRestart":true,"title":"Baudrate","type":"number"},"cache_state":{"default":true,"description":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","title":"Cache state","type":"boolean"},"cache_state_persistent":{"default":true,"description":"Persist cached state, only used when cache_state: true","title":"Persist cache state","type":"boolean"},"cache_state_send_on_startup":{"default":true,"description":"Send cached state on startup, only used when cache_state: true","title":"Send cached state on startup","type":"boolean"},"channel":{"default":11,"description":"Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)","examples":[11,15,20,25],"maximum":26,"minimum":11,"requiresRestart":true,"title":"ZigBee channel","type":"number"},"elapsed":{"default":false,"description":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","title":"Elapsed","type":"boolean"},"ext_pan_id":{"description":"Zigbee extended pan ID, changing requires repairing all devices!","items":{"type":"number"},"requiresRestart":true,"title":"Ext Pan ID","type":"array"},"homeassistant_discovery_topic":{"description":"Home Assistant discovery topic","examples":["homeassistant"],"requiresRestart":true,"title":"Homeassistant discovery topic","type":"string"},"homeassistant_legacy_triggers":{"default":true,"description":"Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd","title":"Home Assistant legacy triggers","type":"boolean"},"homeassistant_status_topic":{"description":"Home Assistant status topic","examples":["homeassistant/status"],"requiresRestart":true,"title":"Home Assistant status topic","type":"string"},"ikea_ota_use_test_url":{"default":false,"description":"Use IKEA TRADFRI OTA test server, see OTA updates documentation","requiresRestart":true,"title":"IKEA TRADFRI OTA use test url","type":"boolean"},"last_seen":{"default":"disable","description":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","enum":["disable","ISO_8601","ISO_8601_local","epoch"],"title":"Last seen","type":"string"},"legacy_api":{"default":true,"description":"Disables the legacy api (false = disable)","requiresRestart":true,"title":"Legacy API","type":"boolean"},"log_directory":{"description":"Location of log directory","examples":["data/log/%TIMESTAMP%"],"requiresRestart":true,"title":"Log directory","type":"string"},"log_file":{"default":"log.txt","description":"Log file name, can also contain timestamp","examples":["zigbee2mqtt_%TIMESTAMP%.log"],"requiresRestart":true,"title":"Log file","type":"string"},"log_level":{"default":"info","description":"Logging level","enum":["info","warn","error","debug"],"title":"Log level","type":"string"},"log_output":{"description":"Output location of the log, leave empty to supress logging","items":{"enum":["console","file","syslog"],"type":"string"},"requiresRestart":true,"title":"Log output","type":"array"},"log_rotation":{"default":true,"description":"Log rotation","requiresRestart":true,"title":"Log rotation","type":"boolean"},"log_symlink_current":{"default":false,"description":"Create symlink to current logs in the log directory","requiresRestart":true,"title":"Log symlink current","type":"boolean"},"log_syslog":{"properties":{"app_name":{"default":"Zigbee2MQTT","description":"The name of the application (Default: Zigbee2MQTT).","title":"Localhost","type":"string"},"eol":{"default":"/n","description":"The end of line character to be added to the end of the message (Default: Message without modifications).","title":"eol","type":"string"},"host":{"default":"localhost","description":"The host running syslogd, defaults to localhost.","title":"Host","type":"string"},"localhost":{"default":"localhost","description":"Host to indicate that log messages are coming from (Default: localhost).","title":"Localhost","type":"string"},"path":{"default":"/dev/log","description":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","examples":["/dev/log","/var/run/syslog"],"title":"Path","type":"string"},"pid":{"default":"process.pid","description":"PID of the process that log messages are coming from (Default process.pid).","title":"PID","type":"string"},"port":{"default":123,"description":"The port on the host that syslog is running on, defaults to syslogd's default port.","title":"Port","type":"number"},"protocol":{"default":"tcp4","description":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","examples":["tcp4","udp4","tls4","unix","unix-connect"],"title":"Protocol","type":"string"},"type":{"default":"5424","description":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","title":"Type","type":"string"}},"title":"syslog","type":"object"},"network_key":{"description":"Network encryption key, changing requires repairing all devices!","oneOf":[{"title":"Network key(string)","type":"string"},{"items":{"type":"number"},"title":"Network key(array)","type":"array"}],"requiresRestart":true,"title":"Network key"},"pan_id":{"description":"ZigBee pan ID, changing requires repairing all devices!","oneOf":[{"title":"Pan ID (string)","type":"string"},{"title":"Pan ID (number)","type":"number"}],"requiresRestart":true,"title":"Pan ID"},"report":{"description":"Enables report feature (deprecated)","readOnly":true,"requiresRestart":true,"title":"Reporting","type":"boolean"},"rtscts":{"description":"RTS / CTS Hardware Flow Control for serial port","requiresRestart":true,"title":"RTS / CTS","type":"boolean"},"soft_reset_timeout":{"description":"Soft reset ZNP after timeout","minimum":0,"readOnly":true,"requiresRestart":true,"title":"Soft reset timeout (deprecated)","type":"number"},"timestamp_format":{"description":"Log timestamp format","examples":["YYYY-MM-DD HH:mm:ss"],"requiresRestart":true,"title":"Timestamp format","type":"string"}},"title":"Advanced","type":"object"},"ban":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Ban (deprecated, use blocklist)","type":"array"},"blocklist":{"description":"Block devices from the network (by ieeeAddr)","items":{"type":"string"},"requiresRestart":true,"title":"Blocklist","type":"array"},"device_options":{"type":"object"},"devices":{"patternProperties":{"^.*$":{"$ref":"#/definitions/device"}},"propertyNames":{"pattern":"^0x[\\d\\w]{16}$"},"type":"object"},"experimental":{"properties":{"output":{"description":"Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\"state\": \"ON\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)","enum":["attribute_and_json","attribute","json"],"title":"MQTT output type","type":"string"},"transmit_power":{"description":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","requiresRestart":true,"title":"Transmit power","type":["number","null"]}},"title":"Experimental","type":"object"},"external_converters":{"description":"You can define external converters to e.g. add support for a DiY device","examples":["DIYRuZ_FreePad.js"],"items":{"type":"string"},"requiresRestart":true,"title":"External converters","type":"array"},"frontend":{"properties":{"auth_token":{"description":"Enables authentication, disabled by default","requiresRestart":true,"title":"Auth token","type":["string","null"]},"host":{"default":" 0.0.0.0","description":"Frontend binding host","requiresRestart":true,"title":"Bind host","type":"string"},"port":{"default":8080,"description":"Frontend binding port","requiresRestart":true,"title":"Port","type":"number"}},"title":"Frontend","type":"object"},"groups":{"patternProperties":{"^.*$":{"$ref":"#/definitions/group"}},"propertyNames":{"pattern":"^[\\w].*$"},"type":"object"},"homeassistant":{"default":false,"description":"Home Assistant integration (MQTT discovery)","title":"Home Assistant integration","type":"boolean"},"map_options":{"properties":{"graphviz":{"properties":{"colors":{"properties":{"fill":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"font":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"line":{"properties":{"active":{"type":"string"},"inactive":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}},"title":"Networkmap","type":"object"},"mqtt":{"properties":{"base_topic":{"description":"MQTT base topic for Zigbee2MQTT MQTT messages","examples":["zigbee2mqtt"],"requiresRestart":true,"title":"Base topic","type":"string"},"ca":{"description":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","examples":["/etc/ssl/mqtt-ca.crt"],"requiresRestart":true,"title":"Certificate authority","type":"string"},"cert":{"description":"Absolute path to SSL/TLS certificate for client-authentication","examples":["/etc/ssl/mqtt-client.crt"],"requiresRestart":true,"title":"SSL/TLS certificate","type":"string"},"client_id":{"description":"MQTT client ID","examples":["MY_CLIENT_ID"],"requiresRestart":true,"title":"Client ID","type":"string"},"force_disable_retain":{"default":false,"description":"Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","requiresRestart":true,"title":"Force disable retain","type":"boolean"},"include_device_information":{"default":false,"description":"Include device information to mqtt messages","title":"Include device information","type":"boolean"},"keepalive":{"default":60,"description":"MQTT keepalive in second","requiresRestart":true,"title":"Keepalive","type":"number"},"key":{"description":"Absolute path to SSL/TLS key for client-authentication","examples":["/etc/ssl/mqtt-client.key"],"requiresRestart":true,"title":"SSL/TLS key","type":"string"},"password":{"description":"MQTT server authentication password","examples":["ILOVEPELMENI"],"requiresRestart":true,"title":"Password","type":"string"},"reject_unauthorized":{"default":true,"description":"Disable self-signed SSL certificate","requiresRestart":true,"title":"Reject unauthorized","type":"boolean"},"server":{"description":"MQTT server URL (use mqtts:// for SSL/TLS connection)","examples":["mqtt://localhost:1883"],"requiresRestart":true,"title":"MQTT server","type":"string"},"user":{"description":"MQTT server authentication user","examples":["johnnysilverhand"],"requiresRestart":true,"title":"User","type":"string"},"version":{"default":4,"description":"MQTT protocol version","examples":[4,5],"requiresRestart":true,"title":"Version","type":["number","null"]}},"required":["base_topic","server"],"title":"MQTT","type":"object"},"ota":{"properties":{"disable_automatic_update_check":{"default":false,"description":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","title":"Disable automatic update check","type":"boolean"},"update_check_interval":{"default":1440,"description":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","title":"Update check interval","type":"number"}},"title":"OTA updates","type":"object"},"passlist":{"description":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","items":{"type":"string"},"requiresRestart":true,"title":"Passlist","type":"array"},"permit_join":{"default":false,"description":"Allow new devices to join (re-applied at restart)","title":"Permit join","type":"boolean"},"serial":{"properties":{"adapter":{"description":"Adapter type, not needed unless you are experiencing problems","enum":["deconz","zstack","zigate","ezsp"],"requiresRestart":true,"title":"Adapter","type":["string","null"]},"disable_led":{"default":false,"description":"Disable LED of the adapter if supported","requiresRestart":true,"title":"Disable led","type":"boolean"},"port":{"description":"Location of the adapter. To autodetect the port, set null","examples":["/dev/ttyACM0"],"requiresRestart":true,"title":"Port","type":["string","null"]}},"title":"Serial","type":"object"},"whitelist":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Whitelist (deprecated, use passlist)","type":"array"}},"required":["mqtt"],"type":"object"},"coordinator":{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201127,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":11,"extended_pan_id":"0xdddddddddddddddd","pan_id":6754},"permit_join":true,"restart_required":false,"version":"1.18.3"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Received MQTT message on 'zigbee2mqtt/bridge/devices' with data '[{"definition":null,"endpoints":{"1":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[]},"11":{"bindings":[],"clusters":{"input":[],"output":["ssIasZone"]},"configured_reportings":[]},"2":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[]},"3":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[]},"4":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[]},"5":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[]},"6":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[]}},"friendly_name":"Coordinator","ieee_address":"0x00124b001cd4dfc5","interviewing":false,"network_address":0,"supported":false,"type":"Coordinator"},{"date_code":"20160516","definition":{"description":"MiJia temperature & humidity sensor","exposes":[{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Measured temperature value","name":"temperature","property":"temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Measured relative humidity","name":"humidity","property":"humidity","type":"numeric","unit":"%"},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"WSDCGQ01LM","supports_ota":false,"vendor":"Xiaomi"},"endpoints":{"1":{"bindings":[],"clusters":{"input":["genBasic","genIdentify","genMultistateInput","genOta"],"output":["genBasic","genIdentify","genGroups","genScenes","genMultistateInput","genOta"]},"configured_reportings":[]},"2":{"bindings":[],"clusters":{"input":["genIdentify","genMultistateInput"],"output":["genIdentify","genGroups","genScenes","genMultistateInput"]},"configured_reportings":[]},"3":{"bindings":[],"clusters":{"input":["genIdentify","genAnalogInput"],"output":["genIdentify","genGroups","genScenes","genAnalogInput"]},"configured_reportings":[]}},"friendly_name":"AquaraTempSensor_1","ieee_address":"0x00158d0002559476","interviewing":false,"model_id":"lumi.sens","network_address":60195,"power_source":"Battery","software_build_id":"3000-0001","supported":true,"type":"EndDevice"},{"date_code":"20150424","definition":{"description":"MiJia wireless switch","exposes":[{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Triggered action (e.g. a button click)","name":"action","property":"action","type":"enum","values":["single","double","triple","quadruple","hold","release","many"]},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"WXKG01LM","supports_ota":false,"vendor":"Xiaomi"},"endpoints":{"1":{"bindings":[],"clusters":{"input":["genBasic","genIdentify","genOta"],"output":["genBasic","genIdentify","genGroups","genScenes","genOnOff","genLevelCtrl","genOta"]},"configured_reportings":[]}},"friendly_name":"XiaomiSwitch_1","ieee_address":"0x00158d00029233d9","interviewing":false,"model_id":"lumi.sensor_switch","network_address":8258,"power_source":"Battery","software_build_id":"3000-0001","supported":true,"type":"EndDevice"},{"date_code":"","definition":{"description":"Temperature & humidity sensor and alarm","exposes":[{"access":1,"description":"Measured temperature value","name":"temperature","property":"temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Measured relative humidity","name":"humidity","property":"humidity","type":"numeric","unit":"%"},{"access":3,"name":"humidity_alarm","property":"humidity_alarm","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"temperature_alarm","property":"temperature_alarm","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"alarm","property":"alarm","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"melody","property":"melody","type":"enum","values":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"]},{"access":3,"name":"duration","property":"duration","type":"numeric","unit":"second"},{"access":3,"name":"temperature_min","property":"temperature_min","type":"numeric","unit":"°C"},{"access":3,"name":"temperature_max","property":"temperature_max","type":"numeric","unit":"°C"},{"access":3,"name":"humidity_min","property":"humidity_min","type":"numeric","unit":"%"},{"access":3,"name":"humidity_max","property":"humidity_max","type":"numeric","unit":"%"},{"access":3,"name":"volume","property":"volume","type":"enum","values":["low","medium","high"]},{"access":1,"name":"power_type","property":"power_type","type":"enum","values":["battery_full","battery_high","battery_medium","battery_low","usb"]},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"NAS-AB02B0","supports_ota":false,"vendor":"Neo"},"endpoints":{"1":{"bindings":[],"clusters":{"input":["genBasic","genGroups","genScenes","manuSpecificTuya"],"output":["genOta","genTime"]},"configured_reportings":[]}},"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae","interview_completed":true,"interviewing":false,"model_id":"TS0601","network_address":53915,"power_source":"Battery","supported":true,"type":"EndDevice"}]'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Received MQTT message on 'zigbee2mqtt/bridge/groups' with data '[]'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Received MQTT message on 'zigbee2mqtt/bridge/config' with data '{"commit":"f2e39af","coordinator":{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201127,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":11,"extendedPanID":"0xdddddddddddddddd","panID":6754},"permit_join":true,"version":"1.18.3"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:19: Received MQTT message on 'zigbee2mqtt/bridge/extensions' with data '[]'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:20: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"commit":"f2e39af","coordinator":{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201127,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":11,"extendedPanID":"0xdddddddddddddddd","panID":6754},"permit_join":true,"version":"1.18.3"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:33: Device '0x804b50fffe0482ae' announced itself
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:33: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae"},"type":"device_announce"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:33: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"0x804b50fffe0482ae"},"type":"device_announced"}'
zigbee2mqtt             | Zigbee2MQTT:warn  2021-05-29 10:43:36: Device '0x804b50fffe0482ae' left the network
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:36: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"ieee_address":"0x804b50fffe0482ae"},"type":"device_leave"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:36: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"left_network","meta":{"friendly_name":"0x804b50fffe0482ae"},"type":"device_removed"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:42: Device '0x804b50fffe0482ae' joined
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:42: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae"},"type":"device_joined"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:42: Starting interview of '0x804b50fffe0482ae'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:42: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae","status":"started"},"type":"device_interview"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:42: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"0x804b50fffe0482ae"},"type":"device_connected"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:42: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_started","meta":{"friendly_name":"0x804b50fffe0482ae"},"type":"pairing"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:43: Device '0x804b50fffe0482ae' announced itself
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:43: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae"},"type":"device_announce"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:43: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"0x804b50fffe0482ae"},"type":"device_announced"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:43: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"modelId":"TS0601"}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:43: Skipping message, definition is undefined and still interviewing
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:43: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"manufacturerName":"_TZE200_d0yu2xgi"}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:43: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"powerSource":3}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:44: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"zclVersion":3}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:44: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"appVersion":83}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:44: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"stackVersion":0}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:44: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"hwVersion":1}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:44: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{"dateCode":""}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:44: Received Zigbee message from '0x804b50fffe0482ae', type 'readResponse', cluster 'genBasic', data '{}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:44: Successfully interviewed '0x804b50fffe0482ae', device has successfully been paired
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:44: Device '0x804b50fffe0482ae' is supported, identified as: Neo Temperature & humidity sensor and alarm (NAS-AB02B0)
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:44: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Temperature & humidity sensor and alarm","exposes":[{"access":1,"description":"Measured temperature value","name":"temperature","property":"temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Measured relative humidity","name":"humidity","property":"humidity","type":"numeric","unit":"%"},{"access":3,"name":"humidity_alarm","property":"humidity_alarm","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"temperature_alarm","property":"temperature_alarm","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"alarm","property":"alarm","type":"binary","value_off":false,"value_on":true},{"access":3,"name":"melody","property":"melody","type":"enum","values":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"]},{"access":3,"name":"duration","property":"duration","type":"numeric","unit":"second"},{"access":3,"name":"temperature_min","property":"temperature_min","type":"numeric","unit":"°C"},{"access":3,"name":"temperature_max","property":"temperature_max","type":"numeric","unit":"°C"},{"access":3,"name":"humidity_min","property":"humidity_min","type":"numeric","unit":"%"},{"access":3,"name":"humidity_max","property":"humidity_max","type":"numeric","unit":"%"},{"access":3,"name":"volume","property":"volume","type":"enum","values":["low","medium","high"]},{"access":1,"name":"power_type","property":"power_type","type":"enum","values":["battery_full","battery_high","battery_medium","battery_low","usb"]},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"NAS-AB02B0","supports_ota":false,"vendor":"Neo"},"friendly_name":"0x804b50fffe0482ae","ieee_address":"0x804b50fffe0482ae","status":"successful","supported":true},"type":"device_interview"}'
zigbee2mqtt             | Zigbee2MQTT:info  2021-05-29 10:43:44: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"description":"Temperature & humidity sensor and alarm","friendly_name":"0x804b50fffe0482ae","model":"NAS-AB02B0","supported":true,"vendor":"Neo"},"type":"pairing"}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:48: Received Zigbee message from '0x804b50fffe0482ae', type 'read', cluster 'genTime', data '["localTime"]' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:53: Received Zigbee message from '0x804b50fffe0482ae', type 'commandSetTimeRequest', cluster 'manuSpecificTuya', data '{"payloadSize":1536}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:43:53: No converter available for 'NAS-AB02B0' with cluster 'manuSpecificTuya' and type 'commandSetTimeRequest' and data '{"payloadSize":1536}'
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:44:13: Received Zigbee message from '0x804b50fffe0482ae', type 'raw', cluster 'manuSpecificTuya', data '{"data":[9,2,17,0,7,68],"type":"Buffer"}' from endpoint 1 with groupID 0
zigbee2mqtt             | Zigbee2MQTT:debug 2021-05-29 10:44:13: No converter available for 'NAS-AB02B0' with cluster 'manuSpecificTuya' and type 'raw' and data '{"data":[9,2,17,0,7,68],"type":"Buffer"}'

TuyaSiren.zip

GrimDeclaw commented 3 years ago

Perhaps it waits for the result of command 0x24 with data 0006 (pairing with zigbee2mqtt - packet 233) wich is answered by the tuya hub (pairing with tuya - packets 406, 412) with 0x24 Data 003d60b0cbbf60b0e7df ???

Hi, I'm not a ZIgbee expert neither, but I also own this v3 device, and I'd love to have it work! According to this documentation : https://developer.tuya.com/en/docs/iot/tuuya-zigbee-door-lock-docking-access-standard?id=K9ik5898uzqrk

TUYA_MCU_SYNC_TIME | 0x24 | Time synchronization (two-way) which strangly refer to time as the log just before the first "no converter" message

zigbee2mqtt | Zigbee2MQTT:debug 2021-05-29 10:43:53: Received Zigbee message from '0x804b50fffe0482ae', type >'commandSetTimeRequest', cluster 'manuSpecificTuya', data '{"payloadSize":1536}' from endpoint 1 with groupID 0

zigbee2mqtt | Zigbee2MQTT:debug 2021-05-29 10:43:53: No converter available for 'NAS-AB02B0' with cluster >manuSpecificTuya' and type 'commandSetTimeRequest' and data '{"payloadSize":1536}

So this looks like a time issue (or not... one again, not a Zigbee expert). I wonder if a "fz.ignore_tuya_set_time" in the fromZigbee device definition would help (the neo.js one doesn't have it) EDIT : I tried, and obviously, not working :(

IMHO, the issue is in the converter, not in zigbee2mqtt

GrimDeclaw commented 3 years ago

The more I try to figure this out, the more the "raw" data triggers me!

@BerndK this might be usefull reading : https://medium.com/@dzegarra/zigbee2mqtt-how-to-add-support-for-a-new-tuya-based-device-part-2-5492707e882d This post is also interesting, it's the one that lead to the writing of the previous link : https://community.home-assistant.io/t/i-am-totally-noob-with-zigbee-and-tuya-and-i-need-advice-for-smart-thermostatic-radiator-valves/163607/18 and describe all the way from the sniffing to the addition of the device to zigbee2mqtt (the converter actually)

I'll try to understand the zigbee sniffing you did but not exactly used to!

GrimDeclaw commented 3 years ago

I really have hard time understanding that Zigbee protocol!

I thought that the Sequence number was used to identify request/response but in the Tuya gateway sniffing, for the 0x24 command, the "request" Seq is 99 (packet 406), and the response one is "71" (packet 412)

Another "weird" thing (for me... pretty sure this is not so weird) is the "never responded" 0x10 command (packet 459) And we also have 0x0b command (OTA? https://developer.tuya.com/en/docs/iot/tuya-zigbee-module-uart-communication-protocol?id=K9ear5khsqoty#title-23-Data%20format%20of%20requesting%20OTA%20version) that is just responded with "ZCL: Default Response" (Seq 98 packet 372 / 378 and Seq 100 packet 463 / 467)

So ... I'm a bit lost ... my guess is that the 0x24 can be ignored (like fz.ignore_tuya_set_time might), is it the OTA command missing (I think I tried to add it, but got error message something like "type of undefined") or is it something else completly different... I don't know ....

BTW, still trying to figure out the "raw data [9,2,17,0,7,68]" which I wasn't able to find in the z2mqtt sniff

GrimDeclaw commented 3 years ago

I might have something for that "raw" thing!! My guess is that this is the reading of our missing data!

Let's look at packet 244 for exemple: 09 54 02 00 55 72 01 00 01 00 Here is our 9 of our raw data (0x09). 0x54 is the sequence Number (0x54=>84). 0x02 is the command and we have 7 bytes of "data" : 00 55 72 01 00 01 00

So, according to @dzegarra in is article part 2 that I posted earlier: 0x00 => Status 0x55 => transID Here is a little change, DP seems to be only uint8 (maybe because it is what I need to see :D ) 0x72=> Corresponding to DP 114, which if we look at the lib/tuya.js file is neoHumidityAlarm

With the same reasoning, packet 260 might be related to DP 0x71 => 113 : neoTempAlarm

Now, even with this findings... I don't know how to try to implement that behaviour in the neo.js device file (ie using the 0x09 "I don't know what" to read measured data instead of "I don't know what")

If this might help someone....

GrimDeclaw commented 3 years ago

To go deeper, if reading are done on the 0x09 "I don't know what", it looks like the writing (settings) are done in the 0x11 "I don't know what"

Looking at the "Alarm On/off" sniffing: Packet 5 : Command 0x00, 0x11 Frame Control Field, Data : 00 07 68 01 00 01 01 So, we write 01 (ON) on the 0x68 DP (104 => neoAlarm) Packet 21 : Command 0x02, 0x09 FCF, Data : 00 17 68 01 00 01 01 So, we read 01 (ON) on the 0x68 DP

Packet 32 : Same as Packet 5, but with Data : 00 08 68 01 00 01 00 This time, we set Alarm (0x68) off (last 0x00) Packet 36: Same as Packet 21, Data: 00 08 68 01 00 01 00 Read 0FF (last 0x00)

All others 0x02 commands are the readings of the other values: 57,68,78,95,105 : 0x6A => 106 => neoHumidity 118,133 : 0x69 => 105 => neoTemp

GrimDeclaw commented 3 years ago

Well... I tried various things, but none gives results... :(

I think that I have successfully added the "Writes" from packet 174

ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
    Destination Endpoint: 1
    Cluster: Basic (0x0000)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 19
ZigBee Cluster Library Frame, Command: Write Attributes, Seq: 63
    Frame Control Field: Profile-wide (0x10)
        .... ..00 = Frame Type: Profile-wide (0x0)
        .... .0.. = Manufacturer Specific: False
        .... 0... = Direction: Client to Server
        ...1 .... = Disable Default Response: True
    Sequence Number: 63
    Command: Write Attributes (0x02)
    Attribute Field, Uint8: 19
        Attribute: Unknown (0xffde)
        Data Type: 8-Bit Unsigned Integer (0x20)
        Uint8: 19 (0x13)

with a configure block:

configure: async (device, coordinatorEndpoint, logger) => {
            logger.debug("Grim configure Neo");
            const options = {
                srcEndpoint:1
            };
            const payload = {0xffde: {value:0x13,type:0x20}}
            logger.debug("Grim configure Neo await Write");
            await device.getEndpoint(1).write(0x0000, payload,options);
            logger.debug("configure Neo await Write done");
}

But this doesn't seems to change anything (device still keeps blinking) ... I found another write in your sniffing (packet 210), but can't find how to implement this, as it is "Unknown" (don't know how to write the payload)

ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
    Frame Control Field: Data (0x00)
    Destination Endpoint: 1
    Cluster: Unknown (0xef00)
    Profile: Home Automation (0x0104)
    Source Endpoint: 1
    Counter: 184
ZigBee Cluster Library Frame
    Frame Control Field: Cluster-specific (0x09)
        .... ..01 = Frame Type: Cluster-specific (0x1)
        .... .0.. = Manufacturer Specific: False
        .... 1... = Direction: Server to Client
        ...0 .... = Disable Default Response: False
    Sequence Number: 82
    Command: Unknown (0x02)
Data (7 bytes)
    Data: 00537404000102
    [Length: 7]

I tried

 const optionstwo={
        srcEndpoint:1,
        direction:1,
        manufacturerCode:4098,
        disableDefaultResponse:false
}
  const paytwo={
      0x5300: {
              value:[0x74,0x04,0x00,0x01,0x02],
              type:0x41
      }
  }
await device.getEndpoint(1).write(0xef00,paytwo,optionstwo);

But only get "Timeout", and looking at the others look-a-like packet (232 for exemple) 0x00, 0x53 become 0x00 0x54 so i must be some kind of counter, not identifier....

Enjoy-Combi commented 3 years ago

Hi,

I don't have a tuya gateway, did someone try the procedure described here ?: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html

esion-net commented 3 years ago

@Enjoy-Combi I have tried but did not succeed. I've tried to debug the tutorial also but it seems like it's outdated (or I totally misunderstood something).

Enjoy-Combi commented 3 years ago

Pity, I would enjoy to try but have to find a gateway.

GrimDeclaw commented 3 years ago

Forget about packet 210, it's the device sending this packet, not the hub... I'm trying to implement a "defaultResponse" to this, but still no luck

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

BerndK commented 3 years ago

this workaround worked for me (see also discussion here #7051): 1 hold button, blinking 2 pairing with the tuya gateway (wireless one) (stopped blinking) 3 remove siren from gateway app (started blinking) 4 it automatically paired with my z2m stick (stopped blinking) and it worked as expected: reported data and was able to activate the alarm

BerndK commented 3 years ago

Closing as is duplicate of #7051

zedmaster commented 3 years ago

Can anyone give me the way to learn how to develop the solution to this problem?

I have this siren standing here, and I want to help fix the problem.

Any idea how to get started?

mrTuomoK commented 3 years ago

I'd like to buy a good Tuya gateway to debug stuff (and get more devices to work with zigbee2mqtt) so could someone here point me one?

joreung commented 3 years ago

@mrTuomoK , as this thread is closed, I suggest you have a look at the openned one 7051 where you will find a proposition to your question. It will be a good help if you can solve our problem connecting to this device NAS-AB02B0