Releases: dresden-elektronik/deconz-rest-plugin
Rantanplan
This beta release is based on v2.12.0-beta version.
Changes
- Add introspection REST API for button events, state and config attributes #4933
Note: Button events are currently only exposed for switches defined inbutton_maps.json
.
This will be expanded in the upcoming versions to expose all popular switches into introspection API. - A new REST API debug page was added in the Phoscon App under Menu → Help → API Information.
- Support for Tuya 4gang switch (_TZ3000_xabckq1v) #5004
- Add button map for Immax Keyfob-ZB3.0 #4952
- Initial support for LK Wiser Temperature and Humidity Sensor (CCT593011_AS) #4954
- Initial support for LK Wiser Water Leak Sensor (CCT592011_AS) #4955
- Add button map for LIDL doorbell #4999
- Add button map for Sunricher switch (ROB_200-008) #5000
- Expose
RConfigDelay
instead ofRConfigDuration
for Develco motion sensors #4950 - Fix: Consider ZCL frame control direction for sending ZCL Default Response #4947
- Fix loading backup on Webkit browsers regression #4965
- Fix incorrect payload length for IAS ACE arm commands for Keyfobs #4946
- Fix KNYCKLAN receiver doesn't turn off #4978
- Fix missing temperature and setpoint value return for Hama (Tuya) TRV #4980
- Fix handling of ZCL Default Response #5009
- Fix dresden elektronik Lighting Switch dim up button event #5011
- Fix TRÅDFRI remote control emitting button event
1002
again after mode switch #4951 - Fix TRÅDFRI remote control arrow buttons "hold" and "long release" events #5012
- Fix build with Qt version 5.7; add
isValid(match)
helper functions #5013 - Fix Samjin Button ghost events by disabling IAS zone status reporting #4986
- Fix BOSCH AIR processing reported sensor data #5010
- Increase maximum length of rule name to 64 #5005
- LIDL Livarno Lux remote, button names, rules on config/on #5005
- Improve HTTP REST API dispatching performance and use new methods #4982
- Refactor of
changeSensorConfig()
and additional improvements #4940 - Refactor of button map data types #4932
- Remove
TaskItem
globals in thermostat and window covering modules #4975 - Don't construct temporary
QStringList
ingetAcceptHeaderApiVersion()
#4976
deCONZ core
- Improved UI of Node Info Panel with extra data.
- Improved performance of parsing
general.xml
ZCLDB with less memory fragmentation. - Improved reading all attributes in Cluster Info Panel.
- Fix unknown clusters showing up as FFFF.
- Fix issues with HTTP header handling wich affected reverse proxies.
- Improve performance and memory handling of APS and ZCL processing.
A special thanks to all contributors of the deCONZ Github community.
Intertwingled
This beta release is based on stable v2.11.5 version.
Changes
- Support Tuya battery scene switch (_TZ3000_dfgbtub0) #4895
- Support Tuya 4 Gang scene switch (_TZ3000_xabckq1v) #4908
- Make Regulation SetPoint Offset usable as offset for Danfoss Ally #4881
- Add
QLatin1String
helper functions: indexOf, startsWith and contains #4915 - Improve backup upload handling #4916
- Don't enumerate devices in firmware update handler periodically #4918
- Update
QList
iterators and prevent copy of Simple Descriptor #4917 - Fix always loading coordinator node from database first.
- Fix possible crash when invalid Simple Descriptor is received.
- Use monotonic timer for relative timestamps in deCONZ core to prevent jumps and stalling.
deCONZ core performance
Various hot path components in core were refactored to improved performance and cut down temporary memory allocations by 2/3.
- Replaced
QList
bystd::vector
for various ZDP and ZCL data structures. - Reuse
deCONZ::ApsDataIndication
when receiving messages. - Reuse
deCONZ::ZclFrame
when parsing ZCL payload. - Refactored various core handlers to not copy large data structures if not needed.
- Make
deCONZ::ApsDataConfirm
a C++ POD type instead Pimpl to prevent extra heap allocation. - Replaced all uses of
QDateTime
by approx. 200x faster lightweight alternative in core. - Improved serial communication performance.
- Improved Cluster Info panel performance.
- Improved DeviceEnumerator performance.
- Improved node rendering performance.
Note: This release breaks C++ ABI for the deCONZ library and requires recompilation for custom compiled plugins with latest deconz-dev
package.
A special thanks to all contributors of the deCONZ Github community.
Manticore
This stable release is the successor of v2.10.4 and includes all changes from:
v2.11.0-beta
v2.11.1-beta
v2.11.2-beta
v2.11.3-beta
v2.11.4-beta
Please refer to the releases page to get and overview of respective changes.
A special thanks to all contributors of the deCONZ Github community.
New beta firmware 0x266e0700
For RaspBee II and ConBee II.
- Fix internal ZDP queue can get stuck when unsupported requests are received.
http://deconz.dresden-elektronik.de/deconz-firmware/beta
Notes for the next v2.12.x release series
Unfortunately the Zigbee Green Power (ZGP) proxy support hasn't been finished yet, albeit it was planned for v2.11.x. This is now scheduled to be solved within in the next 2.12.x betas.
Starting with the v2.12.0-beta the performance of deCONZ and the plugin will be improved significantly, leading to faster Zigbee processing and reduced CPU usage. The deCONZ GUI undergoes some rework as well to improve perfomance especially in larger networks.
As discussed in the developer meetings, a new feature will be added to the new REST API /devices
endpoint which lets clients query meta data like supported buttons and their actions of switches. This allows clients to integrate switches in a more generic manner without manually maintaining button mappings.
Stackframe
This beta release is based on v2.11.3-beta version.
Changes
- Add a new Silabs MAC address range for Tuya TRV and FIX bad device reconisation #4869
- Fix 0xA6 APS errors due false srcEndpoint selection #4857
- Remove TcpClient dead code #4865
- Remove bug handling of URL's with missing slash after
/api
(now handled by faster QHttpRequestHeader) #4864 - Remove dead light.state read code #4861
- Remove dead m_state code from
de_web_plugin.[cpp|h]
#4859 - Use QLatin1String for all HTTP header queries #4862
- Improve performance for parsing HTTP headers and URL's (10–15 times faster). Note this breaks C++ ABI for QHttpRequestHeader and requires recompilation for custom compiled plugins. Upcoming changes will make use of new methods to speedup processing of REST API paths.
- Improve performance of internal HTTP server and client handlers.
- Improve performance of internal node tables.
New beta firmware 0x266d0700
For RaspBee II and ConBee II.
The backport to ConBee I and RaspBee I is in the works.
- Prevent jumps in APSDE-DATA.indication LQI values by using raw LQI value from PHY frame (not relevant for deCONZ).
- Support receiving and sending APS frames to and from endpoints which aren't registered (error code 0xA6).
http://deconz.dresden-elektronik.de/deconz-firmware/beta
A new Wiki page Firmware Changelog was added to provide an better overview.
A special thanks to all contributors of the deCONZ Github community.
Kvar i min bil
This beta release is based on v2.11.2-beta version.
Changes
- Add Namron modelId 4512729 to corresponding button map #4853
- Support Tuya Hama Smart Radiator Thermostat model (TS0601) #4848
- Move backup functions into own file. Include frame counter in backup to allow transition between different hardware #4843
- Fix Tuya NAS-AB02B0 Siren #4844
- Fix IKEA Tradfri remote control left/right button events #4850
- Fix window covering direction for Tuya blind (TS0601) #4854
- Fix IKEA lights not turn off in scenes and IKEA unicast off commands #4846
- Fix static analyzer warning in checkSensorButtonEvent() #4855
- Fix Phoscon App color control for LIDL Livarno Lux lights
- Fix various core memory errors found by clang scan-build
- Fix Node Descriptor isNull() check when mac capabilities are zero
- Raise short database save delay from 5 seconds to 1 minute #4856
- Improve logging performance to not block application on each message
- Improve various core performance issues
- Improve performance of serial communication
- Improve performance of deCONZ::Address
Important: If you use a custom compiled plugin, it needs to be recompiled cleanly due ABI changes in the deCONZ library.
A special thanks to all contributors of the deCONZ Github community.
Atlantis
This beta release is based on v2.11.1-beta version.
Changes
- Fix create battery sensor for Tuya blind AM43 #4807
- Fix IKEA KADRILJ and FYRTUR roller blind reporting #4818
- Fix ZGP PTM216Z reverse order of buttons 1–4 #4828
- Improve electrical measurement handler performance #4808
- Improve lights and sensor deletion #4777
- Improve ZCL configure reporting request performance #4812
- Initial support for Yoolax blinds #4748
- Initial support for Tuya TYZB01 light sensor #4735
- Initial support for Drayton Wiser radiator thermostat 4702
- Initial support for Xiaomi Aqara D1 switches QBKG21LM & QBKG22LM 4804
- Initial support for Tuya 3 button switch (TS0043) #4756
- Initial support for Xiaomi Aqara T1 Cube #4690
- Streamline attribute reporting configuration and align polling 4765
- Move simple metering related code to dedicated file #4803
- Move Xiaomi special reporting related code to dedicated file #4813
- Move electrical measurement related code to dedicated file #4802
- ZCLDB: Door Lock cluster and attribute additions #4795
A special thanks to all contributors of the deCONZ Github community.
Brandøya
This beta release is based on v2.11.0-beta version.
Changes
- Initial support for D-Link DCH-B122 motion sensor #4783
- Initial support for Moes ZigBee Smart DIY Motorized Roller AM43-0.45/40-ES-EZ(TY) #4674
- Initial support for SLC S57003 4 channel remote switch #4711
- Initial support for Alcantara 2 acova thermostat #4700
- Initial support for Niko Smart Plug 552-80699 #4698
- Initial support for Tuya TRV HY368 Zigbee Radiator Actuator TRV and Moes Zigbee Radiator TRV (TS0601) #4621
- Initial support for Sunricher SR-ZG2833PAC-C4 and various bug fixes 4707
- Initial support for Mueller-Licht tint remote ZBT-DIMController-D0800 4707
- Initial support for Tuya dimmer feature #4577
- Initial support for Tuya Earda Dimmer and EDM-1ZAA-EU switches #4577
- Initial support for D-Link DCH-B112 door/window sensor #4581
- Support new version of Homebridge Hue (for sd-card image) 4740
- Support for alternate version of Orvibo ST30 sensor #4651
- Support for Aurora Smart16ARelay51AU smart plug #4650
- Enhancements for Bitron thermostat 902010/32 #4662
- Add metering support for Sengled SMART LED Z01-A19NAE26 #4666
- Fix for Xiaomi Aqara Single Switch Module T1 (With Neutral) #4768
- Fix and improve detection for Tuya TRV GS361A-H04 (TS0601) #4784
- Fix reverse Tuya curtain motor covering direction #4769
- Fix buttonmap for Sunricher CCT remote (missing modelid) 4707
- Fix for LIDL Xmas light strip and LIDL enhanced color lights 4707
- Fix crash on button press without deCONZ::Node available #4793
- Don't expose current and voltage for Xiaomi SP-EUC01 #4763
- Expose RConfigInterfaceMode for Develco EMI Norwegian HAN #4653
- Limit polling on/off by using Xiaomi special reporting #4661
- Allow Tuya devices to poll on/off attribute #4654
- Fix HTTP Content-Length header missing space after colon #4789
- Fix crash in ZDP Simple Descriptor not active endpoints response (core)
- Introduce getSensorNodeForAddressEndpointAndCluster() #4579
- MAC prefix hygene #4697
- Add utils module; move generateUniqueId() into it #4782
A special thanks to all contributors of the deCONZ Github community.
Longshot
Contributors:
The following users have been contributing to this release. Thank you for that!
@Big4SMK, @Mimiix, @Smanar, @SwoopX, @ebaauw, @manup and @tarasfilonenko
Changes
Support delete device and its REST resources @manup (#4736):
The new deleteDevice(extAddress)
function has following side effects:
- Delete all related Sensor and LightNodes;
- Delete device related entries from database;
- Send ZDP Mgmt_Leave_req to device to remove it from network (also sleeping end-devices).
Coming with v2.11.0 this can be invoked from the GUI via Delete key or node context menu.
Raise C++ version to C++14 @manup (#4741):
Compared to C++11 it brings mainly some improvements for lambda auto
deduction and constexpr
.
Since we still support Raspbian Stretch C++17 isn't in reach until 2024.
Initial support for ZGP PTM216Z switch @manup (#4677):
Treated as Friends of Hue switch, but this module works differently as the known FoH switches when parsing messages.
No test done yet if and how it works with the Philips Hue bridge.
Therefore the modelid
and manufacturername
might need to change in future versions.
Button Events
x is the button number 1...8
x000 Initial press
x001 Hold
x002 Short release
x003 Long release
Button events check for duplicated sequence number (IKEA, Tuya and LIDL) @manup (#4716):
- Limited to IKEA and Tuya devices (also LIDL) to discard duplicated commands;
- For all other devices a warning is printed so we can track the issue;
- Sensor.previousSequenceNumber changed to uint16_t with initial value 0xffff to not accidantly discard valid commands.
This PR is successor for #4265 but only addresses the duplicate switch events.
The whole ZCL Default Response needs to be fixed at a higher level for all handlers in a separate PR.
Put R_GetProductId() and isTuyaManufacturerName() in own module @manup (#4717):
New files product_match.[cpp,h]
to provide functions to identify products.
The PR removes resource.cpp
dependency on the whole plugin which was included via tuya.h
.
@Smanar I haven't looked through all PRs in detail, but if some of them extend the product map this would conflict.
I can resolve the conflicts when mergin the PRs.
Stop Tuya devices getting Heiman as manufacturer name @SwoopX (#4710):
Especially for Tuya devices, preservation of the given manufacturer name for lights and sensors is required to have the devices set up correctly. For sensors, this is quite easily done, however, for lights, this requires to step away from assigning the manufacturer name based on the manufacturer code.
Add SKIP_EMPTY_PARTS define for QString::split() @manup (#4719):
Will be used to fix depreacted warning after Qt 5.14
** Add Github Action to validate button_maps.json for PRs @manup (#4705):**
This will run for each PR with changes to button maps.
Update de_web_plugin.cpp @ebaauw (#4692):
Bug fix: 20f3e8b causes no buttonevents for IKEA SYMFONISK Sound Controller.
Allow Xiaomi Aqara Single Switch Module T1 to create sensor resources @SwoopX (#4660):
Depends on #4649
Add support for Mi version of light detector (lumi.sen_ill.mgl01) @SwoopX (#4649):
See #4648
Tested and confirmed to be working.
FIX, Improve integration for the tuya siren @Smanar (#4617):
This device works actualy only for the manufacture number = 0x0000.
Not working totaly, need too the PR #4616 because of R_GetProductId issue.
Updated button_maps.json with RGBgenie ZB-5004 @tarasfilonenko (#4667):
As per @SwoopX suggestion here #4645
Update issue templates @Mimiix (#4682):
Added line to keep headers in the template on issue creation.
IKEA STYRBAR and Minor changes @ebaauw (#4627):
- Add support for IKEA STYRBAR, see #4572.
- Whitelist device in
de_web_plugin.cpp
; - Add commands to
button_map.json
; - Hack in
checkSensorButtonEvent()
to ignore additional commands on holding left or right button (see issue); - Streamline code for SHORTCUT and SYMFONISK, in line with STYRBAR:
- Only bind OnOff client cluster to group;
- Discard unicast from client cluster to prevent double button events;
- Fix bugs in verifying bindings/reporting;
- Remove unneeded code for binding SYMFONISK to coordinator, as it sends commands to coordinator already by default.
- TODO: Check older IKEA end devices for double button events (haven't seen any reports, so don't expect any;
- TODO: Check whether old wireless dimmer (with dial) sends commands to coordinator by default as well;
- TODO: Check whether old IKEA end devices can do with one client binding as well.
- Whitelist device in
- Add support for Aqara Opple in controller mode, see #4589. No support for switching modes, though; you'll need to do this manually through the GUI (as describes in the issue)... every time deCONZ restarts;
- Add commands to
button_map.json
; - Add support for Step Color Temperature command in
checkSensorButtonEvent()
;
- Add commands to
- Add to
general.xml
the IKEA-specific scene commands as sent by the TRADFRI remote control on the left and right buttons, so they can be sent from the GUI. Still cannot get them to work, though... - Add new button mapping for TRADFRI wireless dimmer, under
mode
1, see Wiki. - Disable check for "too fast event", as this interferes with the correct function of several IKEA and Hue devices.
Refactor getFreeSensorId(); fix reuse of deleted sensor ids @manup (#4635):
- Make it a free standing function, since there is no Database class yet. This is a forecast to remove database code dependency of the plugin, which will ultimately result in a proper testable Database class;
- Remove sqliteGetAllSensorIdsCallback() dependency from plugin class;
- Make
sensorIds
a local variable since it's only used here; - Modernize code and and reduce unperformant code paths;
- Ensure new sensor ids only grow, don't reuse sensor ids which where formerly deleted.
Code has been tested in debugger for various cases.
The PR also fixes that formerly deleted sensor ids from the database were reused under certain conditions. Which was the whole point to actually access the database in this function, but it never worked. I'm not sure if this is too useful other than to prevent clients which still somehow access old ids getting confused by new completely different sensors with the same id. If that isn't needed the code can be simplified to not use the database at all.
Resource code simplify @manup (#4622):
- Remove duplicated code by reusing
Resource
andResourceItem
move assignment operator in move constructor; ResourceItem::rulesInvolved()
return by const reference rather when copy thestd::vector<int>
.
Add initial support for ZHADoorLock sensor. @Smanar (#4540):
This code create ZHAdoorlock sensor for new doorlock, older one are not impacted and still use "light" type.
The JSON look like this one
{
"config": {
"battery": 100,
"lock": false,
"on": true,
"reachable": true
},
"ep": 11,
"etag": "a43862f76b7fa48b0fbb9107df123b0e",
"lastseen": "2021-03-06T22:25Z",
"manufacturername": "Onesti Products AS",
"modelid": "easyCodeTouch_v1",
"name": "easyCodeTouch_v1",
"state": {
"lastupdated": "2021-03-06T21:25:45.624",
"lockstate": "unlocked"
},
"swversion": "20201211",
"type": "ZHADoorLock",
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-xx-0101"
}
The code add too some attribute and fonction to the GUI for doorlock cluster 0x0101
It add support for thoses devices.
- Yale YRD226 TSDB
- Yale YRD226/246 TSDB
- Yale YRD256L TSDB SL
- Yale YRD220/240 TSDB
- Yale YRD256 TSDB
- Kwikset 914 ZigBee smart lock
- Datek ID Lock 150
Not all are tested, have some issue for the EasyAccess EasyCodeTouch #4253
To unlock/lock the device, use config/lock.
State/lockstate give the device state (locked/unlocked/undefined/not fully locked)
Lasted issue used #3750
Add initial support for Tuya covering Ds82 @Smanar (#4529):
- Add support for DS82 model.
- Correct the "reverse" command for all tuya covering using the tuya cluster.
- Make the code more generic.
Reuse existing button map for RC-EF-3.0 @SwoopX (#4606):
FIX tuya Moe TRV @Smanar (#4643):
Re enable "mode "field" in the api for some TRV devices.
FIX, Better Tuya reconization @Smanar (#4616):
This PR make 2 things, It creates a battery sensor for some tuya covring, and can help for pairing because the sensor can be used to get the manufacture name for the "light" device creation.
It help too for checks, previously I was using
if (manufacturer.endsWith(QLatin1String("0yu2xgi")))
And now
R_GetProductId(&lightNode) == QLatin1String("NAS-AB02B0 Siren"))
But the problem is R_GetProductId need manufacture name AND model id, but with this modification, only the manufacture name is usefull.
Add initial support for ORVIBO open/close sensor SM11 @SwoopX (#4465):
See #4403
When support has been added, you should enter sensor search in Phoscon and pair the device. However, you also need to keep an eye on deconz GUI for th...
Tortuga
This stable release is the successor of v2.9.3 and includes all changes from:
v2.10.3-beta
v2.10.2-beta
v2.10.1-beta
v2.10.0-beta
Please refer to the releases page to get and overview of respective changes.
A special thanks to all contributors of the deCONZ Github community.
Nassau
This beta release is based on v2.10.2-beta version.
Changes
- Initial support for Hue wall switch module; LIDL Livarno Lux lights 4541
- Add missing handler for IAS ACE data indications; prevent loading of erroneous button map entries #4582
- Fix Eria adurolight remote sensor creation and button recognition 4580
- Fix regression in --dev parameter to specify serial device names #4411
- Fix sensor and switch names change after search for already existing devices 4395
- Enable polling of on/off state for Xiaomi mains powered devices #4588
- Show full version string in deCONZ about dialog and status bar
A special thanks to all contributors of the deCONZ Github community.