Qui invece lo script del file configuration.yaml di HA:
%%%%%%%%%%%%%%%%
# Pompa di Calore Daikin Altherma 3 R F letta tramite ESPAltherma
template:
- unique_id: "espaltherma" # will be prefixed to all unique IDs
sensor:
- name: "Modo Operativo"
unique_id: "iuoperation"
icon: 'mdi:sun-snowflake-variant'
state: "{{ state_attr('sensor.none_althermasensors','I/U operation mode') }}"
- name: "Sbrinamento"
unique_id: "sbrin"
icon: 'mdi:snowflake-melt'
state: "{{ state_attr('sensor.none_althermasensors','Defrost Operation') }}"
- name: "Ritorno Olio"
unique_id: "ritolio"
icon: 'mdi

il-level'
state: "{{ state_attr('sensor.none_althermasensors','Oil Return Operation') }}"
- name: "Richiesta Risc./ACS"
unique_id: "termon"
icon: 'mdi:electric-switch'
state: "{{ state_attr('sensor.none_althermasensors','Thermost at ON/OFF') }}"
- name: "Temp. Accumulo ACS"
unique_id: "dhw"
icon: 'mdi:bathtub-outline'
state: "{{ state_attr('sensor.none_althermasensors','DHW tank temp. (R5T)') }}"
unit_of_measurement: '°C'
- name: "Portata"
unique_id: "portata"
state: "{{ state_attr('sensor.none_althermasensors','Flow sensor (l/min)') }}"
unit_of_measurement: 'l/min'
icon: 'mdi:water-circle'
- name: "Temp. Mandata"
unique_id: "Tman"
icon: 'mdi:waves-arrow-right'
state: "{{ state_attr('sensor.none_althermasensors','Leaving water temp. before BUH (R1T)') }}"
unit_of_measurement: '°C'
- name: "Temp. Ritorno"
unique_id: "Trit"
icon: 'mdi:waves-arrow-left'
state: "{{ state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)') }}"
unit_of_measurement: '°C'
- name: "Delta T"
unique_id: "deltat"
icon: 'mdi:heating-coil'
state: "{{ (state_attr('sensor.none_althermasensors','Leaving water temp. before BUH (R1T)')|float - state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)')|float)|round(2) }}"
unit_of_measurement: '°C'
- name: "Frequenza Inverter"
unique_id: "invfreq"
state: "{{ state_attr('sensor.none_althermasensors','INV frequency (rps)') }}"
unit_of_measurement: 'rps'
device_class: frequency
- name: "Step Ventilatore"
unique_id: "ventstep"
icon: 'mdi:fan'
state: "{{ state_attr('sensor.none_althermasensors','Fan 1 (step)') }}"
unit_of_measurement: 'step'
- name: "Corrente Inverter (primaria)"
unique_id: "inv_primary_current"
state: "{{ state_attr('sensor.none_althermasensors','INV primary current (A)') }}"
unit_of_measurement: 'A'
device_class: current
- name: "Corrente Inverter (secondaria)"
unique_id: "inv_sec_current"
state: "{{ state_attr('sensor.none_althermasensors','INV secondary current (A)') }}"
unit_of_measurement: 'A'
device_class: current
- name: "Temp. Inverter"
unique_id: "TempInv"
icon: 'mdi:chip'
state: "{{ state_attr('sensor.none_althermasensors','INV fin temp.') }}"
unit_of_measurement: '°C'
- name: "Potenza Termica"
unique_id: "termpot"
icon: 'mdi:heat-wave'
state: "{{ ((state_attr('sensor.none_althermasensors','Leavin g water temp. before BUH (R1T)')|float - state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)')|float) * 60 * 1.16 * state_attr('sensor.none_althermasensors','Flow sensor (l/min)')|float)|round(2) }}"
unit_of_measurement: 'W'
# Potenza Termica % calcolata rispetto alla potenza generata ai carichi massimi con mandata 35 °C e temperatura esterna di 7 °C (12440 W, dato preso dal sito Daikin Altherma Technical Data Hub)
- name: "Potenza Termica %"
unique_id: "termpotPerc"
icon: 'mdi:heat-wave'
state: "{{ ((((state_attr('sensor.none_althermasensors','Leav ing water temp. before BUH (R1T)')|float - state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)')|float) * 60 * 1.16 * state_attr('sensor.none_althermasensors','Flow sensor (l/min)')|float)/12440)*100)|round(2) }}"
unit_of_measurement: '%'
- name: "Potenza Elettrica Totale"
unique_id: "poteletot"
state: "{{ states('sensor.shellyem_c45bbee264e4_channel_2_pow er') }}"
unit_of_measurement: 'W'
device_class: power
# Potenza Elettrica % calcolata rispetto alla potenza assorbita ai carichi massimi con mandata 35 °C e temperatura esterna di 7 °C (2570 W, dato preso dal sito Daikin Altherma Technical Data Hub)
- name: "Potenza Elettrica Totale %"
unique_id: "poteletotPerc"
state: "{{ (((states('sensor.shellyem_c45bbee264e4_channel_2_ power')|float)/2570)*100)|round(2) }}"
unit_of_measurement: '%'
device_class: power
# Calcolo il COP Complessivo solo a compressore attivo; lo saturo ad un valore massimo per evitare picchi di calcolo
- name: "COP Complessivo"
unique_id: "copcompl"
icon: 'mdi:leaf-circle-outline'
state: >-
{% if state_attr('sensor.none_althermasensors','INV frequency (rps)')|int > 5 %}
{% if (((state_attr('sensor.none_althermasensors','Leavi ng water temp. before BUH (R1T)')|float - state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)')|float) * 60 * 1.16 * state_attr('sensor.none_althermasensors','Flow sensor (l/min)')|float) / states('sensor.shellyem_c45bbee264e4_channel_2_pow er')|float)|round(2)|float {{ (((state_attr('sensor.none_althermasensors','Leavi ng water temp. before BUH (R1T)')|float - state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)')|float) * 60 * 1.16 * state_attr('sensor.none_althermasensors','Flow sensor (l/min)')|float) / states('sensor.shellyem_c45bbee264e4_channel_2_pow er')|float)|round(2) }}
{% else %}
{{ 10.0 }}
{% endif %}
{% else %}
{{ 0.0 }}
{% endif %}
unit_of_measurement: 'p.u.'
- name: "Temp. Esterna"
unique_id: "Test"
icon: 'mdi:home-thermometer-outline'
state: "{{ state_attr('sensor.none_althermasensors','R1T-Outdoor air temp.') }}"
unit_of_measurement: '°C'
- name: "Temp. Refrig. lato Liquido"
unique_id: "TrefrLiq"
icon: 'mdi:hydraulic-oil-temperature'
state: "{{ state_attr('sensor.none_althermasensors','Refrig. Temp. liquid side (R3T)') }}"
unit_of_measurement: '°C'
- name: "Pressione Acqua"
unique_id: "press"
icon: 'mdi:water-check'
state: "{{ state_attr('sensor.none_althermasensors','Water pressure') }}"
unit_of_measurement: 'bar'
- name: "Temp. Aspiraz. Compress. R3T"
unique_id: "TaspCompr"
state: "{{ state_attr('sensor.none_althermasensors','Suction pipe temp.(R3T)') }}"
unit_of_measurement: '°C'
- name: "Temp. Mandata Compress. R2T"
unique_id: "TmanCompr"
state: "{{ state_attr('sensor.none_althermasensors','Discharg e pipe temp.(R2T)') }}"
unit_of_measurement: '°C'
- name: "Temp. Scamb. Refr./Aria R4T"
unique_id: "TrefrAria"
icon: 'mdi:air-filter'
state: "{{ state_attr('sensor.none_althermasensors','O/U Heat Exch. Temp.(R4T)') }}"
unit_of_measurement: '°C'
- name: "Temp. Scamb. Refr./Aria Interm. R5T"
unique_id: "TrefrAriaMid"
icon: 'mdi:air-filter'
state: "{{ state_attr('sensor.none_althermasensors','Heat exchanger mid-temp.(R5T)') }}"
unit_of_measurement: '°C'
- name: "Valvola di Espansione Posiz."
unique_id: "expvalve"
icon: 'mdi

ipe-valve'
state: "{{ state_attr('sensor.none_althermasensors','Expansio n valve 1 (pls)') }}"
unit_of_measurement: 'Impulsi'
- name: "Velocità Pompa"
unique_id: "pumpsignal"
icon: 'mdi

ump'
state: "{{ 100 - state_attr('sensor.none_althermasensors','Water pump signal (0:max-100:stop)') }}"
unit_of_measurement: '%'
- name: "Riscald. Carter Compress. 1"
unique_id: "crankheater"
icon: 'mdi:resistor'
state: "{{ state_attr('sensor.none_althermasensors','Crank case heater') }}"
- name: "Riscald. Carter Compress. 2"
unique_id: "crankheater2"
icon: 'mdi:resistor'
state: "{{ state_attr('sensor.none_althermasensors','Crank case heater 2') }}"
# Calcolo il COP Ciclo Frigorifero solo a compressore attivo
- name: "COP Ciclo Frigorifero"
unique_id: "copfrigo"
icon: 'mdi:leaf-circle-outline'
state: >-
{% if state_attr('sensor.none_althermasensors','INV frequency (rps)')|int > 5 %}
{{ (((state_attr('sensor.none_althermasensors','Leavi ng water temp. before BUH (R1T)')|float - state_attr('sensor.none_althermasensors','Inlet water temp.(R4T)')|float) * 60 * 1.16 * state_attr('sensor.none_althermasensors','Flow sensor (l/min)')|float)/(state_attr('sensor.none_althermasensors','INV primary current (A)')|float * states('sensor.shellyem_c45bbee264e4_channel_2_vol tage')|float))|round(2) }}
{% else %}
{{ 0.0 }}
{% endif %}
unit_of_measurement: 'p.u.'
- name: "High Pressure"
unique_id: "hpress"
icon: 'mdi:gauge'
state: "{{ state_attr('sensor.none_althermasensors','High Pressure') }}"
unit_of_measurement: 'bar'
- name: "High Pressure (Temp.)"
unique_id: "hpressT"
icon: 'mdi:gauge'
state: "{{ state_attr('sensor.none_althermasensors','High Pressure(T)')|round(2) }}"
unit_of_measurement: '°C'
- name: "Low Pressure"
unique_id: "lpress"
icon: 'mdi:gauge'
state: "{{ state_attr('sensor.none_althermasensors','Low Pressure') }}"
unit_of_measurement: 'bar'
- name: "Low Pressure (Temp.)"
unique_id: "lpressT"
icon: 'mdi:gauge'
state: "{{ state_attr('sensor.none_althermasensors','Low Pressure(T)')|round(2) }}"
unit_of_measurement: '°C'
- name: "Startup Control Compress."
unique_id: "startCompr"
icon: 'mdi:lightning-bolt-circle'
state: "{{ state_attr('sensor.none_althermasensors','Startup Control') }}"
- name: "Temp. di Evap. Obiettivo"
unique_id: "tempEvapObiett"
icon: 'mdi:wave-arrow-up'
state: "{{ (state_attr('sensor.none_althermasensors','Target Evap. Temp.'))|round(2) }}"
unit_of_measurement: '°C'
- name: "Temp. di Cond. Obiettivo"
unique_id: "tempCondObiett"
icon: 'mdi:wave-arrow-down'
state: "{{ (state_attr('sensor.none_althermasensors','Target Cond. Temp.'))|round(2) }}"
unit_of_measurement: '°C'
- name: "Errori Potenziali"
unique_id: "errType"
icon: 'mdi:flash-alert-outline'
state: "{{ state_attr('sensor.none_althermasensors','Error type') }}"
- name: "Pressione Refrigerante"
unique_id: "pressRefr"
icon: 'mdi:gauge'
state: "{{ state_attr('sensor.none_althermasensors','Pressure ')|round(2) }}"
unit_of_measurement: 'bar'
%%%%%%%%%%%%%%%%
I parametri sono anche di più di questi e si selezionano dal file di configurazione a bordo dell'ESP32, ma già con questi si fa una telemetria completa, del livello di quella che si vede sulle Templari.
L'unico parametro che non torna è "Pressione Refrigerante" che secondo me è un parametro che non indica quella pressione.
Ci sono poi parametri calcolati (qui ne file) come "COP Ciclo Frigorifero" e "COP Complessivo" che sono derivati dai parametri misurati. La potenza elettrica la misuro tramite uno Shelly.
Vorrei modificare il calcolo dei COP per "filtrare" i casi di sbrinamento, dove il COP diventa parecchio negativo; ma non riesco a mettere la condizione di filtrare i COP Se ci provate, fatemi sapere.