Differenze tra le versioni di "CentRed"
Riga 17: | Riga 17: | ||
'''Revisione''' 2023 07 12 (luglio) | '''Revisione''' 2023 07 12 (luglio) | ||
− | Al momento ho terminato una nuova installazione ed il sistema non e` nella rete della | + | Al momento ho terminato una nuova installazione ed il sistema non e` nella rete della [https://www.raspibo.org/wiki/index.php/Centralina_livello_1|"level1"], dovro` anche aggiornare il repository [https://github.com/raspibo/CentRed.git|"git"] |
<pre style="background-color:black;color:white;overflow:auto"> | <pre style="background-color:black;color:white;overflow:auto"> |
Versione attuale delle 15:03, 12 lug 2023
Centred |
Centralino di controllo avvisi (segnalazioni e allarmi) |
Repository: https://github.com/raspibo/CentRed.git |
Revisione 2023 07 12 (luglio)
Al momento ho terminato una nuova installazione ed il sistema non e` nella rete della "level1", dovro` anche aggiornare il repository "git"
lsb_release -a
No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
- Ho dovuto modificare istruzioni cgi<->html negli script python
- Non ho al momento riconfigurato nessun invio mail (causa problemi autenticazione gmail da linea di comando, che chiede il rinnovo del token settimanalmente)
- Non ho configurato XMPP, perche` sono sempre meno i server a disposizione
- Neanche SIP ho configurato, per cui non ho ancora testato asterisk
Revisione 2019 07 28 (luglio)
- Riviste ed aggiornate queste istruzioni
- L'installazione di Asterisk da` errore, ma poi tutto sembra funzionare
Centralino di gestione avvisi e allarmi
Si occupa di avvisare l'utilizzatore attraverso messaggi di posta elettronica, telefonate VOIP e chat (XMPP), di avvisi e allarmi dell'impianto domotico (?) e/o degli apparati che gli inviano messaggi opportunamente predisposti.
Tabella di riferimento del messaggio da inviare: https://github.com/raspibo/CentRed/wiki/Tabella-avvisi.
- Ad oggi questa centralina e` usata da
- Thermo
- Centralina livello 1
Installazione
Distribuzione: Raspbian (Debian) versione 9, codename "stretch".
Setup
Al primo avvio la nuova SD Card ha visualizzato una schermata di "Resizing file system" (o qualcosa di simile), seguito da un riavvio del sistema.
SSH nella nuova release non e` attivato di default, prima di proseguire l'ho attivato:
sudo su raspi-config
- 5 Interfacing options
- P2 SSH Enable
.. e visto che ero qui, ho configurato anche qualcos'altro:
- password
- hostname <centred>
- locale <en>
- timezone <rome>
- keyboard layout <en-US>
- wifi country <it> # anche se non la usero`
Visto che ho aggiornato tanta roba, ho riavviato il sistema.
Upgrade
sudo su apt-get update apt-get upgrade reboot # perche` ha aggiornato anche i pacchetti del kernel
Installazione pacchetti
sudo su apt-get install nginx fcgiwrap redis-server asterisk festival festvox-ita* python3-dnspython python3-pip git python3-redis pip3 install pyxmpp2
Configurazione
Per prima cosa, meglio avere gia` sottomano il repository git per copiare files e configurazioni, da utente normale, effettuamo una clonazione di questo repository:
mkdir git cd git git clone https://github.com/raspibo/CentRed.git cd CentRed
- IMPORTANTE
- Tutti i comandi visualizzati nella fasi successive sono riferiti alla directory in cui ci si trova ora, cioe`: "/home/pi/git/CentRed"
Crontab
Va bene che sia da utente, non servono permessi particolari:
crontab -e
Inseriamo questa riga alla fine del file:
10 7 * * 0 redis-cli hmset msg:redis:alive:$(date +\%Y\%m\%d\%H\%M\%S) type "alert" desc "Messaggio ciclico di centralina in funzione" value "on" um "" date "$(date +\%Y/\%m/\%d\ \%H:\%M:\%S)" > /dev/null
Riga che una volta a settimana ci inviera` un messaggio che la centralina e` in funzione.
Asterisk
Per editare i successivi files dovrete essere "root", quindi:
sudo su
- /etc/asterisk/extensions.conf
- Aggiungete queste righe in fondo al file
[centred] exten => _X.,1,Answer() exten => _X.,n,Wait(1) exten => _X.,n,Playback(alarm) exten => _X.,n,Wait(1) exten => _X.,n,Hangup()
- /etc/asterisk/sip.conf
- Aggiungete queste righe in fondo al file
; Configurazione di un interno del PBX [2001] ; numero identificativo dell'interno (il numero della linea telefonica) ; Turn off silence suppression in X-Lite ("Transmit Silence"=YES)! ; Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed secret=NC2001 ; password in chiaro (può essere anche cifrata con MD5) type=friend ; la configurazione tipica per un telefono è friend, altrimenti con user per una linea solo ricevente, peer per un trunk verso l'esterno regexten=1234 ; When they register, create extension 1234 context=centred callerid="CentRed" <2001> ; i dati di presentazione della linea visualizzati nel display di chi riceve la chiamata host=dynamic ; This device needs to register ;directmedia=no ; Typically set to NO if behind NAT disallow=all ;Configurazione del tipo di compressione della fonia ;allow=gsm ; GSM consumes far less bandwidth than ulaw - formato compresso che risparmia banda allow=alaw ; il tipo di codec da usare per la chiamata alaw è senza compressione, è adatto ad esempio su lan ;mailbox=1234@default,1233@default ; Subscribe to status of multiple mailboxes registertrying=yes ; Send a 100 Trying when the device registers.
Nginx
Copiare i nuovi files di configurazione dal repository ed eliminare il web server configurato di default:
sudo su cp etc/nginx/sites-available/mysite /etc/nginx/sites-available/ ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/ cp etc/nginx/myfastcgi.conf /etc/nginx/ rm /etc/nginx/sites-enabled/default
Abbiamo effettuato tutte le operazioni come "root", ma assicuratevi che il proprietario sia corretto, se non lo e`:
sudo su chown root:root -R /etc/nginx/
Potreste gia` riavviare il web server, ma non abbiamo ancora completato, riavvieremo il sistema alla fine di tutto, ma se volete:
sudo systemctl restart nginx
dovrebbe funzionare.
Nel web server e` attiva (in configurazione) l'autenticazione, per completarla dovete creare il file "/var/www/.htaccess" in questo modo (sostituite USERNAME col vostro nome o altro):
sudo su echo -n "USERNAME" >> /var/www/.htpasswd echo -n ":" >> /var/www/.htpasswd openssl passwd >> /var/www/.htpasswd chown www-data:www-data /var/www/.htpasswd chmod 600 /var/www/.htpasswd
Redis
Potete fare come ho fatto io, oppure modificare tutto nel file di configurazione, dovrebbe essere possibile stando a quel che ho letto.
sudo su
- /etc/redis/redis.conf
- Solo commentato la linea (dovrebbe essere la 61)
#bind 127.0.0.1
Ancora pero` l'accesso da remoto non e` possibile, si deve modificare un'altro parametro e renderlo permanente (quello che scrivevo dovrebbe essere possibile nel file di configurazione):
redis-cli 127.0.0.1:6379> CONFIG SET protected-mode no OK 127.0.0.1:6379> CONFIG REWRITE OK 127.0.0.1:6379> quit
- Importante
- Non ho impostato nessuna password, quindi non esponete questo pc/raspberry alla rete esterna.
CentRed (www)
Ho messo tutti i files/script nella directory del web server.
Li copiamo dal repository e settiamo il giusto proprietario:
sudo su cp -va var/www/ /var/ chown www-data:www-data /var/www/*.html chown www-data:www-data -R /var/www/cgi-bin/
- Nota
- I permessi sono 755, quindi i files sono eseguibili da chiunque.
Avvio
Ovviamente all'avvio del sistema la nostra centralina deve avviarsi da sola, ho scelto di eseguire il programma dal "classico" file:
- /etc/rc.local
- Ho aggiunto le seguenti righe prima della "exit 0"
# Start "CentRed" DAEMON_NAME=centred # senza .py PID=`ps -e -o pid,cmd | grep "$DAEMON_NAME[.]py" | awk '{ print $1 }'` if [ $PID ] then echo "Non si e\` avviato \"$DAEMON_NAME\", oppure era gia\` avviato:" echo "Actual PID is: $PID" else echo "Avvio $DAEMON_NAME .." #su pi -c "python3 /var/www/cgi-bin/centred.py &" python3 /var/www/cgi-bin/centred.py & # deve essere 'root' # .. e un messaggio a se stesso quando si [ri]avvia sleep 2 # un po` di ritardo redis-cli -h centred hmset msg:alert:level1:$(date +\%Y\%m\%d\%H\%M\%S) type "alert" desc "Avvio centralino allarmi CentRed" value "on" um "" date "$(date +\%Y/\%m/\%d\ \%H:\%M:\%S)" cd / fi
Start/Reboot & Configure
E` il momento di riavviare il sistema.
Se tutto e` andato bene, dovrebbe essere gia` funzionante, rimane da configurarlo.
Da browser aprite l'indirizzo http://centred:8080 (o "localhost:8080" o usate l'indirizzo IP), alcune voci non funzioneranno, altre pagine andranno proprio in errore, basta inserire i dati corretti e nel giusto ordine.
- Per primo, inserite gli account di posta elettronica e XMPP, inserendo il vostro username/password ed eventuali parametri del server (tipo smtp.gmail.com porta 567).
- Inserite i destinatari dei messaggi, sono previsti inserimenti per destinatari di mail, XMPP e sip.
- Ora si possono associare gli elenchi ai tipi di messaggi, cioe`, dove dev'essere inviato il messaggio alarm piuttosto che alert ...
Pagina principale
Pagina principale e menu:
Sono visibili i normali messaggi di controllo di funzionamento di se stessa e della centralina Thermo.
I messaggi non ancora confermati sono inviati a cadenze cicliche e per un massimo di volte, dipendente dalla configurazione.
Ovviamente, una volta confermati, non sono piu` inviati e permangono visualizzati nella pagina fino a scadenza (configurazione).
Prima configurazione
Ed anche unica, normalmente ;)
Il database NoSQL Redis utilizzato, non e` configurabile perche` DEVE risiedere nella stessa macchina.
- Nota
- Non sono riuscito a parametrizzare tutte le configurazioni
Configurazione accounts
Inserite le credenziali per l'invio/uso della posta elettronica, questo e` l'indirizzo che servira` per inviare le mail delle segnalazioni della centralina
XMPP
Inserite le credenziali per l'invio/uso del protocollo XMPP, servira` per inviare le segnalazioni della centralina.
Configurazione liste destinatari
Aggiungete gli indirizzi dei destinatari dei messaggi delle varie segnalazioni della centralina:
Configurazione destinazioni allarme
Per ogni tipologia di segnalazione, si deve indicare a quali liste e` da inviare:
Configurazione
I parametri di controllo ed invio degli avvisi: