diff --git a/apps/zigbee2mqtt/config.json b/apps/zigbee2mqtt/config.json new file mode 100755 index 00000000..658e580f --- /dev/null +++ b/apps/zigbee2mqtt/config.json @@ -0,0 +1,32 @@ +{ + "$schema": "../schema.json", + "name": "Zigbee2MQTT", + "port": 8290, + "available": true, + "exposable": true, + "id": "zigbee2mqtt", + "tipi_version": 1, + "version": "1.35", + "categories": [ + "utilities", + "automation" + ], + "description": "Zigbee to MQTT bridge, get rid of your proprietary Zigbee bridges", + "short_desc": "Zigbee to MQTT bridge", + "author": "@Koenkk", + "source": "https://github.com/Koenkk/zigbee2mqtt", + "website": "https://www.zigbee2mqtt.io/", + "form_fields": [ + { + "type": "string", + "label": "zigbee device path", + "required": true, + "hint": "/dev/ttyUSB0", + "env_variable": "Z2M_DEVICE" + } + ], + "supported_architectures": [ + "arm64", + "amd64" + ] +} \ No newline at end of file diff --git a/apps/zigbee2mqtt/data/.gitkeep b/apps/zigbee2mqtt/data/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/zigbee2mqtt/docker-compose.yml b/apps/zigbee2mqtt/docker-compose.yml new file mode 100644 index 00000000..83d14c26 --- /dev/null +++ b/apps/zigbee2mqtt/docker-compose.yml @@ -0,0 +1,43 @@ +version: "3.7" + +services: + + zigbee2mqtt: + container_name: zigbee2mqtt + image: koenkk/zigbee2mqtt:1.35 + environment: + - TZ=${TZ} + volumes: + - ${APP_DATA_DIR}/data/:/app/data + devices: + - ${Z2M_DEVICE}:/dev/ttyACM0 + ports: + - ${APP_PORT}:8080 + expose: + - 8080 + restart: unless-stopped + labels: + # Main + traefik.enable: true + traefik.http.middlewares.zigbee2mqtt-web-redirect.redirectscheme.scheme: https + traefik.http.services.zigbee2mqtt.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.zigbee2mqtt-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.zigbee2mqtt-insecure.entrypoints: web + traefik.http.routers.zigbee2mqtt-insecure.service: zigbee2mqtt-web + traefik.http.routers.zigbee2mqtt-insecure.middlewares: zigbee2mqtt-web-redirect + # Websecure + traefik.http.routers.zigbee2mqtt.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.zigbee2mqtt.entrypoints: websecure + traefik.http.routers.zigbee2mqtt.service: zigbee2mqtt-web + traefik.http.routers.zigbee2mqtt.tls.certresolver: myresolver + # Local domain + traefik.http.routers.zigbee2mqtt-local-insecure.rule: Host(`zigbee2mqtt.${LOCAL_DOMAIN}`) + traefik.http.routers.zigbee2mqtt-local-insecure.entrypoints: web + traefik.http.routers.zigbee2mqtt-local-insecure.service: zigbee2mqtt-web + traefik.http.routers.zigbee2mqtt-local-insecure.middlewares: zigbee2mqtt-web-redirect + # Local domain secure + traefik.http.routers.zigbee2mqtt-local.rule: Host(`zigbee2mqtt.${LOCAL_DOMAIN}`) + traefik.http.routers.zigbee2mqtt-local.entrypoints: websecure + traefik.http.routers.zigbee2mqtt-local.service: zigbee2mqtt-web + traefik.http.routers.zigbee2mqtt-local.tls: true diff --git a/apps/zigbee2mqtt/metadata/description.md b/apps/zigbee2mqtt/metadata/description.md new file mode 100644 index 00000000..2297dfca --- /dev/null +++ b/apps/zigbee2mqtt/metadata/description.md @@ -0,0 +1,29 @@ +# Zigbee2MQTT ๐Ÿ๐ŸŒ‰๐Ÿ”จ + +Allows you to use your Zigbee devices without the vendor's bridge or gateway. + +It bridges events and allows you to control your Zigbee devices via MQTT. In this way you can integrate your Zigbee devices with whatever smart home infrastructure you are using. + +|**Compatible** | **Integrations** | **Open Source** | +|---|---|---| +| Zigbee2MQTT supports [various Zigbee adapters](https://www.zigbee2mqtt.io/guide/adapters/) and a big bunch of [devices](https://www.zigbee2mqtt.io/supported-devices/). | Zigbee2MQTT integrates well with most home automation solutions because it uses [MQTT](https://mqtt.org/). | Zigbee2MQTT is licenced under the free [GNU General Public License 3](https://www.gnu.org/licenses/gpl-3.0.de.html). | + +## Setup + +You need to have a mqtt broker like [eclipse mosquitto](/apps/eclipse-mosquitto) running to use this app. + +### Configuration of the Zigbee adapter + +For USB apdaters you can use dmesg command on Linux hosts to find the mounted device. Where possible you should use the `/dev/serial/by-id/` path of the stick, instead of `/dev/tty*`. This is because the `/dev/tty*` path can change - for example ยด/dev/ttyACM0` may become `/dev/ttyACM1` and then later back to `/dev/ttyACM0`. The `/dev/serial/by-id/` path won't change. + +The **usb device path** must be set in the settings of the app before installing. + +## Integrations + +Zigbee2MQTT integrates well with (almost) every home automation solution because it uses MQTT. However the following integrations are worth mentioning: + +- [Home Assistant](/apps/homeassistant) +- [Homey](https://homey.app/) +- [Domoticz](https://www.domoticz.com/) +- [Gladys Assistant](https://gladysassistant.com/) +- [IoBroker](https://www.iobroker.net/) \ No newline at end of file diff --git a/apps/zigbee2mqtt/metadata/logo.jpg b/apps/zigbee2mqtt/metadata/logo.jpg new file mode 100644 index 00000000..0f9621f6 Binary files /dev/null and b/apps/zigbee2mqtt/metadata/logo.jpg differ