Aller au contenu

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.

Installation de Hassbian

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.yaml et ajouter
freebox:
  host: 97w9w3uw.fbxos.fr
  port: 44024

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

zwave:
  usb_path: /dev/serial/by-id/usb-0658_0200_FFFFFFFF-FFFF-FFFF-2417-0829011513B3-if00

Controleur RFXcom

Ajouter au fichier configuration.yaml

rfxtrx:
device: /dev/ttyUSB0
sensor:
   platform: rfxtrx
automatic_add: True

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:

notify:

   name: essai

platform: pushbullet

 api_key: o.6Qp268lvm1I6MxUBfebYTkq5OBhbPxt9

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

binary_sensor:

platform: rfxtrx
automatic_add: True

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