implement modes for fans in backend #444

This commit is contained in:
joBr99
2022-09-06 22:59:03 +02:00
parent dafee367b0
commit 455c1e800c
2 changed files with 20 additions and 4 deletions

View File

@@ -361,3 +361,8 @@ class LuiController(object):
msg += f"- {self._ha_api.get_entity(e).attributes.friendly_name}\r\n"
self._pages_gen.send_message_page("opnSensorNotifyRes", "", msg, "", "")
# for fan popup / preset selection
if button_type == "mode-sel":
entity = self._ha_api.get_entity(entity_id)
preset_mode = entity.attributes.preset_modes[int(value)]
entity.call_service("set_preset_mode", preset_mode=preset_mode)

View File

@@ -685,15 +685,26 @@ class LuiPagesGen(object):
switch_val = 1 if entity.state == "on" else 0
icon_color = self.get_entity_color(entity)
speed = entity.attributes.get("percentage")
percentage_step = entity.attributes.get("percentage_step")
speedMax = 100
if(speed is None):
if percentage_step is None:
speed = "disable"
else:
speed = round(entity.attributes.get("percentage")/entity.attributes.get("percentage_step"))
speedMax = int(100/entity.attributes.get("percentage_step"))
if speed is None:
speed = 0
speed = round(speed/percentage_step)
speedMax = int(100/percentage_step)
speed_translation = get_translation(self._locale, "frontend.ui.card.fan.speed")
self._send_mqtt_msg(f"entityUpdateDetail~{entity_id}~{get_icon_id('fan')}~{icon_color}~{switch_val}~{speed}~{speedMax}~{speed_translation}")
preset_mode = entity.attributes.get("preset_mode", "")
preset_modes = entity.attributes.get("preset_modes", [])
if preset_modes is not None:
preset_modes = "?".join(entity.attributes.get("preset_modes", []))
else:
preset_modes = ""
self._send_mqtt_msg(f"entityUpdateDetail~{entity_id}~{get_icon_id('fan')}~{icon_color}~{switch_val}~{speed}~{speedMax}~{speed_translation}~{preset_mode}~{preset_modes}")
def send_message_page(self, ident, heading, msg, b1, b2):
self._send_mqtt_msg(f"pageType~popupNotify")