Skip to content

Releases: dresden-elektronik/deconz-rest-plugin

Rantanplan

15 Jun 08:03
Compare
Choose a tag to compare
Rantanplan Pre-release
Pre-release

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 in button_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 of RConfigDuration 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 in getAcceptHeaderApiVersion() #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

24 May 21:29
Compare
Choose a tag to compare
Intertwingled Pre-release
Pre-release

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 by std::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

17 May 17:40
Compare
Choose a tag to compare

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

14 May 19:27
Compare
Choose a tag to compare
Stackframe Pre-release
Pre-release

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

09 May 20:21
Compare
Choose a tag to compare
Kvar i min bil Pre-release
Pre-release

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

30 Apr 18:49
Compare
Choose a tag to compare
Atlantis Pre-release
Pre-release

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

23 Apr 17:04
Compare
Choose a tag to compare
Brandøya Pre-release
Pre-release

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

12 Apr 20:05
Compare
Choose a tag to compare
Longshot Pre-release
Pre-release

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.

image

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.
  • 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 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 and ResourceItem move assignment operator in move constructor;
  • ResourceItem::rulesInvolved() return by const reference rather when copy the std::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...

Read more

Tortuga

23 Mar 23:46
Compare
Choose a tag to compare

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

15 Mar 23:56
Compare
Choose a tag to compare
Nassau Pre-release
Pre-release

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.