NEWS
SONOFF NSPanel mit Lovelace UI
-
moinsen, genau sowas ich hab das über ein kleines Blockly-Script gelöst. Ich kann so auch Infos an meine KNX-HMIs übergeben kann.
Anbei das Script: (allerdings in Textform, das es als Blockly (hier) viel Platz einnimmt)var Stati_an_HMIs_senden, Durchlauf, Status_Titel, Statuswert; Stati_an_HMIs_senden = schedule('*/5 * * * * *', async () => { if (Durchlauf < 1 || Durchlauf > 9) { Durchlauf = 1; } if (Durchlauf == 1) { Status_Titel = 'PV-Erzeugung '; Statuswert = String(Math.round((getState('senec.0.ENERGY.GUI_INVERTER_POWER').val / 1000) * 10) / 10); Statuswert += 'kW'; } else if (Durchlauf == 2) { Status_Titel = 'Akkustand-PV '; Statuswert = String(Math.round(getState('senec.0.ENERGY.GUI_BAT_DATA_FUEL_CHARGE').val * 100) / 100); Statuswert += '%'; } else if (Durchlauf == 3) { Status_Titel = 'Haus-Verbrauch '; Statuswert = String(Math.round((getState('senec.0.ENERGY.GUI_HOUSE_POW').val / 1000) * 100) / 100); Statuswert += 'kW'; } else if (Durchlauf == 4) { Status_Titel = 'Tagesertrag PV'; Statuswert = String(getState('senec.0._calc.LIVE_PV_GEN.today').val); Statuswert += 'kWh'; } else if (Durchlauf == 5) { Status_Titel = 'Tagesverbrauch'; Statuswert = String(getState('senec.0._calc.LIVE_HOUSE_CONS.today').val); Statuswert += 'kWh'; } else if (Durchlauf == 6) { Status_Titel = 'Kamin-Temp.'; Statuswert = String(getState('openknx.0.Heizen.Temperatur_(IST).IST-Temperatur_Kamin').val); Statuswert += '°C'; } console.log(([Durchlauf,'\r\n',Status_Titel,'\r\n',Statuswert].join(''))); /* damit man sieht ob's läuft */ Durchlauf = (typeof Durchlauf === 'number' ? Durchlauf : 0) + 1; setState('openknx.0.Meldung_&_Alarm.Systemstatus.Titel_PV-Anlage' /* Titel PV-Anlage */, Status_Titel); setState('openknx.0.Meldung_&_Alarm.Systemstatus.Werte_PV-Anlage' /* Werte PV-Anlage */, Statuswert); if (Durchlauf <= 6) { setState('0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading' /* 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading */, Status_Titel); setState('0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText' /* 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText */, Statuswert); setState('0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyHeading' /* 0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyHeading */, Status_Titel); setState('0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyText' /* 0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyText */, Statuswert); } else { setState('0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading' /* 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading */, ''); setState('0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText' /* 0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText */, ''); setState('0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyHeading' /* 0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyHeading */, ''); setState('0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyText' /* 0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyText */, ''); } });
Zur Erklärung:
Du erzeugst Dir einen Cronjob mit nem festgelegtem Zeitintervall.
Hierdrin brauchst Du dann eine Zählvariable, die dir in jedem Durchlauf um eins erhöht wird.
Nun mußt Du den einzelnen Durchläufen nur noch die zu übergebenden Daten(punkte) zuweisen.Kleiner Tipp: wenn Du den Zähler etwas höher setzt als die eigentlichen Elemente die Du anzeigen möchtest, wird Dir für die Restzeit des Intervalls die vom NSPanelscript vorbelegten Wetterinfos (oder was halt eingestellt war) angezeigt.
Dazu mußt du aber (siehe meine letzte IF, Else) an den Datenpunkten ScreensaverInfo.popupNotifyHeading und ScreensaverInfo.popupNotifyText den Inhalt löschen. -
Hallo,
ich habe Rolläden von Somfy per Tahoma Adapter in iobroker eingebunden. Wenn ich diese jetzt anlege wie in der Anleitung für Jalousien dann habe ich das Problem das wenn das Rollo komplett geöffnet ist der schließen Button ausgegraut ist und wenn Sie geschlossen ist der öffnen Button also genau anders herum. Wie kann ich das Problem lösen? Sobald das Rollo auf 1% oder 99% steht kann ich beide Buttons betätigen und alles funktioniert. Greift hier eventuell eine Logik automatisch die eventuell auf den einzelnen User angepasst werden muss?
Danke schonmal für eure Antworten.
-
@hmarius1 sagte in SONOFF NSPanel mit Lovelace UI:
Sobald das Rollo auf 1% oder 99% steht kann ich beide Buttons betätigen und alles funktioniert. Greift hier eventuell eine Logik automatisch die eventuell auf den einzelnen User angepasst werden muss?
Danke schonmal für eure Antworten.Wenn du ein paar Antworten nach oben scrollst, bekommst du deine Antwort ...
https://forum.iobroker.net/post/1037484
Edit:
Als Workaround kannst du in der Zwischenzeit (bis der Fix veröffentlicht wurde) beim Alias-Datenpunkt „Set“ die Read- und Write-Funktion auf „100-val“ setzen sowie beim DP „Actual“ die Read-Funktion auf „100-val“.
-
Dein Problem war grade Thema mit @Marc-Berg die aktuelle Lösung beginnt hier.
Wird in dem nächsten Release gefixt.
EDIT: da war Marc schneller
-
Ich habe das Thema die Tage mit Armilar diskutiert und wir haben es auf der Roadmap auf dem Screensaver neben den Wetter-Daten und dem Wetter-Forcast noch weitere - ich nenne es mal "Reihen" - einzuführen, die man dann individuell belegen kann. Wir denken auch darüber nach, dann x zusätzliche dynamisch verwendbare "Reihen" hinzuzufügen.
Dafür müssen wir aber an der jetzigen Logik ein wenig arbeiten.Ich kann noch nicht sagen, wann genau wir diese Ergänzung haben werden, nur so viel, es steht auf dem ToDo Zettel
@losossos Du kannst das XML vom Blockly (Export Button nutzen) hier als Spoiler rein packen, dann kann man es sich ziehen und importieren. Wärst Du so nett es zu posten?
Dein Ansatz klingt durchaus interessant. -
@kuckuckmann said in SONOFF NSPanel mit Lovelace UI:
Du kannst das XML vom Blockly (Export Button nutzen) hier als Spoiler rein packen, dann kann man es sich ziehen und importieren. Wärst Du so nett es zu posten?
Klar, Kein Problem:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="cron" id="Stati_an_HMIs_senden">Stati_an_HMIs_senden</variable> <variable id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</variable> <variable id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</variable> <variable id="aejf`L;)M:EGo;7S=Yg@">Statuswert</variable> </variables> <block type="schedule_create" id="JT7YLb+qLp]Av_U(n_sm" x="-212" y="113"> <field name="NAME">Stati_an_HMIs_senden</field> <value name="SCHEDULE"> <shadow type="field_cron" id="z4AXT)EPB_%+`_i|lb_)"> <field name="CRON">*/5 * * * * *</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="KTxid8XGHV?yfYM4)66x"> <value name="IF0"> <block type="logic_operation" id="K01G.jX4yT8RfQH;(L!Z"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="]=HQeG:Q?%^IkxN-%EOE"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="{?mCnQFVOQ]:%?=;(dID"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="HT.?.ev3MTsBdE[q%ib]"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="NK{dd=F*Mb1mu!$NG^N#"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="ai3[c7[P|Q1ZP2r/QeES"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="#CbZ|4;Yj,J:G$4,hu,`"> <field name="NUM">9</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="^]C~v5iN9fk:?)3(IIds"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> <value name="VALUE"> <block type="math_number" id="Z4c,tsp7!4BQ8^#c_K;M"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="PBcQM|-DnHh2[60%rHhE"> <mutation elseif="8"></mutation> <value name="IF0"> <block type="logic_compare" id="=b*EBBUD#/.Nlc!wlvDH"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="3rseBxJA|-wlMT:NWHUU"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="jHAoug%0vO-0CJRGMqGp"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="_On3pRA6n14yQt?aP.UA"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="~w5S_B+FtE5fIrvtkBb@"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="$j`[iq.om4CKEd5ds*GA"> <field name="TEXT">PV-Erzeugung </field> </block> </value> </block> </value> <next> <block type="variables_set" id="IbcZWB!1-aGApG9Z_+ca"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="B$47Csi$.MY$RY?1oN+}"> <mutation items="1"></mutation> <value name="ADD0"> <block type="math_rndfixed" id="d+s@(OZ2NR;lw+k4Iyh2"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="5T})[LLnr?wd4k@Ve37|"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="u$)sV#x#+8,3k9c7g=i)"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="VFWt$_F.c7h6d83Nt9)W"> <field name="NUM">1</field> </shadow> <block type="get_value" id="U(!!K!IsSNK|,v(@08Q6"> <field name="ATTR">val</field> <field name="OID">senec.0.ENERGY.GUI_INVERTER_POWER</field> </block> </value> <value name="B"> <shadow type="math_number" id="SQ@tUwJQJ*_@:8r9m.~1"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="text_append" id=":#[5;c]wS=jqt#~0!`LQ"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="5dd1zABKhh7=b9gG1C;S"> <field name="TEXT">kW</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="i]Afh#J;~El$~X9JN*{("> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="89yIzTa/8%R{=bMqnr{5"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id=":$VYU-!c|y!V*=f-IH.M"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="Nx{;%ltCObET/!_R$Qm$"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="26^gc[2P=9)-F0KqNipP"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="w5jvxWxdhCD1BzRV8%Z9"> <field name="TEXT">Akkustand-PV </field> </block> </value> </block> </value> <next> <block type="variables_set" id="-:q}rVgJUI2`v2a:%YrW"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="BQy%E6pOyeF.2UjJbs=8"> <mutation items="1"></mutation> <value name="ADD0"> <block type="math_rndfixed" id="p}7hX#;E8hG/K#!3LY(S"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="go[g-6|bz/*9?BxnWpy2"> <field name="NUM">3.1234</field> </shadow> <block type="get_value" id="7GdI6n`.G-/_*U+uLC[3"> <field name="ATTR">val</field> <field name="OID">senec.0.ENERGY.GUI_BAT_DATA_FUEL_CHARGE</field> </block> </value> </block> </value> </block> </value> <next> <block type="text_append" id="@=K?[PzFeDsA{rsyqc${"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id=";(]WuCkOVTcMy$uiR$1X"> <field name="TEXT">%</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="y=/|SN[.]+mz@{481*,+"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="fO4X3V{kn8y}a?y6Es|r"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="o}N__hy{OR=]*oUqOqTM"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO2"> <block type="variables_set" id="sH?jUA(BV+1){Togfe*5"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="M]d6l:a*CxY3))[ZOkp["> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="s[]G8?Nq|[`lU%5T)a%s"> <field name="TEXT">Haus-Verbrauch </field> </block> </value> </block> </value> <next> <block type="variables_set" id="xF40V(@.b+li5n;lMq{3"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="B#;=tW,kcj1A[w@aI6jh"> <mutation items="1"></mutation> <value name="ADD0"> <block type="math_rndfixed" id="W|yg:x}-=MXt|]+|kTo5"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="=$c3X]Nm_Iw3ux#|vQQ["> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="cV?I~JN{?v4,/8?A1FgF"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="`w9q:;NA3o+@WF6{HT-E"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Qp$mB+Q,+NBtTh-R#PdV"> <field name="ATTR">val</field> <field name="OID">senec.0.ENERGY.GUI_HOUSE_POW</field> </block> </value> <value name="B"> <shadow type="math_number" id="p@Bh$5ywBO(9X;;6r3%E"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="text_append" id="2._aTohPPu{+W~62wxiH"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="AJ:c/C5*O`Au|t^__*AX"> <field name="TEXT">kW</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF3"> <block type="logic_compare" id="o2mfy*P1/MlRnSDQ+YMC"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="6i+_eG8RXsV3R:W7mbx="> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="mC,cEID3xK4!.pc8Qp#P"> <field name="NUM">4</field> </block> </value> </block> </value> <statement name="DO3"> <block type="variables_set" id="xBxMgH+!C),,b8~Q}f9q"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="=G93BQ]rz*EgCR!7.{Xy"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="W#nrR[cm}u;x#^ZzTkJq"> <field name="TEXT">Tagesertrag PV</field> </block> </value> </block> </value> <next> <block type="variables_set" id="|=mObrPdZ61V*32Se{?B"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="8[[u|H{|MSEyyB6VvZTH"> <mutation items="1"></mutation> <value name="ADD0"> <block type="get_value" id="#{-xZl`gOmOv`~yo)|_+"> <field name="ATTR">val</field> <field name="OID">senec.0._calc.LIVE_PV_GEN.today</field> </block> </value> </block> </value> <next> <block type="text_append" id=",(cdqdCG-EybVa{ri^tm"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="|Yt6lrfJ^,HVlldv/:b1"> <field name="TEXT">kWh</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF4"> <block type="logic_compare" id="nKB)ra-O:%Yq$3k$nCCM"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~?N*x:wL:464eTsNC=hC"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="$jnU2.2M:ug5|]y6W^4L"> <field name="NUM">5</field> </block> </value> </block> </value> <statement name="DO4"> <block type="variables_set" id="0brZY,==?7ex|03dQ5AL"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="|vq/}||Nxm2^hI)/*EaZ"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="V$DF2CVVtM3eUvX*[l5v"> <field name="TEXT">Tagesverbrauch</field> </block> </value> </block> </value> <next> <block type="variables_set" id="z(}s9ED(cYn0EvIOe+KT"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="9/(4#7~w9sxj.ghD)_X["> <mutation items="1"></mutation> <value name="ADD0"> <block type="get_value" id="e%iE^)Wp8)CwI/Z.X^^."> <field name="ATTR">val</field> <field name="OID">senec.0._calc.LIVE_HOUSE_CONS.today</field> </block> </value> </block> </value> <next> <block type="text_append" id="Uj]N*yCow]sScbxt)|y}"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="QKl=/%H;_@~F7@?;I0NS"> <field name="TEXT">kWh</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF5"> <block type="logic_compare" id="Lp`swqg||PRyxr;];8t6"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="lzaePeg5`YX$r6.QjMi("> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="1zgi,S[PmV-E?92`N0|I"> <field name="NUM">6</field> </block> </value> </block> </value> <statement name="DO5"> <block type="variables_set" id="OH:GCngQ%/G4?XNx5]N|"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="aS=hdi}xFZg3%o:lN]x;"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="joQct8TM-hc)oQP9=!h."> <field name="TEXT">Kamin-Temp.</field> </block> </value> </block> </value> <next> <block type="variables_set" id="v|`C@YP=t,6ZrRA7ErT}"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="sM:;%sf}hHp(X`*Zf*,X"> <mutation items="1"></mutation> <value name="ADD0"> <block type="get_value" id="a_^VJZD@D|2;%!:-T)fc"> <field name="ATTR">val</field> <field name="OID">openknx.0.Heizen.Temperatur_(IST).IST-Temperatur_Kamin</field> </block> </value> </block> </value> <next> <block type="text_append" id="3z|6EY.B0W/{:}OW,iGu"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="JA!rtqU/b6uLS[#(lH-K"> <field name="TEXT">°C</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF6"> <block type="logic_compare" id="5yDGXMXds6cpLeEIk-_!"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="nv8G#wdvRJ[]mua-wGYi"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="R1CqxD-pgOYZA0_((}o6"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO6"> <block type="variables_set" id="y3WNRL`{d*1-`jnppaUi"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="cAd3)u0hS==M7GTF~Ma,"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="4ar{R{q`lWyd28`ouJn4"> <field name="TEXT">Wind</field> </block> </value> </block> </value> <next> <block type="variables_set" id="3ZNi(PfAT,Z[bXzN+,6O"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="?RTgg6XOCAs`!!%0u!MW"> <mutation items="1"></mutation> <value name="ADD0"> <block type="get_value" id="e7JEgb7C.9!lLc).gnJp"> <field name="ATTR">val</field> <field name="OID">openknx.0.Wetter.Wetterstation_MDT.Windgeschwindigkeit</field> </block> </value> </block> </value> <next> <block type="text_append" id="HgN%kgRMnEHUu|2XgeDM"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="=F!1MJotI_w,;!~7RWOg"> <field name="TEXT">m/s</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF7"> <block type="logic_compare" id="=0Bc[u9D{gS*P{OMpHHq"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="|6=Wg%CCug0u(Yn~i3v;"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id=",5T!pS~M6x}Xp*j[)FFq"> <field name="NUM">8</field> </block> </value> </block> </value> <statement name="DO7"> <block type="variables_set" id="dGlNmN8H/XV{KT+rbj~H"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="gvuj0i8v!J(}U`y~4Em+"> <mutation items="1"></mutation> <value name="ADD0"> <block type="text" id="u/zXq1rLKf|iIm3x.ucK"> <field name="TEXT">WC-Nebengebäude</field> </block> </value> </block> </value> <next> <block type="variables_set" id="PHo4Slt;z?ZOOd@WrL=+"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="*?F}u(Xij,aI;_CcXIW0"> <mutation items="1"></mutation> <value name="ADD0"> <block type="get_value" id="6lI1D`F4!XJH^}SFD[6F"> <field name="ATTR">val</field> <field name="OID">openknx.0.Heizen.Temperatur_(IST).ISTwert_Bad_Nebengebäude_HMI_</field> </block> </value> </block> </value> <next> <block type="text_append" id="DnS)+#WMCEbbdtv.Ce2l"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="TEXT"> <shadow type="text" id="_zkc%$r/oBnM8Sc1@Xna"> <field name="TEXT">°C</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF8"> <block type="logic_compare" id="#y,w,$g:7X7=QfP.(%`y"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id=":=sIkYqy-$K,wmPZKD%w"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="?yhXb0#=?!([D[ks|=@i"> <field name="NUM">9</field> </block> </value> </block> </value> <statement name="DO8"> <block type="variables_set" id="^MANy4M4yr971nlZ[m-q"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> <value name="VALUE"> <block type="text_join" id="M/WlX%wsjy+[#XS3EG^~"> <mutation items="1"></mutation> <value name="ADD0"> <block type="time_get" id="e^xzBDB`yoJiS+x6L1u_"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation> <field name="OPTION">wdt</field> <field name="LANGUAGE">de</field> </block> </value> </block> </value> <next> <block type="variables_set" id="pTv)dh4QF4|{NQdGKPp3"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> <value name="VALUE"> <block type="text_join" id="$WM8x76=qJy!HeVCxCD="> <mutation items="1"></mutation> <value name="ADD0"> <block type="time_get" id="e*@p!mgSlvPF]DFXNwX9"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.YYYY</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="debug" id="i22RchTjK8{cxq[~p*na"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="iUQOiWv@^]61($?tb;OK"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="^!6s2;sgwFbub2%QmA{8"> <mutation items="5"></mutation> <value name="ADD0"> <block type="variables_get" id=".A1~gH|Mc-3k5%nNjV,l"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="Rp]o~QpuEJ3Lm-]lU^m@"> <field name="Type">\r\n</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="^VEF*:?VgSTvj#nwLGbr"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> </block> </value> <value name="ADD3"> <block type="text_newline" id="N:Y72r5PpW]|YF%yNWrh"> <field name="Type">\r\n</field> </block> </value> <value name="ADD4"> <block type="variables_get" id="DkZJ8=#*;ak,aR9Gs@c_"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> </block> </value> </block> </value> <next> <block type="math_change" id="3VRo7GjJdQU67[9R{LtG"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> <value name="DELTA"> <shadow type="math_number" id="E0mu2+{9=QjyK/%naCA/"> <field name="NUM">1</field> </shadow> </value> <next> <block type="control" id="A49|0RH?y:l^3%esr!K["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">openknx.0.Meldung_&_Alarm.Systemstatus.Titel_PV-Anlage</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="9oV}d;E^ow+AV7.:)6;P"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> </block> </value> <next> <block type="control" id="~6W`?QkN~v7EQEdJ02U]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">openknx.0.Meldung_&_Alarm.Systemstatus.Werte_PV-Anlage</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Qe?`zF**:J9!*S.Wv#q8"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> </block> </value> <next> <block type="controls_if" id="WdvyJ,ex+-zjf]B!1P8="> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="={U=:`-X(f,VX*2qGC20"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="u0oHVOtlJt*#cy55|{;M"> <field name="VAR" id="VZf%pEO,fVtNN`Z2zJ~Q">Durchlauf</field> </block> </value> <value name="B"> <block type="math_number" id="om-vLIj~@vELXmxjdCqA"> <field name="NUM">6</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="4oT(9d7C:fwFfUMuz2L}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="E}Tf[xICDI)g04}GLAJ`"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> </block> </value> <next> <block type="control" id="yo{axy]AnO=!B=H:.k/["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="|D)}Wik,BS)8jp[.;3A5"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> </block> </value> <next> <block type="control" id="(Lf0f+u^1k.%V`;0cEoG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyHeading</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="LBa*gnzvgsdOtmX[=I~~"> <field name="VAR" id="zDH?_%C!d6OI,`P[a.i:">Status-Titel</field> </block> </value> <next> <block type="control" id="%E9e=LQo1/n6P%{-kSv."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyText</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="xb*IPlkbdxgN!nB1#=.3"> <field name="VAR" id="aejf`L;)M:EGo;7S=Yg@">Statuswert</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="Eeq|RjKmNMRhSPpN$Jj1"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyHeading</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="7CkINKL)^mc(44_?Z=t{"> <field name="TEXT"></field> </block> </value> <next> <block type="control" id="v%kPPzO9JjaRA!I23P/:"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.1.ScreensaverInfo.popupNotifyText</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="7tkS5]m8gyyYQhS.N{Q|"> <field name="TEXT"></field> </block> </value> <next> <block type="control" id="N#5cn$b--M10TjOZzyPf"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyHeading</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=";-5OGzXHT9pIPWal5d^Y"> <field name="TEXT"></field> </block> </value> <next> <block type="control" id="|I1MPy/hZjW:(V1ZZ{7x"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.2.ScreensaverInfo.popupNotifyText</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="Bj%]:}y1+yK0!s!2yolH"> <field name="TEXT"></field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
Kurze Frage, hab bei mir im Screensaver jetzt auch eingestellt das unten der Text angezeigt werden soll.
Allerdings schneidet er bei 11 Zeichen ab (Morgen Restmü), ich hab aber z.B bei anderen Bilder gesehen das da mehr hinpasst, kann man da noch irgendwo was einstellen? -
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
aktuell ist das Feld noch auf 10 Zeichen begrenzt. @Gargano hat sein HMI selbst geändert
Ah, Danke
Ich dachte das wäre mittlerweile schon offiziell drin. -
Danke dir für die Info, den Code und die Beschreibung!
Leider ist das nicht ganz das was ich mir vorgestellt habe bzw. es sollen die 4 Entity Werte einfach zyklisch Wechseln.
Ich hab das jetzt selbst mal Testweise umgesetzt und im Code die Funktion HandleScreensaverUpdate ab der Bedingung if (weatherForecast) mit meinen 4 Zusatzwerten angepasst, damit dort einfach ein payloadString mit den gewünschten Infos aufgebaut wird. Danach hab ich den in den Einstellungen die Wettervorhersage und den Timer aktiviert und den Timer Wert auf 5 Sekunden gesetzt.@Kuckuckmann
Ah das klingt super. Danke für die Info bzw. den Ausblick! -
ich muss mich korrigieren, laut Github sollen es jetzt wirklich schon 16 Zeichen sein.
https://github.com/joBr99/nspanel-lovelace-ui/issues/831
habe es getestet und es funktioniert. Hast du die aktuelle TFT Version??
wie sieht die Config von deinem mrIcon1ScreensaverEntity aus.
-
@tt-tom said in SONOFF NSPanel mit Lovelace UI:
Hast du die aktuelle TFT Version??
Die aktuelle TFT Version hab ich, hab das Panel erst am Samsatg in Betrieb genommen, sollte also alles letzter Stand sein.
mrIcon1ScreensaverEntity: { ScreensaverEntity: NSPanel_Path + 'Relay.1', ScreensaverEntityIconOn: null, ScreensaverEntityIconOff: null, ScreensaverEntityValue: '0_userdata.0.Abfallkalender.nexttype', ScreensaverEntityValueDecimalPlace : null, ScreensaverEntityValueUnit: null, ScreensaverEntityOnColor: MSRed, ScreensaverEntityOffColor: Yellow },
-
Aber „Morgen Restmü“ sind doch schon mindestens 13 Zeichen und es sieht nach zwei Leerzeichen aus.
-
@marc-berg said in SONOFF NSPanel mit Lovelace UI:
und es sieht nach zwei Leerzeichen aus.
Jepp du hast recht, es sind insgesamt sogar drei Leerzeichen.
Komisch, weil ich beim restellen des DP definitiv nur ein Leerzeichen angegeben hab.
Ich muß dann wohl nochmal das Script überarbeiten.ich hab mal beim erstelleten Wert händisch die Leerzeichen entfernt und jetzt passt es.
-
Version 4.2.1.5 ist fertig
Der Debug Modus für das Script wurde umgeschrieben und behält jetzt auch beim Neustart des Script seine Einstellung.
Die Konfiguration für Rollo / Jalousie / Markise wurde um die Parameter minValueLevel, maxValueLevel, minValueTilt und maxValueTilt erweitert. Damit können jetzt die Standardwerte überschrieben werden.
Es muss immer min und max angegeben werden.- minValueLevel -> Postion unten -> Standard 0%
- maxValueLevel -> Position oben -> Standard 100%
- minValueTilt -> verdrehen der Lamellen linksrum -> Standard 0%
- maxValueTilt ->verdrehen der Lamellen rechtsrum -> Standard 100%
Beispiel für PageItem
<PageItem>{ id: 'alias.0.NSPanel.allgemein.Rollo', name: "Test Rollo", secondRow: "Hier Text für 2. Zeile", minValueLevel: 100, maxValueLevel: 0, minValueTilt: 100, maxValueTilt: 0},
Weiterhin viel Spass mit dem Panel
-
@tt-tom sagte in SONOFF NSPanel mit Lovelace UI:
minValueLevel -> Postion unten -> Standard 0%
maxValueLevel -> Position oben -> Standard 100%Ein erster Test war erfolgreich, die Pfeile bleiben jetzt in der korrekten Richtung aktiv. Top!
Den "Tilt"-Teil kann ich allerdings nicht testen.
-
Guten Abend,
ich hätte mal wieder ein Problem mit der ThermoCard.
Der Alias bzw. Button Power funktioniert nicht so wie erwartet / erhofft.Folgende Objekte habe ich:
Der Alias dazu sieht so aus, Power wird mir (warum auch immer) nach dem erstellen nicht mehr angezeigt:
Definition NSPanel-Skript:
let Thermostat_Wohnzimmer = <PageThermo> { "type": "cardThermo", "heading": "Thermostat", "useColor": true, "subPage": false, "items": [<PageItem>{ id: AliasPath + 'ThermostatWohnbereich', minValue: 50, maxValue: 300 }] };
AliasManager:
Debug beim Drücken des Powerbuttons links unten im Display:
6.9.2023, 00:20:44.967 [info ]: javascript.0 (2440423) script.js.common.NSPanel: HandleButtonEvent übergebene Werte event - buttonPress2 - alias.0.NSPanel.1.ThermostatWohnbereich - hvac_action - POW - PageId: 1 6.9.2023, 00:20:44.968 [info ]: javascript.0 (2440423) script.js.common.NSPanel: HandleButtonEvent buttonAction: hvac_action 6.9.2023, 00:20:44.979 [info ]: javascript.0 (2440423) script.js.common.NSPanel: GetNavigationString Übergabe pageId: 1 6.9.2023, 00:20:44.980 [info ]: javascript.0 (2440423) script.js.common.NSPanel: thermostat - Currently 6.9.2023, 00:20:44.985 [info ]: javascript.0 (2440423) script.js.common.NSPanel: thermostat - State 6.9.2023, 00:20:44.989 [info ]: javascript.0 (2440423) script.js.common.NSPanel: GenerateThermoPage payload: [object Object],[object Object] 6.9.2023, 00:20:44.991 [info ]: javascript.0 (2440423) script.js.common.NSPanel: function SendToPanel payload: pageType~cardThermo 6.9.2023, 00:20:44.992 [info ]: javascript.0 (2440423) script.js.common.NSPanel: function SendToPanel payload: entityUpd~Thermostat~button~bPrev~~65535~~~button~bNext~~65535~~~alias.0.NSPanel.1.ThermostatWohnbereich~22.4°C~220~MANU~50~300~5~~2016~1~POW~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Aktuell~Zustand~~°C~~1 6.9.2023, 00:20:44.992 [info ]: javascript.0 (2440423) script.js.common.NSPanel: HandleMessage -> buttonPress2 event - buttonPress2 - alias.0.NSPanel.1.ThermostatWohnbereich - hvac_action - POW
Der Powerbutton erscheint, allerdings kann ich hiermit bei Betätigung das Objekt nicht steuern, Quasi nur eine Anzeige.
Wenn ich das Objekt manuell auf Toogle, verändert sich die Farbe.
Drücke ich auf den Button baut sich die Seite erneut auf, sonst passiert nichts.Ich hab testweise mal AUTOMATIC und MANUAL als Alias hinzugefügt, diese Buttons kann ich wie erwartet auch steuern.
Ideen? Danke! -
Hast du beim Test den Alias geändert oder den Datenpunkt unter 0_userdata.0 ?
-
Hi, hab eine kurze Frage, aufgrund der vielen Abstürze von Accuweather wollte ich dasWetter verwenden. Da werden allerdings keine Icons im Screensaver angezeigt (oben das große Icon ist zb ein Ausrufezeichen in einem Kreis).
Wie bekomme ich das hin?
-
Moin, gibt es die Möglichkeit bei Typ "cardGrid" oder "cardGrid2" das Icon eines PageItems in Abhängigkeit vom Status zu ändern? Im Moment benutze ich dafür 2 Items die ich wechselweise ein und ausschalte.
<PageItem>{ id: "alias.0.Auto.Phasen", icon: 'numeric-1-circle', name: "Phasen", onColor: MSGreen, offColor: Gray}, <PageItem>{ id: "alias.0.Auto.Phasen", icon: 'numeric-3-circle', name: "Phasen", onColor: Gray, offColor: MSGreen},