Page 1 sur 1

[Tuto] Domoticz sur Docker sur Synology DSM 6

Publié : 26 mai 2021, 23:12
par ccyril91
1°)Pré requis :
----------------
package docker installé
"docker compose" mis à jour : via putty / ssh, en root sur le synology

2°) dongles usb
---------------
via putty / ssh : lsusb pour identifier les ports
si la commande n'est pas connue :
apt-get update
apt-get install usbutils

si on ne voit pas de "ttyACM0" ou "ttyUSB0", alors
insmod /lib/modules/usbserial.ko
insmod /lib/modules/ftdi_sio.ko
insmod /lib/modules/cdc-acm.ko

-> sans doute à exécuter à chaque redémarrage du syno

3°) pour se simplifier les redémarrages : installer "Portainer" via Docker / Registre
---------------------------------------------------------------------
C'est un GUI

4°) La souche de domoticz/domoticz
----------------------------------

en ssh, en root, sur le syno

cd /volume1/docker
docker pull domoticz/domoticz


5°) Le dockerfile
--------------
Ca construit le container avec les paquets qui vont bien.

Code : Tout sélectionner

FROM debian:buster-slim

ARG APP_VERSION
ARG APP_HASH
ARG BUILD_DATE

LABEL org.label-schema.version=$APP_VERSION \
      org.label-schema.build-date=$BUILD_DATE \
      org.label-schema.vcs-ref=$APP_HASH \
      org.label-schema.vcs-url="https://github.com/domoticz/domoticz" \
      org.label-schema.url="https://domoticz.com/" \
      org.label-schema.vendor="Domoticz" \
      org.label-schema.name="Domoticz" \
      org.label-schema.description="Domoticz open source Home Automation system" \
      org.label-schema.license="GPLv3" \
      org.label-schema.docker.cmd="docker run -v ./config:/config -v ./plugins:/opt/domoticz/plugins -e DATABASE_PATH=/config/domoticz.db -p 8080:8080 -d domoticz/domoticz" \
      maintainer="Domoticz Docker Maintainers <info@domoticz.com>"

WORKDIR /opt/domoticz

ARG DEBIAN_FRONTEND=noninteractive

RUN set -ex \
    && apt-get update \
    && apt-get install --no-install-recommends -y \
        tzdata \
        unzip \
        git \
        libudev-dev \
        libusb-0.1-4 \
        libsqlite3-0 \
        curl libcurl4 libcurl4-gnutls-dev \
        libpython3.7-dev \
        python3 \
        python3-pip \
    && OS="$(uname -s | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" \
    && MACH=$(uname -m) \
    && if [ ${MACH} = "armv6l" ]; then MACH = "armv7l"; fi \
    && archive_file="domoticz_${OS}_${MACH}.tgz" \
    && version_file="version_${OS}_${MACH}.h" \
    && history_file="history_${OS}_${MACH}.txt" \
    && curl -k -L https://releases.domoticz.com/releases/beta/${archive_file} --output domoticz.tgz \
    && tar xfz domoticz.tgz \
    && rm domoticz.tgz \
    && mkdir -p /opt/domoticz/userdata \
    && apt-get remove --purge --auto-remove -y curl \
    && rm -rf /var/lib/apt/lists/* \
    && ln -s /usr/bin/pip3 /usr/bin/pip \
    && pip3 install setuptools requests

VOLUME /opt/domoticz/userdata

EXPOSE 8080
EXPOSE 443

ENV LOG_PATH=
ENV DATABASE_PATH=
ENV WWW_PORT=8080
ENV SSL_PORT=443
ENV EXTRA_CMD_ARG=

# timezone env with default
ENV TZ=Europe/Paris

COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh \
    && ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/opt/domoticz/domoticz"]

6°) Le docker-compose
--------------------
Ca paramètre le container

A adapter suivant votre configuration :
les ports redirigés : à minima le 8080
le nom de host
l'adresse ip (que je fixe volontairement)
le nom de réseau docker ("domotique" chez moi)
le mode privilégié est obligatoire pour l'accès aux ports USB
les id° de ports USB

Code : Tout sélectionner

version: '3.3'

services:
  domoticz:
    image          : domoticz-official
    container_name : domoticz-official
    privileged     : true
    restart        : unless-stopped

    cap_add:
      - ALL

    devices:
      - "/dev/ttyACM0:/dev/ttyACM0"
      - "/dev/ttyUSB0:/dev/ttyUSB0"

    ports:
      - 8080:8080
      - 8443:443
      - 9440:9440

    volumes:
      - ./config:/opt/domoticz/userdata

    environment:
      - TZ=Europe/Paris
      - LOG_PATH=/config/logs/domoticz.log

    networks:
      # domotique: {}
      domotique:
        ipv4_address: 172.19.0.2
  
networks:
  domotique:
    external : true
    name     : domotique
7°) Remarques sur Docker
-----------------------
Le package synology domoticz utilise des "bind", dans /volume1/docker
Y a plus de SUDO : un container s'exécute en root
Y a plus de systemctl : un container a vocation à faire tourner 1 process, pas une collection
Faut oublier l'interface graphique docker de Synology, à part pour arrêter /redémarrer les containers. C'est indispensable de se mettre à la ligne de commande (y a mois d'une dizaine de commandes à connaître pour être à l'aise).


8°) Réseau Zigbee
----------------
Impossible de faire fonctionner la Conbee2, même avec le container tout fait de marthoc
La zigate+ fonctionne très bien, dans le même container, et en prime on a une interface graphique d'administration de TOUTE BEAUTE.

a°) install pluggin Zigate

https://www.domoticz.com/wiki/Python_Plugin_Manager

ou

Aller dans le répertoire des plugins

git clone https://github.com/pipiche38/Domoticz-Zigate.git

chmod +x Domoticz-Zigate/plugin.py



b°) apt-get install usbutils

lsusb -ui

c°) Dans le synology via putty / ssh, en root :
insmod /lib/modules/usbserial.ko
insmod /lib/modules/ftdi_sio.ko
insmod /lib/modules/cdc-acm.ko

d°) vérif mappage des ports usb dans docker (déjà fait dans les fichiers ci dessus)

e°) mapper le port 9440 dans docker (déjà fait dans les fichiers ci dessus)

f°) mettre les droits sur les fichiers du répertoire pluggin

g°)reconstruire le container domoticz

h°) dans domoticz
ajouter les widgets dans "mesures" et regarder les logs

dans le plugin :
mettre l'adresse ip externe (pas interne docker)
"initialize zigate" : effacement de la mémoire


i°) test
regarder les logs
se connecter en 9440

ressources : https://github.com/pipiche38/Domoticz-Z ... metrage.md


Voila. Je suis preneur de vos tests / remarques ...

Re: [Tuto] Domoticz sur Docker sur Synology DSM 6

Publié : 01 juin 2021, 17:03
par Seraph
Merci pour le tuto ;)

Justement j'étais en train d'installer un nouveau NAS (DS220+) et je devais me lancer dans l'installation de Domoticz.

J'ai quelques questions car je trouve que ca va un peu vite pour moi :? En plus je n'ai pas encore beaucoup de temps a y consacré mais j'ai remarqué quelques différences chez moi:
- apt-get n'est pas installé. J'ai vu un tuto pour utiliser Entware-ng a la place. J'imagine que je dois simplement remplacer les commande apt-get par OPKG?
- ensuite a l'étape 5 et 6, ce sont des fichiers qu'il faut créer ou alors juste la suite des commandes qu'il faut suivre?

En enfin: quels sont les avantages de passer par Docker?

merci encore en tout cas. Je vais essayer d'appliquer tout ça étape par étape.

Re: [Tuto] Domoticz sur Docker sur Synology DSM 6

Publié : 09 janv. 2022, 12:20
par ccyril91
Désolé pour la réponse tardive, je ne sais pas pourquoi je n'ai pas eu de notif ..

Alors, déjà, si tu n'as pas beaucoup de temps, et que tu ne connais pas Docker ne le fais pas :)
  • Docker te donne une couche d'abstraction et t'évite de modifier l'OS Synology, car à chaque montée de version du firmware Synology il faut refaire tout ou partie des modifs (et il y en a qqs unes, et il faut les passer pour rester sécurisé)

    Docker est hyper économe en ressources matérielles (avant j'avais une VM Linux, y a pas photo)

    C'est HYPER performant (y a pas plus performant).
N'hésite pas à m'envoyer un message privé si tu t'y colles
(c'est la pluie dehors, c'est le moment de faire de l'informatique 8-) )

Re: [Tuto] Domoticz sur Docker sur Synology DSM 6

Publié : 09 janv. 2022, 14:22
par Keros
ccyril91 a écrit : 09 janv. 2022, 12:20 N'hésite pas à m'envoyer un message privé si tu t'y colles
C'est dommage d'échanger en message privé, les autres membres ne voient pas vos échanges alors qu'ils pourraient avoir les mêmes interrogations.

Re: [Tuto] Domoticz sur Docker sur Synology DSM 6

Publié : 09 janv. 2022, 14:25
par ccyril91
les messages privés n'empêchent pas de faire après un résumé compréhensible et synthétique, pour les autres ;)

Re: [Tuto] Domoticz sur Docker sur Synology DSM 6

Publié : 09 janv. 2022, 14:30
par Keros
C'est du boulot en plus ;)