Controllare il raffreddamento di Raspberry Pi con Home Assistant e Fan SHIM

5 minuti di lettura
SCOPI DEL PROGETTO:
  • Controllare la ventola Fan SHIM su Raspberry tramite Home Assistant
  • Livello di difficoltà: basso
  • Costo: basso
CONCETTI AFFRONTATI:
  • Configurazione software
  • Installazione hardware
COMPONENTI SOFTWARE UTILIZZATE:
COMPONENTI FISICI UTILIZZATI:
PROGETTO INDICATO PER:

home assistant -su raspberry pi

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione progetto: 1.1
ATTENZIONE: Questa è una guida alternativa a quella dedicata agli utenti Raspberry Pi con sistema operativo Raspbian.

Abstract

Non è certo una novità che la dissipazione del calore dalle apparecchiature elettroniche sia, spesso, un grosso problema. Raspberry Pi, il mini computer più diffuso al mondo (comodo per tante diverse funzioni) non fa certo differenza, sebbene sia costruito talmente bene da riuscire, di per sé, a una discreta dissipazione passiva.

Fan SHIM
la ventola Fan-SHIM.

Il problema si pone quando si presentano dei picchi computazionali importanti (specialmente con il modello 4B), oppure quando, a prescindere, l’aria della stanza in cui è installato è calda, come per esempio capita d’estate. Per risolvere il problema è solitamente sufficiente collocare una piccola ventola di raffreddamento, la quale però solitamente presenta due problemi:

  • è perennemente accesa
  • talvolta (spesso) è rumorosa.

Abbiamo avuto modo di testare una ventola specifica, la nota Fan SHIM la quale, dotata di una micro board di controllo, consente – in abbinamento a una configurazione Home Assistant – di accendersi solo al raggiungimento di determinate temperature critiche, e spegnersi al di sotto di altre. Si tratta inoltre di una ventola particolarmente silenziosa.

Fan SHIM presenta anche un LED multicolore che indica l’operatività della ventola: ROSSO quando in rotazione, VERDE quando non operativa. Il pulsante, invece, serve per passare dalla modalità automatica (che vedremo come configurare a seguire) oppure manuale: una pressione lunga fa entrare in modalità manuale, una breve scambia da acceso a spento. Una nuova pressione lunga reimposta la ventola in modalità automatica.

N.b. Se si utilizza Raspberry Pi con sistema operativo Raspbian è possibile evitare di delegare a Home Assistant il controllo della ventola e utilizzare un piccolo software creato apposta dai produttori della ventola. Per attuare questa strategia, la guida opportuna è questa.
Ma la ventola serve davvero?

Si tratta di un tema molto dibattuto. Quello che si è capito è che a prescindere il Raspberry Pi, quando si surriscalda, riduce la sua frequenza di clock: diventa quindi più lento. Per esempio, il Raspberry Pi 3 B+ gira normalmente a 1.4 GHz. Quando raggiungere i 60 gradi centigradi riduce la sua velocità a 1,2 GHz, mentre quando raggiunge gli 80 scende a 1,1 GHz. Questo effetto è ancora più percepibile su Raspberry Pi 4 B che, come noto, scalda di più.

Inoltre è noto come il calore, a prescindere, tenda a rovinare l’elettronica, arrivando fino a guastarla. Un Raspberry Pi che rallenta e si rovina nel tempo? Ognun per sé: noi però preferiamo adottare la ventola.

Montaggio della ventola

In primis è necessario montare fisicamente la ventola sul Raspberry. Per farlo è necessario spegnerlo accedendo alla voce di menu  “Supervisor” > “SYSTEM” >”SHUTDOWN“ se si usa HASSIO oppure – per chi usa Home Assistant Core installato su Raspbian – tramite il comanda via terminale (da CLI, via SSH oppure con control-alt-t da interfaccia desktop VNC):

sudo shutdown now

Terminato lo spegnimento software (LED del Raspberry Pi non più lampeggianti), disalimentare elettricamente il Raspberry.


Il contenuto della confezione della Fan SHIM è il seguente:

  • Fan SHIM PCB (la micro-board bianco/nera);
  • mini-ventola da 30mm;
  • viti e bulloni in naylon.

Montare la ventola come da sequenza:

Fan Shim installazione - 2
foto pimoroni.com
Fan Shim installazione - 1
foto pimoroni.com
Fan Shim installazione - 3
foto pimoroni.com

Collegare il connettore femmina della ventola al connettore maschio presente sulla mini-board:

Fan Shim installazione - 4
foto pimoroni.com
Fan Shim installazione - 5
foto pimoroni.com

Rimuovere eventuali dissipatori passivi incollati sul processore del Raspberry e pulire eventuali residui.
Posizionare, incastrandola sui pin del Raspberry (si sostiene per frizione), la miniboard della Fan Shim come da immagine:

Fan Shim installazione - 6
foto pimoroni.com

Il montaggio è così completato.

Breve presentazione e montaggio di Fan SHIM

Al termine riaccendere Raspberry Pi.

Se si usa il sistema operativo Raspbian accedere nuovamente al terminale (da CLI, via SSH oppure con control-alt-t da interfaccia desktop VNC) ed eseguire il seguente comando:

sudo adduser homeassistant gpio

Tale comando aggiunge l’utente “homeassistant” alla lista di quelli abilitati a controllare logicamente la piedinatura fisica del Raspberry Pi (sulla quale è posizionata la ventola).

Home Assistant

A questo punto siamo pronti a installare il package fornito da noi proposto per la definizione di tre entità:

  • un sensore che fornisca a Home Assistant la lettura della temperatura della CPU del Raspberry;
  • uno switch che consenta di accendere/spegnere la ventola;
  • un termostato virtuale che, in base alla temperatura del sensore di cui sopra e della temperatura desiderata dall’utente provveda ad accedere/spegnere la ventola.

Per installare questo progetto utilizzeremo per l’appunto i package, una funzione di Home Assistant che permette di definire uno o più file di configurazione specifici, raggruppando così tutte le sue configurazioni in un solo posto. Per capire come utilizzare questo componente e installato è utile leggere questa scheda.

Nella cartella scelta per i packages (solitamente “packages” all’interno della cartella che contiene i file di configurazione di Home Assistant), copiare il file chiamato “fan_shim_home_assistant.yaml” contenuto nel repository che potete trovare QUI.

Infine salvare e uscire. Recarsi alla voce di menu “Configurazione” > “Gestione del server” e cliccare su “CONTROLLA LA CONFIGURAZIONE“: se – e solo se – la configurazione risulta corretta, provvedere a un riavvio di Home Assistant (voce “RIAVVIARE” a fondo pagina).

Dopo un necessario riavvio, (svariate) nuove entità di diversa natura saranno apparse presso Home Assistant.

Vediamo da cos’è composto il nostro semplice package:

sensor:
  - platform: command_line
    name: Temperatura CPU
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    unit_of_measurement: "°C"
    value_template: '{{ value | multiply(0.001) | round(1) }}'
    scan_interval: 10
switch:
  - platform: rpi_gpio
    ports:
      18: Fan SHIM
climate:
  - platform: generic_thermostat
    name: Fan SHIM
    heater: switch.fan_shim
    target_sensor: sensor.temperatura_cpu
    min_temp: 40
    max_temp: 80
    ac_mode: true
    target_temp: 40
    cold_tolerance: 0.1
    hot_tolerance: 0.1
    min_cycle_duration:
      seconds: 120
    keep_alive:
      minutes: 5
    initial_hvac_mode: "cool"

Il primo blocco definisce il sensore (“sensor.temperatura_cpu“) che censisce appunto la temperatura della CPU; il secondo lo switch (“switch.fan_shim“) che controlla il piedino 18 del Raspberry Pi (ovvero l’alimentazione della ventola; in ultimo, il blocco finale definisce il termostato (“climate.fan_shim“) che controllerà, come detto, la temperatura (proponiamo una configurazione di quest’ultimo “di massima”, liberamente modificabile dall’utente).

Recarsi dunque alla voce di menu “Configurazione” > “Gestione del server” e cliccare su “CONTROLLA LA CONFIGURAZIONE“: se – e solo se – la configurazione risulta corretta, provvedere a un riavvio di Home Assistant (voce “RIAVVIARE” a fondo pagina).

Dopo il necessario riavvio, le tre nuove entità di diversa natura saranno apparse presso Home Assistant:

Home Assistant - Climate Fan SHIM
il termostato virtuale.
Home Assistant - Climate Fan SHIM - Dettagli
il dettaglio del termostato virtuale.

Uso

A questo punto il termostato provvederà ad accendere la ventola quando la temperatura della CPU del Raspberry Pi supererà la temperatura target impostata sul termostato stesso, temperatura di default impostata a 40 gradi.


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Telegram News Channel