MODULO SMART MAIC CONTAIMPULSI D105: MISURAZIONE FLUSSO IDRICO E PRESSIONE + INTEGRAZIONE HOME ASSISTANT

Link prodotto: https://shop.smart-maic.com/it_IT/shop/product/d105-10-pulse-counter-26

Spiegazione del caso d’uso del dispositivo e definizione delle caratteristiche.

CaratteristicaValore
Ingresso impulsidue
Ingresso analogico ADC0,1 V .. 18 VDC (risoluzione 0,02 V)
Ingresso a 1-Wire5 sensori di temperatura o 1 sensore universale
Interfaccia RS485Ingresso/Uscita; Modalità server Modbus
Modalità specialiTempo di funzionamento / Misuratore di calore
Potenza massima al relè< 50W
Protocollo wireless2.4 GHz / IEEE 802.11 (b, g, n)
Cellulare GSM (opzionale)4G WiFi USB Router (opzionale)
Intervallo di raccolta dati1 minuto
Intervallo di aggiornamento5 secondi
Archiviazione dei dati senza Internet30 giorni
Temperature di esercizio-40 .. +60 °C
AlimentatoreAC 100-240V, 50/60Hz, 0.1A, oppure 5V DC
Dimensioni90х63х34 mm (2 moduli DIN)

NOTA

La tabella delle specifiche serve a chi guarda il video per capire subito se il dispositivo può servire al proprio scopo. Va lasciata integra.


COSA VOGLIAMO FARE

Per prima cosa configuriamo il dispositivo in modo che punti al nostro server MQTT locale su Home Assistant, seguendo la guida ufficiale (link in descrizione). Impostiamo i parametri di lettura e definiamo l’obiettivo.

Il D105 ha due tipi di ingresso, ed è importante non confonderli perché usano due sensori diversi.

  • Ingresso impulsi (Hall): ci colleghiamo il sensore di flusso d’acqua, che è un sensore a effetto Hall e genera impulsi digitali proporzionali alla portata. Da questo ricaviamo il consumo d’acqua in ingresso alla casa.
  • Ingresso analogico ADC: ci colleghiamo il sensore di pressione, che fornisce una tensione analogica (0,5-4,5 V) proporzionale alla pressione del tubo.

In parallelo quindi otteniamo una stima del consumo (dal flusso) e una lettura della pressione di rete.


ENTITÀ MQTT E ENTITY_ID

L’integrazione avviene via MQTT Discovery: configurato il broker nel dispositivo e attivata la casella Home Assistant, le entità vengono create automaticamente (prefisso smart-maic/).

Verificato sul dispositivo: il D105 espone i valori grezzi dei sensori (l’ADC in volt, TCh1 come conteggio impulsi puro). La correzione la facciamo quindi in Home Assistant con dei template sensor (“aiutanti”), non sul dispositivo. Questo significa anche che non c’è rischio di doppia conversione, perché sul D105 non è attiva nessuna operazione aritmetica.

Gli entity_id generati seguono lo schema sensor.d105_<NUMERO_DI_SERIE>_<sensore>. Il numero di serie è nella pagina Informazioni Dispositivo.

SOSTITUIRE IL NUMERO DI SERIE

Negli esempi sotto uso il numero di serie del mio dispositivo, 1778388852. Il tuo è diverso: sostituiscilo ovunque. In alternativa, verifica gli entity_id reali in Strumenti per sviluppatori → Stati filtrando per adc, tch1, t5.

Le tre entità che useremo:

  • sensor.d105_1778388852_adc, sensore analogico di pressione (volt grezzi)
  • sensor.d105_1778388852_tch1, contaimpulsi Hall dell’acqua (impulsi cumulativi)
  • sensor.d105_1778388852_t5, sonda 1-Wire temperatura tubo (già in °C, unico valore già pulito)

TARATURA DEL SENSORE DI FLUSSO (impulsi per litro)

Il sensore di flusso è un contatore a impulsi: non conosce i litri, conta solo impulsi. Per trasformare gli impulsi in volume serve il fattore impulsi/litro, che dipende dal diametro del sensore.

A titolo di riferimento, i valori nominali dichiarati dal produttore sono circa 450 impulsi/litro per il DN15, circa 330 per il DN20 e circa 65 per il DN25. Sul mio dispositivo, nella pagina dati, leggo un valore intorno a 62 impulsi/litro (sensore DN25), coerente con il nominale.

ATTENZIONE

Il valore nominale è solo un punto di partenza, con tolleranza dichiarata di ±3%. Non si usa il nominale “a occhio”: va eseguita la taratura empirica, perché il valore reale è comunque “nell’intorno” del nominale ma non identico.

Procedura di taratura (dal Knowledge Base ufficiale):

  • Passo 1: nel menu Dati del dispositivo annotare il parametro TCh1, che è il contatore cumulativo di impulsi.
  • Passo 2: versare un volume noto in un contenitore tarato, ad esempio 5 litri.
  • Passo 3: rileggere TCh1 e calcolare la differenza di impulsi.
  • Passo 4: dividere la differenza per i litri versati. Esempio: 310 impulsi / 5 litri = 62 impulsi/litro.

Questo valore misurato è quello da usare nel template (non il nominale, e non un valore d’esempio arbitrario).


SENSORE CONSUMO ACQUA SU HOME ASSISTANT

TCh1 espone gli impulsi cumulativi grezzi, quindi la conversione in volume la facciamo con un template sensor. Per ottenere i m³:

template:
  - sensor:
      - name: "Consumo acqua"
        unique_id: consumo_acqua_smart_maic
        device_class: water
        state_class: total_increasing
        unit_of_measurement: "m³"
        state: >
          {% set impulsi = states('sensor.d105_1778388852_tch1') | float(0) %}
          {% set imp_per_litro = 62 %}   {# sostituire con il valore ricavato dalla taratura #}
          {{ (impulsi / (imp_per_litro * 1000)) | round(6) }}
        availability: >
          {{ is_number(states('sensor.d105_1778388852_tch1')) }}

La divisione per imp_per_litro * 1000 porta direttamente ai m³, perché 1 m³ = 1000 litri. Con device_class: water e state_class: total_increasing il sensore è pronto per la dashboard Energia di Home Assistant.


PORTATA ISTANTANEA (opzionale)

Il consumo cumulato è la misura principale e affidabile. La portata istantanea è un dato secondario utile, ma con un limite: a portate molto basse è imprecisa e in ritardo, perché arrivano pochi impulsi nell’intervallo di aggiornamento (5 s). Quindi è indicativa, non adatta a rilevare gocciolamenti lenti.

Si ottiene con l’integrazione derivative sul sensore di consumo:

sensor:
  - platform: derivative
    source: sensor.consumo_acqua_smart_maic
    name: "Portata acqua Smart MAIC"
    unit_time: h
    time_window: "00:01:00"

Risultato in m³/h (per L/min, moltiplicare per 1000/60 ≈ 16,67 in un template dedicato).

NOTA

Il time_window di 1 minuto smussa il rumore: finestre più lunghe danno letture più stabili ma più lente. In caso di azzeramento del contatore la derivata può produrre un picco spurio: tenerne conto se si costruiscono automazioni di allarme.


SENSORE DI PRESSIONE SU HOME ASSISTANT

Il sensore di pressione si collega all’ingresso analogico ADC. Caratteristiche utili:

  • Range di misura: 0-12 bar (0-1,2 MPa)
  • Uscita: analogica 0,5-4,5 V lineare (0,5 V = 0 bar, 4,5 V = 12 bar)
  • Alimentazione: 5 V DC

L’uscita 0,5-4,5 V rientra nel range dell’ADC del D105 (0,1-18 V), quindi è leggibile direttamente. Con risoluzione ADC di 0,02 V la risoluzione in pressione è circa 0,06 bar.

La formula di conversione è lineare. Da 0,5 V → 0 bar e 4,5 V → 12 bar:

P[bar] = (V - 0,5) / (4,5 - 0,5) * 12 = (V - 0,5) * 3

Template sensor:

template:
  - sensor:
      - name: "Pressione acqua"
        unique_id: pressione_acqua_smart_maic
        device_class: pressure
        state_class: measurement
        unit_of_measurement: "bar"
        state: >
          {% set v = states('sensor.d105_1778388852_adc') | float(0) %}
          {{ ((v - 0.5) * 3) | round(2) if v > 0.5 else 0 }}
        availability: >
          {{ is_number(states('sensor.d105_1778388852_adc')) }}

Verifica di coerenza: con ADC = 1,86 V si ottiene (1,86 − 0,5) × 3 = 4,08 bar, valore di pressione di rete domestica plausibile, quindi la formula regge.

ATTENZIONE

Il sensore è ratiometrico: la formula vale con alimentazione a 5 V. Verificato che l’ADC del D105 espone i volt grezzi, quindi la conversione la fa il template. Il ramo else 0 evita pressioni negative dovute a piccoli offset sotto 0,5 V (zero elettrico del sensore).


SENSORE DI TEMPERATURA SU HOME ASSISTANT

La sonda 1-Wire (nel nostro caso T5, sul tubo dell’acqua) è l’unico sensore che espone già il valore pulito in °C: non serve nessuna conversione. Restano da assegnare unità, device_class e nome leggibile.

Due modi, in base a cosa serve.

Se basta il nome e l’unità, si personalizza l’entità esistente in customize.yaml:

sensor.d105_1778388852_t5:
  friendly_name: "Temperatura tubo acqua"
  unit_of_measurement: "°C"
  device_class: temperature

Se invece si vogliono anche le statistiche a lungo termine garantite (storico, grafici), è meglio un template sensor con state_class, coerente con gli altri due:

template:
  - sensor:
      - name: "Temperatura tubo acqua"
        unique_id: temp_tubo_acqua_smart_maic
        device_class: temperature
        state_class: measurement
        unit_of_measurement: "°C"
        state: "{{ states('sensor.d105_1778388852_t5') | float(0) }}"
        availability: "{{ is_number(states('sensor.d105_1778388852_t5')) }}"

NOTA

Differenza pratica: con customize rinomini l’entità ma lo storico aggregato dipende da come la discovery ha impostato la state_class (spesso non la imposta); con il template te lo garantisci. Per uniformità con pressione e consumo, conviene la seconda strada.


MONTAGGIO E COLLEGAMENTO

INSTALLAZIONE MECCANICA DEL SENSORE DI FLUSSO

Requisiti del produttore, da rispettare per non falsare la misura o danneggiare il sensore:

  • montaggio orizzontale, con la girante rivolta verso il basso;
  • rigorosamente nella direzione del flusso (rispettare la freccia);
  • installare un filtro a monte del contatore.

Collegato l’hardware e verificate le entità via MQTT, il sensore creato alimenta il monitoraggio del flusso idrico di casa, utile per individuare consumi anomali e perdite.

Per la configurazione completa su Home Assistant e il montaggio dei tubi, fare riferimento al video pubblicato sul canale (INSERIRE LINK).


SONDA TDS (in un video dedicato)

La sonda TDS (solidi totali disciolti) non è trattata in questa guida. La mostrerò separatamente per spiegare come si ricava il valore dei sali disciolti, utile per verificare se il depuratore sta funzionando correttamente. Schema di collegamento nel link sotto.



CHANGELOG

DataVersioneModificaNote
2026-06-301.0Prima stesura della guida con correzioni tecniche (Hall vs analogico), taratura impulsi/litro, template consumo m³, sezione pressione con formula ADC→bar, note installazionespunto: video dedicato sonda TDS e verifica depuratore
2026-07-051.1Confermati valori grezzi da MQTT; entity_id reali con schema numero di serie; template definitivi (pressione, consumo, temperatura); aggiunta sezione temperatura; verifica coerenza pressione 4,08 barentity_id di esempio legati al serie 1778388852, da sostituire