SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
|
PROGETTO MAGGIORMENTE INDICATO PER: |
|
Note e disclaimer
|
|
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
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:
- Sonoff RF Bridge;
- firmware Tasmota;
- contatti magnetici a impulso radio 433 MHz (per questo progetto useremo i Sonoff DW1);
- Home Assistant;
- componente Home Assistant “Binary Sensor“;
- piattaforma Home Assistant “MQTT Binary Sensor“
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
- Configurazione lato Sonoff RF Bridge
- Scoprire il codice del sensore
- Configurazione presso Home Assistant
- Configurazione con più sensori
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:
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.
![]() |
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. |

Ma usando questo sonoff rf potrei controllare le mie tende da sole con motore nice che ora controllo tramite un telecomando a radiofrequenza?
Se il codice è a 433mhz teoricamente sì… ma ti consigliamo vivamente di usare il Broadlink RM PRO al suo posto
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?
L’unico problema che abbiamo visto è relativo alla potenza di trasmissione radio. L’RF di Sonoff è veramente limitato
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