Aller au contenu

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, ttyACM0ttyACM1 (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`
rfxtrx:

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

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
Modifier les droits afin que le container mosquitto puisse écrire dans les fichiers
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

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

mqtt:
broker: 192.168.1.100
port: 1883
discovery: true
username: "home-assistant"
password: "@"

Une sonde Temp/Hum à base d'ESP8266 sous micropython

main.py print youpi

Ajout de la sonde dans HA

configuration.yaml

sensor:

   platform: mqtt

name: “Temperature”

 state_topic: "essai/esp8266_2cad62"
 unit_of_measurement: '°C'
 value_template: "{{value_json.Temperature}}"
- platform: mqtt
 name: "Humidite"
 state_topic: "essai/esp8266_2cad62"
 unit_of_measurement: '%'
 value_template: "{{value_json.Humidite}}"