Fixing bugs, adding names

This commit is contained in:
Constantin Pascal
2025-12-28 12:00:19 +02:00
parent 76411f4434
commit 958ff75d1f
3 changed files with 32 additions and 1 deletions
+8
View File
@@ -168,6 +168,14 @@ class ModbusRTUMonitorClimate(
f"Failed to set temperature for slave {self._slave_id}"
) from ex
# Update register value immediately to prevent UI flickering
if self._slave_id in self.coordinator.data:
slave_data = self.coordinator.data[self._slave_id]
if slave_data.registers is None:
slave_data.registers = {}
# Store scaled value (temperature * 10) in register
slave_data.registers[SETPOINT_REGISTER] = int(temperature * 10)
# Update state
self.async_write_ha_state()
+20
View File
@@ -18,6 +18,26 @@ SETPOINT_REGISTER = 144 # Register 144 (decimal, 0x90 hex)
HEATING_STATUS_REGISTER = 211 # Register 211
REGISTER_COUNT = 4
# Register name mapping for user-friendly display in Home Assistant
# Add new register names here as you discover them
# Format: register_number: "Friendly Name"
REGISTER_NAMES: dict[int, str] = {
# Known registers
144: "Setpoint",
145: "Max Setpoint",
146: "Min Setpoint",
154: "Hour",
155: "Minute",
156: "Day of week",
157: "Current temperature",
179: "Outside temperature",
211: "Heating status",
# Add more registers as discovered
# Example:
# 165: "Register name",
# 166: "Another register",
}
# Coil configuration
COIL_START_ADDRESS = 0x01 # Starting coil address (1 in decimal)
COIL_COUNT = 40 # Number of coils to monitor
+4 -1
View File
@@ -21,6 +21,7 @@ from .const import (
REGISTER_MONITOR_COUNT,
REGISTER_MONITOR_COUNT_2,
REGISTER_MONITOR_COUNT_3,
REGISTER_NAMES,
REGISTER_START_ADDRESS,
REGISTER_START_ADDRESS_2,
REGISTER_START_ADDRESS_3,
@@ -217,7 +218,9 @@ class ModbusRTUMonitorRegisterSensor(
self._attr_unique_id = (
f"{coordinator.config_entry.entry_id}_{slave_id}_register{register_addr}"
)
self._attr_name = f"Register{register_addr}"
# Use friendly name from mapping if available, otherwise use register number
self._attr_name = REGISTER_NAMES.get(register_addr, f"Register {register_addr}")
# Same device as climate and humidity entities
self._attr_device_info = DeviceInfo(