Skip to content

Latest commit

 

History

History
603 lines (397 loc) · 39.6 KB

CHANGELOG.md

File metadata and controls

603 lines (397 loc) · 39.6 KB

Changelog

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)

⚠ BREAKING CHANGES

  • dingz: might break your setup

Features

  • 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

Bug Fixes

  • 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)

Miscellaneous

  • changelog: release-please fitness (de46ef7)

Build system

  • 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

  • platform: chalk for logging with colour (e927e1dd)
  • pir: better naming (5445de6d)
  • dingz:

Bug Fixes

  • platform:
    • don't bind callback server to 0.0.0.0 (d1047085)
    • callback post request (8bc6e02d)

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:
    • disable motion polling by default (710a6e64)
    • implement configurable update interval (b9570fbb)

2.0.5 (2020-11-30)

Bug Fixes

  • dingz:
    • fixes motion pull change broken during refactoring (acc63d07) (thanks @simonnelli)
    • set correct TargetHorizontalTiltAngle (e1735429) (thanks @granturism0)

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

2.0.2 (2020-11-30)

Bug Fixes

  • dingz:
    • don't add D1 if not_connected (aef7298a)
    • blinds - it's (was?) complicated (182ba553)

2.0.0 (2020-11-29)

Documentation Changes

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

Other Changes

  • dingz:
    • more accurate blind state" (0771ff53)
    • merge pull request #114 from granturism0/develop-granturismo (67d761e7)
  • deps: bump cockatiel from 1.1.1 to 2.0.0" (a3dbd0c1)

Refactors

  • dingz:
  • platform:
    • put update interval in settings.ts (6bf9522b)
    • event-driven update cycle (7934ed07)
    • simplify event bus listener signature (8077f36a)
  • 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:
    • add generate-changelog (40f3c2e4)
    • bump @types/qs from 6.9.4 to 6.9.5 (36726175)
    • bump prettier from 2.1.1 to 2.1.2 (ef3b4605)
    • bump prettier from 2.1.1 to 2.1.2 (148ecba7)
    • bump @types/qs from 6.9.4 to 6.9.5 (75ae3a9c)
  • deps:
    • bump cockatiel from 1.1.1 to 2.0.0 (16c13f5e)
    • bump cockatiel from 1.1.1 to 2.0.0 (1ba9bdf2)

Bug Fixes

  • dingz:
    • 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)

Other Changes

  • dingz: merge pull request #114 from granturism0/develop-granturismo (67d761e7)

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

  • accessories: better error reporting (680407d)
  • accessories: better error reporting (cdda81f)

Features

  • accessories: streamline push naming (9614ad6)
  • accessories: support wifi pir motion sensor (f4b2155), closes #87
  • pir: implement push for pir motion (c1a3098)

1.7.0 - 2020-11-12

Features

  • accessories implement support for PIR motion sensor (close #87, thanks @qx54 for helping with testing)

1.6.1 - 2020-09-11

Bug Fixes

  • platform implement fix to run plugin in HOOBS (Fixes #56, thanks @claude1984 for reporting it)

1.6.0 - 2020-06-22

Features

  • platform: implement exponential backoff (e8e0797)
  • dingz: read name from system configuration (2374a43) (Thanks @rryter for the contribution)

1.5.2 - 2020-06-15

Bug Fixes

  • dingz: increase max listeners (e43ee0c)
  • dingz: set pir callback only if pir present (a3b3b0b), closes #16
  • schema: remove "&" in schema (c6f36b5)

Features

  • button: implement low battery warning (816c562)
  • button: implement mystrom button (a4e82b8)

1.5.1 - 2020-06-01

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

1.5.0 - 2020-05-30

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

1.4.3 - 2020-05-24

Fixed

  • Bugfix release for auto-discovery on new-installs

1.4.2 - 2020-05-24

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

1.4.1 - 2020-05-21

Added

  • Support for WiFi LED Strip

1.4.0 - 2020-05-21

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.)

1.3.1 - 2020-05-19

Changed

  • Add notice about plugin incompatiblity/bug

Fixed

  • Remove log-noise

1.3.0 - 2020-05-18

Added

  • Support for WiFi Lightbulb

Fixed

  • Dimmer & Shade fixes (Mismatch between API doc and real-life implementation)

1.2.1 - 2020-05-17

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

1.2.0 - 2020-05-17

Added

  • Support for dingz Front LED

Changed

  • Replace popsicle library with axios for better POST handling

Fixed

  • Fixes for myStrom WiFi Lightbulb support

1.1.3 - 2020-05-17

Added

  • cb13f9b Exponential decay for accessory config check

Changed

  • 071c7e2 Housekeeping
  • 8ebe4e4 Add Changelog

1.1.2 - 2020-05-16

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

1.1.1 - 2020-05-15

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

1.1.0 - 2020-05-15

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

1.0.1 - 2020-05-14

Fixed

Fixes presumably wrong association of DIP switches.

1.0.0 - 2020-05-14

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.