NEWS
SONOFF NSPanel mit Lovelace UI
-
-
-
@armilar jawohl. soweit war ich noch nicht mit dem anlegen... Wollte erst die unteren Icons füllen. Woran hackt das? Ich finde das Skript sollte schon auch mit weniger Einträgen funktionieren sonst wird die Fehlersuche immer recht kompliziert. Deinen Link hatte ich auch als Basis fürs ausfüllen genommen.
Ich hab die Config jetzt mal so angepasst das überall Daten drinstehen allerdings passen die Werte trotzdem absolut nicht mit den Datenpunkten überein. Ich versteh nicht ganz woher die Formatierung mit dem Datum kommt:
Bild:
Config:
/*********************************************************************** ** ** ** Configuration ** ** ** ***********************************************************************/ export const config = <Config> { panelRecvTopic: 'mqtt.0.SONOFF.NSPanelWozi.tele.RESULT', // Bitte anpassen panelSendTopic: 'mqtt.0.SONOFF.NSPanelWozi.cmnd.CustomSend', // Bitte anpassen leftScreensaverEntity: [ // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 { ScreensaverEntity: NSPanel_Path + 'Sensor.ANALOG.Temperature', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 1, ScreensaverEntityIconOn: 'thermometer', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Temperatur', ScreensaverEntityUnitText: '°C', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 35, 'val_best': 22} }, // leftScreensaverEntity 2 (only Advanced Screensaver) { ScreensaverEntity: 'mqtt-client.0.SmartMeter.Hausmomentanverbrauch', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'counter', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'L1-L3', ScreensaverEntityUnitText: ' W', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 5000} }, // leftScreensaverEntity 3 (only Advanced Screensaver) { ScreensaverEntity: 'mqtt-client.0.SmartMeter.Hausmomentanverbrauch', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'trash-can', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Abfall', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: '0_userdata.0.Abfallkalender.1.color' }, ], bottomScreensaverEntity : [ // bottomScreensaverEntity 1 { ScreensaverEntity: '0_userdata.0.Hausverbrauch_Tag', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityDateFormat: 'hh:mm', // like DD.MM or DD.MM.YY or YYYY/MM/DD or hh:mm ScreensaverEntityIconOn: 'flash-outline', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'TagesVB', ScreensaverEntityUnitText: 'KW', ScreensaverEntityIconColor: MSGreen }, // bottomScreensaverEntity 2 { ScreensaverEntity: 'mqtt-client.0.solaredge.currentPower', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'solar-power-variant-outline', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Aktuell', ScreensaverEntityUnitText: 'W', ScreensaverEntityIconColor: MSGreen, }, { ScreensaverEntity: 'mqtt-client.0.solaredge.currentPower', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityDateFormat: 'hh:mm', // like DD.MM or DD.MM.YY or YYYY/MM/DD or hh:mm ScreensaverEntityIconOn: 'solar-power-variant-outline', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Aktuell', ScreensaverEntityUnitText: 'W', ScreensaverEntityIconColor: MSGreen }, // bottomScreensaverEntity 3 { ScreensaverEntity: 'mqtt-client.0.solaredge.Day', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityDateFormat: 'hh:mm', // like DD.MM or DD.MM.YY or YYYY/MM/DD or hh:mm ScreensaverEntityIconOn: 'solar-power-variant-outline', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Tag', ScreensaverEntityUnitText: 'KW', ScreensaverEntityIconColor: MSGreen }, // bottomScreensaverEntity 4 { ScreensaverEntity: 'mqtt-client.0.SmartMeter.Hausmomentanverbrauch', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityDateFormat: 'hh:mm', // like DD.MM or DD.MM.YY or YYYY/MM/DD or hh:mm ScreensaverEntityIconOn: 'flash-outline', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Haus', ScreensaverEntityUnitText: 'W', ScreensaverEntityIconColor: MSGreen }, // bottomScreensaverEntity 5 (for Alternative and Advanced Screensaver) { ScreensaverEntity: '0_userdata.0.Poolpumpe_an', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 1, ScreensaverEntityIconOn: 'pool', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Poolpumpe', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: {'val_min': "off", 'val_max': "on"} }, { ScreensaverEntity: '0_userdata.0.Poolpumpe_Leistung', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'water-pump', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Poolp', ScreensaverEntityUnitText: ' W', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 600} } // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 ], indicatorScreensaverEntity: [ //indicatorScreensaverEntity 3 (only Advanced Screensaver) { ScreensaverEntity: 'mqtt-client.0.Garagentor.stat.POWER1', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'garage-variant-lock', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Garage', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: {'val_min': "OFF", 'val_max': "ON"} }, // indicatorScreensaverEntity 4 (only Advanced Screensaver) { ScreensaverEntity: 'husqvarna-automower.0.602d5cc6-850e-4a70-aa30-4a7d68cd68b8.mower.state', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'mower', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Mäher', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: { 'val_min': "CHARGING", 'val_max': "MOWING" } }, ], mrIcon1ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SONOFF.NSPanelWozi.stat.POWER1', ScreensaverEntityIconOn: 'heat-wave', //Rename ScreensaverEntityIconOff: null, ScreensaverEntityValue: NSPanel_Path + 'Sensor.ANALOG.Temperature', //New ScreensaverEntityValueDecimalPlace : 1, //New ScreensaverEntityValueUnit: '°', //New ScreensaverEntityOnColor: MSRed, ScreensaverEntityOffColor: White }, mrIcon2ScreensaverEntity: { ScreensaverEntity: 'shelly.0.SHRGBW2#272994#1.white0.Switch', ScreensaverEntityIconOn: 'outline', ScreensaverEntityIconOff: null, ScreensaverEntityValue: null, ScreensaverEntityValueDecimalPlace : 1, ScreensaverEntityValueUnit: '', ScreensaverEntityOnColor: MSRed, ScreensaverEntityOffColor: White }, weatherEntity: 'alias.0.Wetter', // Dieser Alias wird automatisch für den gewählten Wetter erstellt und kann entsprechend angepasst werden defaultOffColor: Off, // Default-Farbe für Off-Zustände defaultOnColor: On, // Default-Farbe für On-Zustände defaultColor: Off, defaultBackgroundColor: HMIDark, // Default-Hintergrundfarbe HMIDark oder Black pages: [ Wohnzimmer_Thermostat, Wohnzimmer_Radio, Stromverbraeuche, Stromverlauf, Fenster_Wozi, Wohnzimmer_Licht, Pool, NSPanel_Service //Auto-Alias Service Page ],
-
@dapeace sagte in SONOFF NSPanel mit Lovelace UI:
Ich finde das Skript sollte schon auch mit weniger Einträgen funktionieren sonst wird die Fehlersuche immer recht kompliziert
Das Script kommt auch mit weniger zu recht, die Mindestanforderung zeigt die Datei NsPanelTs_without_Examples.ts
Die Datenpunkte mit deinen Werten(Zahlen) müssen vom Typ number sein.
Ich versteh nicht ganz woher die Formatierung mit dem Datum kommt:
das Script macht aus Zahlen, die als String übergeben werden ein Datum. Mit ScreensaverEntityDateFormat: kann man die Anzeige dann noch formatieren.
-
@tt-tom Danke für die Info. Ich hab jetzt mal das Skript 4.0.5 verwendet was ich schonmal vorbereitet hatte und hier funktionieren die Werte so wie sie sind. Mit der 4.0.5.11 kommen so komische Sachen bei raus.
-
-
@tt-tom Sorry war paar Tage unterwegs. Ich habe jetzt die AlarmPage mit dem Alarm Adapter verbunden, geht auch soweit ganz gut. Paar Kleinigkeiten muss ich noch anpassen. Falls es jemanden interessiert kann ich ja das Blockly mal hier reinstellen.
-
@danny_v1 ja gerne, ich würde es dann mit ins Wiki übernehmen. Vielleicht kannst du noch ein paar Hinweise geben, was zu beachten ist.
-
@tt-tom Alles klar mach ich, ist aber alles noch im Test, aber bis jetzt macht es keinen schlechten Eindruck.
Ich hätte da auch noch eine Anfrage für eine neue Card. Gibt es die Möglichkeit eine Card für einen Wecker zu integrieren? Bin gerade am Testen der MQTT Alarm Clock App für Android, das zb fünf Minuten vor dem gestellten Wecker die Rollos auf gehen und sobald der Wecker angeht Alexa irgend einen Radiosender spielt und nach dem zweiten mal snooze z.b. das Licht an und aus geht. Da wäre es ganz praktisch das ganze am Panel darzustellen bzw auch drüber den Wecker zu stellen.
-
-
@tt-tom Sorry das es etwas gedauert hat aber hier noch das Blockly, wie ich den Alarm Adapter mit der AlarmPage verbunden habe.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="P7QE+GF6h)E2g%:#y$/Y">LichtEGStatusAlt</variable> <variable id="UcL-MS2|s1+aEP7O*`A:">LichtOGStatusAlt</variable> </variables> <block type="on_ext" id="|8X[PbbvSU!7I^5{*^a=" x="88" y="63"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="`)3Y`~St5DH5v?F+]9M3"> <field name="oid">0_userdata.0.NSPanel.Alarm.Aktivierungen.VollschutzAn</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="7[^|QcTy/@.{2s(OG$Fb"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="=.KD7qSe4~]TtSI!xiI."> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="CPg[7^D?vcw{xepZZ}EX"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="T[[`hbH(-}+MXWi9KnYp"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="x)l][_Kt,BrAEFLDdC@u"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="a-[@@{!jc/q29XT$V#^o"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="o7.X|H!0~iKqFeQp5a*H"> <field name="ATTR">val</field> <field name="OID">alarm.0.status.enableable</field> </block> </value> <value name="B"> <block type="logic_boolean" id="@2dbs*qhF=tzkW^1}r+*"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="ZHQRocGj=Q*cJItr_[,a"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.AlarmPin</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="!M0tIs|-E.^-Vq8F@?|0"> <field name="NUM">1234</field> </block> </value> <next> <block type="control" id="[W{gk$~R,i,/YN:v#}]9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.AlarmState</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="oX_:B54QYu5Vhdf[vg*("> <field name="TEXT">armed</field> </block> </value> <next> <block type="control" id="p@-g_|Ai2)pFRlmW!?!."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.AlarmType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="NXo+M(9d}#{0}{1d}rDg"> <field name="TEXT">A1</field> </block> </value> <next> <block type="control" id="tsT$MuFe0)Sc#oLXC5Fm"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alarm.0.status.activated</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="!R0?Sfg.nqx%}`G]hHVJ"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="`V)hoN1w2b=nkKl`oddW"> <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="wnXujXR/B-fTx9*ESBPK"> <field name="TEXT">Alarmanlage</field> </block> </value> <next> <block type="control" id="P+~noX9+8Xc~~.UP$Lwu"> <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="GBTKSe+%xY9n]r[El0f$"> <field name="TEXT">Vollschutz aktiv</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="TPzsIanmsL4v[Cq=IRQ@"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="l9$l`DT]e5;:SvPO@]+["> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="E9Z0MOKXn=]f24RS7F77"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="1mGoL-)gl|wF]4ojsWCS"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="=^_Se%Hun-5UjTB9aX,b"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="*TwUAn4%?h=|l?g$GcHR"> <field name="ATTR">val</field> <field name="OID">alarm.0.status.enableable</field> </block> </value> <value name="B"> <block type="logic_boolean" id="t~pMo=u0XsA^I([8xy8Z"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="`AR;2[%g4!:!@fSU[Nk8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.Aktivierungen.VollschutzAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Qd[b2-|vE)wCJwkcW:x/"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> <block type="on_ext" id="878R%*,J0DoZ$`CTH2~G" x="88" y="563"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="vY]]X7=yW5ud-7)@.[cX"> <field name="oid">0_userdata.0.NSPanel.Alarm.AlarmState</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Dn3uq*-U3bF|r|lRF=O2"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id=":gh%YH,Er.:u%^k/A5M^"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=",vVGqd18%^nS?@Lv*@iO"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="@jB:FzUnE.mM*{xtFGFs"> <field name="TEXT">disarmed</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="GKiESAyt$/0)d;GBBzTG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alarm.0.use.disable</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="bo{lnh?p0H#UgmEi+^O("> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="l[o~|nrZ50ecR#m70T(m"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alarm.0.use.disable</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="lY5y;c!arQEj}{/5;Jt7"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="/DuX0s07rDjJG_)GH#Qa"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.Aktivierungen.VollschutzAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Y.!%z)Aoj;8hq;]7y^#]"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="PAKXc91S8U.I-a%xop9L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.TreppeFlur.DeckeEG.ON</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="0`x4B6[Rj_Tn*_CF$)Vz"> <field name="VAR" id="P7QE+GF6h)E2g%:#y$/Y">LichtEGStatusAlt</field> </block> </value> <next> <block type="control" id="e~EA|q9|2[iW8nsp.O:C"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.TreppeFlur.DeckeOG.ON_SET</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="))H2`fEybXNbjU3df]!j"> <field name="VAR" id="UcL-MS2|s1+aEP7O*`A:">LichtOGStatusAlt</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="6w!6(LoO[?}oY*U#Gl~K"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="h.e)e34pQyCsHTmWie:?"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="YlgD^C`@F@9!K-CTWb^3"> <field name="TEXT">arming</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="7II/mr[uv-iwLiantF?J"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.Aktivierungen.VollschutzAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="lurrJr!WWoTy6(qJ{uSE"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> <block type="on_ext" id="GigMf:F8epyVG;Dwj+@C" x="863" y="538"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="PdQZ.w~i9RiZ^o#yRh43"> <field name="oid">alarm.0.status.burglar_alarm</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="XijA|xcfM?eTr!T~%puY"> <value name="IF0"> <block type="logic_compare" id="1Y)4rnLtqEUM0$cnP^d."> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="kfH9w6vy}dZp?hY//MRw"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="wnM,DSd8Y*ZOzFX~/6e)"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="8c-h%.Im$e^`5Tb)HE}*"> <field name="VAR" id="P7QE+GF6h)E2g%:#y$/Y">LichtEGStatusAlt</field> <value name="VALUE"> <block type="get_value" id="b}hOF7NXr^3gH=Ozq^D="> <field name="ATTR">val</field> <field name="OID">alias.0.TreppeFlur.DeckeEG.ON</field> </block> </value> <next> <block type="variables_set" id="Q[shuU$MzOS2N-+/%g#R"> <field name="VAR" id="UcL-MS2|s1+aEP7O*`A:">LichtOGStatusAlt</field> <value name="VALUE"> <block type="get_value" id="]~yhhkD0E.^c7_kTIwJ;"> <field name="ATTR">val</field> <field name="OID">alias.0.TreppeFlur.DeckeOG.ON_SET</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> <block type="on_ext" id="Mj%;$r_Va+fuu23DU%zO" x="863" y="788"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="WTlwg+c]eF{}UUUNCLw~"> <field name="oid">alarm.0.status.sleep</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Uz5pl3/qX5MFoxJ!b2-{"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="Q_^C5_tNat6gj.:=e(ga"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id=",8ut)Jl78*^_B_gKRP^O"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";ALn4,6|YLJ)Y%~:UQ^C"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="yxR{V$lEKXa@0|[DUy88"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.Aktivierungen.VollschutzAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="G(c~)uuXbDDh/t0zg#3V"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="%W$wM#=_v5Ce~l:Xu:FV"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="fC1}q6!ZR;xELf{2=p$M"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="=1xlUlZ,T:}h|zv8#^GQ"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="e#6S8g*`Kr(:)7iG:xMA"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.Aktivierungen.VollschutzAn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1-v-X([W0xGAqO#+1%;w"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="(vV*wIqmAE}M;8AJoO6s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alarm.0.use.disable</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]Wf{Ua.|#,S4U0ktYX72"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="*;;l^`=_PIe{)JJt`x`."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alarm.0.use.disable</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="`SZ{/m5h$PhZ7E-t%C,}"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="iRX$?5x=agp2yQQJO,B+"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.AlarmPin</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="XtR/6+Jiz$*6^w3Y(vM#"> <field name="TEXT">1234</field> </block> </value> <next> <block type="control" id="yE]mw5BVbcwuJV@DY2%/"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.AlarmState</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="xjC{pV2??Mdu4ExLgb2X"> <field name="TEXT">disarmed</field> </block> </value> <next> <block type="control" id="DAYNMXSt!]Br=~m.xa-i"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.NSPanel.Alarm.AlarmType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="~t:e?*BP{*SquN714-a$"> <field name="TEXT">D1</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Kurze Erklärung noch dazu:
-Es wird ein Datenpunkt als Boolean benötigt, in dem Blockly "VollschutzAN".
-Ich nutze einen festen Pin (im Blockly 1234) kann entweder ein fester Pin sein oder durch einen Datenpunkt ersetzt werden.
-zur Aktivierung am Panel, egal welcher Pin bei der Aktivierung eingegeben wird, der Pin im Blockly ist der der den Alarm deaktiviert!!!
-Es wird alles im Alarm Adapter festgelegt, also was Überwacht wird, was bei welchem Alarm gesteuert wird usw.
-Es ist alles noch in der "Testphase" bei mir läuft es zur Zeit so: Ich habe die AlarmPage auf dem Panel neben meiner Haustür aktiv, per Button am Panel wird die Alarmanlage scharf geschaltet, ich überwache alle Türkontakte sowie Bewegungsmelder im Alarmadapter. Wichtig beim scharfschalten die Tür muss offen sein und im Alarmadapter der Haken gesetzt sein "Konfigurierte Zustände bei der Aktivierung ignorieren" da sonst schon beim verlassen der Alarm ausgelöst wird. Wird der Alarm ausgelöst öffnet sich am Panel automatisch die AlarmPage und mit der StandartPin lässt sich der Alarm deaktivieren. Sollte dies nicht innerhalb von der Im Alarmadapter festgelegten Zeit passieren blicken erst die Lampen die im Blockly stehen. Was danach passiert kann ja jeder selbst entscheiden und im AlarmAdapter festlegen, z.B Rauchmelder aktivieren Alexa etwas sagen lassen eine Telegram Nachricht verschicken, usw.Hoffe das war nicht zu ausführlich.
Das Blockly darf gern verwendet und im besten Fall verbessert werden!
-
Hallo,
bin neu hier und habe ein Problem und eine Frage :-
Frage : kann man Datenpunkte verschachteln bzw. wie?
Bekomme im Trashschedule unter trashschedule.0.next.types nur den Typ, z.b. Wertstofftonne. Die Farbe wäre dann zu finden unter trashschedule.0.type.wertstofftonne.color -
Problem
habe im NSPanel Service keine Datenpunkte (alles was nicht navigate ist, ist leer), dabei sieht aliaspfad etc. gut aus. Im NSPanel_Service fehlt auch schon der erste untere rebootbutton. Habe dort auch versucht den Pfad direkt einzutragen, keine Änderung. Hier weiß ich gerade nicht weiter.
Ansonsten ist alle Software frisch, keine Fehlermeldungen, minimal angepasstes NSPanelTs.ts ohne Beispiele.
Der Rest (accuweather, mqtt etc. geht)
tasmota 12.5.0
berrydriver 8
adapter 1.1.1
javascript 6.1.4
TS script 4.0.5 ohne Beispiele
Pfade angepasst
nspanel.ts -
-
Ich weiß zwar nicht wie das passiert ist, aber deine Aliase haben so wie es aussieht keine "Channel"!
Müsste so aussehen:
Lösche bitte mal das durch das "Script" erstellte Verzeichnis unter 0_userdata.0. und alias.0.
Danach noch mal das Script ausführen und alle Datenpunkte erneut anlegen lassen.
Welche nodeJS-Version ist im Einsatz? --> In Linux-Console
node -v
ausführenHintergrund: Das Script sucht nach dem Alias
Channel
. Wenn der nicht vorhanden ist, weiß das Script nicht, welches Steuerelement instanziert werden soll...Beispiel rebootNSPanel
- bei mir button
- bei dir folder
EDIT:
Zum Thema trashschedule.0. kann ich dir allerdings nicht helfen, da ich den Adapter nicht benutze. Gibt aber bestimmt zahlreiche User hier mit Beispielen...EDIT2: Kann es sein, dass der Haken setObjects im JS-Adapter (Config) nicht gesetzt ist? Könnte erklären, warum die Channel nicht angelegt werden.
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
setObjects
Danke, war setObjects - was man nicht alles übersehen kann ...
-
@xblades sagte in SONOFF NSPanel mit Lovelace UI:
Frage : kann man Datenpunkte verschachteln bzw. wie?
Bekomme im Trashschedule unter trashschedule.0.next.types nur den Typ, z.b. Wertstofftonne. Die Farbe wäre dann zu finden unter trashschedule.0.type.wertstofftonne.colorwenn du den Abfallkalender nach dem Wiki nachbauen willst, wirst du mit dem Color Probleme bekommen. Der Trash bringt den Color in HEX und das Script benötigt es aber als rgb_dec565. Zusätzlich wird der aktuelle nicht oben stehen auf der Page.
du kannst auch mein Script nutzen, es holt sich die Daten aus dem ical und ist mit dem Wiki konform
-
@tt-tom
Ich möchte eigentlich nur eine color für den Screensaver wie im NSPanel.TS// leftScreensaverEntity 3 (only Advanced Screensaver) { ScreensaverEntity: '0_userdata.0.Abfallkalender.1.date', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'trash-can', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Abfall', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: '0_userdata.0.Abfallkalender.1.color'
Ich habe aber im Trash keine color für das nächste Element, sondern nur den Typ, zum Typ gibt es dann wieder eine Color.
Vielleicht so
{val:trashschedule.0.types; val="Wertstofftonne"? 'trashschedule.0.type.wertstofftonne.color': val="Restabfalltonne"? 'trashschedule.0.type.restabfalltonne.color': val="Biotonne"? 'trashschedule.0.type.biotonne.color':'trashschedule.0.type.papiertonne.color'}
Oder
{val:trashschedule.0.types; val="Wertstofftonne"? 'Yellow': val="Restabfalltonne"? 'Red':val="Biotonne"? 'Green':'Blue'}
Keine Idee was da funktionieren könnte und wie es korrekt geschrieben wird - JS ist Neuland.
-
@xblades
Folgendes scheint zu funktionieren :ScreensaverEntityIconColor: getState('trashschedule.0.next.types').val=="Biotonne"?Green:getState('trashschedule.0.next.types').val=="Papiertonne"?Blue:getState('trashschedule.0.next.types').val=="Wertstofftonne"?Yellow:Red
-
@xblades
Deine Trash-Daten kommen doch vom ical - Adapter. Wenn du mein Script nimmst, welches eine Erweiterung aus dem Wiki ist, bekommst du alle Daten für das Panel. Es erstellt auch alle Datenpunkte selber.
Damit kannst du dir eine Page anlegen und auch im Screensaver die Daten anzeigen lassen. Den Trash-Adapter kannst du auch parallel betreiben für die VIS. Bei mir läuft er auch so.
Meine Config für den Screensaver. Der nächste Termin liegt immer in "1.date"// leftScreensaverEntity 3 (only Advanced Screensaver) { ScreensaverEntity: '0_userdata.0.Abfallkalender.1.date', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'trash-can', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'Abfall', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: '0_userdata.0.Abfallkalender.1.color' },
Für die Page sieht die Config so aus.
let Abfall = <PageEntities> { 'type': 'cardEntities', 'heading': 'Abfallkalender', 'useColor': true, 'items': [ <PageItem>{ id: AliasPath + 'Abfall.event1',icon: 'trash-can'}, <PageItem>{ id: AliasPath + 'Abfall.event2',icon: 'trash-can'}, <PageItem>{ id: AliasPath + 'Abfall.event3',icon: 'trash-can'}, <PageItem>{ id: AliasPath + 'Abfall.event4',icon: 'trash-can'} ] };
Dies soll nur ein Vorschlag für dich sein. schönes Wochenende
-
@tt-tom
Ja, das dürfte passen, ich probier es mal aus. Im Grunde war es eher ein Versuch Daten in den Screensaver zu bekommen. Habe da schon meine Pooltemperatur, das war einfach, da Zahl. Dann wollte ich einfach mal Daten aus dem Trashschedule ausgeben, da finegen die Probleme dann an.
z.B. das Datum liegt als Text vor und ist dort korrekt formatiert. Wenn es an den Screensaver deht detektiert der, dass ein Datum drin ist und formatiert es neu. Folge Tag und Monat sind vertauscht.
Die ScreensaverEntity wird als Zahl interpretiert, da kann man nicht direkt umformatierungen machen.
Das heißt dann ein Script, das Datenpunkte in andere userdata umformatiert, die man dann direkt benutzen kann.
Sowas habe ich im Wiki nicht gelesen - vielleicht auch zu schnell gelesen
Alternativ könnte man alias anlegen mit einer neuen Role und die Role dann im script entsprechend bearbeiten. -
@xblades sagte in SONOFF NSPanel mit Lovelace UI:
Alternativ könnte man alias anlegen mit einer neuen Role und die Role dann im script entsprechend bearbeiten.
Könnte man - aber aus Gründen der Abwärtskompatibilität nicht wirklich die Beste Idee