Koenkk / zigbee2mqtt

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

Failing to create new device converter due to carriage return in the name #2589

Closed m4tek closed 4 years ago

m4tek commented 4 years ago

Bug Report

What happened

Trying to add support for Saswell TRV SEA801-ZIGBEE. Added definition in the converters file, but it is not being matched due to (apparently) device reporting carriage return in its name

Device reporting as:

Dec 22 11:31:47 rpi3 npm[18640]: zigbee2mqtt:warn 2019-12-22T11:31:47: Received message from unsupported device with Zigbee model 'GbxAXL2 Dec 22 11:31:47 rpi3 npm[18640]: ' Dec 22 11:31:47 rpi3 npm[18640]: zigbee2mqtt:warn 2019-12-22T11:31:47: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.

What did you expect to happen

Converter entry in the devices.js to be matched against the new device

How to reproduce it (minimal and precise)

diff devices.js devices.js.save 5571,5597d5570 < < //SASWELL < { < zigbeeModel: ['TRV002'], < model: 'GbxAXL2', < vendor: 'SASWELL', < description: 'Radiator valve', < supports: 'temperature', < fromZigbee: [fz.thermostat_att_report, fz.battery_percentage_remaining], < toZigbee: [ < tz.thermostat_occupied_heating_setpoint, tz.thermostat_local_temperature_calibration, < tz.thermostat_setpoint_raise_lower, tz.thermostat_remote_sensing, < tz.thermostat_system_mode, tz.thermostat_running_state, < ], < // meta: {configureKey: 1}, < // configure: async (device, coordinatorEndpoint) => { < // const endpoint = device.getEndpoint(1); < // await bind(endpoint, coordinatorEndpoint, [ < // 'genBasic', 'genPowerCfg', 'genIdentify', 'genTime', 'genPollCtrl', 'hvacThermostat', < // 'hvarUserInterfaceCfg', < // ]); < // await configureReporting.thermostatTemperature(endpoint); < // await configureReporting.thermostatOccupiedHeatingSetpoint(endpoint); < // await configureReporting.thermostatPIHeatingDemand(endpoint); < // }, < }, <

Debug Info

zigbee2mqtt version: 1.7.1 (commit #b459c35) CC253X firmware version: 20190619

Koenkk commented 4 years ago

How does your database.db look like?

m4tek commented 4 years ago

Hey,

dump of my DB below:

{"id":11,"type":"EndDevice","ieeeAddr":"0xec1bbdfffe2dae8d","nwkAddr":39085,"manufId":0,"manufName":"_TYST11_KGbxAXL2","powerSource":"Battery","modelId":"GbxAXL2\u0000","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":0,"inClusterList":[0,3],"outClusterList":[3,25],"clusters":{"genBasic":{"attributes":{"modelId":"GbxAXL2\u0000","manufacturerName":"_TYST11_KGbxAXL2","powerSource":3,"zclVersion":3,"appVersion":73,"stackVersion":0,"hwVersion":1,"dateCode":"20180727"}}},"binds":[]}},"appVersion":73,"stackVersion":0,"hwVersion":1,"dateCode":"20180727","zclVersion":3,"interviewCompleted":true,"meta":{}}

redacted DB to a relevant piece.

m4tek commented 4 years ago

I guess I've answered my question. Should I use "GbxAXL2\u0000" a model string?

Koenkk commented 4 years ago

Yes!

rotragit commented 4 years ago

@m4tek have you integrated the Saswell TRV SEA801-ZIGBEE? I have the same valves and I would like to know if you get the point before trying to do the job. Thank you :-)

m4tek commented 4 years ago

@rotragit Heya, sorry I was preoccupied with other things and I did not have time to look here recently. Frankly there was no progress, as I've found this device to communicate using hex words via a custom cluster (I have number {if not all} of messages coming from the TRV captured).

I tried to get some support on discord DEV channel on how to proceed, but unfortunately nobody was able to give me any hint.

I will open another issue to build this device support.

m4tek commented 4 years ago

Opened #2781 to discuss further development of support.