Koenkk / zigbee-herdsman-converters

Collection of device converters to be used with zigbee-herdsman
MIT License
863 stars 2.85k forks source link

feat: move manuSpecificIkeaAirPurifier to zhc #7614

Closed sjorge closed 1 month ago

sjorge commented 1 month ago

Merge before https://github.com/Koenkk/zigbee-herdsman/pull/1083

Still working fine after cluster has been moved:

[2024-06-08 15:11:41] debug:    z2m: Publishing get 'get' 'pm25' to 'airpurifier/bedroom'
[2024-06-08 15:11:41] debug:    z2m: Received Zigbee message from 'airpurifier/bedroom', type 'readResponse', cluster 'manuSpecificIkeaAirPurifier', data '{"particulateMatter25Measurement":65535}' from endpoint 1 with groupID 0
[2024-06-08 15:11:47] debug:    z2m: Publishing 'set' 'child_lock' to 'airpurifier/bedroom'
[2024-06-08 15:11:50] debug:    z2m: Publishing get 'get' 'child_lock' to 'airpurifier/bedroom'
[2024-06-08 15:11:50] debug:    z2m: Received Zigbee message from 'airpurifier/bedroom', type 'readResponse', cluster 'manuSpecificIkeaAirPurifier', data '{"childLock":1}' from endpoint 1 with groupID 0
sjorge commented 1 month ago

Also moved msIkeaVocIndexMEasurement, renamed it to manuSpecificIkeaVocIndexMeasurement to be in line with other manufacturer specific clusters while moving.

I was still able to pair and get data from my testing VINDSTYRKA.

[2024-06-08 15:31:40] debug:    zh:controller: Device '0x90ab96fffefa5d91' joined
[2024-06-08 15:31:40] debug:    zh:controller: Device '0x90ab96fffefa5d91' accepted by handler
[2024-06-08 15:31:40] debug:    zh:controller: New device '0x90ab96fffefa5d91' joined
[2024-06-08 15:31:40] debug:    zh:controller: Creating device '0x90ab96fffefa5d91'
[2024-06-08 15:31:40] info:     zh:controller: Interview for '0x90ab96fffefa5d91' started
[2024-06-08 15:31:40] debug:    zh:controller:device: Interview - start device '0x90ab96fffefa5d91'
[2024-06-08 15:31:40] info:     z2m: Device '0x90ab96fffefa5d91' joined
[2024-06-08 15:31:40] info:     z2m: Starting interview of '0x90ab96fffefa5d91'
[2024-06-08 15:31:40] debug:    zh:controller: Device '0x90ab96fffefa5d91' joined
[2024-06-08 15:31:40] debug:    zh:controller: Device announce '0x90ab96fffefa5d91'
[2024-06-08 15:31:40] debug:    z2m: Device '0x90ab96fffefa5d91' announced itself
[2024-06-08 15:31:41] debug:    zh:controller: Device '0x90ab96fffefa5d91' accepted by handler
[2024-06-08 15:31:41] debug:    zh:controller: Not interviewing '0x90ab96fffefa5d91', completed 'false', in progress 'true'
[2024-06-08 15:31:41] debug:    zh:controller:device: Interview - got node descriptor for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:41] debug:    zh:controller:device: Interview - got active endpoints for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got simple descriptor for endpoint '1' device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["modelId"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"modelId":"VINDSTYRKA"}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'modelID' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["manufacturerName"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"manufacturerName":"IKEA of Sweden"}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'manufacturerName' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["powerSource"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"powerSource":1}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'powerSource' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["zclVersion"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"zclVersion":8}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'zclVersion' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["appVersion"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"appVersion":1}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'applicationVersion' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["stackVersion"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"stackVersion":106}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'stackVersion' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["hwVersion"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:42] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"hwVersion":1}' from endpoint 1 with groupID 0
[2024-06-08 15:31:42] debug:    zh:controller:device: Interview - got 'hardwareVersion' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:42] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["dateCode"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:43] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20230202"}' from endpoint 1 with groupID 0
[2024-06-08 15:31:43] debug:    zh:controller:device: Interview - got 'dateCode' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:43] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 genBasic.read(["swBuildId"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
[2024-06-08 15:31:43] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'genBasic', data '{"swBuildId":"1.0.11"}' from endpoint 1 with groupID 0
[2024-06-08 15:31:43] debug:    zh:controller:device: Interview - got 'softwareBuildID' for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:43] debug:    zh:controller:device: Interview - got simple descriptor for endpoint '242' device '0x90ab96fffefa5d91'
[2024-06-08 15:31:43] debug:    zh:controller:device: Interview - completed for device '0x90ab96fffefa5d91'
[2024-06-08 15:31:43] info:     zh:controller: Succesfully interviewed '0x90ab96fffefa5d91'
[2024-06-08 15:31:43] info:     z2m: Successfully interviewed '0x90ab96fffefa5d91', device has successfully been paired
[2024-06-08 15:31:43] info:     z2m: Device '0x90ab96fffefa5d91' is supported, identified as: IKEA VINDSTYRKA air quality and humidity sensor (E2112)
[2024-06-08 15:31:43] info:     z2m: Configuring '0x90ab96fffefa5d91'
[2024-06-08 15:31:43] debug:    zhc:setupattribute: Configure reporting: true, read: true for 0x90ab96fffefa5d91/1 msTemperatureMeasurement [{"min":"10_SECONDS","max":"1_HOUR","change":100,"attribute":"measuredValue"}]
[2024-06-08 15:31:43] debug:    zh:controller:endpoint: Bind 0x90ab96fffefa5d91/1 msTemperatureMeasurement from '0x00124b00228120b5/1'
[2024-06-08 15:31:43] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msTemperatureMeasurement.configReport([{"minimumReportInterval":10,"maximumReportInterval":3600,"reportableChange":100,"attribute":"measuredValue"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:43] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msTemperatureMeasurement.defaultRsp({"cmdId":7,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":16,"writeUndiv":false})
[2024-06-08 15:31:43] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msTemperatureMeasurement.read(["measuredValue"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:44] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'msTemperatureMeasurement', data '{"measuredValue":2500}' from endpoint 1 with groupID 0
[2024-06-08 15:31:44] debug:    zhc:setupattribute: Configure reporting: true, read: true for 0x90ab96fffefa5d91/1 msRelativeHumidity [{"min":"10_SECONDS","max":"1_HOUR","change":100,"attribute":"measuredValue"}]
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: Bind 0x90ab96fffefa5d91/1 msRelativeHumidity from '0x00124b00228120b5/1'
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msRelativeHumidity.configReport([{"minimumReportInterval":10,"maximumReportInterval":3600,"reportableChange":100,"attribute":"measuredValue"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msRelativeHumidity.defaultRsp({"cmdId":7,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":18,"writeUndiv":false})
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msRelativeHumidity.read(["measuredValue"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:44] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'msRelativeHumidity', data '{"measuredValue":4400}' from endpoint 1 with groupID 0
[2024-06-08 15:31:44] debug:    zhc:setupattribute: Configure reporting: true, read: true for 0x90ab96fffefa5d91/1 pm25Measurement [{"min":"1_MINUTE","max":"2_MINUTES","change":2,"attribute":"measuredValue"}]
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: Bind 0x90ab96fffefa5d91/1 pm25Measurement from '0x00124b00228120b5/1'
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 pm25Measurement.configReport([{"minimumReportInterval":60,"maximumReportInterval":120,"reportableChange":2,"attribute":"measuredValue"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 pm25Measurement.defaultRsp({"cmdId":7,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":20,"writeUndiv":false})
[2024-06-08 15:31:44] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 pm25Measurement.read(["measuredValue"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:45] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'readResponse', cluster 'pm25Measurement', data '{"measuredValue":6}' from endpoint 1 with groupID 0
[2024-06-08 15:31:45] debug:    zhc:setupattribute: Configure reporting: true, read: false for 0x90ab96fffefa5d91/1 manuSpecificIkeaVocIndexMeasurement [{"min":"1_MINUTE","max":"2_MINUTES","change":1,"attribute":"measuredValue"}]
[2024-06-08 15:31:45] debug:    zh:controller:endpoint: Bind 0x90ab96fffefa5d91/1 manuSpecificIkeaVocIndexMeasurement from '0x00124b00228120b5/1'
[2024-06-08 15:31:45] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 manuSpecificIkeaVocIndexMeasurement.configReport([{"minimumReportInterval":60,"maximumReportInterval":120,"reportableChange":1,"attribute":"measuredValue"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4476,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-06-08 15:31:46] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 manuSpecificIkeaVocIndexMeasurement.defaultRsp({"cmdId":10,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4476,"transactionSequenceNumber":27,"writeUndiv":false})
[2024-06-08 15:31:46] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'attributeReport', cluster 'manuSpecificIkeaVocIndexMeasurement', data '{"measuredValue":0}' from endpoint 1 with groupID 0
[2024-06-08 15:31:46] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 manuSpecificIkeaVocIndexMeasurement.defaultRsp({"cmdId":7,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4476,"transactionSequenceNumber":22,"writeUndiv":false})
[2024-06-08 15:31:46] info:     z2m: Successfully configured '0x90ab96fffefa5d91'
[2024-06-08 15:31:46] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 manuSpecificIkeaVocIndexMeasurement.defaultRsp({"cmdId":10,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4476,"transactionSequenceNumber":26,"writeUndiv":false})
[2024-06-08 15:31:46] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'attributeReport', cluster 'manuSpecificIkeaVocIndexMeasurement', data '{"measuredValue":0}' from endpoint 1 with groupID 0
[2024-06-08 15:32:08] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msTemperatureMeasurement.defaultRsp({"cmdId":10,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":30,"writeUndiv":false})
[2024-06-08 15:32:08] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'attributeReport', cluster 'msTemperatureMeasurement', data '{"measuredValue":2400}' from endpoint 1 with groupID 0
[2024-06-08 15:32:09] debug:    zh:controller:endpoint: ZCL command 0x90ab96fffefa5d91/1 msRelativeHumidity.defaultRsp({"cmdId":10,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":31,"writeUndiv":false})
[2024-06-08 15:32:09] debug:    z2m: Received Zigbee message from '0x90ab96fffefa5d91', type 'attributeReport', cluster 'msRelativeHumidity', data '{"measuredValue":4500}' from endpoint 1 with groupID 0
sjorge commented 1 month ago

I also noticed 64636 is unknown on the VINDSTYRKA but I couldn't find any info on it, the only other reference I found was in ZHC's VINDSTYRKA support and it's commented out as unknown. So I guess nobody figured out what it was yet.

PRs ready to go.

Koenkk commented 1 month ago

Thanks!