-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to get device VOCKQJK11LM binding to Z2M #6872
Comments
Can you share the data/database.db entry of this device? |
the db entry of this device is as below: {"id":6,"type":"EndDevice","ieeeAddr":"0x54ef44100001abe5","nwkAddr":65335,"manufId":4447,"manufName":"LUMI","powerSource":"Battery","modelId":"lumi.airmonitor.acn01","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,3,1026,1029,12,1],"outClusterList":[25],"clusters":{"genBasic":{"attributes":{"modelId":"lumi.airmonitor.acn01","manufacturerName":"LUMI","powerSource":3,"zclVersion":3,"appVersion":23,"stackVersion":2,"hwVersion":1,"dateCode":"20200925","swBuildId":"2020\u0000www."}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":23,"stackVersion":2,"hwVersion":1,"dateCode":"20200925","swBuildId":"2020\u0000www.","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1616478351314} |
I see it supports the temperature (1026) and humidity (1029) cluster, but not any cluster supporting VOC measurements. Probably they use something manufacturer specific. To support this I would need to have a sniff when pairing it with the Xiaomi gateway: https://www.zigbee2mqtt.io/how_tos/how_to_sniff_zigbee_traffic.html |
Hi Koenkk , |
Thanks, can you now make the sensor report some values? (and sniff that) |
Yes, can you try with https://github.com/Koenkk/zigbee-herdsman-converters/pull/2448/files |
Hi Koenkk , Yesterday, I bought a new xiaomi gateway and tried again. I found the sensor VOCKQJK11LM did report VOC value to the new xiaomi gateway. So I re-catch a sniffer log when it was pairing with the new xiaomi gateway. The sniffer log is as below: Thank you. |
Can you share the network key of your Xiaomi gateway? |
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 |
I got it to work - kinda. I don't think i got battery/power and the configure part correct. I manually added the reporting stuff through the UI. (I know the configure part is missing some stuff, but temperature and humidty didn't setup correct either. The sensor values match with the display. They are at times more up to date than on the device. The eInk screen only refreshes from time to time.
|
@dasfuu looks good, added this config now. can this be closed? Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/how_tos/how-to-switch-to-dev-branch.html) |
@Koenkk there is a problem with this. The configure part didn't seem work for me. I had to add all the reporting entries by hand in the UI. It's missing the genAnalogInput in the code too. |
This reverts commit b2ad114.
@dasfuu does it also work without? If you put the same values in the |
I got the following in my log:
I cannot see anything in the reporting and bind tabs. And i don't get any updates either but it updated the values on the display. When i add the entries in the ui i get updates VERY OFTEN. |
@Koenkk Sorry for double posting. I repaired it and waited some time. But still nothing. As soon as i add the reporting settings it starts sending data. (Unlike the old aqara stuff) Edit: I am stupid 😅 Defined reporting now in the converter. But still doesn't work. Error now is:
Current version:
|
@dasfuu can you add some |
Seems to be the cause. I get log before but not after that line. (I am on the current master) |
I fixed the faulty import. now i get
Still fails at
|
|
@Koenkk I fixed that already and then i got the error in my last comment. |
|
@Koenkk I will try that. But why does it work manually through the UI? Although I only create reportings there. The binding stuff shows up automatically then. |
@Koenkk the configure works. But the device doesn't report anything then. If I reapply the reportings in the UI it starts working. Before reapplying I cannot add that binding by myself. It doesn't show the clusters. Only OTA |
Ah, binding is indeed done automatically, can you try readding the bind and make sure to wake it up when configure is executed? |
@Koenkk It does not work. Same error. The device has only one button (double tap to switch display mode, hold to reset/pair) |
Can you provide 2 separate herdsman debug logs with the following content (in both situations click a button on the device right before):
See https://www.zigbee2mqtt.io/information/debug.html#zigbee-herdsman-debug-logging on how to enable the herdsman debug logging. Note that this is only logged to STDOUT and not to log files. |
I managed to get all 3 reporting when manually configuring report in webui. For each time I had to press the button on the device once or the request would time out.
If it helps, here are Tasmota logs, it binds successfully on first pairing without needing to keep the device awake. Battery
|
I can test some more on the weekend. |
Hi All, I have managed to get the device to work with the following external converter (aqara_tvoc.js): const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const e = exposes.presets;
const {repInterval} = require('zigbee-herdsman-converters/lib/constants');
const fzLocal = {
xiaomi_tvoc: {
cluster: 'genAnalogInput',
type: ['attributeReport', 'readResponse'],
convert: (model, msg, publish, options, meta) => {
return {
voc: msg.data.presentValue
};
},
}
};
const reportingLocal = {
xiaomi_tvoc: async (endpoint, overrides) => {
const p = reporting.payload('presentValue', 10, repInterval.HOUR, 0, overrides);
await endpoint.configureReporting('genAnalogInput', p);
}
};
const device = {
zigbeeModel: ['lumi.airmonitor.acn01'],
model: 'VOCKQJK11LM',
vendor: 'Xiaomi',
description: 'Aqara TVOC Air Quality Monitor',
fromZigbee: [fzLocal.xiaomi_tvoc, fz.battery, fz.temperature, fz.humidity],
toZigbee: [],
meta: {battery: {voltageToPercentage: '3V_2100'}},
exposes: [e.battery(), e.temperature(), e.humidity(), e.voc()],
configure: async (device, coordinatorEndpoint, logger) => {
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['msTemperatureMeasurement', 'msRelativeHumidity', 'genPowerCfg', 'genAnalogInput']);
await reporting.batteryVoltage(device.getEndpoint(1));
await reporting.humidity(device.getEndpoint(1));
await reporting.temperature(device.getEndpoint(1));
await reportingLocal.xiaomi_tvoc(device.getEndpoint(1));
},
};
module.exports = device; @Koenkk - I am not sure if what I have done with the addition to reporting is the correct way of doing this, but it works - I am happy to tweak this in my prod version This for me, allows the device to join, bind and report all values without error (voc takes a little while (10-15 mins) to start trickling through). I have set the minimum report change to 0 for TVOC which will report every change and would likely burn through batteries so, feedback on ideal values would be favourable! My sweet spot at present is: Battery: 100, Humidity: 50, Temp: 10, TVOC: 5 Please test for yourselves and I will get this merged into the main repo. |
@danieledwardgeorgehitchcock @Koenkk |
When I looked into it, I found that what you had used was a designation number not the model number. If you look closely at the back of the box just below top left, you should see the value that I have used (I may be wrong though)? The value that I have used also aligns more the numbering convention that Xiaomi Aqara have used with their other sensors - see the Zigbee2MQTT wiki to confirm. my device handler should work with your device anyway as Zigbee2MQTT only uses that field for documentation purposes. Please let me know if this isn’t the case |
AAQ-S001 model scheme is used for EU markets while the VOCKQJK11LM could be for other markets but its feasible both are the same device It is also noteworthy that Aqara is he vendor not Xiaomi since this device doesn't exist in Xiaomi's Mijia ecosystem and instead requires Aqara only app and gateway to work with |
@blakadder seems to be correct But it still says "Lumi United Technology", isnt that Mi? |
It is not. While Aqara used to label their products under Mi/Xiaomi brand the situation is different now. Xiaomi has their Works with Mijia labe, any manufacturer following Miot spec will have their device added in Mi Home but they don't have to do it. |
Interesting! Nonetheless, the device handler that has been merged, should work with the AAQS-S01 branded device as well as the VOCKQJK11LM one. As mentioned above, the model is used for the documentation and image references more than anything. Please try the device that has been pushed to the Dev branch, and let me know if you have any issues. |
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 |
Bug Report
What happened
I have bought a new device VOCKQJK11LM from www.aqara.com. I tried to support this device in my Z2M. It seemed the device has successfully been paired but I can't receive any Zigbee message of "attributeReport" type from it.
The package shows it's a Zigbee 3.0 device.
In an other zigbee adapter I received following log:
{"code":1002,"id": "010154ef44100001abe5", "ep": 1,"serial": 12004,"control":{"devbindreq":"0001mtemp","bindDstEndpoin":1,"bindDstAddr":"680ae2fffe0694bc"}}
{"code":1002,"id": "010154ef44100001abe5", "ep": 1,"serial": 12004,"control":{"devbindreq":"0001mhumi","bindDstEndpoin":1,"bindDstAddr":"680ae2fffe0694bc"}}
After the zigbee adapter bound the VOC device, I can receive payload message from the device.
I am not sure whether this device bind request is skipped in Z2M. And in zigbee2mqtt.io I can only find binding information between devices.
Or there was something I didn't aware to do to support the VOC device.
What did you expect to happen
I can receive some Zigbee message of "attributeReport" type from the new VOCKQJK11LM device, so I can support this new device in my Z2M
How to reproduce it (minimal and precise)
Just in What happened
Debug Info
Zigbee2MQTT version: 1.17.0
Adapter hardware: CC2538
Adapter firmware version: ’20200211‘
The text was updated successfully, but these errors were encountered: