NEWS
SONOFF NSPanel mit Lovelace UI
-
@tt-tom
ok danke -
Hi,
besteht die Möglichkeit die Farbe des Icons und des Wertes zu wechseln je nachdem ob Strom eingespeist
oder entnommen wird? Bei Einspeisung soll es grün sein, bei Entnahme rot. Aktuell sieht es bei mit so aus. Der Wert kann negativ (Einspeisung) oder oder positiv (Entnahme) werden. Mit val_min, val_max und val_best habe ich es schon versucht.{ //ScreensaverEntity: 'alias.0.PV_Anlage.PV_Leistung.ACTUAL', ScreensaverEntity: 'mqtt.0.openWB.evu.W', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, //ScreensaverEntityIconOn: 'solar-power-variant', ScreensaverEntityIconOn: 'power-meter', ScreensaverEntityIconOff: null, ScreensaverEntityText: 'L1-L3', ScreensaverEntityUnitText: ' W', ScreensaverEntityIconColor: {'val_min': -11000, 'val_max': 11000, 'val_best': 0} },
-
-
@tt-tom Klappt leider nicht. Wenn ich es z.B: so eingebe
ScreensaverEntityIconColor: {'val_min': -1, 'val_max': 1, 'val_best': 0}
wird kein Icon angezeigt.
Bei
ScreensaverEntityIconColor: {'val_min': -11000, 'val_max': 11000, 'val_best': 0}
ist das Icon grün obwohl gerade Strom entnommen wird. Die Frage ist, ob das überhaupt möglich ist.
@Armilar: Geht das überhaupt?
-
@lesiflo hast du das Wiki gelesen? Wenn du val_best verwendest ist der Wert 0 jetzt grün und wird nach +1100 rot und nach -1100 rot. Es ist eine Farbskala von grün -> gelb -> rot in 10 Schritten aufgeteilt. lass val_best weg, dann ist 0 -> gelb
-
@tt-tom Das Wiki habe ich gelesen und es klappt ohne val_best auch nur bedingt. Ich will ja keinen Verlauf sondern bei Einspeisung grün und Entnahme rot. Dazwischen keine Farben. So wie bei:
Für Alias-Punkte vom Type boolean, wählt man mit val_best ob Rot oder Grün bei True kommen soll.
ScreensaverEntityIconColor: {'val_best': 1}
//Bei True = Grün -
Nein, bei den Icons geht das nur über die Farbskala. Bei den mrIcons würde das funktionieren, da die über eine bool (true/false) Abfrage funktionieren und dann einen weiteren numerischen Wert akzeptieren.
Hierzu benötigst du aber einen weiteren Datenpunkt, der bei Bezug vom Stromanbieter (also > 0) true schreibt und bei Abgabe an den Energieversorger (also <= 0) in das Netz ein false schreibt.
Dann könnte es wie folgt aussehen:
mrIcon2ScreensaverEntity: { ScreensaverEntity: '0_userdata.Strom.Bezug', ScreensaverEntityIconOn: 'power-meter', ScreensaverEntityIconOff: null, ScreensaverEntityValue: 'mqtt.0.openWB.evu.W', ScreensaverEntityValueDecimalPlace : 0, ScreensaverEntityValueUnit: ' W', ScreensaverEntityOnColor: MSRed, ScreensaverEntityOffColor: MSGreen },
Eine andere Möglichkeit wäre es, den Datenpunkt mit dem Wert über die Skala (wie bereits realisiert) mitzugeben und dann ein zusätzliches Indicator-Icon (ebenfalls mit einem optionalen Datenpunkt true/false) zur optionalen Anzeige verwenden, ob Strom bezogen oder abgegeben wird...
-
@armilar OK, alles klar. Ich lasse mir jetzt über die leftScreensaverEntity meine aktuelle PV Leistung anzeigen, die kann ja nur positiv sein und über mrIcon2ScreensaverEntity den Wert ans EVU. Danke für den Tip.
-
@tt-tom
Das klingt nach einem Plan, zeitlich kein Stress!
Die Richtung als Unterschrift ist auch gut. -
Hallo,
ich habe schon viel umgesetzt und klappt alles soweit sehr gut.
Habe für die Hardwarebuttons RULE2 aktiviert, nun kann ich per Knopfdruck ein objekt in userdata auf 0 oder 100 setzen und dann werden meine beiden Rollläden angesteuert.
Nun möchte ich aber trotzdem per mqtt das interne Relais 1 schalten können, das geht per WebIF, aber ich kann den Zustand ON/OFF im Objektbaum ändern lassen, es passiert nichts am Gerät selbst, Relais1 blaibt weiterhin aus. Habe ich da einen Denkfehler?
MfG
eMd -
-
ich sag ja, manchmal ist man einfach blind Danke!
Ich habe diesen Ordner total übersehen
mfg
eMd -
@Armilar
Ich bin gerade beim Update auf die aktuelle 4.0.5 und bekomme jetzt nach dem Übertragen der Seiten folgenden Fehler:10:25:23.630 info javascript.0 (6486) script.js.NSPanel_Wozi_4_0_5: undefined 10:25:23.632 warn javascript.0 (6486) script.js.NSPanel_Wozi_4_0_5: error at function HandleScreensaverStatusIcons: getState(...).val.toFixed is not a function
Hast du einen Tip woher dieser Fehler kommen könnte?
Danke schonmal für die Hilfe! -
@dapeace
hi zeige mal bitte die beiden mrIconXScreensaverentity. da schein ein Fehler zusein. -
-
@armilar @TT-Tom
So schaut das bei mir aus.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: 'mqtt-client.0.PoolTemp.Water', ScreensaverEntityIconOn: 'pool-thermometer', ScreensaverEntityIconOff: null, ScreensaverEntityValue: 'mqtt-client.0.PoolTemp.Water', ScreensaverEntityValueDecimalPlace : 1, ScreensaverEntityValueUnit: '°', ScreensaverEntityOnColor: MSRed, ScreensaverEntityOffColor: White },
-
Sieht auf den ersten Blick gut aus.
Eine Frage ist noch offen:
4.0.5.4? oder kleiner?
und könntest du uns mal einen Blick auf die drei verwendeten Datenpunkte geben?
-
Starte gerade mit meinen Ersten NSPanel und gehe mal über das Script und stolpere vermutlich schon über eine Anfänger Frage:
const NSPanel_Path = '0_userdata.0.NSPanels-Datenpunkte.Buero.'; // Anpassen an das jewilige NSPanel const NSPanel_Alarm_Path = '0_userdata.0.NSPanels-Datenpunkte.'; // Pfad für gemeinsame Nutzung durch mehrere Panels (bei Nutzung der cardAlarm) const AliasPath: string = 'alias.0.' + NSPanel_Path.substring(13, NSPanel_Path.length);
Verstehe ich das bei dieser Config der "AliasPath" nun
alias.0.0_userdata.0.NSPanels-Datenpunkte.Buero.
wäre?
Wenn ja, soll das so sein? Ich habe mich mal an die Beispiel TS gehalten und da wird auch mit den den Verzeichnissen 0_userdata und alias.0. gearbeitet.
const NSPanel_Path = '0_userdata.0.NSPanel.1.'; // Anpassen an das jewilige NSPanel const NSPanel_Alarm_Path = '0_userdata.0.NSPanel.'; // Pfad für gemeinsame Nutzung durch mehrere Panels (bei Nutzung der cardAlarm) const AliasPath: string = 'alias.0.' + NSPanel_Path.substring(13, NSPanel_Path.length);
Will nicht komplett falsch starten... Schließlich werden da ziemlich viele Datenpunkte von alleine erstellt.
-
@armilar sorry, ich hab das Skript heute erst vom Github geholt. Also müsste es die aktuellste sein. Anbei die 3 Datenpunkte. Ich kann da irgendwie nix erkennen. Die PoolTemp wird momentan nicht aktualisiert. Es steht noch ein älterer Wert von vor ein paar Tagen drin.
EDIT: Ich hab gerade nochmal probehalber den Pool auskommentiert und den Ersten DP verdoppelt 2x reingepackt. Jetzt kommt der Fehler nicht mehr aber das undefined kommt immer noch.
Wenn ich das ganze im Debug-Mode laufen lassen dann spuckt er mir folgende Info aus (22,7° müsste die Raumtemperatur sein):javascript.0 (9134) script.js.NSPanel_Wozi_4_0_5: HandleScreensaverUpdate payload: weatherUpdate~~~~38066~~11.7 °C~~~~32495~TagesVB~10.63~~~侀~32495~Tag~01.01.3511~~~侀~32495~Tag~17.13~~~~32495~Haus~01.01.1179~~~艹~32495~Pool~05.08.2001~ 14:28:48.433 info javascript.0 (9134) script.js.NSPanel_Wozi_4_0_5: Entity ist String 14:28:48.433 info javascript.0 (9134) script.js.NSPanel_Wozi_4_0_5: OFF [object Object] 14:28:48.434 info javascript.0 (9134) script.js.NSPanel_Wozi_4_0_5: Icon if true 梅 14:28:48.434 info javascript.0 (9134) script.js.NSPanel_Wozi_4_0_5: Value ist eine Zahl 梅22.7° 14:28:48.435 info javascript.0 (9134) script.js.NSPanel_Wozi_4_0_5: undefined
-
Tippe, dass der Fehler aus dem
mqtt.0.SONOFF.NSPanelWozi.stat.POWER1
kommt. Das ist kein boolscher Wert mittrue/false
, sondern ein String mitON/OFF
der aber nicht in der Funktion behandelt wird. Sollte der identisch mit dem Relais sein, kannst du besser den 0_userdata.0.NSPanelWozi.1.Relay.1 verwenden.