mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-31 11:54:19 +01:00
implement modes for fans in backend #444
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user