/homebridge-edomoticz

Domoticz Homebridge-Plugin

Primary LanguageJavaScriptOtherNOASSERTION

npm (tag) npm verified-by-homebridge

Homebridge-eDomoticz

This is a plugin for Homebridge and Homebridge Config UI X Support and Domoticz.

Supports:

Standard HomeKit Types (supported by Home.app):
  • Sockets (on/off)
  • Lamps (on/off)
  • Contact Sensors
  • Blinds
  • Smoke Detectors
  • Blinds (inverted)
  • Lamps (dimmer)
  • Motion Sensors
  • Push Switches
  • Lock Contact
  • Blinds (%)
  • Blinds (& inverted)
  • Push Buttons (selectors)
  • Lock Mechanisms
  • Lock Mechanisms (inverted)
  • Temperature sensors (only temperature characteristic in case of T+H / T+H+B)
  • Thermostat SetPoints
  • TV

Provides:

Custom HomeKit Types (supported by 3rd Party HomeKit Apps only - eg: Elgato Eve):
  • General kWh power meters - Types: General, Current; SubType: kWh, mapped to Eve chars where possible
  • General Current, Voltage - Types: General, SubType: Current,Voltage, mapped to Eve chars where possible
  • CurrentCost USB power meter - Type: Usage, SubType: Electric, mapped to Eve chars where possible
  • P1 Smart Meter (Electric & Gas), mapped to Eve chars where possible
  • EvoHome** / OpenTherm Thermostat support - Types: Heating, Thermostat; SubTypes: Zone, SetPoint
  • YouLess Meter (Current, Total and Today Total Consumption) - Type: YouLess Meter; SubType: YouLess counter, mapped to Eve chars where possible
  • General Usage % meters (eg: Motherboard Sensors Hardware Device - CPU %, Mem %, HDD % etc) - Type: General; SubType: Percentage
  • Temperature, Temp + Humidity, Temp + Humidity + Baro (Current Temperature, Current Humidity, Current Pressure in hPA) - Type: Temp, Temp + Humidty, Temp + Humidity + Baro [id'd as Eve Weather]
  • DarkSkies Virtual Weather Station Sensors (Wind, Solar Radiation, Rainfall, Visibility, Barometer [id'd as Eve Weather])

** assumes the EvoHome has been setup according to this script method.

Installation

Option 1: Install via Homebridge Config UI X:

  1. Navigate to the Plugins page in in homebridge-config-ui-x.
  2. Search for "domoticz" and install homebridge-edomoticz.

Option 2: Manually Install:

sudo npm install -g homebridge-edomoticz

Update

Option 1: Update via Homebridge Config UI X:

  1. Navigate to the Plugins page in homebridge-config-ui-x.
  2. Click the Update button for the eDomoticz plugin.

Option 2: Manually Update:

sudo npm update -g homebridge-edomoticz

Configuration

To configure homebridge-eDomoticz you must also be running homebridge-config-ui-x.

  1. Navigate to the Plugins page in homebridge-config-ui-x.
  2. Click the Settings button for the eDomoticz plugin.

sDomoticz

Manual Settings

Manual Configuration

~/.homebridge/config.json example:

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:21:3E:E4:DE:33",
        "port": 51826,
        "pin": "031-45-154"
    },
    "platforms": [
        {
            "platform": "eDomoticz",
            "name": "Domoticz",
            "server": "127.0.0.1",
            "port": "8080",
            "ssl": false,
            "roomid": 0,
            "mqtt": true,
            "debuglog":false,
            "excludedDevices": [],
            "dimFix": 0
        }
    ],
    "accessories": []
}

To prevent certain Domoticz devices from showing up in HomeBridge it is possible to exclude them by setting the "excludedDevices" parameter. Provide an array of Domoticz Device IDX's, which can be found in the Domoticz dashboard on the "Setup > Devices" page and look for the "idx" column.

"excludedDevices": ["12","30","129"]

The dimFix variable relates to an early issue between HomeKit and Domoticz regarding scaling of dimmer values. These days, for the majority of setups this variable can be set to 0 or omitted entirely. If you find that you can never set your dimmers to 100%, then set this variable to 1. If you find that, when you set your dimmers, this starts a never ending loop of brightness increasing by 1%, then you MUST omit this variable or set it to 0.

"dimFix": 0
Advanced Configuration

Dim Offset

The dimFix variable relates to an early issue between HomeKit and Domoticz regarding scaling of dimmer values. If you find that you can never set your dimmers to 100%, then set this variable to 1. If you find that, when you set your dimmers, this starts a never ending loop of brightness increasing by 1%, then you MUST omit this variable or set it to 0.

Use legacy blind support

If you use blinds, set this option to 1 if you use an older version of domoticz (until 2022-beta.14535). If using a more recent version, set to 0. When set to 0, the new reverse state and position will be used

MQTT

By default, the plugin will grab hardware information regarding MQTT from Domoticz if mqtt is 1 or true in the configuration file. Advanced users can override their MQTT configuration as follows:

"mqtt": {
  "host": "alternate.mqtt.com",
  "port": 1234,
  "topic": "domoticz/out",
  "username": "username",
  "password": "password"
}

Values can be omitted from this dictionary, and the values that need overriding can be kept, e.g.

"mqtt": {
    "port": 1234
}

to only override the port value.

SSL

Set "ssl":1 or true in config.json to turn on SSL (ie: server connects with https:// rather than http://). You will need to specify your SSL port - usually "port":"443" by default.

Tips

Authentication

If Domoticz is set up to use basic or form login authentication, set "server":"user:pass@ip" within config.json. The plugin will internally extract the username and password, base64 encode it and send it as a http authorization header whenever it talks to your Domoticz server.

Issues pairing to Homebridge when you have a lot of Domoticz sensors...

If you have more than 99 devices in Domoticz, you need to limit the number of devices exposed to HomeKit (Homebridge only supports 99 Accessories on a single bridge - whilst we could combine multiple sensors into a single homekit accessory within the plugin, the possible combinations out there are endless, so we won't).

Therefore, to reduce the number of devices exposed from Domoticz, create a roomplan within Domoticz via Setup > More Options > Plans > roomplan. Add only the devices you wish to be exposed to HomeKit to this new roomplan within Domoticz, and then get it's roomidx number. Set "roomid" in your config.json file to this room number.

Is my device supported??

See Domoticz API Reference - query your device as per the instructions there, and if your device’s SwitchTypeVal isn't in the 'Supports:' list or Type/SubType aren’t in the ’Provides:' list above then it'll just appear as an On/Off switch. Open a new issue including the output from the json api and I’ll get look into supporting that particular device more fully!

What does the Override slider represent on the EvoHome Thermostat?

Override-Until time in minutes from the current time. Allows setting an override-until time upto 8 hours in the future. Setting this slider to 0 will set the heating mode to Auto. Setting it to 481 will set the override as a PermanentOverride.

Why does my iOS10 > iOS12 iPad no longer work as a HomeHub?

You've added a new 'TV' device type. This is unsupported on < iOS13, and breaks the ability for (for example) an iOS 10.3.4 iPad 4th Gen from being used as a HomeHub. Removing the TV accessory does not resolve the issue. You MUST remove / disable the accessory, and then delete and recreate your home from scratch to continue using non iOS13 devices as HomeHubs. This is not unique to this plugin's implementation of the TV device type. If you (for instance) add the Sky-Q-Experimental platform plugin alongside eDomoticz, this will break non iOS13 homehubs.

In short, if you do not have an AppleTV4, HomePod, or iPad running iOS13 on your home network and you wish to retain remote control abilities from off-LAN, you cannot use the new HomeKit TV device type in ANY homebridge plugin.

Logging

Complies with Homebridge's native logging & debugging methodology - see https://github.com/nfarina/homebridge/wiki/Basic-Troubleshooting