Conversione di un semplice campanello esistente in un campanello intelligente con Domoticz

Lo scopo di questo documento è illustrare come configurare e collegare il controller Domoticz/Raspberry per ottenere un'istantanea sulla nostra app Telegram quando qualcuno suona il campanello.
La tensione a 12 V CA utilizzata per alimentare il campanello o il ronzio è collegata a un ingresso optoisolato sul modulo DomBus23 , quindi quando il campanello/ronzio viene alimentato, viene inviato un trigger a Domoticz che attiva uno script per catturare un'immagine dalla telecamera IP e inviarla a un canale o gruppo Telegram , in modo che i membri della famiglia possano ricevere la foto sui loro smartphone non appena qualcuno preme il pulsante del campanello .

Per ottenere la versione più aggiornata, consultare la versione inglese di questa pagina.

Esempio hardware utilizzando un modulo DomBus

Conversione di un campanello esistente in un campanello intelligente utilizzando Domoticz e Creasol DomBus23Modulo DomBus23 per Domoticz Home Assistant NodeRED ...

DomBus23 è dotato di numerosi ingressi e uscite e può essere utilizzato per svolgere altre funzioni, come ad esempio l'apertura di un cancello pedonale o di un portone d'ingresso (dispone di 2 uscite a relè), gestire una luce di cortesia con striscia led con funzione dimmer (dispone di un mosfet da 30V 12A), ....
Se il campanello utilizza un'alimentazione a 230 V CA o 110 V CA, è possibile collegare il cicalino/buzzer all'ingresso optoisolato IN3, che supporta tensioni elevate.

I moduli DomBus sono progettati per avere un consumo energetico molto basso, inferiore a 10mW, e ottenere una connessione molto affidabile al controller domotico tramite bus RS485 (semplice cavo schermato con 4 fili, 2 per i dati e 2 per l'alimentazione a 12V). Utilizzando un alimentatore a 12V con batteria di backup al piombo, è possibile far funzionare il sistema anche in caso di interruzione di corrente.

Configurazione software

Si presuppone che Domoticz sia già installato su un computer, come Raspberry PI o un altro computer a scheda singola, oppure su un PC/Mac.
I moduli DomBus sono collegati al computer domotico tramite un adattatore USB/RS485 e un alimentatore da 12V.

Selezionare il dispositivo di input IN1 sul pannello Domoticz Switches e specificare lo script da attivare quando suona il campanello.

sensore virtuale domotico4

Scarica gli script sendsnapshot.sh e telegramSendText.sh da GitHub e inseriscili nella directory DOMOTICZ/scripts.
Modificare quei file per impostare i parametri IPCam e Telegram.

Istantanea da una telecamera Reolink

Abilita il servizio HTTP, porta 80, sulla tua telecamera Reolink, crea un utente che possa solo visualizzare la telecamera (chiamalo viewer o in un altro modo) e usa il seguente URL per scaricare un'istantanea jpeg:

http://192.168.XY/cgi-bin/api.cgi?cmd=Snap&channel=0&user=viewer&password=PASSWORD'

dove 192.168.XY è il numero IP della telecamera, viewer è il nome dell'utente creato con la PASSWORD associata.
Sostituisci channel=0 con channel=1 se hai una doppia telecamera, come Reolink TrackMix, e vuoi vedere il secondo canale.

Come interrogare la telecamera ONVIF per ottenere l'URI del flusso video e dello snapshot

Alcune pessime telecamere IP ONVIF cinesi non hanno un URI snapshot: molto male, ma possiamo generare uno snapshot dal flusso video, usando ffmpeg!!

ONVIF è un protocollo standard per interrogare le telecamere IP ONVIF, quindi è possibile ottenere le caratteristiche della telecamera IP inviando alcune query utilizzando il sistema SOAP.

Un ottimo tutorial per rilevare l'URI di video e snapshot della tua telecamera ONVIF può essere trovato su http://me-ol-blog.blogspot.com/2017/07/getting-still-image-urluri-of-ipcam-or.html

Come ottenere un token Telegram e un chat_id, necessari per inviare messaggi/immagini tramite Telegram

Telegram è un sistema di messaggistica istantanea molto potente, simile a WhatsApp, ma molto migliore perché open source, multipiattaforma (non solo per smartphone... Telegram Desktop funziona su Linux, Mac, Windows!) e altamente personalizzabile tramite la sua API.

Le seguenti istruzioni possono essere utilizzate per ottenere una foto su Telegram quando qualcuno preme il pulsante del campanello.

Di seguito le istruzioni dettagliate per creare un BOT su Telegram e un canale tramite cui inviare notifiche a te e ad altre persone:

  1. ovviamente devi avere Telegram installato sul tuo smartphone, e anche Telegram Desktop sul tuo PC/Mac/Linux: puoi scaricarlo da https://desktop.telegram.org/
  2. cerca BotFather nella tua lista dei contatti, selezionalo e avvialo
  3. tipo /newbot
  4. digita un nome per questo bot, ad esempio domApi
  5. digita un nome utente che termina con "bot", ad esempio domApiUserbot
  6. a questo punto, BotFather ti restituirà una chiave API (sotto un esempio in grassetto) che dovrai memorizzare da qualche parte:
    784324329:EETRNJU3jQEGWQdjNv3llb4bnDSDREGuuL
  7. Ora, utilizzando il tuo smartphone, crea un nuovo canale (non gruppo: canale!), seleziona un nome per esso (ad esempio Domoticz), impostalo come pubblico e specifica un collegamento per esso (deve essere univoco), ad esempio t.me/dom123abc
    Tieni presente che solo il proprietario del canale può configurare il canale come pubblico!
    Aggiungi membri a questo canale: il tuo partner, i tuoi figli, tutti coloro che dovrebbero ricevere le notifiche domotiche
  8. Entra nel canale e aggiungi un nuovo amministratore: seleziona il bot che hai appena creato nei passaggi 3-6 (cerca domApiUserbot o il nome utente digitato nel passaggio 5)
  9. Aggiungi a quel canale tutti gli altri utenti che vuoi, se hai bisogno di inviare immagini/notifiche a quegli utenti.
  10. Apri il seguente URL dal tuo browser (sostituisci la chiave API con la tua e channellink con la tua):
    Italiano: https://api.telegram.org/bot
    784324329:EETRNJU3jQEGWQdjNv3llb4bnDSDREGuuuL /sendMessage?chat_id=@ dom123abc &text=test
  11. Otterrai un output come quello nell'immagine seguente: memorizza da qualche parte l'ID ( -1001194779203 , in questo esempio): questo è l'ID del tuo canale, dove domoticz deve inviare le notifiche, e devi scriverlo (con il segno meno, se esiste) nello script sendsnapshot.sh qui sotto (variabile TELEGRAMCHATID).
    ID canale Telegram
  12. Da Telegram sul tuo smartphone, configura il canale creato impostandolo come tipo di canale Privato.
  13. Su Domoticz, vai su Interruttori, seleziona l'ingresso del pulsante del campanello, Modifica e scrivi nella casella di testo "Su azione" script://sendsnapshot.sh : in questo modo, ogni volta che qualcuno preme il pulsante del campanello, Domoticz eseguirà lo script sendsnapshot.sh che catturerà uno snapshot dall'IPCam e lo invierà al canale Telegram, così ogni utente che hai inserito in quel canale riceverà la foto delle persone che hanno suonato il campanello.