NEWS
VIS: Taster und Status in einem Widget mit KNX GAs
-
Hallo,
ich bin noch recht frisch in der IOBROKER Welt und habe ein Problem bei der Aktualisierung meiner KNX Rückmeldeobjekte. Genauer gesagt geht es eher um die Darstellung von Widgets in der VIS. Ich verwende derzeit die Material Widgets, welche meine gewünschte Taster-Funktionalitäten gut unterstützen.
Das Gewünschte Verhalten wäre folgendes:
- Taster (Toggle Button) in VIS wird gedrückt - Gruppenadresse wird mit dem Wert 1 gesendet. --> klappt
- Taster in VIS wird losgelassen und Wert mit 0 wird gesendet. --> klappt
- Licht wird eingeschaltet. --> klappt
- Rückmeldeobjekt meldet "1" bzw. true zurück. --> klappt - sieht man auch in der Objektansicht der Instanz
- Der Taster in VIS wechselt den Status (Aussehen). --> klappt nicht -> Habe ich den Button falsch verstanden?
In der KNX raw Object Beschreibung der Gruppenadresse sehe ich, dass das Rückmeldeobjekt beim Import wohl richtig als
statusGARefId
in dem Schaltgruppenadressen-Objekt eingetragen wurde.
Welche Button Widgets (Taster) sind also die richtigen für meine Fall (Taster und Status in einem Widget)?Ich hoffe es kann mir jemand helfen?
Besten Dank . -
@botto sagte
- Taster (Toggle Button) in VIS wird gedrückt - Gruppenadresse wird mit dem Wert 1 gesendet. --> klappt
- Taster in VIS wird losgelassen und Wert mit 0 wird gesendet. --> klappt
Ist der Taster-Datenpunkt wirklich vom Typ "number" und muss zwischen 0 und 1 wechseln?
Wenn Kommando (Taster) und Status (Rückmeldung) verschiedene Datenpunkte sind, kann man sie für Vis in einem Alias zusammenführen. Beispiel:
{ "type": "state", "common": { "name": "Lampe Esstisch", "role": "switch", "type": "boolean", "desc": "per Script erstellt", "read": true, "write": true, "def": false, "alias": { "id": { "read": "knx.0.Wohnen.Licht.Esstisch_Status", "write": "knx.0.Wohnen.Licht.Esstisch_Taster" }, "write": "val ? true : true" } },
-
Danke Paul für deine Unterstützung....
@paul53 sagte
Ist der Taster-Datenpunkt wirklich vom Typ "number" und muss zwischen 0 und 1 wechseln?In der VIS scheibt es egal zu sein ob ich values (0/1) oder boolsche Werte (false/true) eintrage. Das Licht schaltet so wie es soll.
Wenn ich die Status-Object-ID einzeln an ein Widget hänge, geht es ja auch - nur verknüpft in einem Widget läuft nicht oder geht vielleicht auch nicht?.
Zu deinem Beispiel bei mir würde es so Aussehen (den footer) generiert er anscheinend automatisch:
{ "type": "state", "common": { "name": "Lampe Stube", "role": "switch", "type": "object", "desc": "per Script erstellt", "read": true, "write": true, "def": false, "alias": { "id": { "read": "knx.0.EG.Stube.Stube_Licht_Status", "write": "knx.0.EG.Stube.Stube_Licht" }, "write": "val ? true : true" } }, "_id": "alias.0.EG.Stube.EG_Stube_Licht", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1633983970416 }
Wenn ich diesen Alias als Object ID an ein Widget mit der Push Button Funktionalität hänge, wird kein false mehr auf den Bus gesendet. Wie gesagt bin ich noch nicht so in Thema mit diesen Scripten etc.
Andererseits scheint es doch ne Menge Arbeit zu sein für so eine simple Anwendung, Es muss ja dann für jeden Taster ein neuer Alias erzeugt werden....
Eine andere Möglichkeit gibt es nicht (ausgenommen zwei Widgets zu machen) ? -
@botto sagte: den footer) generiert er anscheinend automatisch:
Ja, aber es fehlt
}, // Ende common "native": {},
und common.type muss "boolean" sein.
@botto sagte in VIS: Taster und Status in einem Widget mit KNX GAs:
wird kein false mehr auf den Bus gesendet.
Ist das erforderlich? Bei den meisten Tastern genügt, wenn beim Wert true der Zeitstempel aktualisiert wird.
@botto sagte in VIS: Taster und Status in einem Widget mit KNX GAs:
Wenn ich diesen Alias als Object ID an ein Widget mit der Push Button Funktionalität hänge
Das Widget sollte ein Schalter/Toggle-Widget sein mit der Darstellung von "Aus" bei false und "Ein" bei true.
-
@paul53 said in VIS: Taster und Status in einem Widget mit KNX GAs:
Ja, aber es fehlt
}, // Ende common "native": {},
Hier nun meine Anpassungen:
{ "type": "state", "common": { "name": "Lampe Stube", "role": "switch", "type": "boolean", "desc": "per Script erstellt", "read": true, "write": true, "def": false, "alias": { "id": { "read": "knx.0.EG.Stube.Stube_Licht_Status", "write": "knx.0.EG.Stube.Stube_Licht" }, "write": "val ? true : true" } }, "native": {}, "_id": "alias.0.EG.Stube.EG_Stube_Licht", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1634006346388 }
Ergebnis war aber weiterhin nicht das gewünschte.
Das Problem mit der fehlendenfalse
Msg bleibt.@paul53 said in VIS: Taster und Status in einem Widget mit KNX GAs:
Ist das erforderlich? Bei den meisten Tastern genügt, wenn beim Wert true der Zeitstempel aktualisiert wird.
Da meine Hardwae-KNX-Taster alle nur Werte (1/0) senden und die Logik in einer Wago Steuerung gemacht wird, wäre das schon wichtig, Stichwort Flankengesteuert. Diese Umsetzung bietet mir bisher die besten Möglichkeiten in meiner Automatisierung (VISU mal ausgenommen).
@paul53 said in VIS: Taster und Status in einem Widget mit KNX GAs:
Das Widget sollte ein Schalter/Toggle-Widget sein mit der Darstellung von "Aus" bei false und "Ein" bei true.
Also ich habe das Button Toogle Widget verwendet [Material Design]. Welches könnte besser dafür geeignet sein? Brauche ja wie gesagt auch die Taster Funktion .
Ich frage mich halt, ob es nicht auch anders geht? Wofür sonst gibt es die
statusGARefId
bei den KNX Objekten? Ich habe hier mal meine beiden Objekte aufgeführt.Schalten:
{ "_id": "knx.0.EG.Stube.Stube_Licht", "type": "state", "common": { "name": "Stube Licht", "type": "boolean", "read": false, "write": true, "role": "switch", "min": false, "max": true }, "native": { "dpt": "DPT1.001", "address": "0/3/0", "addressRefId": "P-0348-0_GA-100", "statusGARefId": "P-0348-0_GA-215", "actGARefId": "" }, "from": "system.adapter.knx.0", "user": "system.user.admin", "ts": 1633722828691, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Status:
{ "_id": "knx.0.EG.Stube.Stube_Licht_Status", "type": "state", "common": { "name": "Stube Licht Status", "type": "boolean", "read": true, "write": false, "role": "indicator.switch", "min": false, "max": true }, "native": { "dpt": "DPT1.001", "address": "0/3/3", "addressRefId": "P-0348-0_GA-215", "statusGARefId": "", "actGARefId": "P-0348-0_GA-100" }, "from": "system.adapter.knx.0", "user": "system.user.admin", "ts": 1633722828714, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Wenn das alles so nicht geht in *vis, würde ich auch auf ein Widget zurückgreifen indem ich zwei Object-IDs hinterlegen kann (read/write). Es sollte dann in Abhängigkeit des state natürlich ein Umblenden von Icon oder Caption möglich sein - habe ich bisher aber nicht gefunden....
-
@botto sagte: Flankengesteuert.
Wenn die Flanke benötigt wird, erstelle ein kleines Skript, das verzögert auf false zurück setzt.
on({id: 'knx.0.EG.Stube.Stube_Licht', val: true}, function(dp) { setTimeout(function() { setState(dp.id, false); }, 200); });
-
@paul53 sagte
Wenn die Flanke benötigt wird, erstelle ein kleines Skript, das verzögert auf false zurück setzt.
Das ist unnötig weil das Taster Widget das ja eigentlich schon liefert. Außerdem wäre das ja sehr viel Aufwand für jede einzelnen Taster. Sicher gibt es da auch Templates oder so aber es ist aktuell viel zu aufwändig.
Leider habe ich bisher immer noch nicht die Sache mit der
statusGARefId
verstanden. Was soll ich damit wenn ich es nicht im Widget nutzen kann. Vermutlich liegt das an der Push Button Konfig meines Widgets.@botto sagte
Wenn das alles so nicht geht in *vis, würde ich auch auf ein Widget zurückgreifen indem ich zwei Object-IDs hinterlegen kann (read/write). Es sollte dann in Abhängigkeit des state natürlich ein Umblenden von Icon oder Caption möglich sein - habe ich bisher aber nicht gefunden....
Gibts da denn nichts? Das wäre doch wohl wesentlich einfacher und nachhaltiger!