Site icon Gioxx.org

Synology Surveillance Station: Home Mode automatico tramite WiFi

Mi rendo conto che il titolo è molto poco preciso ma provare a buttarci dentro “Come abilitare o disabilitare l’Home Mode di Synology Surveillance Station appoggiandosi a Fritz!Box e agli smartphone collegati alla WiFi di casa” sarebbe stato un pelo esagerato. La sostanza però è proprio questa: il Geofence integrato nell’applicazione DS cam fa oggettivamente schifo, non è assolutamente affidabile e si finisce per non riuscire mai a sfruttare la modalità Home dell’ottimo software di controllo telecamere disponibile per i NAS Synology. L’ostacolo si può aggirare tramite un router Fritz!Box (nella soluzione proposta da questo articolo, chiaro) e un paio di script da tenere sul NAS.

AVM FRITZ!Box Synology Surveillance Home Mode Automation

Mark Schipper è lo sviluppatore che ha in origine pubblicato tutto il necessario in un repository GitHub qui disponibile. Le sue indicazioni sono già valide per poterle sfruttare in un ambiente casalingo dalle pari disponibilità, e dopo una mia segnalazione di possibile bug ha anche integrato una serie di novità e riscritto parte del codice che si occupa di:

In parole estremamente povere la modalità Home di Synology Surveillance Station si attiva se un tuo smartphone (o altro dispositivo a tua scelta) entra nella rete WiFi di casa, si disattiva invece quando esci da quel perimetro, il tutto lanciando controlli ripetuti a distanza di una quantità di minuti da te stabilita.

Tutto questo si è reso “necessario” perché la funzione di Geofence integrata nell’applicazione DS cam per Android e iOS non è esattamente questo gran mostro di precisione. Un esempio virtuoso che potrei farti in questo caso è tado° che difficilmente perde un colpo. Per questo motivo ho preferito mettere in campo e sperimentare quanto scritto da Mark, apportando poi delle piccole modifiche per rendere ancora migliore il risultato e colmando un gap che manca all’appello del README dello sviluppatore originale, che invita a installare il modulo PHP 7 di Synology senza però specificare che occorrerà ricordarsi di attivare l’estensione soap se precedentemente mai attivata.

Developer: Synology Inc.
Price: Free
Developer: Synology Inc.
Price: Free

Il fork

Il mio fork nasce per integrare alcuni riferimenti in più rispetto al progetto originale e per proporre una modifica allo script di bash che ti permette di ottenere un aggiornamento di stato di Home Mode via Telegram. Quest’ultima funzione è chiaramente opzionale e può essere disabilitata facilmente.

Cosa ti serve

Affrontiamo per passaggi ogni necessità sopra riportata

#1: PHP 7, soap & curl

Apri il Centro Pacchetti del tuo NAS Synology e cerca PHP 7, quindi installalo:

Una volta terminata l’installazione, collegati via SSH al tuo NAS (non sai come fare? Guarda qui), quindi spostati in /usr/local/etc/php70 e modifica il file php.ini (esempio: vi php.ini). Per salvare le modifiche che apporterai ti sarò richiesto quasi sicuramente di essere utenza root, lancia un sudo -i seguito da invio, quindi inserisci la password della tua utenza amministrativa e premi invio (non sai di cosa sto parlando? Guarda qui). Ora:

Il php.ini modificato dovrebbe assomigliare a questo:

#2: api_user

Un’utenza limitata che possa solo disabilitare o abilitare Home Mode in Synology Surveillance Station, è ciò di cui hai bisogno in questo momento. Avvia Surveillance Station e apri il menu in alto a sinistra con un clic, quindi seleziona Utente. Aggiungi un nuovo utente seguendo la procedura guidata, ti riepilogo i passaggi e ti propongo poi qualche screenshot:

#3 scarica e modifica gli script

Scarica il contenuto del repository da GitHub, scompatta il file ZIP e ottieni così i file fritz_activemac.php e switch_homemode.sh (puoi buttare via il README). Prima di caricare i file sul NAS ti suggerisco di modificarli in base a ciò che è stato fatto fino a ora (utenza generica, eventuale bot Telegram, ecc.).

Il primo file citato (fritz_activemac.php) non dovrebbe necessitare di modifica alcuna (tranne se hai scelto di creare un utente limitato diverso da quello da me suggerito, quindi non “api_user“, ti rimando a questa nota nel Wiki), contrariamente allo script bash switch_homemode.sh. Aprilo con un buon editor di testo (Notepad++ o Atom) quindi segui queste indicazioni:

Fai attenzione: modifica esclusivamente ciò che ho riportato qui sopra, facendo attenzione a mantenere le virgolette dove specificate. Lascia tutto il resto invariato per scongiurare possibili malfunzionamenti. Se non sai come creare un bot Telegram fammi un cenno, sto valutando se scrivere qualche riga di testo nel Wiki su GitHub o meno.

Salva il file, questo lavoro è terminato. Carica ora i due script all’interno della cartella /var/services/homes/api_user del tuo NAS, dove “api_user” ovviamente dovrà essere modificato se hai scelto di creare un utente dallo username differente. A questo punto sei pronto a verificare il funzionamento.

#4 test e programmazione

Salvo errori, gli script sono ora pronti a lavorare. Puoi provare tu stesso lanciando da terminale

./switch_homemode.sh MAC1 MAC2

dove MAC1 e MAC2 dovranno essere sostituiti con due MAC Address appartenenti a dispositivi che sono collegati alla rete casalinga. Sia chiaro, puoi specificare anche solo un MAC Address, non c’è bisogno di metterne due o più (ma puoi farlo). A questo punto verrà lanciata la query SOAP al router e il risultato (un semplice true o false) verrà salvato all’interno del file synohomemode.state (che verrà creato sul momento se non esistente).

Se il dispositivo non è collegato alla WiFi casalinga, Home Mode verrà disattivato, diversamente verrà attivato.

Manca l’ultimo passaggio, programmare l’esecuzione dello script tramite Utilità di pianificazione di Synology. Accedi all’utilità tramite Pannello di controllo, quindi crea una nuova operazione e compila i dati richiesti:

bash /var/services/homes/api_user/switch_homemode.sh MAC1 MAC2

Sostituisci chiaramente MAC1 e MAC2 con i veri MAC Address dei dispositivi che vuoi tenere sotto controllo, puoi specificarne solo uno o anche più di due.

Il gioco è ormai fatto :-)

Se ci sono dubbi o problemi l’area commenti è a tua disposizione, io qui di seguito inserisco già un paio di risposte ad altrettante domande che potresti avere, ma sentiti libero di chiedere altro se dovesse servire.

Buon Natale!

Troubleshooting

Cambiare lo username dell’utente generico

Puoi chiaramente scegliere di utilizzare un nome utente che non corrisponda ad api_user come riportato nell’articolo, dovrai però ricordarti di modificare quel SYNO_SS_USER="api_user"; in switch_homemode.sh, oltre che eventuali operazioni programmate nell’Utilità di pianificazione del NAS. Modifica poi, sempre in switch_homemode.sh, tutto il blocco relativo ai file di stato e il richiamo dello script PHP:

## State file configuration (don't touch anything if not necessary)
STATEFILE='/var/services/homes/api_user/synohomemode.state';
RETRYFILE='/var/services/homes/api_user/synohomemode.retry';
CHECKFRITZ='/usr/local/bin/php70 /var/services/homes/api_user/fritz_activemac.php';

dove al posto di api_user dovrai chiaramente inserire il nome utente da te scelto.

Wiki: github.com/gioxx/AVM-FRITZ-Box-Synology-Surveillance-Home-Mode-Automation/wiki/Cambiare-lo-username-dell%E2%80%99utente-generico

Errore nella query SOAP

Qualcosa non torna e lanciando lo script di bash manualmente ottieni errori sulla query SOAP? Forse è necessario copiare i moduli delle due estensioni, prova a dare un’occhiata al documento che ho salvato nel Wiki del repository GitHub: github.com/gioxx/AVM-FRITZ-Box-Synology-Surveillance-Home-Mode-Automation/wiki/PHP-7:-abilitare-CURL-e-SOAP-su-Synology-DSM.


grazie a:

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version