Domoticz è un sistema di domotica multipiattaforma, molto compatto e veloce perché scritto in C++. Permette di scrivere anche automazioni complesse per gestire, ad esempio, un sistema di allarme completo, il controllo completo di una pompa di calore, ...
Un libro sull'argomento è disponibile all'indirizzo https://github.com/rwbl/domoticz-homeautomation-workbook
Questa pagina mostra come creare una nuova immagine pulita con Raspbian + Domoticz + firewall + backup. Raspbian + Domoticz
Se preferisci acquistare una scheda SD di alta qualità già programmata, visita il nostro negozio . 
Scrittura di un'immagine per Raspberry
Proponiamo una soluzione rapida per installare un'immagine preconfigurata di Raspbian su Raspberry Pi 3, Pi 4 e Pi 5, completa del software Domoticz più recente e configurata per preservare la memoria flash MicroSD (la memoria flash non può essere scritta in sicurezza più di 10.000 volte) ed esportare un backup settimanale facilmente ripristinabile in caso di problemi.
Questa immagine è stata testata sia su hardware Raspberry Pi 3 che Raspberry Pi 4 e utilizza l'ultima distribuzione Raspbian.
Installando questa immagine su una scheda microSD, sarete immediatamente pronti a configurare i vostri dispositivi Domoticz tramite l'interfaccia web.
Estrazione dell'immagine su una scheda microSD
È necessaria una distribuzione Linux, wget, sfdisk, fsarchiver e una scheda microSD (o SSD) con almeno 16 GB di spazio.
Dalla shell bash, inserisci i seguenti comandi:
export disk=/dev/sdh #sostituisci sdh con il dispositivo microSD/SSD
wget https://docs.creasol.it/raspberry_domoticz.sfdisk
wget https://docs.creasol.it/raspberry_domoticz.sfdisk
sfdisk $disk < raspberry_domoticz.sfdisk
fsarchiver -v restfs raspberry_domoticz.fsa id=0,dest=${disk}1 id=1,dest=${disk}2
echo -e "\\aMicroSD copiata"
Caratteristiche
- Compatibile sia con Raspberry Pi 4 che con Raspberry Pi 3.
- Raspbian + una versione recente di Domoticz
- Ottimizzato per ridurre la scrittura su memoria flash: /tmp e /var/log sono in ramfs, non in SD, e lo swap è disabilitato. I file temporanei di Domoticz vengono scritti in /tmp, non in SD, estendendo in questo modo la durata della memoria
- Firewall con iptables/netfilter, configurabile modificando il file /usr/local/sbin/myfirewallpi.sh
- Backup automatico che crea una copia incrementale dei file modificati; un giorno alla settimana viene eseguito un backup completo e un giorno al mese viene creata un'immagine del sistema; il backup può essere facilmente esportato su un disco rigido USB collegato o su un NAS (FTP o CIFS).
- Domoticz è parzialmente configurato con alcuni dispositivi e con il plugin Creasol Dombus già installato (plugin Domoticz per utilizzare i dispositivi Creasol DomBus collegati al Raspberry tramite un bus seriale RS485).
Accesso e configurazione del Raspberry con l'immagine programmata
Queste sono le credenziali predefinite per questa immagine:
utente linux: pi , password: arangingenni
utente linux: root , password: geriandallse
utente domoticz: domoticz , password: creasol
Si consiglia di cambiare queste password predefinite!
Avviando Raspberry con questa immagine, otterrà la configurazione di rete dal server DHCP (router), quindi potrai connetterti tramite browser a un URL come http://192.168.1.123:8080 ( controlla il tuo server DHCP per ottenere l'indirizzo IP assegnato a Raspberry o esegui una scansione della tua LAN). Se connetti Raspberry da reti 192.168.*.*, 172.16.*.* o 10.*.*.*, non è richiesta alcuna autenticazione .
Inoltre, il servizio ssh è abilitato , quindi è possibile accedere alla shell sicura (utilizzando ssh, putty o qualsiasi altro client ssh) come utente pi o root.
Come creare un'immagine da una scheda SD Raspberry
Abbiamo scritto lo script bash raspberry_domoticz.sh (vedi sopra) che permette di salvare una copia della memoria del Raspberry su un'unità USB e anche di creare una nuova scheda SD con il contenuto di un'immagine salvata .
Questo è utile perché:
- La memoria flash non può essere scritta all'infinito : normalmente ogni cella flash può essere scritta fino a 10.000-100.000 volte. L'immagine proposta è ottimizzata per limitare le scritture sulla scheda SD.
- È sempre una buona idea avere un backup del Raspberry Pi in esecuzione , in modo che in caso di problemi sia possibile ripristinare il sistema da un'immagine precedente.
- Forse hai bisogno di clonare una scheda SD esistente e conservare le immagini sul tuo PC o NAS.
Caratteristiche:
- Le immagini sono compresse ... è assurdo avere un'immagine da 16 GB per una scheda SD da 16 GB quasi vuota!!
- Le immagini possono essere ripristinate su schede SD di diverse dimensioni , quindi è possibile utilizzare la stessa immagine per scrivere su una scheda SD da 32 GB o da 8 GB.
- La creazione e il ripristino di un'immagine sono davvero veloci , rispetto ad altri sistemi.
Purtroppo questo sistema non funziona su Windows, ma... chi usa ancora Windows al giorno d'oggi? Tutto si sta spostando su Linux! Android è Linux. Raspbian è Linux. I vostri router, access point e TV molto probabilmente utilizzano il sistema operativo Linux! ;-)
Fai clic per scaricare lo script raspberry_domoticz.sh , salvalo in una directory eseguibile sul tuo sistema Linux (ad esempio /usr/local/sbin) e assegnagli i permessi di esecuzione.
Eseguite raspberry_domoticz.sh e seguite le istruzioni per creare un'immagine compressa dalla scheda SD del Raspberry. Funziona anche in modalità live, direttamente dal sistema Linux in esecuzione, con un'alta probabilità di successo.
Vuoi di più? Presentazione dell'affidabilissimo DomBus
Domande frequenti (FAQ)
Alcuni comandi utili
ps ax |grep domoticz : elenca tutti i processi attivi mostrando solo quelli con il nome domoticz
netstat -lnp |grep domoticz : mostra le porte TCP/UDP utilizzate da domoticz (normalmente utilizza la porta 8080)
lsusb : elenca i dispositivi collegati tramite USB. lsusb -v mostra i dettagli sui dispositivi USB.
Come configurare i GPIO del Raspberry Pi
Con questa immagine Raspbian, i GPIO possono essere configurati modificando il file /etc/rc.local e impostando il GPIO desiderato come output (se in uscita), in ingresso (se in ingresso) o entrambi (se bidirezionale).
[code]#/etc/rc.local file
#impostazione GPIO tramite lo strumento wiringpi:
#sintassi: gpio export GPIONUMBER out|in|both per impostare come output, input o I/O
gpio export 24 out # Imposta come output.
esportazione GPIO 23 in uscita
esportazione GPIO 22 in uscita
esportazione gpio 27 in uscita
esportazione gpio 18 in uscita
esportazione gpio 17 in uscita
gpio export 25 out #lightOut2
esportazione gpio 8 out #lightOut3
gpio export 7 out #lightOut4
gpio export 12 out #lightOut1[/code]
Dopo la modifica, digita /etc/rc.local per ricaricare lo script.
Come aggiornare il plugin Creasol DomBus all'ultima versione?
Dalla shell di root, digita semplicemente il comando creasoldombus_update.sh
Come configurare un indirizzo IP statico per l'interfaccia Ethernet di Raspbian?
Modifica il file /etc/dhcpcd.conf ( con nano /etc/dhcpcd.conf ) e aggiungi le seguenti righe alla fine:
interface eth0 static ip_address=192.168.1.250/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 8.8.8.8
e salva con ctrl-x.
Il Raspberry non può essere connesso tramite SSH (porta 22) o HTTP (porta 8080).
Assicurarsi che il cavo LAN sia collegato al Raspberry e che un server DHCP possa assegnargli un indirizzo IP.
È installato uno script firewall, /usr/local/sbin/myfirewallpi.sh, che richiede che l'interfaccia eth0 sia già configurata tramite DHCP o IP statico.
Quanta energia consuma il Raspberry Pi 4?
Poiché i sistemi di domotica sono nati per ridurre l'impatto ambientale degli edifici, è importante sapere se un Raspberry Pi sia un hardware adatto come controller domotico, in termini di potenza della CPU, stabilità e consumo energetico.
Cercando sul web è possibile trovare solo pochi articoli che descrivono il consumo energetico di un Raspberry Pi, quindi il modo migliore è misurare il consumo energetico nella pratica.
Questo è l'hardware in fase di test: un Raspberry Pi 4 con 1 GB di RAM, collegato alla rete LAN e alimentato da un alimentatore CC a 5V.

Di seguito, il valore della corrente e della tensione con il sistema operativo Raspbian misurato quando
1. a sinistra, senza alcun carico (utilizzo della CPU molto basso), consumo energetico del Raspberry = 5V*0,42A= 2,1W normale
2. A destra, con un carico del 100% sui 4 core, il consumo energetico del Raspberry è pari a 5V*0,63A = 3,15W di picco.



Configurazione del firewall
Come abilitare l'indirizzo IP che si desidera utilizzare per accedere al Raspberry/Domoticz dall'esterno?
Modifica lo script del firewall con il comando nano /usr/local/sbin/myfirewallpi.sh e modifica la variabile ADMIN_SOURCE aggiungendo gli indirizzi IP (o le reti) che desideri abilitare:
ADMIN_SOURCE='80.86.145.56/29 149.13.157.0/24 37.0.0.0/8'
dove /24 significa che l'ultima cifra dell'indirizzo IP può essere qualsiasi numero compreso tra 0 e 255, e /8 significa che viene controllata solo la prima cifra, mentre le restanti 3 cifre possono essere qualsiasi numero compreso tra 0 e 255.
Salva il file con CTRL-s e CTRL-x, quindi esegui lo script digitando /usr/local/sbin/myfirewallpi.sh
Come abilitare le connessioni in entrata al server web su Raspberry?
Modifica lo script del firewall con il comando nano /usr/local/sbin/myfirewallpi.sh e aggiungi la porta 80 (http) o 443 (https) alla variabile TCP_SERVICES_IN_wan
quindi salva lo script (CTRL-s e CTRL-x) ed esegui lo script del firewall con il comando /usr/local/sbin/myfirewallpi.sh
Configurazione di backup
La configurazione è memorizzata nel file /usr/local/etc/backup.conf : modificalo con il tuo editor preferito (ad esempio nano /usr/local/etc/backup.conf ).
Come creare periodicamente un'immagine
Modifica la variabile DISKS:
DISCHI="mmcblk0p1 mmcblk0p2"
per creare un'immagine per le partizioni di avvio e di root
Come esportare un backup su un disco rigido USB esterno?
BACKUP_DIR_CONTROL="/mnt/usb"
BACKUP_PARTITION_CHECK="/mnt/usb"
BACKUP_DIR="${BACKUP_DIR_CONTROL}/backup_domoticz"
BACKUP_DIR_MOUNT="mount -o nodev,noexec,async /dev/sda1 ${BACKUP_DIR_CONTROL}" # Monta /dev/sda1
BACKUP_DIR_UMOUNT="umount ${BACKUP_DIR_CONTROL}" # Smonta /dev/sda1
BACKUP_DIR_AFTER_UMOUNT="hdparm -S12 /dev/sda" # Spingere il disco rigido esterno
Come esportare un backup su un NAS montato tramite CIFS (Samba)?
BACKUP_DIR_CONTROL="/mnt/nas"
BACKUP_PARTITION_CHECK="/mnt/nas"
BACKUP_DIR="${BACKUP_DIR_CONTROL}/backup_domoticz"
BACKUP_DIR_MOUNT="mount -t cifs -o username=USER,password=PASSWORD, //NAS_IP_ADDRESS/SHARE ${BACKUP_DIR_CONTROL}" # Monta la partizione NAS
BACKUP_DIR_UMOUNT="umount ${BACKUP_DIR_CONTROL}" # Smonta la partizione NAS
BACKUP_DIR_AFTER_UMOUNT="" # comando inviato dopo BACKUP_DIR_UMOUNT: non fare nulla