NEWS
SONOFF NSPanel mit Lovelace UI
-
Erstes Panel läuft
Danke an alle die mir geholfen haben und mit Rat und Tat zur Seite standen.
-
Sieht doch hübsch aus...
-
@tomsport2022 Beim Standard hast du 4 Entitäten zur Verfügung. Diese werden auch unter bottomScreensaverentity konfiguriert.
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
Glaube zwar noch nicht, dass es damit zusammenhängt, aber du solltest mal ein Update machen:
Wie du schon richtig vermutet hast...
System ist hochgezogen, hat aber keine Auswirkung
@Kuckuckmann Zeit auf'm RPI wird übrigens regelmäßig via NTP aktualisiertPlattform: linux Betriebssystem: linux Architektur: arm CPUs: 4 Geschwindigkeit: 1400 MHz Modell: ARMv7 Processor rev 4 (v7l) RAM: 922.3 MB System-Betriebszeit: 00:01:50 Node.js: v18.17.1 time: 1693672380793 timeOffset: -120 NPM: 9.6.7 Adapter-Anzahl: 586 Datenträgergröße: 14.3 GB Freier Festplattenspeicher: 6.9 GB Aktive Instanzen: 10 Pfad: /opt/iobroker/ Betriebszeit: 00:01:38 aktiv:
Wie gesagt auf dem anderen NSpanel (Script ist bis auf Aliase indentisch) hab ich das Problem nicht.
-
@losossos würde mich mal interessieren wieviel freien Speicher Du noch hast bei 1gb RAM. Steht bei den Instanzen oben. Alternativ mit top oder htop in der Konsole schauen
-
Den solltest du mal anhaken und das Script starten. Danach mal das Log senden. In der Regel findet man dann zumindest die Stelle an der dieser Fehler auftritt...
-
@gargano said in SONOFF NSPanel mit Lovelace UI:
würde mich mal interessieren wieviel freien Speicher Du noch hast
(läuft aber alles flüssig und ohne Probleme)
-
ich glaube des geht um diese Schedule
let scheduleSwichScreensaver = schedule('*/' + getState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime').val + ' * * * * *', () => {
kannst du mal bitte den Datenpunkt 0_userdata.0..... ScreensaverInfo.entityChangeTime zeigen inkl. Inhalt
PS: log Meldungen bitte kein Screenshot, sonder kopieren und in die Codetags </> einfügen. Damit lässt sich dann besser arbeiten, danke.
-
yippi, genau so ist es!
Danke für den Tip mit der ausführlichen Protokollausgabe:
21:30:22.655 info javascript.0 (1597) script.js.common.NSPanelTS_2_ts: schedule(cron=* * * * )
21:30:22.656 info javascript.0 (1597) script.js.common.NSPanelTS_2_ts: getState(id=0_userdata.0.NSPanel.2.ScreensaverInfo.entityChangeTime, timerId=undefined) => {"val":null,"ack":true}
21:30:22.658 error javascript.0 (1597) script.js.common.NSPanelTS_2_ts: schedule(cron=/null * * * * *): cannot create schedulestimmt tatsächlich, hier müßte im Datenpunkt eigenltich ne 60 stehen. (die fehlt aber)
Komisch, das die aber beim compiliren nicht gesetzt wurden.
Na egal, Fehler auf jeden Fall gefunden, jetzt sind alle 7 crons da!
Besten Dank und schönen Abend noch.
-
@losossos Viel Spass noch und denke bitte an die "Codetags". Screenshots nur, wenn sich Ausgaben nicht kopieren lassen.
-
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!