Debian 9 stretch, novità e aggiornamento di Home Assistant
Mamma Raspberry ci delizia con una nuova versione del sistema operativo Raspbian: Raspbian Stretch, basato su Debian 9 stretch.
In questo articolo andiamo a vedere le principali novità che ci offre Debian 9 stretch e come possiamo aggiornare la nostra Raspberry in modo da non compromettere il funzionamento del nostro impianto di domotica basato su Home Assistant.
Hai già dato un occhio all’indice di articoli inerenti la Domotica presenti nel mio sito?
Facci un salto: Indice articoli di Domotica
Debian 9, funzionalità e principali novità
Faccio una piccola premessa: prima di aggiornare immediatamente la Raspberry a Debian 9 stretch, fate un riepilogo di tutte le tecnologie a livello domotico che state utilizzando: NFC, MQTT, Sensori etc.
Questo aggiornamento, oltre a comportare dei miglioramenti, comporta anche l’esclusione di alcuni pacchetti in quanto obsoleti. Dobbiamo essere certi che i pacchetti nella versione di Debian 9 stretch siano compatibili con la nostra attuale installazione, diversamente dobbiamo trovare un’altra soluzione.
- Aggiornamenti software presenti nella distribuzione:
Pacchetto | Versione in 8 (jessie) | Versione in 9 (stretch) |
BIND Server DNS | 9.9 | 9.1 |
Emacs | 24.4 | 24.5 e 25.1 |
Exim, server predefinito per la posta elettronica | 4.84 | 4.88 |
GNU Compiler Collection come compilatore predefinito | 4.9 | 6.3 |
GnuPG | 1.4 | 2.1 |
Inkscape | 0.48 | 0.91 |
la libreria C GNU | 2.19 | 2.24 |
Immagine del kernel Linux | serie 3.16 | serie 4.9 |
MariaDB | 10 | 10.1 |
Nginx | 1.6 | 1.1 |
OpenJDK | 7 | 8 |
OpenSSH | 6.7p1 | 7.4p1 |
Perl | 5.2 | 5.24 |
PHP | 5.6 | 7 |
MTA Postfix | 2.11 | 3.1 |
PostgreSQL | 9.4 | 9.6 |
Python 3 | 3.4 | 3.5 |
Samba | 4.1 | 4.5 |
Vim | 7 | 8 |
- Rimpiazzo di MySQL
Con Debian 9 stretch, MariaDB diventa la versione predefinita di MysQL.
- Nuova struttura interfacce di Rete.
Debian 9, introduce un nuovo sistema per la gestione della scheda di rete: “Predictable Network Interface Names”
Perché è stata fatta questa scelta? E soprattutto…cosa significa?
Se siete pratici di Linux, avrete notato che la nomenclatura standard per le interfacce di rete è simile a “eth0“, “wlan0” etc… Il fatto che queste nomenclature rimangano tali anche con l’aggiunta o la rimozione di Hardware, può portare problemi.
Potrebbe succedere che al boot della Raspberry, la scheda di rete eth0 diventi eth1, per non parlare di problemi relativi alla sicurezza nel caso di Firewall con regole specifiche.
Una potenziale soluzione a questo problema è stata quella di assegnare dei nomi specifici alle interfacce di rete “Internet0”, “dmz0” basati sul MAC dell’interfaccia. Questo però impone all’utente di scegliere lui quale nome assegnare all’interfaccia.
Ecco perché è stato pensato il “Predictable Network Interface Name“, un sistema che codifica il nome dell’interfaccia di rete, automaticamente, in maniera prevedibile, e soprattutto rimane costante nel tempo qualora venga modificato l’hardware della scheda madre (nel nostro caso la Raspberry).
Questi nomi sono leggermente più difficili da leggere, ma sicuramente aiutano a migliorare la gestione. “eth0” ad esempio potrebbe diventare “enp5s0”
Altra cosa che è stata modificata per quanto riguarda le interfacce di rete è la gestione del DHCP e dell’indirizzo IP Statico.
Se con la precedente distribuzione Jessy, avevate modificato il file /etc/network/interfaces, ora cambia qualcosa.
- Tutte le configurazioni si sono spostate dentro il file: /etc/dhcpcd.conf
- Questo file contiene le configurazioni del DHCP e, nel caso in cui lo vogliate, anche la configurazione dell’indirizzo IP statico.
- Altra cosa davvero carina è la funzione di fall back: poter configurare una interfaccia di “backup” nel caso in cui ci siano problemi con il rilascio dell’indirizzo DHCP.
Debian 9, configurazione IP Statico
Come imposto quindi un indirizzo IP Statico su Debian 9 stretch se non voglio immergermi nel mondo del DHCP e delle reservations? Segui questi semplici passi:
- Aggiorniamo la Raspberry
- Installiamo VIM (o usiamo NANO come editor)
- Modifichiamo l’indirizzo
- Riavviamo
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoclean && sudo apt-get clean && sudo apt-get autoremove
sudo apt-get install vim
sudo vim /etc/network/interfaces
Il file è da configurare in questo modo
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and ‘man dhcpcd.conf’# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.dauto NOME_INTERFACCIA
iface NOME_INTERFACCIA inet static
address 192.168.X.XX
netmask 255.255.255.0
gateway 192.168.X.XX
dns-nameservers 8.8.8.8 8.8.4.4
Il “NOME_INTERFACCIA” lo trovate usando il comando:
ifconfig
Solitamente è la prima interfaccia che compare.
Salvate, riavviate la Raspberry e ora dovreste essere in grado di pingare la vostra scheda all’indirizzo nuovo.
Aggiornamento da Raspbian Jessy a Raspbian Strech con Debian 9
Qui veniamo alla parte divertente. Ora dobbiamo valutare 2 strade
- Aggiornare la Raspberry e poi aggiustare Home Assistant
- Formattare la Raspberry, installare Debian 9 stretch e poi installare Home Assistant.
Perché aggiustare Home Assistant? Purtroppo l’aggiornamento a Debian 9 stretch compromette l’installazione di Home Assistant, in particolar modo l’ambiente virtuale su cui è installato. E’ necessario fare degli aggiustamenti.
Io sono sempre per la soluzione tecnicamente più efficiente e più facile da percorrere: la seconda. Se non avete software particolari installati nella Raspberry potete anche procedere con il primo metodo.
- Metodo 1. Aggiornamento della Raspberry a Debian 9 stretch.
Usando l’utente Root:
# apt-get update
# apt-get upgrade
Verifichiamo la compatibilità dell’aggiornamento:
# apt-get dist-upgrade
Controlliamo nel Sistema eventuali pacchetti che non possono essere aggiornati
# dpkg -C
# apt-mark showhold
I pacchetti marcati come “On Hold” non verranno aggiornati per problemi di compatibilità.
Aggiorniamo i Repository con quelli della versione di Debian 9 stretch
# sed -i ‘s/jessie/stretch/g’ /etc/apt/sources.list
Aggiorniamo tutto nuovamente e verifichiamo con una simulazione se tutto è ok
# apt-get update
# apt-get –simulate upgrade
Incrociamo le dita e lanciamo l’aggiornamento:
# apt-get upgrade
# apt-get dist-upgrade
Finito, riavviamo la nostra Raspberry per gustarci Debian 9 stretch
- Metodo 2, installazione da zero
In ordine:
- Salvate tutto il contenuto della cartella Home Assistant. Se avete installato il software come nella guida che trovate qui, il percorso lo trovate in: /home/homeassistant/.homeassistant
- File di configurazione di Bind9
- File di configurazione si Snips
- Certificati HTTPS per la connessione da remoto
- Tutto quello che avete installato sopra Home Assistant.
Fatti tutti i backup del caso, procediamo con lo scaricare la versione nuova di Raspbian qui
A questo punto potete seguire passo passo la guida per Installare Home Assistant
Riconfigurazione di Home Assistant
Ora che abbiamo installato Debian 9 stretch e installato anche Home Assistant, dobbiamo ripristinare le configurazioni che abbiamo salvato.
Per quanto riguarda tutti i software di terze parti installati sopra Home Assistant, andranno reinstallati e le configurazioni replicate.
Per Home Assistant sarà sufficiente stoppare il servizio e copiare tutti i dati che ci siamo precedentemente salvati nella stessa cartella. Avviamo il servizio e siamo LIVE di nuovo!
Considerazioni Debian 9 stretch e Home Assistant
Come dicevo all’inizio dell’articolo, ci sono alcuni componenti di Home Assistant che non son compatibili con Debian 9. Uno di questi è Mosquitto. Ad oggi sembra non ci sia un metodo ufficiale per poter installare correttamente, senza troppe custom questo software in Debian 9.
Fortunatamente la versatilità di Home Assistant è illimitata quindi possiamo serenamente ripiegare con il suo broker interno seguendo questa guida: MQTT Internal Broker Home Assistant fino a quando Mosquitto non sarà disponibile anche su Debian 9
4 commenti
Con Z-wave ancora no. Mi sto documentando su questa tecnologia e non sembra male. Ho tanti temi che bollono in pentola, ma potrebbe diventare anch’esso motivo per scrivere un articolo 🙂
Grazie per il consiglio. La lista dei device si trovava nel file knows_device.yaml. Cancellando da qui i riferimenti scompare dalla schermata se la persona è in casa ma bisogna poi intervenire anche nel file .ios.conf per evitare che compaiano continuamente i riferimenti alla percentuale della batteria.
Per caso hai provato anche l’integrazione con z-Wave?
Ciao Luca,
Mi fa piacere che tu sia riuscito a configurare tutto correttamente!
Per quanto riguarda il tuo problema: Come riportato nell’articolo: https://home-assistant.io/docs/ecosystem/ios/
(premetto che non ho iPhone quindi è una mia supposizione), prova a controllare che questi 3 files: device_tracker, zeroconf e notify (nella cartella principale di Home Assistant) non riportino ancora delle vecchie configurazioni. In caso affermativo, rimuovile e riconfigura il componente.
Se pensi ti sia stato utile, condividi questo articolo così anche altri possono fare come hai fatto tu 🙂
Ciao
Nik
Complimenti per le guide.
Ho seguito la tua guida per installare home assistant ed ha funzionato tutto correttamente.
Avendo un iPhone ho installato la relativa app per poter gestire il tutto e poter comunicare la mia presenza o meno a casa ad home assistant.
Avendo ripristinato il telefono, home Assistant continua a visualizzare il vecchio device ID. Non riesco a capire come fare a cancellare quelli vecchi.
Sai indicarmi come fare?
Grazie