See the last register, the others are wrong, the same thing happens if I read it via a manual reading test
Wait, maybe I found the error, it has to be a holding register not an input register
No sorry, it is a holding
Code:
{
"manufacturer": "Viessmann",
"description": "Termostato PCUSM - Modbus RTU",
"read_swap": "n",
"mapping": [
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 0,
"units": "V",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Ventilazione - Velocità minima ventilatore mandata"
},
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 1,
"units": "V",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Ventilazione - Velocità massima ventilatore mandata"
},
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 2,
"units": "V",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Ventilazione - Velocità minima ventilatore ripresa"
},
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 3,
"units": "V",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Ventilazione - Velocità massima ventilatore ripresa"
},
{
"bus_datatype": "temperature",
"datatype": "int16",
"address": 15,
"units": "°C",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Regolazione - Setpoint temperatura"
},
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 16,
"units": "K",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Regolazione - Differenziale temperatura"
},
{
"bus_datatype": "temperature",
"datatype": "int16",
"address": 17,
"units": "°C",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Antigelo - Setpoint antigelo"
},
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 18,
"units": "K",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Antigelo - Differenziale antigelo"
},
{
"bus_datatype": "temperature",
"datatype": "int16",
"address": 19,
"units": "°C",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Sbrinamento - Setpoint sbrinamento"
},
{
"bus_datatype": "float16",
"datatype": "uint16",
"address": 20,
"units": "K",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Sbrinamento - Differenziale sbrinamento"
},
{
"bus_datatype": "float16",
"datatype": "int16",
"address": 21,
"units": "K",
"writable": true,
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Regolazione - Banda proporzionale caldo/freddo"
},
{
"value_custom": {
"0": "Bassa",
"1": "Media",
"2": "Alta",
"3": "Automatico",
"default": "?"
},
"bus_datatype": "uint8",
"address": 22,
"datatype": "uint16",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Ventilazione - Set velocità ventilatore"
},
{
"datatype": "uint16",
"bus_datatype": "uint16",
"address": 24,
"type": "register",
"name": "Recuperatore 1 - Configurazione - Posizione DIP switch"
},
{
"bus_datatype": "temperature",
"address": 26,
"datatype": "int16",
"units": "°C",
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Temperature - Temperatura esterna"
},
{
"bus_datatype": "temperature",
"address": 27,
"datatype": "int16",
"units": "°C",
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Temperature - Temperatura aria immessa"
},
{
"bus_datatype": "temperature",
"address": 28,
"datatype": "int16",
"units": "°C",
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Temperature - Temperatura aria espulsa"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Filtri sporchi",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 128,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme filtri sporchi"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 1,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda AI1"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 2,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda AI2"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 4,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda AI3"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 8,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda AI4"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 16,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda AI5"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 32,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda P1"
},
{
"datatype": "uint16",
"value_custom": {
"0": "Normale",
"1": "Allarme",
"default": "?"
},
"bus_datatype": "bool",
"address": 29,
"value_bitmask": 64,
"type": "register",
"name": "Recuperatore 1 - Allarmi - Allarme sonda P2"
},
{
"bus_datatype": "temperature",
"address": 30,
"datatype": "int16",
"units": "°C",
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Sonde opzionali - Temperatura P1"
},
{
"bus_datatype": "temperature",
"address": 31,
"datatype": "int16",
"units": "°C",
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Sonde opzionali - Temperatura P2"
},
{
"bus_datatype": "uint16",
"datatype": "uint16",
"address": 34,
"units": "ppm",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Qualità aria - Setpoint CO₂"
},
{
"value_custom": {
"0": "Off",
"1": "On",
"default": "?"
},
"bus_datatype": "bool",
"address": 43,
"datatype": "uint16",
"writable": true,
"type": "register",
"name": "Recuperatore 1 - Comandi - On/Off da Modbus"
},
{
"read_swap": "n",
"bus_datatype": "temperature",
"address": 40056,
"datatype": "uint16",
"units": "°C",
"type": "register",
"value_multiplier": 0.1,
"name": "Recuperatore 1 - Temperature - Temperatura ambiente"
}
]
}Wait, maybe I found the error, it has to be a holding register not an input register
No sorry, it is a holding