NEWS
VIS Increment Button mit getrenntem Ist und Sollwert (MQTT)
-
Hallo zusammen,
ich möchte in Vis die max. Ströme in openWB einstellen. openWB ist via MQTT angebunden und hat dort "get" und "set" Pfade der Datenpunkte. Ich kann zwar den Get-Pfad mit einem Increment-jqui-Button beschreiben/verändern. Das zeigt openWB sogar auch an, übernimmt diesen Wert aber intern nicht. Klar. Dafür gibt es ja den Set Datenpfad. Dieser ist aber One-Way. Ich kann ihn beschreiben aber keinen Wert zurücklesen. Ich bräuchte also einen Increment Button der den Istwert aus dem "Get" Datenpunkt liest und dann den Sollwert entsprechend in den "Set" Datenpunkt schreibt. Sicherlich kann ich das umständlich mit einem Script und einer Variable lösen. Gibt es da vielleicht etwas eleganteres?
Danke.
Viele Grüße
Thomas. -
@ampheus said in VIS Increment Button mit getrenntem Ist und Sollwert (MQTT):
einem Increment-jqui-Button beschreiben/verändern. Das zeigt openWB sogar auch an, übernimmt diesen Wert aber intern nicht. Klar. Dafür gibt es ja den Set
Du musst einen Alias anlegen mit unterschiedlichen read/write zielen und den Alias dann in deine Vis einsetzen
-
@strobelix Danke. Wieder was gelernt. Alias kenne ich, habe ich bislang aber noch nicht verwendet. Werde mich mal damit beschäftigen.
-
@ampheus Auch die Verwendung eines Alias dazu, um Json-Datenpunkte mit Strukturen zu "zerlegen" ist sehr hilfreich ...
Hier wird die "voltage" aus dem zigbee2mqtt Datenpunkt eines aqara Sensors extrahiert:
{ "battery": 100, "humidity": 31.62, "last_seen": "2024-01-04T14:36:14+01:00", "linkquality": 166, "power_outage_count": 46, "pressure": 989.3, "temperature": -21.35, "voltage": 3005 }
-
@martinp Sehr guter Tipp. Danke. Wusste ich noch nicht.
-
In webUi könntest du das mit einem Blockly Script z.B. beim klicken lösen:
-
@jogibear9988 Danke. Ja genau so ähnlich war meine ursprüngliche Idee. Deine vorgeschlagene Variante ohne Variable ist natürlich clever. Die Aliasvariante hat aber glaube ich Vorteile. Muss ich mal auschecken. Viele Wege führen bekanntlich nach Rom
-
@ampheus
ja, dachte das ich das in meiner webUi auch mit meiner simplen scriptsprache lösen kann, ging nicht.
Daher hab ich nun dafür auch noch einen neuen script Befehl gebaut der das kann:ist ja doch was, was man öfter gebrauchen kann.
-
@strobelix Soweit ich das jetzt verstanden habe, kann ich zwar mit dem "Geräte verwalten" Adapter einen Alias erstellen, der dann den Setwert und den Istwert enthält. Aber das sind dann halt wieder zwei Unter-Datenpunkte. Ich kann beim Increment Knopf in VIS ja nur einen Datenpunkt angeben. Dieser wird gelesen und dann der entsprechend inkrementierte Wert geschrieben. Das geht offenbar mit einem Alias nicht. Läuft also wohl doch auf einen Script hinaus ..... Oder hab ich das etwas übersehen?
-
@ampheus Doch das geht mit nur einem Datenpunkt.
Du kannst den Alias auch manuell anlegen in alias.0 oder über den Alias-Manager oder "Geräte verwalten"Hier mal ein Beispiel für unterschiedliche read/write Datenpunkte
Für den Alias wird aus ..parameter.valueKey gelesen und nach ...parameter.setValue geschriebenHier wird zusätzlich noch mein Boolean Alias in einen Number Datenpunkt übersetzt mit
"read": "val == 2 ? true : false", (Macht aus einer 2 ein True - aus allem anderen ein False)
"write": "val == true ? 2 : 1", (Macht aus einem True eine 2 - aus allem anderen eine 1){ "type": "state", "common": { "name": "valueKey", "role": "state", "type": "boolean", "read": true, "write": true, "alias": { "id": { "read": "froeling.0.29755.details.Strobel.betriebsart-9969.parameter.valueKey", "write": "froeling.0.29755.details.Strobel.betriebsart-9969.parameter.setValue" }, "read": "val == 2 ? true : false", "write": "val == true ? 2 : 1" } }, "_id": "alias.0.Froeling.Extraladen", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1642942444886, "acl": { "object": 1636, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@strobelix Danke für das Beispiel. Muss ich mir bei Gelegenheit nochmal genauer ansehen. Das ist sehr elegant und Resourcenschonend.
Habe mir vorerst mit einer Variable geholfen die über zwei Trigger im Javascript/Blockly entsprechend gesetzt wird (wenn ein Inputdatenpunkt sich ändert) oder einen anderen Output-Datenpunkt setzt wenn sie z.B. via Vis-Inkrement-Schalter geändert wird. Umständlich aber läuft erst mal.
-
@allelectrified da musst du aber mit "schreibe" / "aktualisiere" darauf achten, dass du keine Endlosschleifen baust.
-
@allelectrified
Wie ich sehe bist du noch mit openWB <2.0 unterwegs. Dann solltest du direkt mit Alias arbeiten. Dann musst du beim Upgrade nur an einer Stelle anpassen und nicht x Skripte durchsuchen und anpassen. Beim ChargepointEnabled (v1.9) haben Sie mit manual_lock (v2.0) quasi den Sinn direkt mit invertiert. Kann der Alias auch elegant abfangen.
-
@bommel_030 Welchen Adapter hast Du dafür installiert? Den Alias Manager oder den Linked Devices?
-
@allelectrified
Keinen, beide getestet und mittlerweile deaktiviert. Wenn du unter alias.0. einen Datenpunkt anlegst kannst du mit dem Bleistift editieren und dann einfach selber die Quelle auswählen und bei Bedarf die Konvertierungen anlegen. Da das mittlerweile alles mit Boardmitteln geht nutze ich keinen zusätzlichen Adapter mehr.
Ich nutze aber auch keine Geräte im Sinne von Devices Adapter, weiß nicht ob es da im alias-Manager weitere Möglichkeiten gibt. -
@bommel_030 Danke für den Tipp. Auf diese einfachste Variante bin ich natürlich nicht gekommen. Habe es gefunden. Werde das bei Gelegenheit in den Scripten mal nach und nach umstellen. Vielleicht will ich ja doch mal irgendwann auf openWB 2, dann wäre das recht bequem. Habe bislang eigentlich im 1.9 noch nichts vermisst (habe zwei goEcharger und mein RCT PV und Speicher damit laufen und zusätzlich halt bisschen Automation und VIS im IOBROKER inklusive TESLA laden 3 phasig bis runter zu 600 Watt via API und halt Tibber) . Welche Punkte würden denn aktuell für ein upgrade sprechen? Soweit ich das verstehe, ist die 2 noch ziemlich Baustelle, oder?
-
@allelectrified
Mich hat die neue Fahrzeugverwaltung getriggert weil die alte ja quasi nicht existent war... Und der Jahreswechsel war nen runder Zeitpunkt dafür. Mit meinem jetzigen Wissen würde ich damit locker noch bis zum nächsten Jahreswechsel warten. Irgendwann wird es halt für die 1.9er kein Update/Patches mehr geben und dann ist man quasi zum Wechsel gezwungen. -
@bommel_030 Danke für das Feedback. Ich werde erst mal auf der 1.9er bleiben. Habe das mit den Aliaspunkten und den verschiedenen Lese und Schreibdatenpunkten hinbekommen. Funktioniert jetzt prima mit der openWB.