Make Zumtobel Litecom CCD fully accessible through MQTT and discoverable by Home Assistant.
🚧 This Project is Work In Progress 🚧
docker run ghcr.io/swissmanu/litecom2mqtt/litecom2mqtt:latest
Pass configuration to the litecom2mqtt container using Dockers -e
parameter as environment variables. Please refer to the "Configuration" section below for available configuration parameters.
litecom2mqtt
is configured using environment variables. All environment variables not declared as
"optional" must be defined.
Variable | Description |
---|---|
LITECOM2MQTT_MQTT_BROKER_HOST |
The hostname where your MQTT broker is running. Examples: 192.168.1.42 , mosquitto.domin.tld |
LITECOM2MQTT_MQTT_BROKER_PORT |
The port on which your MQTT broker is running on the given host. Examples: 1883 , 8883 |
LITECOM2MQTT_MQTT_BROKER_PROTOCOL |
The protocol to use to connect to you MQTT broker. Allowed values: mqtt , mqtts |
LITECOM2MQTT_MQTT_TOPIC_PREFIX |
Optional. All litecom2mqtt MQTT topics are prefixed using this string.Default value: litecom2mqtt |
LITECOM2MQTT_LOG_LEVEL |
Optional. One of DEBUG , INFO , WARNING , ERROR , or CRITICAL to control log verbosity.Default value: ERROR |
LITECOM2MQTT_LITECOM_HOST |
The host where your Litecom CCD can be reached. Examples: 192.168.1.50 , litecom.yourdomain.tld |
LITECOM2MQTT_LITECOM_CONSUMER_NAME |
|
LITECOM2MQTT_LITECOM_CONSUMER_API_KEY |
|
LITECOM2MQTT_LITECOM_STATE_MQTT_TOPIC_PREFIX |
Optional. The topic prefix used by your Litecom CCD to publish state information. Default value: litecom |
LITECOM2MQTT_HOMEASSISTANT_DISCOVERY_MQTT_TOPIC_PREFIX |
Optional. litecom2mqtt will announce devices, zones, etc. to Home Assistant within this topic prefix.Default value: homeassistant |
LITECOM2MQTT_HOMEASSISTANT_ANNOUNCE_DEVICES |
Optional. If true , Litecom devices and their services (lighting, blinds, etc.) are announced to Home Assistant.Default value: false |
LITECOM2MQTT_HOMEASSISTANT_ANNOUNCE_GROUPS |
Optional. If true , Litecom groups and their services are announced to Home Assistant.Default value: false |
LITECOM2MQTT_HOMEASSISTANT_ANNOUNCE_ROOMS |
Optional. If true , Litecom rooms and their services are announced to Home Assistant.Default value: false |
LITECOM2MQTT_HOMEASSISTANT_ANNOUNCE_ZONES |
Optional. If true , Litecom zones and their services are announced to Home Assistant.Default value: false |
LITECOM2MQTT_HOMEASSISTANT_RETAIN_ANNOUNCEMENTS |
Optional. If true , Home Assistant announcement MQTT messages are retained.Default value: false |
- When setting a value of a device explicitly, Litecom does not propagate that value to its parent hierarchy (i.e., groups, rooms, and zones.).
- Setting a scene for a room with a Circle device,
activeScene
for that room becomesnull
. 🧐 Maybe there's a way how we can compensate for this?
litecom2mqtt
is written in TypeScript for
NodeJS. You get the best developer experience with
vscode and a
devcontainer; a
container configuration is present.
https://www.npmjs.com/package/openapi-typescript-codegen
-
Download the OpenAPI spec from the Litecom CCD (
https://ADDRESS/docs/rest/
) and place it in the projects root aslitecom-openapi.yml
-
Build the generators Docker image locally, then:
docker run -v ./:/data openapi-typescript-codegen --input /data/litecom-openapi.yaml --output /data/src/litecom/restClient
-
Add the
.ts
file extension to all import statements in all files of the generated clients. deno needs this. -
Done.