Index
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¶
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¶
[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
see if the USB device is wired correctly running: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
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
frontend:
port: 8643
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:
ls /dev/serial/by-id retourne l'id du device. Il doit être mentionné dans le fichier docker-compose
Zwave¶
Trouver ou y connecté le controleur usb
Ajouter au fichierconfiguration.yaml
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
Controleur RFXcom¶
Ajouter au fichier configuration.yaml
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
Créer les répertoires correspondants ainsi que le fichier de configuration
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/
mosquitto.conf
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 false
persistence 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
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:
Ou éventuellement souscrire à tous les topics
Ajout du broker MQTT dans HA¶
configuration.yaml
Une sonde Temp/Hum à base d'ESP8266 sous micropython¶
main.py
Ajout de la sonde dans HA¶
configuration.yaml