NEWS
Test Adapter Energiefluss-erweitert v0.7.x GitHub/Latest
-
@skb wie man alternative Texte in Abhängigkeit des Wertes eines Datenpunktes schreibt ist mir klar:
{
"0": {
"fill": "rgb(216,216,216)",
"value": "1 phasig"
},
"1": {
"fill": "rgb(216,216,216)",
"value": "3 phasig"
}
}Jetzt würde ich aber weder “1 phasig” noch “3 phasig” in Abhängig eines zweiten Punktes schreiben. Letztlich möchte ich in meiner Version der Interpretation des ENERGIEFLUSS-Adapters den Schriftzug (1 phasig oder 3 phasig) nur zeigen, wenn mein Fahrzeug auch angeschlossen ist.
Ich möchte diesen 2. Datenpunkt - PLUG heist er - auch noch dafür verwenden, meinen iD3 nur zu zeigen, wenn PLUG einen Wert > 1 hat.
-
@leonundjulie Na, dann mach das doch!
-
@skb
Houston, ich habe da ein Problem.
Version 0.7.7 stableIch wollte einer bestehenden Datenquelle einen anderen DP zuordnen. Hat früher immer geklappt.
Dazu gehe ich auf Datenquellen und bei der gewünschten, klicke ich auf den Bleistift
Hier gehe ich in den Objektbrowser
und wähle den neuen DP aus
bestätige mit "wählen"
Dieser wird aber nicht übernommen
statt dessen wird mir die Erstellung einer neuen Datenquelle angeboten.Führe ich dies aus, wird sie auch angelegt.
Das anschließende Löschen geht jedoch nicht wirklich.
Die Datenquelle wird durchgestrichen, und als zum Löschen vorbereitet markiert.Jetzt existiert nur noch der "Wiederherstellen Button"
Was mache ich falsch?
-
@homoran Damit hast Du Recht. Behebe ich. Wenn die Datenquelle durchgestrichen ist, wird sie beim Speichern gelöscht. Vorher besteht immer noch die Chance, sie wiederherzustellen.
-
@skb “… dann mach es doch “ scheint schwieriger als gedacht, zumal diese Sprache fürs ÜBERSCHREIBEN noch sehr fremd ist.
Das Bild meines iD3, im EnergieflussAdapter eingebunden als “ID 256”, bleibt hartnäckig im Bild.
Ich habe bislang folgenden Code versucht (auch mal in der Variation “ID 256” statt “)inline-block”. Den Datenpunkt Plug_Test habe ich natürlich unter Dsatenquelle eingebunden. Wenn ich meinen Datenpunkt zwischen 0 und 1 wechsle, passiert nichts. Daher muss ich nochmals um Hilfe bitten.
{ "default": { "display": "() => {0_userdata.0.Plug_Test} == 0 ? 'inline-block' : 'none'" } }
-
@leonundjulie Die Abfrage des zusätzlichen Datenpunktes erfolgt natürlich nur, wenn der zugewiesenen Datenpunkt sich ändert (zusätzliche Bedingung).
Heißt, wenn du ein Bild für das Fahrzeug hast, ob es angeschlossen ist, oder nicht, reicht das Zuweisen des DP der Wallbox und Prüfung, ob dieser true oder false ist.
Dies unterscheidet sich eben von deiner ersten Anfrage, "wie man etwas darstellt, was in Abhängigkeit von etwas Anderen ist".
-
@skb letztlich hatte ich zwei Themen:
-
darstellen, ob 1-phasig oder 3-phasig geladen wird (der eingebundene Daten Punkt ist =0 oder =1)
-
Bildchen des Autos einblenden, wenn es angeschlossen ist (mein Wert respektive der eingebundene Datenpunkt ist dann ungleich 0) …. oder Bildchen des Autos ausblenden, wenn der Datenpunkt=0 ist
Die erste Aufgabe ist gelöst, aber bei der zweiten mit ID3 Bildchen tue ich mich schwer
-
-
@leonundjulie Bild mit Datenpunkt versehen (ob Auto angeschlossen), Default Überschreibung rein, mit
{ "default": { "display": "val => val == true ? 'inline-block' : 'none'" } }
fertig!
-
@skb hab es jetzt so gemacht wie Du es vorgeschlagen hast und schon geht es mit meinem Testdatenpunkt. Weil der Datenpunkt meiner Wallbox aber folgende Werte ausgibt
"states": { "0": "no cable plugged", "1": "cable plugged in charging station, unlocked", "3": "cable plugged in charging station and locked", "5": "cable plugged in charging station and vehicle, unlocked", "7": "cable plugged in charging station and vehicle and locked" }
habe ich es letztlich so gemacht und mein ID3 Foto kommt jetzt endlich nur noch, wenn der Flitzer angesteckt ist ... egal, ob verriegelt oder nicht.
{ "default": { "display": "val => val > 3 ? 'inline-block' : 'none'" } }
Danke für den Support!!!
Jetzt möchte ich es noch perfekt machen und den Schriftzug "1 phasig respektive 3 phasig ebenfalls ausblenden, wenn der ID3 nicht da ist.
{ "0": { "fill": "rgb(216,216,216)", "value": "1 phasig" }, "1": { "fill": "rgb(216,216,216)", "value": "3 phasig" } }
Ergo müsste ich den folgenden Code ebenfalls in die Abhängigkeit zum DP kecontact.0.plug bringen. Also if kecontact.0.plug > 3, dann 1 phasig oder 3 phasig, ansonsten nichts. Was hältst Du von diesem Ansatz:
{ "0" and “{kecontact.0.plug} > 3}” : { "fill": "rgb(216,216,216)", "value": "1 phasig" }, "0" and “{kecontact.0.plug} < 5}” : { "fill": "rgb(216,216,216)", "value": "1 phasig" }, "1" and “{kecontact.0.plug} > 3}” : { "fill": "rgb(216,216,216)", "value": "3 phasig" }, "1" and “{kecontact.0.plug} < 5}” : { "fill": "rgb(216,216,216)", "value": "" }
-
@leonundjulie Hier benötigst du auch das
display
Attribut und die Abfrage, ob das Auto abgesteckt ist.1 und 3 phasig kann sich ja ruhig ändern - die Anzeige dann über
display
"0": { "display": "() => {DP.Fahzeug} == 1 ? 'inline-block' : 'none'" }, "1": { "display": "() => {DP.Fahzeug} == 1 ? 'inline-block' : 'none'" } }
So sollte es funktionieren.
Hier muss man allerdings schauen, ob sich der Datenpunkt für die Phase ändert oder es besser ist, diesen auch an den Wallbox zu koppeln, damit die Änderung ausgelöst wird - dann abfragen, mit wie vielen Phasen geladen wird.
-
@skb , ich habe weiter experimentiert und bin noch immer nicht am Ziel, was sicherlich daran liegt, dass sich mir das DISPLAY COMMAND noch nicht komplett erklärt.
Ich habe für das ID3 Bild den Datenpunkt kecontact.0.plug angezogen und es wie folgt gemacht. Das klappt - das Bild ist da wenn das Auto an der Wallbox hängt und ist nicht zu sehen, wenn der ID3 auf Tour ist.
{ "default": { "display": "val => val > 3 ? 'inline-block' : 'none'" } }
Für meinen Schriftzug 1phasig respektive 3 phasig habe ich den passenden Datenpunkt genommen und den Code wie folgt gesetzt. Zwar wechselt der Schriftzug auf 1-phasig und umgekehrt (je nach Menge des Überschusses. Funktioniert das DISPLAY command an dieser Stelle nicht? In der von mir gewählten Kombi nicht? Oder …?
{ "0": { "fill": "rgb(216,216,216)", "value": "1 phasig", "display": "() => {kecontact.0.plug} > 3 ? 'inline-block' : 'none'" }, "1": { "fill": "rgb(216,216,216)", "value": "3 phasig", "display": "() => {kecontact.0.plug} > 3 ? 'inline-block' : 'none'" } }
-
@leonundjulie Das ist die Situation, die ich oben meinte.
Ich gehe mal vorsichtig davon aus, das der Datenpunkt für 1-phasig oder 3-phasig wechselt, bevor derkecontact.0.plug
gesetzt wird, oder?Zur Erklärung:
Die Überschreibung wird ausgeführt, wenn sich der zugewiesene Datenpunkt ändert - nicht wenn dieser sich alleine ändert. Daher war meine Überlegung vorher, die Anzeige an den Datenpunktkecontact.0.plug
zu koppeln und den Datenpunkt für die 1-phasig/3-phasig als Überschreibung heranzuziehen. -
@skb verstanden, werde es drehen (wenn ich mir das wie überlegt habe) und auf Sonne und somit Überschuss warten.
Oder es doch anders machen🧐. Denn ich habe verstanden, dass für die Programmierungen im Rahmen einer Überschreibung der Wert des Datenpunktes herangezogen wird (ist doch korrekt, oder?).
Aber wofür ist der Punkt „Datenquelle zur Steuerung“
-
@leonundjulie sagte in Test Adapter Energiefluss-erweitert v0.7.x GitHub/Latest:
wofür ist der Punkt „Datenquelle zur Steuerung“
für einfache Dinge.
z.B. Schrift rot wenn größer 6kW -
@leonundjulie So, wie es der Titel sagt uns auch der Klick auf das Fragezeichen erklärt!
Edit: Sehe gerade - das da kein Fragezeichen istReiche ich nach!
Allerdings ist dies auch selbsterklärend.
Anzeige: Zeigt den Wert des Datenpunktes an
Steuerung: Kann ein anderer Datenpunkt zur Steuerung sein (Wird dann für die Klick-Aktionen genutzt, wenn konfiguriert)@Homoran Als kleine Korrektur
-
@skb was für eine schwere Geburt. Ich habe den Datenpunkt gewechselt (0=1 phasig und 1=3phasig).
Und danach habe ich die Überschreibung angepasst:
{ "0": { "value": "1 phasig" }, "1": { "value": "3 phasig" }, "display": "() => {kecontact.0.plug} > 3 ? 'inline-block' : 'none'" }
Frage: ist die Befehlsfolge prinzipiell richtig? Ich weise der Variablen value einen Wert „“1 phasig“ respektive „3 phasig“ zu wenn der Datenpunkt sich ändert. Und in Abhängigkeit des „externen Datenpunktes“ soll entschieden werden, ob die Variable Value überhaupt zur Anzeige gebracht werden. Ich habe sehr viel bzgl DISPLAY gegoogelt, verstehe es wahrscheinlich aber noch immer nicht richtig
Wie dem auch sei, das Ergebnis vor dem Ziehen des Steckers der Wallbox: Foto des Autos zu sehen, Schriftzug „1 phasig“ (kein Sonnenschein, also kein Überschuss)
Und das Ergebnis nach dem Ziehen des Steckers der Wallbox: Foto des Autos nicht mehr zu sehen … ging ja auch schon die ganze Zeit, aber mein Schriftzug „1 phasig“ ist immer noch da:
Ich verzweifle
. Es können sich halt zwei Variablen ändern, aber ich kann das Objekt, welches den Wert „1 phasig“ oder „3 phasig“ haben kann, nur der einender der anderen Variablen zuordnen. Muss ich meine Idee aufgeben?
-
@leonundjulie Weiterhin denke ich, das die Reihenfolge falsch ist.
Wie ich dich verstehe, ist der Datenpunkt, der die Aktion auslöst der des Autos - also dieser wechselt beim Ab- und anstecken.
Dann ist dieser der Hauptdatenpunkt für das Element - somit entscheidet dieser, ob der Text angezeigt wird.Auto dran - Text da, Auto ab - Text weg.
Hier wird dann zusätzlich abgefragt, ob 1 oder 3 phasig dargestellt werden soll und das Display Attribut gesetzt.
Immer gucken, von welchem Standpunkt aus man interagiert.
Bei dir wird aktuell der Datenpunkt, welcher darstellt, ob 1 oder 3 phasig geladen wird, der "Trigger" sein.
Wenn dieser aber nur alle X Minuten/Sekunden aktualisiert wird, wird auch nur dann der Datenpunkt des Autos abgefragt und da kann das Auto ggf. schon wieder weg sein oder schon lange dort stehen.
Off topic:
display
ist ein CSS Attribut, welches entscheidend, wie und ob ein Element angezeigt wird. -
@skb sagte in Test Adapter Energiefluss-erweitert v0.7.x GitHub/Latest:
Als kleine Korrektur
jaja, du hast ja recht!
ich hab ja nur die Anzeige zur Auswahl.
wenn angesteckt = grün, sonst unsichtbar
-
@skb DANKE FÜR DEINE GEDULD!
Ob 1-phasig oder 3phasig geladen wird, hängt halt vom Überschuss ab. Das regelt eine Energie-Management System und diesen Status greife ich ab. Der Toggelt bei wolkigem Wetter schon mal hin und her - und ich möchte halt sehen, was gerade Sache ist. Daher habe ich den Trigger darauf gelegt. Ändert sich der Wert, ändert sich die Anzeige. Das isoliert eingestellt funktioniert genauso gut wie das Steuern der Anzeige des Autos - hier ist die Veränderung aber die Wallbox. Ich werde mich noch ein wenig mit dem DISPLAY Command auseinandersetzen bzw. Damit, dass ich meinen Value Wert weder auf „1 phasig“, noch auf „3 phasig“ haben möchte, sondern auf „“, wenn die Wallbox mir einen Staus <4 liefert. Sinngemäß:
„0“ : { "value": "1 phasig" }, „1“ : { "value": "3 phasig" }, „{kecontact.0.plug} < 4“ : { "value": "" }, }
-
@leonundjulie Na, so lange wir ans Ziel kommen - ist doch alles prima