Home Assistant & Visonic RF

Partager
Home Assistant & Visonic RF
Photo by Xingye Jiang / Unsplash

J'ai une centrale d'alarme Visonic vieillissante. Je l'ai intégrée à Home Assistant et j'en avais parlé ici, ça date et ça mériterais que je refasse l'interface série avec un ESP plus moderne sous espHome. Ca fonctionne globalement plutôt bien, mais il arrive que le lien soit perdu. Rarement, mais suffisamment pour ne pas rendre la solution fiable à 100%.

Par ailleurs j'utilise Alarmo et ce qui m'intéresse dans la partie Visonic c'est la remontée de capteurs que j'ai installé sur mes volets roulants qui sont des contacts filaires branchés sur les capteurs d'ouverture Visonic MC-302 des fenêtres.

J'avais essayé de remonter directement ces capteurs avec un RFLink ajusté en 868 Mhz, échec car il semblerait que Visonic utilise une modulation de fréquence spécifique (FSK), alors que le RFLink standard est conçu pour décoder la modulation la plus courante du marché (ASK/OOK, comme pour les prises Chacon ou les sondes Oregon). De plus, Visonic utilise des fréquences précises (868,95 MHz). A ce stade ça me dépasse et j'avais un peu lâché l'affaire. Hélas le seul capteur "double" qui aurait pu remplacer tout ça n'est plus disponible.

Et puis au fil de mes lectures j'ai fini par trouver une solution qui pourrait faire le job. Je parle du projet RTL 433 qui elle gère du 868 Mhz ! Un vieux projet remis au gout du jour ici, et capable de décoder et remonter à peu près tous les protocoles radio. Au départ c'est un truc de barbus, avec des GitHub à droite et gauche à assembler... mais le nouvel assemblage est en fait facile à installer, il se base sur une clé "SDR" (Radio logicielle).

  • Le matériel : Une simple clé USB RTL-SDR (avec puce RTL2832U, comme les clés pour capter la TNT à l'époque, qui coûtent environ 20-30 €). J'ai commandé celle ci. La clé Nooelec NESDR SMArt v5 fera parfaitement l'affaire. Elle est basée sur la même puce de décodage (RTL2832U) que la clé RTL-SDR Blog classique, mais dans un boitier en aluminium. Il faudra lui ajouter une antenne au format SMA, idéalement ajustée pour du 868 Mhz.
  • Le logiciel : il se décline en deux parties (mais on peu également configurer l'add-on pour qu'il communique avec un brooker MQTT et ainsi se passer de l'intégration).
    • Un add-on qui va gérer la clé, donc la radio.
    • Une intégration qui va récupérer les informations en fonction du protocole et de la fréquence que l'on aura choisit.

L'add-on reconnait la clé tout seul et on ajuste en créant un fichier de configuration et on lui indique le chemin rtl_433/rtl_433.conf :

frequency 868.95M

# Filtrage du protocole Visonic
protocol 151

# Sorties
output http:0.0.0.0:8433

Ensuite on installe l'intégration et on la configure pour la faire pointer sur l'add-on (que l'on peut installer ailleurs pour un meilleur placement). Si tout est bien configuré, les capteurs remontent comme par magie, enfin, il m'en reste deux (sur 16) qui sont toujours absents.

On remarque l'ouverture, mais également la batterie et le capteur d'auto protection. A propos de la batterie, d'après mes observations antérieures, je pense que c'est 100% ou zéro, zéro indiquant batterie à changer, mais qui fonctionne encore un certain temps (à la base on est sur un système de sécurité agréé et non sur de la domotique lowa coast...).

Attention toutefois, c'est de la radio et le last-changed ne sera pas la dernière ouverture, mais la dernière trame reçue. Donc si on veut suivre l'état réel ouverture / fermeture, il va falloir créer un petit template pour chaque capteur :

template:
  - binary_sensor:
      - unique_id: visonic_test
        name: "Visonic : Test"
        device_class: door
        state: >
          {{ states('binary_sensor.visonic_powercode_348269_test_alarm') }}

Et ainsi obtenir un état réel du capteur, par exemple :

Advanced

(Note : La fréquence exacte de Visonic est généralement 868.95 MHz. Si vous ne captez rien, vous pouvez tester 868.35 MHz selon la génération de vos capteurs).

S'agissant de trames radio j'ai remarqué quelques loupés, aussi il y a peut être quelques ajustements à faire sur les capteurs que je verrais à l'utilisation.

  • SW3 sur OFF (Restore events not reported) : Le capteur envoie un signal radio uniquement à l'ouverture (l'alarme). Quand on ferme il reste muet pour économiser sa pile. Home Assistant reste donc bloqué sur "Ouvert". Le passer à ON si ce n'est pas le cas.
  • SW4 sur OFF : Ici c'est plus délicat, mais ça peut permettre de palier au trames perdues. A voir à l'utilisation si ça ne draine pas trop la batterie.

Plusieurs fréquences ?

Dans l'absolu il est tout à fait possible de scanner plusieurs fréquences avec rtl_433 (par exemple écouter à la fois vos capteurs Visonic à 868.95 MHz et d'autres capteurs météo ou prises à 433.92 MHz), mais c'est fortement déconseillé pour un système de sécurité.

Dans le fichier de configuration, il suffit de déclarer plusieurs lignes de fréquences et de définir un intervalle de bascule en secondes avec l'option -H (ou hop_interval). (info à véifier).

frequency 868.95M
frequency 433.92M
# Reste 15 secondes sur chaque fréquence avant de sauter à la suivante
hop_interval 15

La clé SDR possède un seul tuner physique. Elle ne peut donc écouter qu'une seule fréquence à la fois.

  • Si la clé est en train d'écouter la fréquence 433.92 MHz et que quelqu'un ouvre une porte équipée d'un capteur Visonic (868.95 MHz), la trame radio sera envoyée dans le vide.
  • La clé aura raté l'événement et Home Assistant ne saura jamais que la porte s'est ouverte.

Pour des capteurs de température (qui émettent toutes les minutes), rater une trame n'est pas grave. Pour une alarme de sécurité, c'est critique. Donc si on veut utiliser cette solution pour intégrer des appareils sur une autre fréquence (comme du 433 MHz), la solution idéale et fiable est d'acheter une deuxième clé, dans l'absolu une par fréquence, mais à minima une dédiée aux capteurs de sécurité.

Conclusion

J'ai d'ailleurs remarqué que quand j'ouvre tous les volets en même temps il y a quelques loupés, si ça persiste je vais devoir les temporiser ou ouvrir mes capteurs et utiliser SW4.

Une autre option qui peut aider, m'a aidé est d'élargir la fréquence d'échantillonnage (dans l'intégration qui communique avec l'add-on), de base on a 250 000,000414 Hz (250 kHz), mais en poussant à 1024 kHz j'ai pu récupérer un capteur supplémentaire. Attention à la pollution que cela peut engendrer.

Je vais laisser tourner un peu et j'ajusterais cet article.