Skip to main content

A port of the python Library for the Domintell protocol using Secure Web Sockets and new login mecanism. Original work from Zilvinas Binisevicius (zilvinas@binis.me)

Project description

python-domintell: A python library to control the Domintell home automation system

This library was created to support Domintell protocol in home assisstant. It is based on python-velbus library by Thomas Delaet.

It is currently being used by the Domintell component in home assisstant but can also be used indepenently.

The latest version of the library is 0.0.16 and it is published as a python package on pypi

API documentation is not yet available.

Example usage

The library currently only supports a UDP communicatin via DETH02 Domintell module, it can be easily modified to support RS-232 intiarface (domintell light protocol). In order to use the library, you need to first initialize the controller and can then send and receive messages on the Domintell.

import time
import logging
import sys
import domintell
import credentials
import os, sys

def _on_message(message):
    print('received message')
    print(message)

logging.basicConfig(stream=sys.stdout, level=logging.INFO)

# UDP, Serial (or USB over serial) connection to Domintell controller
host = '192.168.0.1:17481'

controller = domintell.Controller(host) 
controller.subscribe(_on_message)

logging.info('LOGIN')
controller.login(credentials.host['SECRET'])

time.sleep(10)
logging.info('Starting scan')
controller.scan(None)

logging.info('Going to sleep')
time.sleep(100)
logging.info('Exiting ...')
controller.stop()

Installation

You can install the library with pip (pip install python-domintell) or by checking out the github repository and running python setup.py install at the root of the repository.

Supported modules

The following Domitell modules are currently supported by this library:

Module name Description Status Comments Using everyday?
DISM4 Control of 4 inputs (buttons) SUPPORTED All messages are supported Yes
DISM8 Control of 8 inputs (buttons) SUPPORTED All messages are supported Yes
DPBU01 1 button module SUPPORTED All messages are supported No
DPBU02 2 button module SUPPORTED All messages are supported No
DPBU04 4 button module SUPPORTED All messages are supported Rarely
DPBU06 6 button module SUPPORTED All messages are supported No
DBIR01 8 relay output module SUPPORTED All messages are supported Yes
DTRP01 Output card for the control of up to 4 trip switches SUPPORTED All messages are supported Yes
DTRP02 Output card for the control of 2 x 2 inverted trip switches SUPPORTED All messages are supported No
DDIM01 Control module for up to 8 dimmers SUPPORTED All messages are supported Yes
DTEM01 Temperature sensor module. Allows the connection of the temperature sensor SUPPORTED Only basic messages Yes
DTEM02 Temperature sensor module. Allows the connection of the temperature sensor SUPPORTED Only basic messages Yes
DDIR01 Infrared Sensor NOT SUPPORTED No plans to support No
DTSC0x TFT back-lit color touchscreen SUPPORTED Only temperature messages are supported Yes
DMOV01 Movement sensor SUPPORTED All messages are supported Yes
DLCD01 LCD NOT SUPPORTED No
DTRV01 4 outputs control module. For the control of shutters, valves, motors, etc SUPPORTED All messages are supported No
DLED01 4 outputs led control module SUPPORTED All messages are supported Yes
DTRVBT01 Single output card controlling motors, valves, shutters or Velux with low tension between 12 to 24Vdc SUPPORTED All messages are supported No
DAMPLI01 4 zones stereo audio amplifi er NOT SUPPORTED No plans to implement No
VAR Variable SUPPORTED All messages are supported No
SYS System variable SUPPORTED All messages are supported No
DOUT10V01 0 - 10Vdc output module SUPPORTED All messages are supported No
DLCD01 LCD panel NOT SUPPORTED No
DFAN01 Fan coil controller NOT SUPPORTED No
DMR01 Output card with 5 x 250 V/3 A monopolar relays. SUPPORTED All messages are supported Yes
DIN10V01 0 - 10Vdc input module NOT SUPPORTED No

Adding support for other modules

The Domintell website contains an overview of the different available modules and their protocol documentation. In order to add support for an additional module, read through the protocol documemntation and add support for missing messages (many messages are shared between modules so make sure to check if a message already exists or not)

Steps to add support for an additional module:

  • Look up the protocol documentation of the module you want to include at the Domintell website.
  • Go through the messages directory and look for messages in the protocol information sheet that are not yet supported. Create a new file in the messages folder for each unsupported message. Every new message should inherit from the Message object and reuse common functionality.
  • Implement constructor method for each new message
  • Implement the populate and data_to_binary methods for each new message
  • Add new messages to the init.py file in the messages folder
  • Test and iterate
  • Update the Supported modules section of the README.md file
  • Submit a pull request on Github

Further development

The library currently offers only the lowest level of functionality: sending and receiving messages to modules:

  • Modeling modules and their supported functions as entities
  • Only allowing to send supported messages to modules
  • [*] Auto-discovery of modules
  • Exposing the velbus controller as an external API so it can be shared between different consumers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

domipy-0.0.12.tar.gz (24.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

domipy-0.0.12-py3.9.egg (99.6 kB view details)

Uploaded Egg

domipy-0.0.12-py3.8.egg (103.4 kB view details)

Uploaded Egg

domipy-0.0.12-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

Details for the file domipy-0.0.12.tar.gz.

File metadata

  • Download URL: domipy-0.0.12.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.0

File hashes

Hashes for domipy-0.0.12.tar.gz
Algorithm Hash digest
SHA256 61cc5f64c3b901a53832330956d0b87d4e3c48378dccf7b3154b589498b20f32
MD5 a21247913f2b502cf7075597fee7c51b
BLAKE2b-256 61337d8d570119094adb11e7b2f5d57dc31553e17022a1d08eb02f5c8892816f

See more details on using hashes here.

File details

Details for the file domipy-0.0.12-py3.9.egg.

File metadata

  • Download URL: domipy-0.0.12-py3.9.egg
  • Upload date:
  • Size: 99.6 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.0

File hashes

Hashes for domipy-0.0.12-py3.9.egg
Algorithm Hash digest
SHA256 ba3ca91e6967ee28f99e595b6eee9e34ea1ebab1dc350ec28eed3b3f5cd53ea9
MD5 1583ef89400511683dd11c9eda6a7e47
BLAKE2b-256 4a02e5c6f37a25354d71cdcad3fb660deaeabaa0a46e088fc4ca2b49b83e9b9e

See more details on using hashes here.

File details

Details for the file domipy-0.0.12-py3.8.egg.

File metadata

  • Download URL: domipy-0.0.12-py3.8.egg
  • Upload date:
  • Size: 103.4 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.0

File hashes

Hashes for domipy-0.0.12-py3.8.egg
Algorithm Hash digest
SHA256 76dd6d313e7a52e49ff904690f8876337c118268be3a97fe28ded085548cf8cd
MD5 65ad9884b97fbc4309128d98acf78054
BLAKE2b-256 75a7096fbe42510850e0905284a905def7fc13351b4d2a2c3a6aa5c36acc155a

See more details on using hashes here.

File details

Details for the file domipy-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: domipy-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 45.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.0

File hashes

Hashes for domipy-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 e314168d0f340dfa4fadcefc962f36223a968be73886b3eba928098706b88923
MD5 f9c2be7d868dc3add59df43a05be6de3
BLAKE2b-256 ef00b9ed7e8619a7cff04016e1d6bbc503cffa736888a6c8adf48268029f53b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page