NEWS
Bindings in vis
-
@Oli sagte in Bindings in vis:
hier mal die gewünschten Daten:
Ich wollte die Objekte sehen.
Wenn diese aber eingeklappt sind, sieht man nichts. -
Sorry
-
Es klappt bei mir auch nicht.
Weiß im moment nicht woran es liegt.
Sorry. -
@Oli ungetestet, müsste aber IMO funktionieren:
{val:javascript.0.Log-Script.Loganzeige; val == 1 ? "javascript.0.Log-Script.logInfo.logJSON" :: val == 2 ? "javascript.0.Log-Script.logWarn.logJSON" :: val == 3 ? "javascript.0.Log-Script.logError.logJSON" :: ""}
-
@SBorg sagte in Bindings in vis:
{val:javascript.0.Log-Script.Loganzeige; val == 1 ? "javascript.0.Log-Script.logInfo.logJSON" :: val == 2 ? "javascript.0.Log-Script.logWarn.logJSON" :: val == 3 ? "javascript.0.Log-Script.logError.logJSON" :: ""}
habe auch schon getestet - auch deine version - bringe es auch nicht ans laufen - kann das am widget selbst liegen ?
-
@liv-in-sky sagte in Bindings in vis:
kann das am widget selbst liegen
Glaube ich eigentlich nicht, denn dann dürfte es auch bei "1+2" schon nicht funktionieren.
Dann muss ich es wohl mal nachbauen, um es auch testen zu können. Welches Skript erzeugt denn die 3 JSONs? -
@SBorg
Es ist das Logscript von Mic
https://forum.iobroker.net/topic/13971/vorlage-js-log-datei-aufbereiten-für-vis -
Oki, ich schau es mir dann mal an
-
Ok, geht, aber nicht schön und anders als erwartet. In der Konstellation wird der Tabelleninhalt erst angezeigt wenn ein neuer Wert in die Tabelle geschrieben wird
Wer dennoch möchte (JSONs ggf. anpassen):{w:javascript.0.Log-Script.Loganzeige; w < 2 ? "javascript.0.Log-Script.logInfo.logJSON" :: w < 3 ? "javascript.0.Log-Script.logWarnanderror.logJSON" :: "javascript.0.Log-Script.logError.logJSON"}
Ich würde es hier ohne Binding lösen und mit der "Sichtbarkeit" arbeiten. Geht einfacher und besser
-
trotzdem danke für deinen Versuch
-
Ich habe mich mal wieder versucht mit Bindings anzufreunden.
Natürlich hat es nicht auf Anhieb geklapptDann habe ich das hier gefunden:
@foxriver76 sagte in Bindings in vis:
bindings sind die DPs vom Typ String also entweder parsen...
Ich wollte mir weitere Datenpunkte ersparen und aus dem Verbrauch die Kosten errechnen.
{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Strom*0.2}
Natürlich kommt in einem number Widget NaN.
in einem HTML-Widget eine unheimlich lange Dezimalealso habe ich (als js Legastheniker) es wegen des Hinweises von @foxriver76 mit parseFloat() versucht - ohne Erfolg
Weder
{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;parseFloat(Strom)*0.2}
, noch{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;parseFloat(Strom*0.2)}
kommt zu einem Ergebnis -
@Homoran said in Bindings in vis:
in einem HTML-Widget eine unheimlich lange Dezimale
Funktioniert das denn nicht:
{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;round(Strom*0.2*100)/100}
oder das
{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Math.round(Strom*0.2*100)/100}
-
@mickym sagte in Bindings in vis:
Funktioniert das denn
Ja das funktioniert.
DANKE!Aber ich kannte den Befehl fürs Runden nicht
geht es denn "irgendwie" da eine Zahl herauszubekommen um es im basic number Widget zu formatieren?
-
-
@mickym sagte in Bindings in vis:
Eine Zahl mit Umwandeln mittels Number() ?
sorry das sagt mir nichts
ich dachte ich mache das mit dem parseFloatsieht im Moment ganz brauchbar aus, ich habe sogar geschafft die EInheit dahinter zu bekommen:
rechts das basic number Widgetund mit den richtigen Werten kommen auch ct und nicht Euro raus
-
@mickym sagte in Bindings in vis:
You can use any javascript functions.
ich bin leider nicht You, das ist ja mein Problem
-
Ich weiß nicht ob das doppelt ist - aber um es in eine Zahl umzuwandeln dann müsste das ja gehen:
{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Number(Strom*0.2)}
-
@mickym sagte in Bindings in vis:
@Homoran said in Bindings in vis:
in einem HTML-Widget eine unheimlich lange Dezimale
oder das
{Strom:Messwerte.0.Stromzaehler.Summenwerte.Waschmaschine_Verbrauch;Math.round(Strom*0.2*100)/100}
Das sollte maximal mit 1.2.10 und 1.2.11 funktionieren, da sich ein Fehler eingeschlichen hat. In 1.2.12 sind number Werte initial wieder Strings.
-
@mickym sagte in Bindings in vis:
aber um es in eine Zahl umzuwandeln dann müsste das ja gehen:
leider nein -> NaN!
aber nochmal Danke!
es läuft jetzt ausreichend mit dem HTML widget. ich hatte da nur Angst die Formatierungen (Einheit und die Nachkommastellen) nicht hinzubekommen.
Das ist ja jetzt alles geschafft. -
Bin auch gerade auf das Thema Bindung gestoßen, um die Daten meines Solar Wechselrichter tabellarisch darzustellen.
Dabei treten bei mir zwei Probleme auf.
1.) wie kann ich Zahlen die eine führende Null haben, runden (siehe Leistung DC)? Also z,B. 0,1313585 setze ich auf
round (4)
, was dazu führt, das dass Ergebnis "0" ist. Offensichtlich kann der Befehlround
keine Zahlen runden die einen "Einer" haben der =<0 ist.2.) Meine Tabelle ist für mein dafür Halten nicht besonders umfangreich. Nun bricht aber meine Seiten Performance ganz übel zusammen, wenn ich die Seite mit den bindings aufrufe - teilweise dauert es bis zu 45Sekunden bis die Seite geladen hat.
@haus-automatisierung hat in seinem Internet Blog das Bindings auch mal angeschnitten und dabei den folgenden Satz hinzugefügt.
Gibt es dazu schon neue Erkenntnisse, wie sich die Performance verbessern läßt?
Hinweis: Beim Einsatz von zu vielen Objekt-Bindings kann es zu Performance-Problemen kommen. Ich bin hier noch auf der Suche nach einer alternativen Lösung.