From 6fb286ee5cc438fdc7b1b7458b50d82546cf7943 Mon Sep 17 00:00:00 2001 From: joBr99 <29555657+joBr99@users.noreply.github.com> Date: Sat, 23 Jul 2022 13:56:46 +0200 Subject: [PATCH] add fan detail page --- HMI/US/landscape/nspanel_US_L.HMI | Bin 11147230 -> 11147230 bytes HMI/US/landscape/nspanel_US_L.tft | Bin 7669088 -> 7669136 bytes HMI/US/portrait/nspanel_US_P.HMI | Bin 11491767 -> 11491767 bytes HMI/US/portrait/nspanel_US_P.tft | Bin 7761732 -> 7761776 bytes HMI/code_gen/pages/cardEntitiesSerial.py | 16 +------------ HMI/nspanel.HMI | Bin 11147230 -> 11147230 bytes HMI/nspanel.tft | Bin 7669040 -> 7668520 bytes .../luibackend/controller.py | 8 ++++++- apps/nspanel-lovelace-ui/luibackend/pages.py | 22 +++++++++++++++++- 9 files changed, 29 insertions(+), 17 deletions(-) diff --git a/HMI/US/landscape/nspanel_US_L.HMI b/HMI/US/landscape/nspanel_US_L.HMI index bef91bd916a0cc27a4b434d6272843c646d9e69d..db1970e5d9f4d175e6463132c107b2a50b55e58f 100644 GIT binary patch delta 1249 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 MXE?1%e{Ryh0rtW*g#Z8m diff --git a/HMI/US/portrait/nspanel_US_P.HMI b/HMI/US/portrait/nspanel_US_P.HMI index 88a6e1c5ce188bd9ce456fc0d77a70d3b603e8c4..40906a45da5a0b2ab5c525f41160bd65308e9478 100644 GIT binary patch delta 1367 zcmdtf>2FM76vy%B&U89$+9nh;+B?;%rOGI+WvaEbwbfSDPKTo^z7>T)m;uq(j+yODQ%O zp7I2tt8#m2)F-Zus(q1=D7NXkNUYBGEQPoj@p26*Q^!RiB^ta^-5!#Ul@&~>P zsZ>X1$?O7)Nk3Jgw%YZxb&(-KGG(!CrC$5R(yGYVZ`N>Gy3JxX<(3u|Et2U*TZ(-5 z&62MlysM@tvanO{a2Zo#GlvxaZirdo-sF`s~=H4!`jmX(hctAa%bB$i;RiA z6eK^~Q!^EZp59#NGU#KHtofn(o2RN0TAApz>WSX&8E*pijDB=e5B{iTI+YR99p7WU zbf!h0m(K>(v!km`mDx4n+vOokR9~5W(KbMT-7V^B|H`uW5r~8e8=}wy(TG7$#G)5^ zqYwHb4*d|1Uwa0?j)6$PAPhz#k}w2AF$}}uKr%)k1*sT`Q5cOeNJBa@Fc#x59uqJT znV5vhn1ZR8hAd1+HfA6Pxo{#6F3iL%u>{3fiV`ft za;(5gtU@VPV-40~9oAz5HewStV+*#zgKgN39Vo+2?1C2>%29zzRAD#vU@!JzKMvp^ z4xt){;lmLe#W6@6M-5KkBu?Qp&Y%`&aSrEk0T*!zmvIGkxQc72$93G$%iiB~Z21WU C?J{Zr delta 1640 zcmd_o|5Fro9LMqZE_a-#+>BV<23`W1`6a#`_zn9eVrn58p<$@x*8(9?F$Gi(WECa9 zqzA5Lg_3UzLfP?&Qm(41^i-<9xxoBTJ)kwaA+;MNt2avb}f5oZBoO1wVWZfaEIrc@P)XMBWlVL#m6%!eSe3~4!e;! zBV*&L`}dx(d$fGIgpu$`Z?X~$_j)x&dcOB|#5A}0TH1UHRK&mqH)72;pQq}N|KExA zk$Sv7N`F9qP*2eP7qr`H!?#w{q^!=buBzT_6#eB-GNb?aC#NfMNA>tj^ZF@msb=nL z)lRsK^Ls|snt9FI&m-=|79zI~WnYVp=HI&NYcd8RfoY-PF6-U2x<$sQR_^qOBy&G_ zUFA!-VfS>#i_EmgfAovEv#g$<=8AX}EB`i+H*e?P=Zi$_HMzOem;!CS-0AIbbhzdE0+aEmvxt{CS;|`|6$i#deWl_F=x-=^Wte24_6h z$o(@p$M~UGbD7c40wt=Non`c{@CS{Qy0Jk+?+biq#&n$ysm82|lmw&uSW<$~(ckSc zvcC0qnT1~lrqs4H4kRK8qY=Qv7=vV_AQfXV4v%0w9>oMq#3W3{V@N|fGLVTZ1d)v# zOu9PR$(>PU@g|+6}*aaRA4WuL&t9HK@0X`A6oGS_TvB!;t<}%VH`miZD_|)7&wNv@HUR) l9lVS8(18;;iBotVr||*K;4C_E4qf;V-T26C9Qb&8{l8>vE)oC$ diff --git a/HMI/US/portrait/nspanel_US_P.tft b/HMI/US/portrait/nspanel_US_P.tft index d7b501b371811456b598dd6369015911ec26e34c..525a8a709c0345d22a97f780397638a334ed2c9a 100644 GIT binary patch delta 7523 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 Knu-n%Z};DsFrEhh delta 6843 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 diff --git a/HMI/code_gen/pages/cardEntitiesSerial.py b/HMI/code_gen/pages/cardEntitiesSerial.py index d0537d4a..9efc0e0b 100644 --- a/HMI/code_gen/pages/cardEntitiesSerial.py +++ b/HMI/code_gen/pages/cardEntitiesSerial.py @@ -96,21 +96,7 @@ for i in range(1,5): tsw bDown{i},1 }} }} - if(type{i}.txt=="light") - {{ - vis bUp{i},0 - vis bStop{i},0 - vis bDown{i},0 - vis btOnOff{i},1 - vis bText{i},0 - vis hSlider{i},0 - vis nNum{i},0 - // get Button State (optional Value) - spstr strCommand.txt,tTmp.txt,"~",{idxstart+5} - covx tTmp.txt,sys0,0,0 - btOnOff{i}.val=sys0 - }} - if(type{i}.txt=="switch") + if(type{i}.txt=="light"||type{i}.txt=="switch"||type{i}.txt=="fan") {{ vis bUp{i},0 vis bStop{i},0 diff --git a/HMI/nspanel.HMI b/HMI/nspanel.HMI index 9860314e4316c9547563366ccdaf46ce82f29cf6..30e8dd00cb0e92e62a5a2b118663eef57c840fc6 100644 GIT binary patch delta 3409 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 diff --git a/apps/nspanel-lovelace-ui/luibackend/controller.py b/apps/nspanel-lovelace-ui/luibackend/controller.py index c5b5c316..27927740 100644 --- a/apps/nspanel-lovelace-ui/luibackend/controller.py +++ b/apps/nspanel-lovelace-ui/luibackend/controller.py @@ -168,6 +168,8 @@ class LuiController(object): self._pages_gen.generate_light_detail_page(entity) if entity.startswith("cover"): self._pages_gen.generate_shutter_detail_page(entity) + if entity.startswith("fan"): + self._pages_gen.generate_fan_detail_page(entity) def detail_open(self, detail_type, entity_id): @@ -175,6 +177,8 @@ class LuiController(object): self._pages_gen.generate_shutter_detail_page(entity_id) if detail_type == "popupLight": self._pages_gen.generate_light_detail_page(entity_id) + if detail_type == "popupFan": + self._pages_gen.generate_fan_detail_page(entity_id) def button_press(self, entity_id, button_type, value): self._ha_api.log(f"Button Press Event; entity_id: {entity_id}; button_type: {button_type}; value: {value} ") @@ -235,7 +239,9 @@ class LuiController(object): if button_type == "number-set": if entity_id.startswith('fan'): - self._ha_api.get_entity(entity_id).call_service("set_percentage", percentage=value) + entity = self._ha_api.get_entity(entity_id) + value = float(value)*float(entity.attributes.get("percentage_step", 0)) + entity.call_service("set_percentage", percentage=value) else: self._ha_api.get_entity(entity_id).call_service("set_value", value=value) diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index ef682bb5..e62d7b4f 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -235,11 +235,16 @@ class LuiPagesGen(object): icon_color = self.get_entity_color(entity, overwrite=colorOverride) icon_id = get_icon_id_ha("light", state=entity.state, overwrite=icon) return f"~{entityType}~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" - if entityType in ["switch", "input_boolean", "automation", "fan"]: + if entityType in ["switch", "input_boolean", "automation"]: switch_val = 1 if entity.state == "on" else 0 icon_color = self.get_entity_color(entity, overwrite=colorOverride) icon_id = get_icon_id_ha(entityType, state=entity.state, overwrite=icon) return f"~switch~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" + if entityType in "fan": + switch_val = 1 if entity.state == "on" else 0 + icon_color = self.get_entity_color(entity, overwrite=colorOverride) + icon_id = get_icon_id_ha(entityType, state=entity.state, overwrite=icon) + return f"~fan~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" if entityType in ["sensor", "binary_sensor"]: device_class = entity.attributes.get("device_class", "") unit_of_measurement = entity.attributes.get("unit_of_measurement", "") @@ -615,6 +620,21 @@ class LuiPagesGen(object): self._send_mqtt_msg(f"entityUpdateDetail~{entity_id}~{pos}~{pos_translation}: {pos_status}~{pos_translation}~{icon_id}~{icon_up}~{icon_stop}~{icon_down}~{icon_up_status}~{icon_stop_status}~{icon_down_status}~{textTilt}~{iconTiltLeft}~{iconTiltStop}~{iconTiltRight}~{iconTiltLeftStatus}~{iconTiltStopStatus}~{iconTiltRightStatus}~{tilt_pos}") + def generate_fan_detail_page(self, entity_id): + entity = self._ha_api.get_entity(entity_id) + switch_val = 1 if entity.state == "on" else 0 + icon_color = self.get_entity_color(entity) + speed = entity.attributes.get("percentage") + speedMax = 100 + if(speed == None): + speed = "disable" + else: + speed = round(entity.attributes.get("percentage")/entity.attributes.get("percentage_step")) + speedMax = int(100/entity.attributes.get("percentage_step")) + + speed_translation = get_translation(self._locale, "frontend.ui.card.fan.speed") + self._send_mqtt_msg(f"entityUpdateDetail~{entity_id}~{get_icon_id('lightbulb')}~{icon_color}~{switch_val}~{speed}~{speedMax}~{speed_translation}") + def send_message_page(self, ident, heading, msg, b1, b2): self._send_mqtt_msg(f"pageType~popupNotify") self._send_mqtt_msg(f"entityUpdateDetail~{ident}~{heading}~65535~{b1}~65535~{b2}~65535~{msg}~65535~0")