Fixing bugs, adding names
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user