Hi all,
This is the first issue I’m opening, hopefully everything is described clearly.
In the last few days, I’ve been working to control the RBE that’s installed in the kitchen using this integration. I’ve managed to do this, but I’m not completely satisfied with the code, so the solution still seems a bit messy.
Parameter 1148 is used to select the desired target temperature from the RBE. I’ve tested this using the service to adjust the temperature by modifying parameter 1148. It’s important that the value is sent without a decimal. Therefore, 21.5 degrees is 215.
Service call:
action: luxtronik2.write
data:
parameter: Unknown_Parameter_1148
value: 215
Below is a description of how this has been implemented in the code. Could someone help further develop this to create a pull request, to further implement this functionality into this integration?
Personally, I don't know how the integration handles it when no RBE is connected to the system. Maybe this can be caught somewhere, or someone else can test this.
Files changed:
In the Const.py file the parameter 1148 needs to be added:
P1148_HEATING_TARGET_TEMP_RBE: Final = "parameters.Unknown_Parameter_1148"
The climate.py file the THERMOSTATS for heating needs to be modified so that the actual desired temperature matches that of the RBE. This was done by commenting out the luxtronik_key_target_temperature. Additionally, the code for writing the target_temperature (parameter 1148) has been modified. Because no decimal number is sent, the value is multiplied by 10. The rest of the code is similar to the code in the water_heater.py:
THERMOSTATS: list[LuxtronikClimateDescription] = [
LuxtronikClimateDescription(
key=SensorKey.HEATING,
hvac_modes=[HVACMode.HEAT, HVACMode.OFF],
hvac_mode_mapping=HVAC_MODE_MAPPING_HEAT,
hvac_action_mapping=HVAC_ACTION_MAPPING_HEAT,
preset_modes=[PRESET_NONE, PRESET_AWAY, PRESET_BOOST],
supported_features=ClimateEntityFeature.PRESET_MODE
| ClimateEntityFeature.TURN_OFF # noqa: W503
| ClimateEntityFeature.TURN_ON # noqa: W503
| ClimateEntityFeature.TARGET_TEMPERATURE, # noqa: W503
luxtronik_key=LuxParameter.P0003_MODE_HEATING,
# luxtronik_key_current_temperature=LuxCalculation.C0227_ROOM_THERMOSTAT_TEMPERATURE,
luxtronik_key_target_temperature=LuxCalculation.C0228_ROOM_THERMOSTAT_TEMPERATURE_TARGET,
# luxtronik_key_has_target_temperature=LuxParameter
luxtronik_key_current_action=LuxCalculation.C0080_STATUS,
luxtronik_action_active=LuxOperationMode.heating.value,
# luxtronik_key_target_temperature_high=LuxParameter,
# luxtronik_key_target_temperature_low=LuxParameter,
luxtronik_key_correction_factor=LuxParameter.P0980_HEATING_ROOM_TEMPERATURE_IMPACT_FACTOR,
luxtronik_key_correction_target=LuxParameter.P0001_HEATING_TARGET_CORRECTION,
icon_by_state=LUX_STATE_ICON_MAP,
temperature_unit=UnitOfTemperature.CELSIUS,
visibility=LuxVisibility.V0023_FLOW_IN_TEMPERATURE,
device_key=DeviceKey.heating,
),
async def async_set_temperature(self, **kwargs: Any) -> None:
"""Set new target temperature."""
value = kwargs.get(ATTR_TEMPERATURE)
lux_key = LuxParameter.P1148_HEATING_TARGET_TEMP_RBE
data: LuxtronikCoordinatorData | None = await self.coordinator.async_write(
lux_key.split(".")[1], int(value * 10)
)
self._handle_coordinator_update(data)
Let me know what you think about it!
Hi all,
This is the first issue I’m opening, hopefully everything is described clearly.
In the last few days, I’ve been working to control the RBE that’s installed in the kitchen using this integration. I’ve managed to do this, but I’m not completely satisfied with the code, so the solution still seems a bit messy.
Parameter 1148 is used to select the desired target temperature from the RBE. I’ve tested this using the service to adjust the temperature by modifying parameter 1148. It’s important that the value is sent without a decimal. Therefore, 21.5 degrees is 215.
Service call:
Below is a description of how this has been implemented in the code. Could someone help further develop this to create a pull request, to further implement this functionality into this integration?
Personally, I don't know how the integration handles it when no RBE is connected to the system. Maybe this can be caught somewhere, or someone else can test this.
Files changed:
In the Const.py file the parameter 1148 needs to be added:
The climate.py file the
THERMOSTATSfor heating needs to be modified so that the actual desired temperature matches that of the RBE. This was done by commenting out theluxtronik_key_target_temperature. Additionally, the code for writing the target_temperature (parameter 1148) has been modified. Because no decimal number is sent, the value is multiplied by 10. The rest of the code is similar to the code in the water_heater.py:Let me know what you think about it!