Wiki domotique1
Développer un système domotique utilisant les protocoles RF433 et Zwave via un serveur installé sur un raspberry.
Software¶
Installation de Home Assistant¶
DONT: Télécharger et flasher l'image hass.io vers une carte SD. Booter et se rendre à l'adresse l'adresse http://hassio.local:8123/. Les mises à jour sont automatiquement téléchargées en une vingtaine de minutes. Le système fonctionne mais dans un container. Impossible de faire un sudo.
Télécharger et flasher l'image Hassbian vers une carte SD.
Booter et se rendre à l'adresse l'adresse http://hassbian.local:8123 ou http://192.168.1.10:8123 afin de vérifier l'installation.
Accessible également par ssh pi@hassbian port 22
Quelques scripts existent afin d'automatiser l'installation. Liste disponible par la commande
sudo hassbian-config show
Mise à jour de sqlite¶
Problème d'écriture dans la db résolut par une mise à jour de sqlite/
sudo apt-get install libsqlite3-dev
Ajout de samba¶
Les fichiers de configuration peuvent être modifiés nativement par sftp, mais il peut être intéressant d'y accéder via samba. github
sudo hassbian-config install samba
Plugins installés¶
- SSH serveur
TODO: connexion via clé plutot que password login: root, adresse: hassio.local, port:22
{
"workgroup": "WORKGROUP",
"name": "hassio",
"guest": true,
"map": {
"config": true,
"addons": true,
"ssl": false,
"share": true,
"backup": true
},
"username": "mathgon",
"password": "bitokuku",
"interface": "eth0"
}
Administration de Home assistant¶
La commande la plus importante permet de redémarrer le service, elle est particulièrement utile lorsque le frontend est inaccessible, notamment par une erreur dans le fichier de configuration.
sudo systemctl restart home-assistant@homeassistant.service
Backup automatique vers dropbox¶
Suite à de nombreuses réinstallations fastidieuses, le plus simple est de réaliser des backups réguliers. Voir tuto
Acces distant¶
Port forward de la freebox vers le server 192.168.1.100:8123 et paramétrage de mise à jour automatique de l'adresse ip de la freebox vers le domain attribué par no-ip.com
Le serveur domotique devient accessible à cette url
Configuration de Home assistant¶
La configuration se faisant au moyen de fichier yaml, il peut être intéressant de vérifier la syntaxe avec yamllint
Freebox¶
Controler la freebox et de profiter du tracking wifi
Paramétrer la freebox¶
- Se connecter à la freebox * Paramètres → Divers → Gestion des accès → Activer l'authentification par mot de passe * Valider l'association via le bouton de commande sur le boitier de la free box * Paramètres de la free box http://mafreebox.freebox.fr/api_version noter port et host
Associer la freebox à HA¶
- Modifier le fichier
configuration.yamlet ajouter
Activer le device tracker¶
Manual L'opération précédente crée le fichier known_devices.yaml dans lequel on peut renseigner les devices à suivre.
redmi4x_redmi:
hide_if_away: false
icon: mdi:face
mac: 18:F0:E4:D9:6C:01
name: MathGon
picture:
track: true
gravatar: dfog22@hotmail.com
kodi_openelec:
hide_if_away: false
icon:
mac: B8:27:EB:AE:02:87
name: Kodi (OpenELEC)
picture:
track: false
Controleur Zwave¶
Trouver ou y connecté le controleur usb
ls /dev/serial/by-id
usb-0658_0200_FFFFFFFF-FFFF-FFFF-2417-0829011513B3-if00
Ajouter au fichier configuration.yaml
Controleur RFXcom¶
Ajouter au fichier configuration.yaml
Configuration périphériques¶
Zwave - Aeotec ZW100 multisensor¶
Il faut changer la configuration de ce capteurs afin de pouvoir accès à toutes les informations
Configuration→Zwave, sélectionner le Node correspondant au périphérique, Node config options→5: Command Options. Changer la valeur de Basic set à Binary sensor report
Snippets/Tuto¶
Envoyer une notification pushbullet:¶
Exemple envoyant une notification toutes les 5 minutes
ajouter à configuration.yaml:
ajouter à automation.yaml:
alias: Test Every 5 Minutes
trigger:
platform: time
minutes: '/5'
seconds: 0
action:
service: notify.essai
data_template:
title: "Msg title"
message: "Envoi toutes les 5 minutes"
Autre exemple envoyant une notif lorsqu'un mouvement ou un choc est détecté
alias : Notification Mouvement
trigger:
platform: numeric_state
entity_id: sensor.aeotec_zw100_multisensor_6_burglar
above: '7'
action:
service: notify.pushbullet
data_template:
title: '{{ now().strftime("%H:%M %Y-%m-%d") }}'
message: "Mouvement garage"
alias : Notification Vibration
trigger:
platform: numeric_state
entity_id: sensor.aeotec_zw100_multisensor_6_burglar
above : '2'
below: '7'
action:
service: notify.pushbullet
data_template:
title: '{{ now().strftime("%H:%M %Y-%m-%d") }}'
message: "Choc porte"
Peut s'adapter afin de d'envoyer une notification si le seuil d'un capteur est dépassé tuto
Door sensor RF433¶
Usage pour recevoir les notifications de chatière.
configuration.yaml
Après usage retourne son id `091300009fab21019370 que l'on va rendre un peu plus user-friedly.
Le modèle utilisé est sous le protocole Lightning4, ne retournant qu'un statut on, il faut automatiquement retourner vers l'état off grace à off_delay
binary_sensor:
platform: rfxtrx
automatic_add: True
devices:
091300009fab21019370:
name: chatiere
device_class: door
off_delay:
seconds: 5
Hardware¶
Installation¶
Controleur Zwave¶
dongle usb
Listing¶
Nom Protocole Type Lien Q PU Rfxcom USB Transceiver RF433 Controleur lien 1 90
Troubleshooting guide¶
Play a chanel via API hhtp post¶
Jouer France inter¶
http://192.168.1.10/jsonrpc?request={“jsonrpc”:“2.0”, “id”:“Select channel”,“jsonrpc”:“2.0”,“method”:“Player.Open”,“params”:{“item”:{“channelid”:22}}}
Impossible d'écrire dans la base de données¶
Supprimer le fichier .db et relancer le service