Heu, IDK, I only use “pi” on my side, perhaps it s because the folder used.
Try to use another folder or change right on this one.
sudo chmod -R 777 folder_name
Values are in seconds, so can try 1800
Heu, IDK, I only use “pi” on my side, perhaps it s because the folder used.
Try to use another folder or change right on this one.
sudo chmod -R 777 folder_name
Values are in seconds, so can try 1800
I added the bindings for all 3 measurements to the DDF:
It looks good. I have a AirQuality measurements every 15 minutes.
I still don’t really get what “Reportable change” is and what 20 means…
And I don’t really get whats the benefit of editing my ddf files. Isn’t it overwritten by the next update?
It’s the minimum difference value you need to have to trigger a report, for exemple if the previous values for temperature was 2200, you will have a report when the value became 2220.
And I don’t really get whats the benefit of editing my ddf files. Isn’t it overwritten by the next update?
Realy good question ^^, and no, it 's for that we need you.
Something usefull for others users is you make tests on your side, to choose the better one (or just the one you prefer for you) and submit the modified DDF (visible on the last tab)
You can publish it here, but better to make a PR if you can, like that your changes will be automatically added on the next deconz version under your name.
Else you can just copy/paste it here, someone else will make the PR.
Ah, so 20 makes sense for temperature and humidity (0,2° / 0,2 % change). But what about the airqualityppb? better to use 1?
Oh, I just noticed it stopped reporting on 09:27 today. almost exactly 24 hours after I edited the DDF. All 3 types 
Har … The device is still connected ?
But it have started to report when you have added the bind, and stoped 24h after you have modified the report value ?
It’s still there but now “unreachable”. I pressed the button and it sent one value.
Yes
Ha yes, deconz mark it as “unreachable” after to much time without report.
Perhaps he don’t like thoses value . And if you set a bind, without setting the report ? (only use the left panel)
Im looking on z2m code
There setting a bind for temperature/humidity/powerconfig and Analog input
For the analog input it seem they are using 10/3600/5
I updated the DDF to
{
"schema": "devcap1.schema.json",
"manufacturername": "$MF_LUMI",
"modelid": "lumi.airmonitor.acn01",
"vendor": "Aqara",
"product": "TVOC Air Quality Monitor",
"sleeper": true,
"status": "Bronze",
"path": "/devices/xiaomi/xiaomi_airmonitor_acn01.json",
"subdevices": [
{
"type": "$TYPE_AIR_QUALITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x000c"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0302",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x000C"
]
},
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/battery",
"parse": {
"at": "0x00f7",
"ep": 1,
"fn": "xiaomi:special",
"idx": "0x01",
"script": "xiaomi_battery.js"
}
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "config/temperature"
},
{
"name": "state/airquality",
"parse": {
"fn": "numtostr",
"op": "le",
"srcitem": "state/airqualityppb",
"to": [
65,
"excellent",
220,
"good",
660,
"moderate",
10000,
"unhealthy",
65535,
"out of scale"
]
}
},
{
"name": "state/airqualityppb",
"awake": true,
"parse": {
"at": "0x0055",
"cl": "0x000c",
"ep": 1,
"eval": "Item.val = Attr.val",
"fn": "zcl"
},
"default": 0
},
{
"name": "state/lastupdated"
}
]
},
{
"type": "$TYPE_HUMIDITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0405"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0302",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x0405",
"0xFCC0"
]
},
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/battery",
"parse": {
"at": "0x00f7",
"ep": 1,
"fn": "xiaomi:special",
"idx": "0x01",
"script": "xiaomi_battery.js"
}
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "config/temperature"
},
{
"name": "state/humidity",
"default": 0
},
{
"name": "state/lastupdated"
}
]
},
{
"type": "$TYPE_TEMPERATURE_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0402"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0302",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x0402",
"0xFCC0"
]
},
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/battery",
"parse": {
"at": "0x00f7",
"ep": 1,
"fn": "xiaomi:special",
"idx": "0x01",
"script": "xiaomi_battery.js"
}
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "state/lastupdated"
},
{
"name": "state/temperature",
"default": 0
}
]
}
],
"bindings": [
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0001"
},
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0402"
},
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0405"
},
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x000C",
"report": [
{
"at": "0x0055",
"dt": "0x39",
"min": 10,
"max": 3600,
"change": "0x00000005"
}
]
}
]
}
No real success
name: deflux_ZHAAirQuality
time age_secs airquality airqualityppb battery id name source type
---- -------- ---------- ------------- ------- -- ---- ------ ----
2022-03-15T09:44:49.12833803Z 0 excellent 64 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T07:54:55.496274589Z 0 good 100 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:59:58.651325465Z 0 good 136 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:20:00.905902758Z 0 good 188 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:19:30.430248921Z 0 good 219 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:18:30.492536959Z 0 moderate 252 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:18:00.56214095Z 0 moderate 284 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:17:00.928887472Z 0 moderate 316 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:16:30.735179193Z 0 moderate 347 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:09:31.336925582Z 0 moderate 379 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:09:01.418622751Z 0 moderate 341 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:08:31.462340706Z 0 moderate 288 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:08:01.446066129Z 0 moderate 228 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:07:31.52329712Z 0 good 170 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:07:01.546034078Z 0 good 133 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:06:30.737315658Z 0 good 89 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:06:00.779276972Z 0 excellent 43 31 60 Büro TVOC websocket ZHAAirQuality
2022-03-15T06:05:00.833468033Z 0 excellent 5 100 60 Büro TVOC websocket ZHAAirQuality
So same result ? it work but stop after a time ?
And why for others users, it work without bind …
And with classic report for temperature/humidity 10/300/20 ?
For power Configuration deconz use 300/2700/1
Should I set the bindings via bindings tab or DDF Editor?
I think DDF editor is better, with status gold and “hot reload”.
The DDF binding overwrite the binding from deconz.
As battery sensor are slepping, more boring to configure, need to use a queue list, perhaps can be better if you re-include the device.
new DDF:
{
"schema": "devcap1.schema.json",
"manufacturername": "$MF_LUMI",
"modelid": "lumi.airmonitor.acn01",
"vendor": "Aqara",
"product": "TVOC Air Quality Monitor",
"sleeper": true,
"status": "Gold",
"path": "/devices/xiaomi/xiaomi_airmonitor_acn01.json",
"subdevices": [
{
"type": "$TYPE_AIR_QUALITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x000c"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0302",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x000C"
]
},
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/battery",
"parse": {
"at": "0x00f7",
"ep": 1,
"fn": "xiaomi:special",
"idx": "0x01",
"script": "xiaomi_battery.js"
}
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "config/temperature"
},
{
"name": "state/airquality",
"parse": {
"fn": "numtostr",
"op": "le",
"srcitem": "state/airqualityppb",
"to": [
65,
"excellent",
220,
"good",
660,
"moderate",
10000,
"unhealthy",
65535,
"out of scale"
]
}
},
{
"name": "state/airqualityppb",
"awake": true,
"parse": {
"at": "0x0055",
"cl": "0x000c",
"ep": 1,
"eval": "Item.val = Attr.val",
"fn": "zcl"
},
"default": 0
},
{
"name": "state/lastupdated"
}
]
},
{
"type": "$TYPE_HUMIDITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0405"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0302",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x0405",
"0xFCC0"
]
},
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/battery",
"parse": {
"at": "0x00f7",
"ep": 1,
"fn": "xiaomi:special",
"idx": "0x01",
"script": "xiaomi_battery.js"
}
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "config/temperature"
},
{
"name": "state/humidity",
"default": 0
},
{
"name": "state/lastupdated"
}
]
},
{
"type": "$TYPE_TEMPERATURE_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0402"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0302",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x0402",
"0xFCC0"
]
},
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/battery",
"parse": {
"at": "0x00f7",
"ep": 1,
"fn": "xiaomi:special",
"idx": "0x01",
"script": "xiaomi_battery.js"
}
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "state/lastupdated"
},
{
"name": "state/temperature",
"default": 0
}
]
}
],
"bindings": [
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0001",
"report": [
{
"at": "0x0000",
"dt": "0x21",
"min": 300,
"max": 2700,
"change": "0x00000001"
}
]
},
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0402",
"report": [
{
"at": "0x0000",
"dt": "0x29",
"min": 10,
"max": 300,
"change": "0x00000014"
}
]
},
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0405",
"report": [
{
"at": "0x0000",
"dt": "0x21",
"min": 10,
"max": 300,
"change": "0x00000014"
}
]
},
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x000C",
"report": [
{
"at": "0x0055",
"dt": "0x39",
"min": 10,
"max": 3600,
"change": "0x00000005"
}
]
}
]
}
re-paired after save + hot reload. Got a few updates:
name: deflux_ZHAAirQuality
time age_secs airquality airqualityppb battery id name source type
---- -------- ---------- ------------- ------- -- ---- ------ ----
2022-03-17T08:13:14.193552559Z 0 good 107 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T08:12:42.271693783Z 0 good 138 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T07:18:17.353286268Z 0 excellent 138 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:38:48.997315447Z 0 excellent 188 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:37:49.198935166Z 0 excellent 221 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:27:50.363692964Z 0 excellent 253 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:27:20.129437869Z 0 excellent 218 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:26:50.211535423Z 0 excellent 184 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:26:20.163031104Z 0 excellent 149 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:25:48.313882697Z 0 excellent 112 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:25:14.532385368Z 0 excellent 79 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:24:40.921431471Z 0 excellent 41 32 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:23:00.043216679Z 0 excellent 3 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-17T06:22:28.021924285Z 0 excellent 33 100 60 Büro TVOC websocket ZHAAirQuality
…but stopped since then. No success 
Peut etre des infos ici Aqara TVOC sensor (VOCKQJK11LM) stops updating · Issue #9454 · Koenkk/zigbee2mqtt · GitHub
So I updated to 0.0.0_0029 on friday and re-paired it to deconz. No success, same as before: a few updates, then nothing.
So I did the binding via the binding dropbox to see if this changes something. And i looked really good: I had one update every 15 minutes from this time (friday ~10:00)… until this happened on sunday:
time age_secs airquality airqualityppb battery id name source type
---- -------- ---------- ------------- ------- -- ---- ------ ----
2022-03-20T20:56:14.375568227Z -1 excellent 31 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T16:21:13.884830342Z -1 excellent 62 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T14:31:13.520195927Z 0 excellent 96 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T13:36:13.478184926Z 0 excellent 130 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:58:42.852138587Z 0 excellent 177 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:58:12.846052539Z 0 excellent 209 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:57:12.936459096Z 0 excellent 243 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:56:12.910894728Z 0 excellent 275 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:55:42.995212645Z 0 excellent 306 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:54:42.965367351Z 0 excellent 339 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:54:12.982281775Z 0 excellent 371 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:53:13.012969388Z 0 excellent 405 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:52:43.024876718Z 0 excellent 436 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:52:13.047185047Z 0 excellent 469 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:51:43.029582966Z 0 excellent 505 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:51:13.05493158Z 0 excellent 544 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:50:43.109085272Z 0 excellent 581 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:50:13.072476584Z 0 excellent 626 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:49:43.091186104Z 0 excellent 674 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:49:13.095031977Z 0 excellent 728 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:48:43.140083167Z 0 excellent 788 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:48:13.222837596Z 0 excellent 845 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:46:13.194965919Z 0 excellent 880 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:45:43.221518393Z 0 excellent 846 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:45:13.210617106Z 0 excellent 795 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:44:43.279426326Z 0 excellent 723 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:44:13.30771972Z 0 excellent 633 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:43:43.321003051Z 0 excellent 520 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:43:13.406314813Z 0 excellent 395 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:42:43.362918542Z 0 excellent 224 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:42:13.289293073Z 0 excellent 59 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:41:13.330636487Z 0 excellent 7 94 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:33:10.155242352Z 0 excellent 18 100 60 Büro TVOC websocket ZHAAirQuality
2022-03-20T12:16:11.148952396Z 0 excellent 19 100 60 Büro TVOC websocket ZHAAirQuality
I changed the batteries after the update btw.
Really strange…
So it work if you make the bind using the GUI but not using DDF ?
(On the GUI you make just the bind not the reporting ?)
Gui, Bindung + reporting. Works, but only for 2 days
Looks like you already figured out what I was trying to do (add ability to set units in Z2M), but could you shed light on how to get the network key?
I just can’t capture any key exchanges when pairing a TVOC with a M2 hub, but pairing the same TVOC with Z2M I can capture key exchanges.
See:
Help appreciated.