Wiki domotique2
Home-assistant¶
Installation Docker-compose¶
mkdir home/mathgon/homeassistant cd home/mathgon/homeassistant docker run -d –name=“home-assistant” -v /home/mathgon/homeassistant_config:/config -v /etc/localtime:/etc/localtime:ro –net=host homeassistant/home-assistant
docker-compose restart
Mise à jour du container¶
docker-compose pull docker-compose up -d –build homeassistant
Mapping des périphériques USB¶
Afin d'accéder aux controleurs zwave et RF, il faut mapper leurs répertoires de montage dans le container home-assistant
docker-compose.yaml
version: '3'
services:
homeassistant:
container_name: home-assistant
image: homeassistant/home-assistant
volumes:
- /home/mathgon/homeassistant/config:/config
- /etc/localtime:/etc/localtime:ro
- /dev/ttyUSB0:/dev/ttyUSB0
- /dev/serial/by-id/usb-0658_0200_FFFFFFFF-FFFF-FFFF-2417-0829011513B3-if00:/dev/serial/by-id/usb-0658_0200_FFFFFFFF-FFFF-FFFF-2417-0829011513B3-if00
- /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E2EF42-if00:/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E2EF42-if00
- /dev/ttyACM0:/dev/ttyACM0
restart: always
network_mode: host
privileged: true
Accès samba¶
sudo nano /etc/samba/smb.conf
[HOME ASSISTANT]
path = /home/mathgon/home-assistant_config/
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
force create mode = 0777
force directory mode = 0777
hosts allow =
Controleurs Zigbee¶
Utilisation d'un CCR 2531 comme passerelle zigbee. Nécessite de flasher la puce CCR2531 afin de la convertir en zigbee2mqtt
Flasher¶
Nécessite de flasher la puce via un périphérique dédié (CC Debugger) ou à l'aide d'un Raspberry avec le montage suivant
https://notenoughtech.com/home-automation/flashing-cc2531-without-cc-debugger/
Installer WiringPi
sudo apt-get install wiringpi gpio -v see if the USB device is wired correctly running:
git clone https://github.com/jmichault/flash_cc2531.git cd flash_cc2531 and ./cc_chipid
Cette commande doit retourner ID = b524, si une autre valeur est retournée, vérifier les branchements.
Cloner le repository avec la dernière version
git clone https://github.com/Koenkk/Z-Stack-firmware.git unzip ./Z-Stack-firmware/coordinator/Z-Stack_Home_1.2/bin/default/CC2531_DEFAULT_20190608.zip
./cc_erase ./cc_write ./CC2531ZNP-Prod.hex
Déconnecter les cables, rebooter le raspberry.
Container Zigbee2mqqt¶
Ajouter au fichier docker-compose
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
volumes:
- ./zigbee2mqtt/data:/app/data
devices:
- /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E2EF42-if00:/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E2EF42-if00
#- /dev/ttyACM0:/dev/ttyACM0
- /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E2EF42-if00:/dev/ttyACM0
- /dev/ttyACM1:/dev/ttyACM1
restart: unless-stopped
network_mode: host
Modification de cette partie du fichier suite à mise du volume et déconnexion de l'adaptateur usb, ttyACM0 → ttyACM1 (voir la partie commentée)
Paramétrer zigbee2mqtt¶
Le fichier de configuration ./zigbee2mqtt/data/configuration.yaml a automatiquement été créé avec le container. L'éditer afin de renseigner les paramètres du broker mqtt et la connection avec HA.
homeassistant: true
permit_join: true mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://localhost'
user: home-assistant
password: @
serial:
port: /dev/ttyACM0
Ajouter des devices zigbee¶
Procéder à l'appairage des devices suivant la procédure spécifique à celui-ci C'est à la suite du fichier ./zigbee2mqtt/data/configuration.yaml que seront ajoutés les devices suivant le modèle suivant:
devices:
'0x00158d0004254c41':
friendly_name: 'garage_TH'
'0x00158d000445ddc6':
friendly_name: 'chambre_TH'
Le friendly_name peut-être ajusté afin qui soit plus facilement retrouvable dans la HA
Sécuriser la¶
Afin d'empêcher l'ajout de nouveaux device editer le fichier ./zigbee2mqtt/data/configuration.yaml et changer en permit_join: false
Liste de périphériques¶
Sensors¶
Controllers¶
Intégration à HA¶
lsub doit faire apparaitre une nouvelle ligne dans les devices détectés:
Bus 002 Device 002: ID 0451:16a8 Texas Instruments, Inc.
ls /dev/serial/by-id retourne l'id du device. Il doit être mentionné dans le fichier docker-compose
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E2EF42-if00
Zwave¶
Trouver ou y connecté le controleur usb ``` ls /dev/serial/by-id
usb-0658_0200_FFFFFFFF-FFFF-FFFF-2417-0829011513B3-if00 `` Ajouter au fichierconfiguration.yaml`
``` zwave:
usb_path: /dev/serial/by-id/usb-0658_0200_FFFFFFFF-FFFF-FFFF-2417-0829011513B3-if00
## Hard reset du donfle zwave
Afin de supprimer la liste de tous les périphériques déja vus. Le connecter sur une autre machine et
``` sudo -s echo -ne “\x01\x04\x00\x42\x01\xB8” > /dev/ttyACM0 ```
### Controleur RFXcom
Ajouter au fichier `configuration.yaml`
device: /dev/ttyUSB0
sensor:
platform: rfxtrx
automatic_add: True
# MQTT
Parti pris de ne pas installer directement le broker MQTT sur le serveur mais dans un container attenant à celui de home assistant.
## Modification du fichier docker-compose
mosquitto: container_name: mosquitto image: eclipse-mosquitto restart: always expose: - "1883" - "9001" ports: - "1883:1883" - "9001:9001" volumes: - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf - ./mosquitto/data:/mosquitto/data - ./mosquitto/log:/mosquitto/log
mkdir mosquitto mkdir mosquitto/log mkdir mosquitto/data touch mosquitto/mosquitto.conf touch mosquitto/log/mosquitto.log sudo chmod o+w /home/mathgon/homeassistant/mosquitto/mosquitto.log sudo chown -R 1883:1883 /home/mathgon/homeassistant/mosquitto/log/ sudo chown -R 1883:1883 /home/mathgon/homeassistant/mosquitto/data/ retry_interval 20 sys_interval 10 store_clean_interval 10 user mosquitto max_inflight_messages 40 max_queued_messages 200 queue_qos0_messages false message_size_limit 0 allow_zero_length_clientid true persistent_client_expiration 3m allow_duplicate_messages false autosave_interval 60 autosave_on_changes falsepersistence true persistence_file mosquitto.db persistence_location /mosquitto/data/
Port to use for the default listener. listener 1883 ```¶
Tester le broker MQTT¶
Maintenant que le broker est prêt, publions notre premier message.
Installer le client MQTT
sudo apt-get install mosquitto-clients
On se connecte au serveur (-h) localhost sur le Topic (-t) sensor/temperature et on publie le message (-m) 22.5
Ouvrir deux terminaux et executer les deux commandes suivantes:
mosquitto_pub -h localhost -t sensor/temperature -m 22.5
Ou éventuellement souscrire à tous les topics
mosquitto_sub -h localhost -t “#” -v
Ajout du broker MQTT dans HA¶
configuration.yaml
Une sonde Temp/Hum à base d'ESP8266 sous micropython¶
main.py print youpi
Ajout de la sonde dans HA¶
configuration.yaml