Homebridge Plugin for dingz Devices: homebridge-dingz
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.
Please have a look at the Wiki and also at the Release Notes for more details on the configuration options and the plugin's behavior vis-à-vis the dingz' settings for outputs and more, as well as on the supported devices, new features and fixes.
Auto-discovery
The plugin attempts to
- auto-discover dingz and mystrom devices, and to
- auto-identify dingz settings and thus accessories by using device type, dip switch settings and input configuration
Older myStrom WiFi Switches don't support auto-discovery and must be added manually. Depending on your setup, you might want or have to add all your devices manually. Configuration settings will be read-out automatically in either case. The Wiki contains further information, including on the new "ignore" feature.
Configuration changes (dingz only)
Initially, the plugin attempts to create the dynamic accessories based on a dingz' configuration. Keeping up with configuration changes once a dingz has been added to HomeKit has become increasingly challenging and error prone. New features in the firmware and a mixed hardware and software-defined configuration (DIP
switch and UI settings) can change physical properties of your dingz.
This applies to the following configurable properties:
-
DIP
switch changes (changing blinds to dimmers and vice-versa), -
D1
/I1
output/input setting, and -
not_connected
outputs (a software setting, see #114),
Changing these can lead to stale services (e.g. leftover lamps, leftover dimmers or blinds) if the configuration is somehow not tracked properly. Considering this, right now, the best way to deal with these configuration changes is therefore:
- remove the dingz accessory from the accessory cache,
- restart homebridge, which will add the accessory again, with the new configuration
Usage
Easy: Install and configure the plugin via Config UI X in a working HomeBridge environment. This is the recommended way.
Harder: See the Wiki for instructions.
Caveats
(See CHANGELOG.md as well for breaking changes)
- The plugin is in an early (beta) stage -- lots and lots of errors when running are probably the norm, and not the exception
- Each dingz device is created as one accessory. This means that all services (Lights, Blinds, Temperature and Motion) share the same room in HomeKit. This can not be changed and would require to break up the accessory into separate accessories per function. However, this would be inconsistent with HomeKit design principles and also violate some physical design/wiring constraints of the dingz.
- There is limited sanity checking regarding your dingz configuration, but the main features -- precedence of DIP switch over Input config, and detection of PIR availability -- should work according to the official API documentation
- Most of the features have been tested againts the published version of the dingz and a Mock Server that simulates the many different configuration options you get with your dingz device (Dimmers, Dimmers & Blinds, Blinds, PIR/No PIR, Input/No Input etc.). While I have been careful to test with realistic data and also with real devices, there will be hard-to-catch mistakes coming from undocumented behaviour or glitches in my code. Feel free to open an Issue if you run into something.
- I observed subtle differences between different Firmware versions for the V2 WiFi Switches (e.g. what's returned in the
type
field of the/api/v1/info
endpoint). Newer Firmware versions seem to divert from the published API and the differences are undocumented -- which makes it trickier to discover the right type of a V1/V2/EU WiFi Switch - If you run into bigger problems, try to run Homebridge manually in "debug" mode:
homebridge -D
: You will receive lots of messages which should you help track down the problem (The REST tokens are never printed, but information like your device's IP address might be found in the debug logs. In case you're opening a bug report and add debug info, make sure you remove whatever information you consider sensitive)
Disclaimer
Disclaimer: No warranties whatsoever, use this plugin entirely at your own risk. dingz may only be installed by qualified professionals.
Full disclosure: The author of this plugin is not affiliated in any way with Iolo AG or MyStrom AG. Iolo AG, the producer of dingz', was so kind to provide me with one test device. I'm very grateful for this and hope this little plugin can contribute a little bit to help dingz spread its wings. Thanks also to myStrom AG who provided me with some gear to implement additional myStrom Devices.
Contributing
Contributions are welcome. Please have a look at CONTRIBUTING.md for details.