TapHome

Nibe SMO S40 Regolatore Pompa di Calore

Modbus TCP
Submitted by
Last updated: 03. 2026
Nibe SMO S40 Regolatore Pompa di Calore

Il NIBE SMO S40 è un modulo di controllo a parete per sistemi di pompe di calore NIBE aria/acqua (F2040, F2120, F2030, F2300, HBS 05, AMS 10). Dispone di display touchscreen, connettività WiFi ed Ethernet e server Modbus TCP integrato. TapHome si collega direttamente tramite la rete locale — non è necessario alcun gateway aggiuntivo.

Il template fornisce 26 dispositivi che coprono il monitoraggio delle temperature (esterna, ambiente, mandata, ritorno, acqua calda), il controllo dell’impianto di riscaldamento (curva di riscaldamento, offset curva, gradi-minuto), la selezione della richiesta di acqua calda, il monitoraggio della modalità operativa e della priorità, il monitoraggio della portata, i sensori di corrente del monitor di carico, lo stato della pompa e la gestione degli allarmi.

Collegamento hardware

L’SMO S40 dispone di una porta RJ45 Ethernet (XF8) sull’unità display (AA4) e WiFi integrato (2,4 GHz). Collegarlo alla stessa rete locale di TapHome Core utilizzando un cavo Ethernet standard o il WiFi.

  • Protocollo: Modbus TCP
  • Porta: 502
  • Slave ID predefinito: 1
  • Rete: Ethernet (XF8) o WiFi (2,4 GHz, 802.11)

La morsettiera RS-485 X9 (pin 4=A, 5=B, 6=GND) è utilizzata esclusivamente per la comunicazione tra l’SMO S40 e le pompe di calore NIBE collegate. Non utilizzare X9 per TapHome — utilizzare la porta Ethernet (XF8) o il WiFi per Modbus TCP.

Layout dei componenti
Nibe SMO S40 posizioni dei componenti e layout delle morsettiere

Connettori chiave per l’integrazione con TapHome:

ConnettorePosizioneFunzione
XF8Unità display (AA4)Ethernet — comunicazione Modbus TCP con TapHome
X9:4–6Scheda di collegamento (AA100)Bus RS-485 verso le pompe di calore collegate (A, B, GND) — non per TapHome
X10Scheda di collegamento (AA100)Ingressi sensori (BT1, BT50, BT6, BT7, BT25, BT71, AUX)
X11Scheda di collegamento (AA100)GND comune per tutti gli ingressi sensori
X14Scheda di collegamento (AA100)Sensori di corrente del monitor di carico (BE1, BE2, BE3)
Cablaggio dei sensori
Nibe SMO S40 cablaggio pompa di carica e sensori — sensore esterno BT1, carica acqua calda BT6
Nibe SMO S40 cablaggio sensori — BT7, BT25, BT71, BT50, contatore energia, monitor di carico

Tutti i sensori di temperatura si collegano alla morsettiera X10 con GND comune su X11. Utilizzare cavi di min. 0,5 mm² fino a 50 m (EKKX, LiYY o equivalente). Non posare i cavi dei sensori e di comunicazione accanto ai cavi di alimentazione.

Pin (X10)SensoreRegistroDescrizione
1BT1A:1Temperatura esterna — posizionare in ombra sulla parete nord/nord-ovest
2BT50A:26Temperatura ambiente — attivare nel menu 1.3, posizionare a 1,5 m dal pavimento
3BT6A:9Carica acqua calda — posizionato nel tubo a immersione sullo scaldacqua
4BT7A:8Acqua calda parte superiore — nella parte superiore del serbatoio
5BT25A:39Temperatura della linea di mandata esterna
6BT71A:88Temperatura della linea di ritorno esterna

I sensori di corrente del monitor di carico (BE1–BE3) sono collegati alla morsettiera X14 con GND su X13. Ogni sensore è un TA (trasformatore amperometrico) installato sul conduttore di fase in ingresso.

Configurazione

Attivazione della comunicazione Modbus

Il Modbus TCP si attiva tramite il menu installatore. Sono necessari i seguenti passaggi:

  1. Connessione alla rete — collegare un cavo Ethernet a XF8, oppure configurare il WiFi nel menu 5.2.1
  2. Configurazione TCP/IP — nel menu 5.2, selezionare Automatico (DHCP) o Manuale (IP statico, maschera di rete, gateway, DNS)
  3. Attivazione Modbus TCP/IP — navigare al menu 7.5.9 e impostare Modbus TCP/IP su On
  4. Verifica dello stato di rete — controllare il menu 3.1.13 (“Connessioni”) per l’indirizzo IP assegnato

Per il supporto Modbus TCP è richiesta la versione software 2.2.1 o successiva. I registri disponibili dipendono dagli accessori installati e attivati.

Durante l’importazione del template in TapHome, specificare:

  • Indirizzo IP — l’IP dell’SMO S40 sulla rete locale
  • Slave ID — indirizzo Modbus slave (predefinito: 1)

Assegnare un indirizzo IP statico all’SMO S40 o creare una prenotazione DHCP nelle impostazioni del router. L’unità non supporta mDNS, quindi un indirizzo IP variabile interromperà la connessione.

L’SMO S40 può esportare la lista dei registri su chiavetta USB. Inserire una chiavetta USB e accedere al menu 7.5.9 → “Export most used registers” o “Export all registers” (formato CSV). Utile per verificare quali registri sono disponibili sull’installazione specifica.

Capacità dei dispositivi

Il template espone 26 dispositivi organizzati in sei gruppi funzionali: monitoraggio temperature, controllo impianto di riscaldamento, gestione acqua calda, stato del sistema, monitoraggio portata e pompe e monitoraggio elettrico.

Monitoraggio temperature

Sei sensori di temperatura forniscono un quadro termico completo dell’impianto di riscaldamento:

  • Temperatura esterna (BT1) — temperatura dell’aria esterna dal sensore BT1 (registro A:1, Int16, fattore 10). Posizionare il sensore in ombra su una parete esposta a nord o nord-ovest.
  • Temperatura ambiente (BT50) — temperatura dell’aria nella stanza (registro A:26, Int16, fattore 10). Deve essere attivata nel menu 1.3. Posizionare a 1,5 m dal pavimento su una parete interna libera.
  • Temperatura linea di mandata esterna (BT25) — temperatura della linea di mandata dopo la pompa di calore (registro A:39, Int16, fattore 10). Indica alla pompa di calore quando iniziare a produrre riscaldamento o raffreddamento.
  • Temperatura di ritorno (BT71) — temperatura della linea di ritorno (registro A:88, Int16, fattore 10). Utilizzata per verificare la corretta regolazione del sistema climatico.
  • Temperatura acqua calda superiore (BT7) — temperatura nella parte superiore del serbatoio dell’acqua calda (registro A:8, Int16, fattore 10). Indica la temperatura dell’acqua calda disponibile.
  • Temperatura di carica acqua calda (BT6) — temperatura del sensore di carica nel tubo a immersione (registro A:9, Int16, fattore 10). Controlla l’avvio/arresto della produzione di acqua calda.

Sono disponibili anche due temperature calcolate:

  • Temperatura di mandata calcolata — la temperatura di mandata obiettivo calcolata dal regolatore (registro A:1017, Int16, fattore 10).
  • Temperatura di mandata calcolata (raffreddamento) — temperatura di mandata obiettivo per la modalità raffreddamento (registro A:1567, Int16, fattore 10). Rilevante solo quando il raffreddamento è attivo.
Controllo impianto di riscaldamento

Il template fornisce il controllo diretto dei parametri della curva di riscaldamento:

  • Curva di riscaldamento — coefficiente di lettura/scrittura che determina la relazione tra temperatura esterna e temperatura di mandata (registro H:26, Int16). Un valore più alto produce una curva più ripida e temperature di mandata più elevate a basse temperature esterne.
  • Offset curva — offset parallelo di lettura/scrittura per la curva di riscaldamento (registro H:30, Int16). Un offset positivo sposta la temperatura di mandata verso l’alto, producendo ambienti più caldi.
  • Gradi-minuto — indicatore di richiesta di riscaldamento in lettura/scrittura (registro H:18, Int16, fattore 10). Valori negativi indicano richiesta di calore; il compressore si avvia a una soglia configurabile (predefinita -60 DM). Intervallo: da -3000 a 100.
  • Gradi-minuto (raffreddamento) — indicatore di richiesta di raffreddamento in lettura/scrittura (registro H:20, Int16). Valori positivi indicano richiesta di raffreddamento.
  • Temperatura di mandata min — limite inferiore della temperatura della linea di mandata (registro H:34, Int16, fattore 10). Sola lettura.
  • Temperatura di mandata max — limite superiore della temperatura della linea di mandata (registro H:38, Int16, fattore 10). Sola lettura. Protegge il riscaldamento a pavimento dal surriscaldamento.
Gestione acqua calda
  • Richiesta acqua calda — selettore multivalore in lettura/scrittura per il livello di richiesta acqua calda (registro H:56, Int16). Valori: 0 = Piccola, 1 = Media, 2 = Grande, 3 = Controllo intelligente. Piccola/Media/Grande controllano i setpoint di temperatura dell’acqua calda; il Controllo intelligente utilizza un algoritmo adattivo.
Stato del sistema e controllo
  • Modalità operativa — indicatore di sola lettura della modalità operativa corrente (registro H:237, Int16). Valori: 0 = Auto, 1 = Manuale, 2 = Solo riscaldamento ausiliario. La modalità Auto utilizza la temperatura esterna e i gradi-minuto per controllare automaticamente riscaldamento, raffreddamento e acqua calda.
  • Priorità operativa — indicatore di sola lettura della priorità di sistema corrente (registro A:1028, Int16). Valori: 10 = Off, 20 = Acqua calda, 30 = Riscaldamento, 40 = Piscina, 60 = Raffreddamento.
  • Numero allarme — codice allarme attivo, sola lettura (registro A:1975, UInt16). Il valore 0 indica nessun allarme. I codici allarme sono specifici del dispositivo — consultare il manuale installatore NIBE per le definizioni dei codici.
  • Reset allarme — interruttore di lettura/scrittura per confermare e cancellare l’allarme attivo (registro H:22, Bool). Il valore si resetta automaticamente dopo la scrittura. Indagare sempre la causa dell’allarme prima del reset.
Stato della pompa
  • Pompa di riscaldamento esterna (GP10) — stato on/off di sola lettura della pompa di circolazione esterna del fluido riscaldante (registro A:1066, Bool). GP10 è collegata al terminale X5:2.
  • Velocità pompa di carica (GP12) — velocità di sola lettura della pompa di carica per la pompa di calore EB100 (registro A:1636, Int16). GP12 è la pompa di circolazione tra l’SMO S40 e la pompa di calore aria/acqua collegata.
Monitoraggio della portata
  • Sensore di portata (BF1) — portata del fluido termovettore dal sensore di portata BF1, solo lettura (registro A:40, Int16, fattore 10, l/m). Sensore opzionale utile per il monitoraggio delle prestazioni dell’impianto di riscaldamento e la stima del COP.
Monitoraggio elettrico (monitor di carico)

Tre sensori di corrente monitorano i conduttori di fase in ingresso:

  • Corrente fase 1 (BE1) — corrente fase 1 dal sensore CT BE1 (registro A:50, UInt32, fattore 10).
  • Corrente fase 2 (BE2) — corrente fase 2 dal sensore CT BE2 (registro A:48, UInt32, fattore 10).
  • Corrente fase 3 (BE3) — corrente fase 3 dal sensore CT BE3 (registro A:46, UInt32, fattore 10).

Il monitor di carico previene lo scatto dell’interruttore principale dell’edificio riducendo i gradini di riscaldamento ausiliario quando il consumo di corrente è elevato. Configurare la dimensione del fusibile nel menu 7.1.9.

Statistiche tempo di funzionamento
  • Tempo di funzionamento totale riscaldamento ausiliario — ore di funzionamento cumulative del riscaldatore elettrico ausiliario (registro A:1025, Int32, fattore 10). Utile per monitorare l’utilizzo del riscaldamento ausiliario e l’efficienza energetica.
Capacità aggiuntive

L’SMO S40 espone in totale oltre 1400 registri. Oltre ai 26 dispositivi nel template, l’unità fornisce anche stato e tempo di funzionamento del compressore (EB100), conteggio avviamenti compressore, bitmask di stato corrente (flag riscaldamento/acqua calda/raffreddamento), misurazioni del flusso energetico (acqua calda, riscaldamento, piscina — solo compressore e compressore + riscaldamento ausiliario), letture contatore energia a impulsi (BE6/BE7), soglie gradi-minuto per avvio compressore e riscaldamento ausiliario, configurazione azioni allarme e controllo funzione vacanza. Questi possono essere aggiunti al template TapHome in un futuro aggiornamento.

Risoluzione dei problemi

Nessuna comunicazione Modbus
  1. Verificare che il cavo Ethernet sia collegato alla porta XF8 sull’unità display (non alla morsettiera RS-485 X9)
  2. Controllare il menu 7.5.9 — Modbus TCP/IP deve essere impostato su On
  3. Verificare l’indirizzo IP nel menu 3.1.13 (“Connessioni”)
  4. Assicurarsi che TapHome Core e l’SMO S40 siano sulla stessa rete/sottorete
  5. Confermare che nessun firewall blocchi la porta 502
  6. Verificare che la versione firmware sia 2.2.1 o successiva
L’indirizzo IP cambia dopo il riavvio

L’SMO S40 non supporta mDNS. Utilizzando DHCP, l’indirizzo IP potrebbe cambiare dopo un’interruzione di corrente o un rinnovo del lease. Creare una prenotazione DHCP nel router o configurare un IP statico nel menu 5.2.

Letture sensori mancanti

Non tutti i sensori sono installati di default. BT50 (sensore ambiente) deve essere attivato nel menu 1.3 dopo l’installazione fisica. BT6, BT7, BT25 e BT71 richiedono il collegamento del sensore corrispondente alla morsettiera X10. Se un sensore non è installato, il registro restituirà un valore predefinito o di errore.

Nota sull’indirizzamento dei registri

Il template TapHome utilizza la numerazione nativa dei registri NIBE. Le librerie della community (es. la libreria Python nibe) utilizzano un offset +1 per i registri di ingresso — ad esempio, BT1 è il registro 1 in TapHome ma il registro 30002 nella libreria. Questa è una nota differenza di convenzione NIBE, non un errore.

Dispositivi disponibili

Nibe SMO S40 Modulo
Numero allarme Variabile Solo lettura

Codice allarme attivo — 0 significa nessun allarme; consultare il manuale installatore NIBE per le definizioni dei codici

Registro: A:1975 UInt16 numeric

Numero allarme

Lettura
MODBUSR(A, 1975, UInt16)
Temperatura di mandata calcolata Sensore di temperatura Solo lettura
Registro: A:1017 (implicit) Int16 Unità: °C numeric

Temperatura di mandata calcolata

Lettura temperatura
MODBUSR(A, 1017, Int16) / 10
Temperatura di mandata calcolata (raffreddamento) Sensore di temperatura Solo lettura

Temperatura di mandata obiettivo per la modalità raffreddamento — rilevante solo quando il raffreddamento è attivo

Registro: A:1567 (implicit) Int16 Unità: °C numeric

Temperatura di mandata calcolata (raffreddamento)

Lettura temperatura
MODBUSR(A, 1567, Int16) / 10
Velocità pompa di carica (GP12) Variabile Solo lettura

Velocità della pompa di circolazione tra SMO S40 e la pompa di calore aria/acqua collegata

Registro: A:1636 Int16 Unità: % numeric

Velocità pompa di carica (GP12)

Lettura
MODBUSR(A, 1636, Int16)
Corrente fase 1 (BE1) Variabile Solo lettura
Registro: A:50 UInt32 Unità: A numeric

Corrente fase 1 (BE1)

Lettura
MODBUSR(A, 50, UInt32)
Corrente fase 2 (BE2) Variabile Solo lettura
Registro: A:48 UInt32 Unità: A numeric

Corrente fase 2 (BE2)

Lettura
MODBUSR(A, 48, UInt32)
Corrente fase 3 (BE3) Variabile Solo lettura
Registro: A:46 UInt32 Unità: A numeric

Corrente fase 3 (BE3)

Lettura
MODBUSR(A, 46, UInt32)
Gradi-minuto Variabile

Indicatore di richiesta riscaldamento — valore negativo indica richiesta di calore; il compressore si avvia a soglia configurabile (predefinita -60 DM)

Registro: H:18 Int16 Unità: DM numeric

Gradi-minuto

Lettura
MODBUSR(H, 18, Int16)
Scrittura
MODBUSWNE(H, 18, Int16, Va)
Gradi-minuto (raffreddamento) Variabile

Indicatore di richiesta raffreddamento — valore positivo indica richiesta di raffreddamento

Registro: H:20 Int16 Unità: DM numeric

Gradi-minuto (raffreddamento)

Lettura
MODBUSR(H, 20, Int16)
Scrittura
MODBUSWNE(H, 20, Int16, Va)
Pompa di riscaldamento esterna (GP10) Interruttore Solo lettura

Stato on/off della pompa di circolazione esterna del fluido riscaldante

Registro: A:1066 Bool

Pompa di riscaldamento esterna (GP10)

Lettura stato interruttore
MODBUSR(A, 1066, Bool)
Temperatura linea di mandata esterna (BT25) Sensore di temperatura Solo lettura
Registro: A:39 (implicit) Int16 Unità: °C numeric

Temperatura linea di mandata esterna (BT25)

Lettura temperatura
MODBUSR(A, 39, Int16) / 10
Sensore di portata (BF1) Sensore di temperatura Solo lettura

Portata del fluido riscaldante — utile per monitorare le prestazioni del sistema e la stima del COP

Registro: A:40 (implicit) Int16 Unità: l/m numeric

Sensore di portata (BF1)

Lettura temperatura
MODBUSR(A, 40, Int16) / 10
Curva di riscaldamento Variabile

Coefficiente della curva di riscaldamento — valore più alto significa curva più ripida e temperatura di mandata più alta a basse temperature esterne

Registro: H:26 Int16 numeric

Curva di riscaldamento

Lettura
MODBUSR(H, 26, Int16)
Scrittura
MODBUSWNE(H, 26, Int16, Va)
Temperatura di carica acqua calda (BT6) Sensore di temperatura Solo lettura
Registro: A:9 (implicit) Int16 Unità: °C numeric

Temperatura di carica acqua calda (BT6)

Lettura temperatura
MODBUSR(A, 9, Int16) / 10
Richiesta acqua calda Interruttore multivalore

Livello richiesta acqua calda — Piccola, Media, Grande, Controllo intelligente

Registro: H:56 Int16 numeric
Valori / Stati: Piccola · Media · Grande · Controllo intelligente

Richiesta acqua calda

Lettura stato interruttore
MODBUSR(H, 56, Int16)
Scrittura stato interruttore
MODBUSWNE(H, 56, Int16, Mu)
Temperatura acqua calda superiore (BT7) Sensore di temperatura Solo lettura
Registro: A:8 (implicit) Int16 Unità: °C numeric

Temperatura acqua calda superiore (BT7)

Lettura temperatura
MODBUSR(A, 8, Int16) / 10
Offset curva Variabile

Offset parallelo della curva di riscaldamento — valore positivo sposta la temperatura di mandata verso l'alto per ambienti più caldi

Registro: H:30 Int16 numeric

Offset curva

Lettura
MODBUSR(H, 30, Int16)
Scrittura
MODBUSWNE(H, 30, Int16, Va)
Modalità operativa Interruttore multivalore Solo lettura

Modalità operativa corrente — Auto, Manuale, Solo riscaldamento ausiliario

Registro: H:237 Int16 numeric
Valori / Stati: Auto · Manuale · Solo riscaldamento ausiliario

Modalità operativa

Lettura stato interruttore
MODBUSR(H, 237, Int16)
Priorità operativa Variabile Solo lettura

Priorità di sistema corrente — Off, Acqua calda, Riscaldamento, Piscina, Raffreddamento

Registro: A:1028 Int16 numeric

Priorità operativa

Lettura
MODBUSR(A, 1028, Int16)
Temperatura esterna (BT1) Sensore di temperatura Solo lettura
Registro: A:1 (implicit) Int16 Unità: °C numeric

Temperatura esterna (BT1)

Lettura temperatura
MODBUSR(A, 1, Int16) / 10
Reset allarme Interruttore

Conferma e cancellazione dell'allarme attivo — indagare la causa prima del reset

Registro: H:22 Bool

Reset allarme

Lettura stato interruttore
MODBUSR(H, 22, Bool)
Scrittura stato interruttore
MODBUSWNE(H, 22, Bool, St)
Temperatura di ritorno (BT71) Sensore di temperatura Solo lettura
Registro: A:88 (implicit) Int16 Unità: °C numeric

Temperatura di ritorno (BT71)

Lettura temperatura
MODBUSR(A, 88, Int16) / 10
Temperatura ambiente (BT50) Sensore di temperatura Solo lettura
Registro: A:26 (implicit) Int16 Unità: °C numeric

Temperatura ambiente (BT50)

Lettura temperatura
MODBUSR(A, 26, Int16) / 10
Temperatura di mandata max Sensore di temperatura Solo lettura

Limite superiore della temperatura di mandata — protegge il riscaldamento a pavimento dal surriscaldamento

Registro: H:38 (implicit) Int16 Unità: °C numeric

Temperatura di mandata max

Lettura temperatura
MODBUSR(H, 38, Int16) / 10
Temperatura di mandata min Sensore di temperatura Solo lettura
Registro: H:34 (implicit) Int16 Unità: °C numeric

Temperatura di mandata min

Lettura temperatura
MODBUSR(H, 34, Int16) / 10
Tempo di funzionamento totale riscaldamento ausiliario Variabile Solo lettura

Ore di funzionamento cumulative del riscaldatore elettrico ausiliario

Registro: A:1025 Int32 Unità: h numeric

Tempo di funzionamento totale riscaldamento ausiliario

Lettura
MODBUSR(A, 1025, Int32)/10
Connessione: Modbus TCP • Slave ID: $[SlaveId]
Possibili miglioramenti (15)
  • A:5 (S1155 only) Supply Temperature (BT2) — Supply line temperature — available on S1155/S1255, not in SMO S40 register set (uses BT25 external supply instead)
  • A:87 Outgoing Hot Water (BT70) — Int16, /10, °C — hot water circulation outlet temperature
  • H:97 DM Start Additional Heat — Int16, R/W — degree minutes threshold for starting additional electric heater
  • H:159 DM Start Compressor — Int16, R/W — degree minutes threshold for starting compressor
  • H:196 Alarm Action Lower Room Temperature — UInt8, R/W — alarm action when room temperature drops below threshold
  • H:197 Alarm Action Lower HW Temperature — UInt8, R/W — alarm action when hot water temperature drops below threshold
  • A:396 Pulse Energy Meter (BE7/BF3) — UInt32, /100, kWh — energy meter reading
  • A:398 Pulse Energy Meter (BE6/BF2) — UInt32, /100, kWh — energy meter reading
  • A:1083 Compressor Starts (EP14) — Int32 — total compressor start count
  • A:1087 Compressor Runtime (EP14) — Int32, hours — total compressor operating time
  • A:1575 Flow Measurement Hot Water (Cpr + Add) — UInt32, /10, kWh — total hot water energy including compressor and additional heat
  • A:1577 Flow Measurement Total (Cpr + Add) — UInt32, /10, kWh — total heating energy including compressor and additional heat
  • A:1585 Flow Measurement Heat (Cpr only) — UInt32, /10, kWh — heating energy from compressor only
  • A:1121 (library 31121) Current Status Bitmask — UInt32 — bitmask: bit 12=Heating, bit 13=Hot Water, bit 14=HW Boost, bit 20=Cooling
  • H:20 (library 40020) Holiday Function Status — Int8, R/W — enable/disable holiday function

Fonti