v3.0.0
changes a lot under the hood but does not introduce many new features. Nevertheless, because a release-please
has been introduced and some changes are made which might break your setup, the version number was bumped up.
Notable changes include:
- discovery of changed configurations: both changes of teh dip switch as well as input and output settings (e.g.
not_connected
) are automatically reflected in the exposed accessories. This means that you can change the configuration of the outputs both in hardware (DIP
switch) or software (output configs) and it will be automatically reflected in the exposed accessories. - naming of (newly discovered) devices: new devices added by auto-discovery will now more closely follow the native naming and use the type of device plus parts of the MAC address to create the name in HomeKit.
- further fixes: In rare cases, if your dingz did not have a proper name set in the UI, it wouldn't run. By catching this, the plugin has become more stable.
3.0.0 (2020-12-08)
- dingz: might break your setup
- dingz: actively identify config changes (55c8326)
- dingz: dynamic output configuration (47902d9)
- dingz: streamline update code, name changes (e652324), closes #103
- dingz,pir: event callback override (a2fc989)
- github: release please (eec9644)
- platform: consolidate auto-discovery names (c585395)
- platform: device naming w/ MAC (b457310), closes #146
- dingz: changes to button action handling (66752b0)
- dingz: don't call updateAccessory() on startup (b4c8c3b)
- dingz: fix (another) crash on empty / undefined sn (795dea2), closes #116 homebridge/HAP-NodeJS#824
- dingz: fix accessory class names (310c611), closes #155
- dingz: motion event handling (bee80d9)
- dingz: remove unused / unnecessary code (75e4507)
- dingz: track changed dip config (1cafb60), closes #118
- dingz:input: dynamic config (d720d7d)
- pir: properly set callback url if one exists (fa01c46)
- platform: ensure dingz accessories have a name (86b7d07)
- changelog: release-please fitness (de46ef7)
- deps: cleanup dependencies (f6c28a7)
- deps-dev: add depcheck (de9ae44)
- deps-dev: bump @typescript-eslint/eslint-plugin (4c228d7)
- deps-dev: bump @typescript-eslint/parser from 4.9.0 to 4.9.1 (f117b68)
- deps-dev: bump eslint from 6.8.0 to 7.15.0 (3d630cf)
- deps-dev: bump husky from 4.3.0 to 4.3.5 (9e32c49)
- deps-dev: bump lint-staged from 10.5.2 to 10.5.3 (4d94909)
- deps-dev: clean up dependencies (03f3073)
- github: release please (c26acd7)
- ts: typescript module declaration fix (e4d9306)
∞ BREAKING v2.0
Version v2.0
will break your setup (but only if you use blinds). If you upgrade to this version and have a dingz with blinds configured, you will have to
- remove all your dingz accessories with blinds (but only these) from Homebridge (can easily be done in the Homebridge Config X UI); and
- add them again (automatically or by manually adding them via the config);
Some long-standing bugs with blinds have seen changes that unfortunately will break setups with blinds. If you upgrade to v2.0.0.
and then want to downgrade to v1.7.1
(the last stable v1.x.x
version) your setup will break again. Also, I can not (yet) guarantee that there are no problems with the blinds. The way the dingz API
works makes it quite cumbersome to reliably work with blinds under all circumstances.
If you only use the dimmers you should not be concerned.
∞ Acknowledgements
Thanks to @granturism0, @qx54, @simonnelli for their contributions and help in crafting this release.
∞ Improvements and (hopefully) nice things
Besides these breaking changes, v2.0.0
will also bring a few new features to your homebridge setup:
- If your devices change IP address, this will be picked up if either auto-discovery is running or if you change/update manually configured devices [Applies both to myStrom and dingz]
- Blind names should be picked-up now (implements #129, thanks @granturism0 for the support and suggestion) and updated accordingly
- Updated accessory names should be reflected in the logs and will propagate to HomeKit too (takes some time, and won't overwrite any changes you've made in HomeKit itself)
- if a device can not be reached, HomeKit will indicate a
no response
- we show a heartbeat of the devices (DEAD or ALIVE) in the log
- if the device comes back up again, it will be re-discovered and added again
- the whole fetching of data and status reports has been improved. Both server and device load should be lower now
- extensive debugging of network requests and errors
- more robust error handling overall, based on Promises
- colored output includes the name of the associated item in the debug log
- last but not least, it implements fixes for #3, #103, #116, #120, #123, #124, #129, #135
- more robust updates (both ways --> from HomeKit to the devices and also back)
- less load on your devices and your server (fewer network requests made)
- (even) stricter code quality checks and an upgrade TypeScript 4.0
Overall over 60 changes have been implemented, and a lot of effort and time has been invested in making the plugin more robust (and logical). It still has some rough edges, though, and things might still break.
∞ Detailed Changes
∞ 2.0.7 (2020-12-04)
∞ New Features
∞ Bug Fixes
∞ Other Changes
- //github.com/johannrichard/homebridge-dingz (cb35acb3)
∞ Refactors
- logging: make logging more robust (a5312ce6)
∞ Code Style Changes
∞ 2.0.6 (2020-11-30)
∞ Bug Fixes
- pir: don't double poll PIR sensor (40aa5639)
- platform:
∞ 2.0.5 (2020-11-30)
∞ Bug Fixes
- dingz:
∞ 2.0.4 (2020-11-30)
∞ Bug Fixes
- dingz: fix naming & visibility glitch with dimmer assignment (cc40b4f2)
∞ 2.0.3 (2020-11-30)
∞ Build System / Dependencies
- npm: set homepage (5f6cfed5)
∞ 2.0.2 (2020-11-30)
∞ Bug Fixes
∞ 2.0.0 (2020-11-29)
∞ Documentation Changes
- changelog: v1.8.0 (f33d1dea)
∞ New Features
- accessories:
- reachability state (5f70bb59)
- consistent naming (c3f5cfcd)
- request logging (d4be51d9)
- request error logging - improve logging of request errors - less log clutter - make use of the improved logger in 07216785b209a20628aef2fa2ef796c65b1dd973 (f936ae8a)
- improved accessory logging - prefix the device name to all log messages - color it nicely (if you like magenta, otherwise it's just 'color it' 😄) - helps keeping tabs on issues with accessories (07216785)
- plugin: stability & reliability improvements (70e88aa7)
- dingz: handle accessory ip address changes - update accessory if the IP changes in config or from auto-discovery - implements #3 😄 (896ff5b5)
∞ Bug Fixes
- button: getDeviceStateUpdate not implemented (16748447)
- dingz:
- blinds – it's complicated (5e9affc6)
- update blind config on update (90d9b5be)
- windowcovering update (b5f136b5)
- reduce request load (4e381637)
- more accurate blind state (bcde13c7)
- max tilt value (e282116a)
- field name change (452fa797)
- better fix for #124 (c6663407)
- [FIX] resolve tilt angle inconsistencies #124 (5df67b9b)
- fix for tilt angle (b8d03a8f)
- refactor update handling (e69deb2b)
- better blinds error handling (46b85b11)
- better request error handling (b3ae78f4)
- add error handler (ae71f85d)
- update characteristics (561d6464)
- make sure we don't schlepp along the reachability service (fddbfad2)
- fix variable name (f1fae162)
- fix crash for undefined value - also fix the variable name (1a58cb9f)
- lightbulb:
- plugin:
- build:
- logging: force color in DingzLogger (6ee2c669)
- platform: handle axios errors (5758901c)
∞ Other Changes
- dingz:
- deps: bump cockatiel from 1.1.1 to 2.0.0" (a3dbd0c1)
∞ Refactors
- dingz:
- standardise variable naming (e00b8cff)
- remove unnecessary code (d0ddb5f0)
- rename DingzDaAccessory (b937eed1)
- remove spurious bits of code (f5b766e9)
- use
semver
library for PIR callback (7364c7f8) - device discovery (d40ba1e2)
- start consolidation of config gathering (7b55a0aa)
- better debug logging (901c051b)
- remove spurious log entry (758db980)
- platform:
- accessories:
- src: rename util to lib (7817e883)
∞ Reverts
- commit: 73298a58f2cfbf3dff2a12e146ab1d137b2aac64 (c6207c8a)
∞ Code Style Changes
∞ 1.8.2 (2020-11-21)
∞ Build System / Dependencies
- changelog: automatically generate changelog (85f06f22)
∞ Other Changes
- deps: bump cockatiel from 1.1.1 to 2.0.0" (a3dbd0c1)
∞ 1.8.1 (2020-11-21)
∞ Build System / Dependencies
- deps-dev:
- deps:
∞ Bug Fixes
- dingz:
∞ Other Changes
∞ Refactors
- dingz:
- platform: simplify event bus listener signature (8077f36a)
∞ Reverts
- commit: 73298a58f2cfbf3dff2a12e146ab1d137b2aac64 (c6207c8a)
∞ Code Style Changes
- code: add issue references in fixme/todo (97264a23)
∞ (2020-11-14)
∞ Bug Fixes
- dingz: don't set callback for newer firmware versions (eb5e7e5)
- dingz: fixes #102 (e468728)
- dingz: small fixes to the code (21d04bb)
- dingz: small fixes to the code (c390c57)
∞ Features
- dingz: closes #17: implement support for reachability (73298a5)
- dingz: update accessory from dingz (038a33a)
∞ (2020-11-14)
∞ Bug Fixes
∞ Features
- accessories: streamline push naming (9614ad6)
- accessories: support wifi pir motion sensor (f4b2155), closes #87
- pir: implement push for pir motion (c1a3098)
∞ Features
- accessories implement support for PIR motion sensor (close #87, thanks @qx54 for helping with testing)
∞ Bug Fixes
- platform implement fix to run plugin in HOOBS (Fixes #56, thanks @claude1984 for reporting it)
∞ Features
- platform: implement exponential backoff (e8e0797)
- dingz: read name from system configuration (2374a43) (Thanks @rryter for the contribution)
∞ Bug Fixes
- dingz: increase max listeners (e43ee0c)
- dingz: set pir callback only if pir present (a3b3b0b), closes #16
- schema: remove "&" in schema (c6f36b5)
∞ Features
Version 1.5.0 added support for dingz buttons. This is quite a significant change to the plugin so I expect new bugs and issues. There's quite comprehensive documentation about how this works in the Wiki so please consult it to leanr more about limitations and caveats.
∞ Fixed
- dingz: Fix for blinds not working after refactoring (1926110), closes #11
- typo: Fix typo in log output (c6de553), closes #12
- typo: Fix for typo (75f10ac), closes #10
- typo: Fix for typo (7e36033), closes #9
Version 1.5.0 adds support for dingz Buttons. This is quite a significant change to the plugin so I expect new bugs and issues. There's quite comprehensive documentation about how this works in the Wiki so please consult it to leanr more about limitations and caveats.
∞ Added
- Add support for the dingz Buttons, including a stealthy "flip-switch" mode. Please consult the Wiki for instructions if you want to use this on a different than the default port.
∞ Changed
- Added more detail on the plugin config, the way the buttons and the way the motion sensor works in the Wiki
- Discovery process stops without polling a discovered device if it has already been added to HomeKit. This reduces unnecessary strain of the devices
- Additional fixes to make the plugin more robust in case of connection issues
- Reduce logging to a more useful amount in case of network issues
∞ Fixed
- Bugfix release for auto-discovery on new-installs
This is mostly a maintenance release with no new functionality. It prepares the ground for some upcoming changes related to buttons. It also brings more stability and less stress for the dingz as it combines the polling for the different services into one single call instead of 4-5 different calls.
∞ Changed
- Reduce device polling during auto-discovery
- Reduce the amount of logging significantly
- Under-the-hood changes for Button callback (manual)
- Add Event Bus for dingz Accessories
- Use undocumented
/api/v1/state
API endpoint, and - Reduce polling amount by at least a factor of 4, leading to
- Lower dingz front panel temperature
∞ Added
- Support for WiFi LED Strip
∞ Added
- Names of Lightbulbs will follow the naming set in dingz
- Non-dimmable outputs will be created as simple Light Switches
∞ Fixed
- Fix for blank puck S/N number (Upstream edge-case/glitch/bug/feature in HAP-NodeJS. This fixes #5. Thanks Simon Iannelli for the help with getting to the bottom of this issue!)
- Fix for dingz lamella tilt-angle minima/maxima (Thanks Michael Burch for reporting/debugging.)
∞ Changed
- Add notice about plugin incompatiblity/bug
∞ Fixed
- Remove log-noise
∞ Added
- Support for WiFi Lightbulb
∞ Fixed
- Dimmer & Shade fixes (Mismatch between API doc and real-life implementation)
Breaking change: This release breaks existing configs.
After upgrading to this version, you have to remove the plugin config block from your config, restart Homebridge, add the plugin config again and restart Homebridge once more to apply the fix. Otherwise you will end up with spurious old Lightbulbs in your setup.
∞ Added
- Support for dingz LightSensor
∞ Fixed
- Fix for Dimmer index issues (Thanks Michael Burch for reporting/debugging.)
- Small refactorings
∞ Added
- Support for dingz Front LED
∞ Changed
- Replace popsicle library with axios for better POST handling
∞ Fixed
- Fixes for myStrom WiFi Lightbulb support
∞ Added
- cb13f9b Exponential decay for accessory config check
∞ Changed
- 071c7e2 Housekeeping
- 8ebe4e4 Add Changelog
∞ Added
- 48bd118 Add support for a setting to turn off auto-discovery
∞ Changed
- 75fbabb Update metadata in HomeKit info: use undocumented fields
- 8caf6b4 Update metadata in HomeKit info: use undocumented fields
∞ Fixed
Fixes for a number of "long-standing" (3 days :-)) bugs
- b414f80 Fix for Dimmer 1 (Input/Output) config. Fixes #2
∞ Added
- First tentative support for the myStrom WiFi Lightbulb
∞ Changed
- Only discover new devices during the first 10 minutes (Restart Homebridge if you want to rediscover)
∞ Fixed
- 71a14a5 – Fix plugin ID
- Some fixing and refactoring of the discovery code
∞ Added
- First tentative support for the myStrom WiFi Lightbulb
∞ Changed
- Only discover new devices during the first 10 minutes (Restart Homebridge if you want to rediscover)
∞ Fixed
- Some fixing and refactoring of the discovery code
∞ Fixed
Fixes presumably wrong association of DIP switches.
This plugin implements some (but not all) functions of dingz Smart Home Devices. The plugin also supports (some) myStrom Devices as they share much of the same API definitions and concepts with dingz.
The plugin attempts to
- auto-discover devices, and to
- auto-identify dingz settings and thus accessories by using device type, dip switch settings and input configuration
The following dingz services are implemented:
- Dimmers (LightBulb)
- Shades (Blinds)
- Room temperature
- Motion sensor status (polling only, only for dingz+ models)
Not (yet) implemented:
- Front LED (LightBulb)
- Buttons (StatefulProgrammableSwitch)
- Thermostat (Temperature)
- Motion sensor webhook (push mode instead of polling)
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.