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}"
|
f"Failed to set temperature for slave {self._slave_id}"
|
||||||
) from ex
|
) 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
|
# Update state
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,26 @@ SETPOINT_REGISTER = 144 # Register 144 (decimal, 0x90 hex)
|
|||||||
HEATING_STATUS_REGISTER = 211 # Register 211
|
HEATING_STATUS_REGISTER = 211 # Register 211
|
||||||
REGISTER_COUNT = 4
|
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 configuration
|
||||||
COIL_START_ADDRESS = 0x01 # Starting coil address (1 in decimal)
|
COIL_START_ADDRESS = 0x01 # Starting coil address (1 in decimal)
|
||||||
COIL_COUNT = 40 # Number of coils to monitor
|
COIL_COUNT = 40 # Number of coils to monitor
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ from .const import (
|
|||||||
REGISTER_MONITOR_COUNT,
|
REGISTER_MONITOR_COUNT,
|
||||||
REGISTER_MONITOR_COUNT_2,
|
REGISTER_MONITOR_COUNT_2,
|
||||||
REGISTER_MONITOR_COUNT_3,
|
REGISTER_MONITOR_COUNT_3,
|
||||||
|
REGISTER_NAMES,
|
||||||
REGISTER_START_ADDRESS,
|
REGISTER_START_ADDRESS,
|
||||||
REGISTER_START_ADDRESS_2,
|
REGISTER_START_ADDRESS_2,
|
||||||
REGISTER_START_ADDRESS_3,
|
REGISTER_START_ADDRESS_3,
|
||||||
@@ -217,7 +218,9 @@ class ModbusRTUMonitorRegisterSensor(
|
|||||||
self._attr_unique_id = (
|
self._attr_unique_id = (
|
||||||
f"{coordinator.config_entry.entry_id}_{slave_id}_register{register_addr}"
|
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
|
# Same device as climate and humidity entities
|
||||||
self._attr_device_info = DeviceInfo(
|
self._attr_device_info = DeviceInfo(
|
||||||
|
|||||||
Reference in New Issue
Block a user