Sign inSign up

vincentds/dobiss2mqtt

By vincentds

•Updated over 5 years ago

Connect dobiss to mqtt and work with home assistant's discovery mechanism

Image
1

100K+

vincentds/dobiss2mqtt repository overview

⁠Dobiss 2 MQTT

This service needs to be pointed to a Dobiss CAN Programmer as well as an MQTT server.

It will then expose your lights (outputs) as MQTT lights using the Home Assistant discovery protocol.

For now this only supports:

  • turning relay, dimmer & 0-10v outputs on/off
  • dimming dimmer and 0-10v outputs to a specific percentage
  • reading the state of outputs if relay, dimmer & 0-10v modules

It will set up a socket connection to the CAN Programmer. The intention is to not have a permanent connection set up so that the regular dobiss app still works nicely alongside this service. For the moment though the socket is always connected. Which means that the native dobiss apps might encounter issues.

It will make a lot of requests to your CAN Programmer since it'll poll for the state of every relay you have.

⁠Config

See data/config.js.example⁠ for the main configuration. Rename it to config.js and place it under the data folder.

There are also a couple of things which can be configured through an environment variable or through the config file.

envconfig keydescriptionexample
CONFIG_PATH-Where does the config.js file live./data/config.js
POLL_INTERVAL_IN_MSpollIntervalInMsTo control the polling interval. Eg: the time between polling the output states on the modules in milliseconds.500
MQTT_URLmqtt.urlsURL for the MQTT brokermqtt://host
DOBISS_HOSTdobiss.hostIP of your Dobiss IP Interface (CAN Programmer)192.168.0.2
DOBISS_PORTdobiss.portPort of your Dobiss IP Interface (CAN Programmer)10001
DOBISS_INTERFACEdobiss.interfaceWhich type of Dobiss installation. See Dobiss Installation Types for the possibilities.ANBIANCEPRO
-modulesThe array of modules along with their outputs available on your dobiss installation. Needs to be configured in the config file.-
DEBUG-Control what gets logged. See debug npm package. Everything from dobiss2mqtt starts with 'dobiss2mqtt.'*

⁠Dobiss Installation Types

I don't know all the protocols dobiss speaks. But this is a list of all the installations / systems there are. http://www.dobiss.com/nl/vorige-gammas⁠ as well as http://www.dobiss.com/nl/onze-oplossingen⁠.

⁠SX Evolution

Set dobiss.interface to SXEVOLUTION

⁠SX Ambiance

Set dobiss.interface to SXAMBIANCE

Currently this is linked to the same protocol as SXEVOLUTION. This might not be working correctly.

SX has a dimmer range going from 0 to 10. So brightness changes in steps of 10%.

0-10v modules are not tested on this. If it works, let me know.

⁠Ambiance PRO

Set dobiss.interface to AMBIANCEPRO

⁠Evolution PRO

Set dobiss.interface to EVOLUTIONPRO

Currently this is linked to the same protocol as AMBIANCEPRO. This might not be working correctly.

0-10v modules are not tested on this. If it works, let me know.

⁠NXT

Set dobiss.interface to NXT.

Currently this is linked to the same protocol as AMBIANCEPRO. This might not be working correctly. Perhaps NXT also implements this older protocol. Let me know if this does not work.

It appears NXT works via a new API⁠ via REST and WebSockets. This is not implemented currently. If you have an NXT system, and are not affraid to dig into the code a little bit, reach out on the home assistant community⁠ and we can help you integrate it.

⁠Installation

⁠Docker

Here's an example config. Make sure to mount your data folder containing the config.js file.

version: '3.5'

services:
  dobiss2mqtt:
    container_name: dobiss2mqtt
    image: vincentds/dobiss2mqtt:latest
    restart: unless-stopped
    volumes:
    - source: /tank/configs/dobiss2mqtt
      target: /data
      type: bind

⁠Development

Grab node which is defined in package.json -> volta.node.

Create a config.js file in the data folder based on the example file provided.

npm i && npm run start should get you up and running with ts-node-dev executing the typescript code and restarting automatically when you make a change.

It will set the ENV of CONFIG_PATH to ./data/config.js so that it will load the correct file.

It's set up to ignore reloading when the config.js file changes.

Make sure npm run validate passes.

Create a PR when stuff is working. I know that tests should be added to create a good PR. I will look into refactoring the codebase a bit so that testing is easier and everything is a bit more modular.

Tag summary

Content type

Image

Digest

Size

59.3 MB

Last updated

over 5 years ago

docker pull vincentds/dobiss2mqtt