Por si le sirve de interés a alguien, voy a comentar como integrar una sonda de temperatura NTC en HA, aunque podría integrarse sin problemas en cualquier otra plataforma.
En mi caso tengo una sonda NTC integrada en el termosifón. Inicialmente estaba conectada a un termostato, que únicamente mostraba la temperatura del agua del termosifón, y en función de la temperatura había que abrir o cerrar diferentes válvulas para tener agua caliente en los grifos, bien del termosifón, bien de un acumulador calentado por una caldera de gasoil.
Hace unos años lo automaticé mediante varias Raspberrys que se encargaban de leer la temperatura, con un programa hecho en Java. Como llevo un tiempo con Home Assistant, y ya tengo unos cuantos SonOff y ESP en la instalación, he decidido integrar la gestión del Agua Caliente Sanitaria en Home Assistant.
Hasta ahora, las Raspberry, en función de la temperatura del agua del termosifón, controlan diferentes electro-válvulas de tal forma que el acs provenga del termosifón o de un acumulador calentado por la caldera de gasoil.
Para comenzar a migrar a HA, primero he comenzado por la sonda NTC (Resistencia con coeficiente negativo) integrada en el Termosifón, de la cual tengo los valores característicos, a saber:
- RZP o R0: Rated Zero Power. Valor de la resistencia a temperatura nominal (10K)
- T0: Temperatura nominal (25ºC)
- B: Coeficiente Beta del thermistor: 3435
Para medir la resistencia que proporciona la sonda, he utilizado un divisor de tensión con una resistencia conocida (20K).
Código: Seleccionar todo
Vcc ----- R (20K) --------- Rt ------- GND
|
V0
V0 = Adc * Ganancia / resolución = 1400 * 6.144 / 32768 = 0.192v (0.1929 medidos con el polímetro)
El valor de la resistencia de la sonda en ese momento será:
Rt = (R x V0) / ( Vcc - V0) = (20000x0.192) / (3.3 - 0.192) = 1235.52 Ohm
Nota: Aunque el ADS1115 puede alimentarse a 5V, en mi caso he utilizado 3.3
Ahora solo queda convertir la resistencia de la sonda en temperatura. Para ello, conociendo los valores característicos de la sonda B y R0, se puede utilizar la ecuación simplificada de Steinhart-Hart:
Nota: Las temperaturas van en ºKelvin1/T = 1/T0 + 1/B * Ln(R/R0)
En HA dicha formula me queda:
Código: Seleccionar todo
- platform: mqtt
name: "Temperatura agua Solar"
state_topic: "tele/tasmota_xx/SENSOR"
unit_of_measurement: '°C'
value_template: '{{ ((1/ (((log((value_json["ADS1115"]["A0"] *3.75)/(33000 - (value_json["ADS1115"]["A0"] * 1.1875))))/ 3435) + (1/(25+273.15))))-273.15 ) | round (2) }}'
Con esto ya tengo la temperatura proporcionada por la sonda NTC en HA. Sirve para cualquier sonda NTC con solo cambiar los valores característicos en la formula: 3435, 25 y 33000 (que son 3.3V por R0)