Kapfenberg è stata in piedi in un giorno
La terza installazione è stata la più rapida — non perché fossi migliorato, ma perché le prime due erano per iscritto. Più una misura senza occasione.
Contenuto
Kapfenberg è stata la terza istanza, un giorno dopo Vienna e tre settimane dopo Merano. È stata in piedi in un giorno solo.
Non perché fossi diventato più veloce. Perché Merano e Vienna avevano già pestato ogni trappola e qualcuno le aveva messe per iscritto.
Da quel giorno sono comunque nate tre cose che prima non c’erano.
Il componente non basta — manca una riga
Home Assistant ha un componente aggiuntivo chiamato «Terminal & SSH». Installarlo non basta.
Senza la mappatura della porta 22/tcp: 22 è soltanto un terminale nel
browser. Una riga nella configurazione decide se da fuori si entra con una
chiave oppure se per ogni comando bisogna prima aprire l’interfaccia.
La chiave è una ed25519, creata il giorno dell’installazione — e creata in Bash, non in PowerShell. Perché conti sta nell’articolo su Merano: lì proprio questo è costato mezza serata.
unknown_error non significa «fallito»
Lo script che doveva installare il componente si è interrotto:
Supervisor POST /store/addons/core_ssh/install fallito:
{'code': 'unknown_error', 'message': ''}
Un messaggio vuoto, un’interruzione. Il componente era installato lo stesso.
La spiegazione è poco spettacolare e piena di conseguenze: l’interfaccia usata
segnala unknown_error non appena la risposta del Supervisor non è JSON. Succede
con un’installazione come con la lettura di un registro. La chiamata ha avuto
effetto — solo la risposta non è passata.
Da lì è nata una regola per tutti gli script dei tre appartamenti:
Dopo una chiamata in scrittura si misura lo stato, non si crede al valore restituito. Un
unknown_errornon è un motivo per fermarsi.
Un valore restituito è un’affermazione sul risultato. Lo stato è il risultato.
La prima integrazione è arrivata senza che la chiedessi
Al Pi era collegata una chiavetta Zigbee. Non l’avevo cercata: Home Assistant l’aveva riconosciuta via USB e aveva già la finestra di configurazione aperta.
È comodo ed è proprio per questo delicato. Una rete Zigbee nuova avrebbe staccato tutti gli apparecchi prima associati a quella chiavetta.
Quindi una domanda prima di proseguire: la chiavetta è nuova di fabbrica? Lo era. Solo dopo è stata creata la rete.
Una finestra che si apre da sola non è un consiglio. È solo una finestra.
Per inciso, il percorso seriale punta all’identificativo dell’apparecchio, non a
ttyUSB0. Il numero può spostarsi dopo un riavvio, l’identificativo no — un
dettaglio che si fa sentire solo quando arriva un secondo apparecchio USB.
La misura che per due mesi non è servita a niente
Il giorno dell’installazione alla chiavetta non era collegato nemmeno un apparecchio. Ho comunque misurato se Zigbee e Wi-Fi si pestano i piedi: condividono la banda dei 2,4 GHz.
| Frequenza | |
|---|---|
| Wi-Fi, canale 1 (uguale su tutti e tre i ripetitori) | 2402–2422 MHz |
| Zigbee, canale 20 | 2450 MHz |
Nessuna sovrapposizione, 26 MHz di distanza. Il canale che il programma si era scelto da solo era per caso il migliore possibile. Un risultato del tutto inutile quel giorno, annotato in tre righe.
Il 7 novembre valeva improvvisamente dei soldi. Nel passaggio a un altro programma Zigbee, la sua finestra proponeva il canale 11 e lo aveva già scritto:
canale Zigbee 11 2405 MHz in mezzo al Wi-Fi occupato
Per questa casa la scelta peggiore possibile. Cambiato in 20 prima che il primo apparecchio fosse associato.
Se ce ne fosse già stato uno, sarebbe costato una nuova associazione. E se non fosse stato notato, la casa avrebbe fatto girare per mesi una rete Zigbee nel rumore del Wi-Fi — e io avrei poi sospettato la portata, le batterie, i muri. Tutto sbagliato, e tutto plausibile.
A Merano il Wi-Fi sta sul canale 11, e lì Zigbee 20 era esattamente la scelta sbagliata. Stessa raccomandazione, due esiti opposti — perché non è una raccomandazione ma una misura.
Perché SSH, e l’ironia della cosa
SSH non era fine a sé stesso. La sezione http: nel file di configurazione non
si può scrivere attraverso l’interfaccia; non esiste un endpoint. Senza accesso
ai file niente messa in sicurezza dell’accesso remoto, quindi SSH.
E lo stesso giorno è emerso che quella sezione non ha comunque più alcun effetto da una certa versione — l’impostazione migra una volta sola in un archivio interno, e da lì in poi vince l’archivio.
L’avviso è stato scritto qui, con tanto di frase che Vienna e Merano sono interessate allo stesso modo. Vienna è stata aggiornata dieci giorni dopo, e io non l’ho letto — il che è costato un’intera serata.
Il motivo per cui ho configurato SSH era decaduto prima che la chiave avesse una settimana. L’accesso no.
È rimasto utile per quello che non avevo previsto: leggere i registri. Quello che la strada interna non consegna, una riga via SSH lo prende direttamente dall’apparecchio.
Cosa ti consiglio
- Verifica la mappatura della porta, non solo l’installazione. Un componente che gira non è ancora un accesso dall’esterno.
- Non credere ad alcun valore restituito. Dopo una chiamata in scrittura misura lo stato, soprattutto se il messaggio d’errore è vuoto.
- A una configurazione non richiesta rispondi con una domanda. Una finestra che si apre da sola non sa nulla di quello che hai già.
- Misura il canale radio il primo giorno, anche se non c’è ancora nulla collegato. Costa tre righe.
- Scrivi l’avviso per l’installazione gemella — e poi leggilo anche.
E quindi?
Di quel giorno non sopravvive una sola automazione. Non c’era ancora niente da automatizzare — 25 entità, una rete Zigbee vuota, un terminale.
Sopravvivono: una regola sui valori restituiti, una domanda che ha salvato una rete, e tre righe sui canali radio che per dieci settimane sono sembrate superflue.
È questa la differenza tra la prima installazione e la terza. Non la velocità, non l’abitudine — ma che le prime due sono messe per iscritto. Due volte quel giorno mi ha risparmiato una deviazione. E una volta, dieci giorni dopo, me ne è costata una, perché il mio stesso appunto non l’avevo letto.
Se vuoi seguire tutto questo: usa RSS
Niente newsletter. Non mi dai un indirizzo, non tengo liste e nessuno deve acconsentire a nulla per sapere che un articolo è pronto. RSS è la soluzione più vecchia e, per entrambe le parti, la più onesta.
Come si fa, e perché niente newsletter
- 1Procurati un lettore di feed. Senza account con un’app sul telefono o un’estensione del browser; chi preferisce usa un servizio con account.
- 2Inserisci lì l’indirizzo qui sopra.
- 3Fatto. I nuovi articoli compaiono da soli nel tuo lettore — ciò che non leggi resta non letto, e niente finisce tra fatture e pubblicità nella posta.
Perché è meglio: il tuo lettore scarica il file. Io non ricevo nessun indirizzo e non posso vedere chi legge né se qualcuno ha aperto. Disiscriversi vuol dire cancellare la voce — senza link, senza mail di conferma, senza di me.
