----------------
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-----------------------
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 ...