Sicurezza: controllo apertura varchi tramite Sonoff RF Bridge e Home Assistant

6 minuti di lettura
SCOPI DEL PROGETTO:
  • Monitorare l’apertura dei varchi (porte, finestre, bascule ecc.) tramite sensori di apertura radio 433 MHz, Sonoff Bridge RF e Home Assistant
  • Livello di difficoltà: basso
  • Costo: ridotto (<30 €)
  • Categoria d’integrazioneLocal Push
CONCETTI AFFRONTATI:
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione progetto: 1.1

ATTENZIONE: QUESTO PROGETTO È CONSIDERATO OBSOLETO A PARTIRE DA APRILE 2020.
AL SUO POSTO È STATO RILASCIATO UNA GUIDA RIVISTA E MAGGIORMENTE DETTAGLIATA.

Abstract

Sonoff RF Bridge

Il Sonoff RF Bridge è un piccolo ed economico BRIDGE/Gateway Radiofrequenza↔︎TCP/IP in grado mettere per l’appunto in comunicazione lo standard radiofrequenza con lo standard TCP via Wi-Fi: tale componente è infatti in grado di ricevere segnali radio in radiofrequenza a 433 MHz per poi “girarli” verso la Wi-Fi tramite protocollo TCP/IP, e viceversa.

Tramite l’adozione del firmware alternativo Tasmota, Sonoff RF Bridge è anche in grado di espletare tali funzioni utilizzando, per quanto riguarda TCP/IP, il protocollo MQTT: In questo progetto ci soffermeremo sulle funzionalità di pubblicazione di telemetrie MQTT a fronte di ricezione di segnali radio (e relativi codici) da parte di sensori.

Tramite l’uso combinato di:

andremo ad configurare presso la domotica personale realizzata con Home Assistant uno o più sensori (binari) di apertura utili a conoscere l’evento di apertura di uno o più varchi monitorati tramite sensori radiofrequenza.

Il funzionamento è semplice. Dato che il sensore magnetico è in grado di inviare un codice specifico (diverso per ogni sensore) tramite radiofrequenza 433 MHz e dato che il Sonoff RF Bridge è in grado di ricevere tale codice per poi ripubblicarlo (tramite l’adozione del protocollo MQTT) sulla rete Wi-Fi TCP/IP come telemetria MQTT, allora tramite una corretta configurazione di un sensore binario MQTT saremo in grado di intercettare tale telemetria e farla interpretare alla domotica come “apertura varco”.

N.b. Il presente progetto illustra come domotizzare dei sensori magnetici tramite Sonoff RF Bridge; va da sé che una volta introdotti tali sensori in domotica, sarà possibile utilizzarli in scenari di automazione quali l’attivazione di luci, sirene, ecc.  a loro volta già integrati in domotica.

Le tecniche qui descritte, va da sé, sono utilizzabili in presenza di qualsiasi entità Home Assistant di tipo “Binary Sensor“, indipendentemente dalla piattaforma figlia di tale componente utilizzata. Nel caso del presente progetto utilizzeremo la piattaforma “MQTT Binary Sensor“, in quanto integreremo un sensore radiofrequenza abbinato a Sonoff RF Bridge, ma solo un esempio.

Si parte

Installazione dei sensori

I sensori vanno solitamente applicati al varco da monitorare in modo che all’apertura dello stesso si inneschi l’impulso radio ricevuto poi dal Sonoff RF Bridge – quindi dalla domotica, così che interpreti la cosa come “apertura varco”. Sul tema relativo al funzionamento del sensore, rimandiamo alla pagina dedicata al Sonoff DW1, ovvero il sensore utilizzato per il presente progetto.

Configurazione lato Sonoff RF Bridge

A valle dell’implementazione del firmware Tasmota sull’RF Bridge è necessario configurarlo in modo da renderlo ricevitore di radiofrequenza (ed eventualmente emettitore – ma non è tema trattato nel presente progetto).

Per far ciò, è necessario recarsi ala voce di menu “Configurazione” > “Configurazione modulo” e impostare la configurazione come da figura:

Configurazione Sonoff RF Bridge

Tale configurazione abiliterà le funzioni radiofrequenza dell’unità.

Scoprire il codice del sensore

Ogni sensore possiede un codice esadecimale specifico che lo identifica. Tale codice viene inviato in radiofrequenza 433 MHz e viene quindi raccolto dal/dai Sonoff RF Bridge (che dev’essere ovviamente a portata del segnale radio) il quale a sua volta lo ripubblica come telemetria MQTT.

Per scoprire il codice del sensore sarà quindi sufficiente recarsi tramite web presso la “Console” dell’unità e attivare il sensore magnetico.

In console apparirà una stringa analoga a questa:

MQT: tele/BridgeRF/RESULT = {"RfReceived":{"Sync":12610,"Low":400,"High":1250,"Data":"F413AC","RfKey":"None"}}

Ciò che ci interessa è semplicemente il contenuto del codice nel campo “Data”, in questo caso “F413AC“.

Configurazione presso Home Assistant

Una volta scoperto il codice del nostro sensore, aggiungere una controparte alla configurazione sarà sufficiente includere nel file di configurazione di Home Assistant il seguente codice:

binary_sensor
  - platform: mqtt
    name: "Contatto apertura ingresso"
    payload_on: "F413AC"
    payload_off: ""
    device_class: opening
    state_topic: "tele/BridgeRF/RESULT"
    value_template: "{{ value_json.RfReceived.Data }}"

Le variabili disponibili per la personalizzazione della configurazione sono le seguenti:

state_topic (stringa, richiesta) – Il topic MQTT al quale iscriversi per ricevere le telemetrie
name (stringa, opzionale) – Nome del sensore MQTT. Default: “MQTT Binary Sensor”
qos (intero, opzionale) – Il livello di QoS per lo state_topic. Default: 0 (Cos’è QoS?)
payload_on (stringa, opzionale) – Il payload che, se ricevuto, imposta a “on” il sensore binario
payload_off (stringa, opzionale) – Il payload che, se ricevuto, imposta a “off” il sensore binario
value_template (template, opzionale) – Definisce il template per l’estrazione (parsing) del dato.
force_update (booleano, opzionale) – Invia al motore di automazione di Home Assistant l’aggiornamento del valore anche se non è accaduto realmente. Utile per rendere cotinui i grafici degli storici. Default: false
availability_topic (stringa, opzionale) – Topic MQTT al quale iscriversi per ottenere lo stato online/offline da parte del dispositivo. Solitamente si indica il topic LWT.
payload_available (stringa, opzionale) – Il payload che rappresenta lo stato “disponibile”. Esempio: “online”. Viene usato in abbinamento alla variabile “availability_topic“. Solitamente si indica un payload LWT.
payload_not_available (stringa, opzionale) – Il payload che rappresenta lo stato “non disponibile”. Esempio: “offline”. Viene usato in abbinamento alla variabile “availability_topic“. Solitamente si indica un payload LWT
unique_id (stringa, opzionale) – Un ID che identifica univocamente il sensore in termini di configurazione. Se due sensori presentano il medesimo ID, Home Assistant solleva un eccezione d’errore.
device_class (device_class, opzionale) – Il tipo/classe di sensore utile per impostare la corretta, relativa icona sul frontend di Home Assistant.

Nb. L’esempio è effettuato su un sensore magnetico (il Sonoff DW1) che NON comunica l’evento di richiusura del varco.
Pertanto, il campo “payload_off” viene lasciato intenzionalmente vuoto. Vedremo a seguire come configurarlo.

N.b. Per utilizzare questa piattaforma è necessario che il componente “MQTT” di Home Assistant sia stato preventivamente configurato (vedi prima parte della scheda dedicata al componente “MQTT”). Si consiglia inoltre di leggere con attenzione la guida dedicata al tema della configurazione dei componenti MQTT nella propria domotica.

Automazione

A questo punto è necessario indicare alla configurazione di Home Assistant cosa fare a fronte del rilevamento dell’apertura del varco.

Fermo restando che tramite l’automazione sarà possibile utilizzare l’entity binary_sensor per i più disparati usi (dall’accesione di un punto luce piuttosto che l’attivazione di un allarme), nell’esempio portato in questo progetto si rende necessario gestire l’incapacità del sensore portato ad esempio (il Sonoff DW1) di riportare lo stato di richiusura del varco.

Utilizzeremo quindi un’automazione che, a fronte del cambio di stato del binary_sensor a “on” – aperto – provveda dopo tre secondi (tempo arbitario) a inviare un topic MQTT (uguale a quello solitamente inviato dall’RF Bridge) il quale contenga una chiave di reset, in questo caso “key_clean“:

automation:
  alias: Apertura CONTATTO e reset
  trigger:
    platform: state
    entity_id: binary_sensor.contatto_apertura_ingresso
    to: 'on'
    for:
      seconds: 3
  condition: []
  action:
    service: mqtt.publish
    data:
      topic: tele/BridgeRF/RESULT
      payload: "key_clean"
      retain: false

A questo punto, per completare l’opera andrà modificato il sensore precedentemente configurato, aggiungendo al campo “payload_off” la chiave “key_reset“:

binary_sensor
  - platform: mqtt
    name: "Contatto apertura ingresso"
    payload_on: "F413AC"
    payload_off: "key_clean"
    device_class: opening
    state_topic: "tele/BridgeRF/RESULT"
    value_template: "{{ value_json.RfReceived.Data }}"

Configurazione con più sensori

In caso siano presenti più sensori, la procedura prevede la creazione di tanti binary_sensor quanti siano i sensori e relativi codici; ovviamente, ogni entity avrà il proprio “payload_on“, mentre il “payload_off” rimarrà “key_reset“. Vedremo infatti a seguire come configurare una sola automazione che si inneschi a fronte dell’apertura anche di un solo sensore e che resetti lo stato di chiusura condiviso da tutti tramite la pubblicazione della chiave “key_reset“.

Per far ciò è necessario innanzitutto creare un gruppo che contenga tutti i binary_sensor relativi ai sensori di apertura. Ipotizzeremo nell’esempio che segue la presenza in domotica di tre sensori:

group:
    contatti_magnetici:
    name: Contatti magnetici
    entities:
      - binary_sensor.contatto_apertura_ingresso
      - binary_sensor.contatto_apertura_finestra
      - binary_sensor.contatto_apertura_porta_finestra

Avremo così definito un gruppo “contatti_magnetici”.
Modificheremo ora l’automazione precedentemente definita affinché si attivi all’apertura di un qualsiasi sensore: dato che l’apertura anche di un singolo sensore causerà il cambio di stato del gruppo in “on” – aperto – (essendo composto di elementi omogenei), utilizzeremo proprio questo stato di gruppo per innescare l’automazione:

automation:
  alias: Apertura CONTATTI e reset
  trigger:
    platform: state
    entity_id: group.contatti_magnetici
    to: 'on'
    for:
      seconds: 3
  condition: []
  action:
    service: mqtt.publish
    data:
      topic: tele/BridgeRF/RESULT
      payload: "key_clean"
      retain: false

Come azione pubblicheremo via MQTT il messaggio “key_clean“, il quale riporterà in stato di “off” – chiuso – tutti i sensori (e quindi il gruppo stesso).

Ovviamente potremo aggiungere anche una o più azioni aggiuntive, come l’attivazione di un allarme, l’accensione di un punto luce e via dicendo.


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Telegram News Channel

5 Comments

  1. chavez7

    Ma usando questo sonoff rf potrei controllare le mie tende da sole con motore nice che ora controllo tramite un telecomando a radiofrequenza?

      1. chavez7

        Si era solo che volevo qualcosa che non andasse su server esterni. Non esiste qualche scheda, o qualche dongle che renda il raspberry e quindi home Assistant “RF ready” un po’ come conbee per zigbee?

  2. Massimiliano G.

    forse non ho capito vanno aggiunte le righe “binary_sensor……..” nel configuration.yaml ? a me da errore credo che sia scritto male forse mancano i : dopo binary_sensor

I commenti sono chiusi.