NEWS
Garagentor mit 2 Sensoren
-
@graydens
Der zweite Trigger muss "Garage_Garagentor_Status_zu" und der dritte Trigger muss "Garage_Garagentor_Status_offen" sein.Alternative zu Multistate(0, 1, 2):
-
@paul53
Current ändert sich leider nicht, bleibt auf false stehen..................target ändert sich je nach Tastendruck in der App -
@graydens sagte: Current ändert sich leider nicht, bleibt auf false stehen
Ändere den Datenpunkttyp von "Logikwert" in "Zahl".
EDIT: Überschreibe die common-Eigenschaften mit:
"common": { "name": "Currentdoorstate", "role": "value", "type": "number", "desc": "Manuell erzeugt", "states": { "0": "geschlossen", "1": "offen", "2": "gekippt / in Bewegung" }, "min": 0, "max": 2, "def": 0, "read": true, "write": false },
-
Sieht nun schon viel besser aus.
Folgendes ist mir aufgefallen, was ich aber auch durch abändern noch nicht hinbekommen habe.
wenn ich es richtig beobachte ist:
Targetdoorstate geöffnet = (laut APP 0)
Targetdoorstate zu = (laut APP 1)Aktuell funktioniert Targetdoorstate 0 mit currentdoorstate 0, ändert man Targetdoorstate auf 1 ändert sich currentdoorstate auf 2, bleibt aber solange bis man targetdoorstate wieder auf 0 setzt, dann ändert sich auch wieder current auf 0.
Somit zeigt mein Status aktuell im Bestfall an, dass das Tor offen ist obwohl es in Wirklichkeit zu ist.
Hoffe ich habe es einigermaßen logisch erklärt
-
@graydens
Weshalb hat "offen" den Wert 0 bei "Currentdoorstate" ?Was "Targetdoorstate" betrifft: Das habe ich aus Deinem ursprünglichen Blockly übernommen, dass aus jeder Wertänderung ein 1-s-Impuls wird. Weshalb ist der DP vom Typ "Zahl" mit der Rolle "value" ? Sollte es nicht besser ein Typ "boolean" sein mit der Rolle "switch" oder "button" ?
Oder man verwendet besser gleich den Datenpunkt "Auf/Zu/Stop_Schalten" als Button: -
@graydens
Hier hast Du offenbar was vertauscht. -
Ohh ja danke, hatte ich gestern schon bemerkt und geändert.
Puhhhh wirklich nicht leicht für mich als Neuling das Projekt umzusetzen.
Value habe ich jetzt bei current auf boolean umgeändert, geht aber leider trotzdem nicht.Der Impuls (1Sekunde) ist ja nur ein virtueller Taster den ich ja auch physisch in der Garage habe. Dieser macht ja nix anderes wie einen Eingang bei der Steuerung kurzzeitig kurz zu schließen und das Tor zu öffnen/stoppen/schließen.
Somit sollte auch eine andere Ansteuerung wie zb mit dem Tortaster oder der Gira App zu der Homekit App möglich sein.Die Homekit ist halt praktischer da sie am iphone gleich direkt im Sofortzugriff zum belegen ist.
-
@graydens sagte: Value habe ich jetzt bei current auf boolean umgeändert, geht aber leider trotzdem nicht.
?? Welchen Datenpunkt hast Du wie geändert ?
Poste bitte die RAW-Ansicht der Eigenschaften von "Currentdoorstate" und "Targetdoorstate" in Code tags. -
so richtig?
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1610818991491, "common": { "name": "Currentdoorstate", "role": "boolean", "type": "number", "desc": "Manuell erzeugt", "states": { "0": "Offen", "1": "Geschlossen", "2": "Offen/Bewegung" }, "min": 0, "max": 2, "def": 0, "read": true, "write": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Currentdoorstate", "type": "state" }
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1610819016433, "common": { "name": "Targetdoorstate", "role": "value", "type": "number", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Targetdoorstate", "type": "state" }
-
@graydens sagte: so richtig?
Nein:
"common": { "name": "Currentdoorstate", "role": "value", "type": "number", "desc": "Manuell erzeugt", "states": { "0": "Geschlossen", "1": "Offen", "2": "Offen/Bewegung" },
"common": { "name": "Targetdoorstate", "role": "switch", "type": "boolean", "states": { "false": "Zu", "true": "Auf" }
Außerdem solltest Du "Targetdoorstate" mit den Endlagen synchronisieren:
-
geändert, aber trotzdem bleibt er auf 2 wenn er von 0 auf 1 springen sollte.
Was mache ich hier nur falsch{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1610818991491, "common": { "name": "Currentdoorstate", "role": "value", "type": "number", "desc": "Manuell erzeugt", "states": { "0": "Geschlossen", "1": "Offen", "2": "Offen/Bewegung" }, "min": 0, "max": 2, "def": 0, "read": true, "write": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Currentdoorstate", "type": "state" }
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1610819016433, "common": { "name": "Targetdoorstate", "role": "switch", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Targetdoorstate", "type": "state" }
-
@graydens sagte: bleibt er auf 2 wenn er von 0 auf 1 springen sollte.
"Currentdoorstate" kann nie von 0 auf 1 springen, da einige Zeit vergeht bis das Tor offen ist. Erst wenn die Endlage "Offen" erreicht ist, springt der Wert von 2 auf 1.
-
Genau das passiert eben nicht.
Ich beobachte:
von TDS(TargetDoorState) und CTS (CurrentDoorState) 1 auf 0 kein Problem! zwar wird offen mit geschlossen verwechselt, aber sollte zum testen ja egal sein?ändert man jetzt TDS mit der App auf 1, springt CTS um auf 2 und verharrt hier.
Auch wenn der KNX Sensor für den Sensor auf True geht, bleibt CTS auf 2.
Ändere ich dann wieder TDS mit der APP auf 0, fährt das Tor (zwar in die falsche Richtung) aber aus 2 wird dann wieder 0 wenn der KNX Sensor anspricht....und es wird als beendet in der App dargestellt. Das Tor ist in Wirklichkeit ZU, wird aber als Offen angezeigt.
-
@graydens sagte: Auch wenn der KNX Sensor für den Sensor auf True geht, bleibt CTS auf 2.
Poste bitte den erzeugten Javascript Code ohne die letzte Zeile in Code tags.
@graydens sagte in Garagentor mit 2 Sensoren:
Das Tor ist in Wirklichkeit ZU, wird aber als Offen angezeigt.
Deshalb solltest Du TDS mit den Endlagen synchronisieren.
-
Sorry hatte ich übersehen, ist nun eingepflegt.
Du meinst vermutlich den ganzen Code ohne die letzte (grüne)Zeile?
var offen, geschlossen, current; // Beschreibe diese Funktion … function tor() { if (offen) { current = 1; } else if (geschlossen) { current = 0; } else { current = 2; } setState("0_userdata.0.Currentdoorstate"/*Currentdoorstate*/, current, true); } on({id: '0_userdata.0.Targetdoorstate', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("knx.0.Tür_und_Tor.Tor.Garage_Garagentor_Auf_Zu_Stop_Schalten"/*Garage_Garagentor Auf/Zu/Stop_Schalten*/, true); setStateDelayed("knx.0.Tür_und_Tor.Tor.Garage_Garagentor_Auf_Zu_Stop_Schalten"/*Garage_Garagentor Auf/Zu/Stop_Schalten*/, false, 1000, false); }); offen = getState("knx.0.Tür_und_Tor.Tor.Garage_Garagentor_Status_offen").val; geschlossen = getState("knx.0.Tür_und_Tor.Tor.Garage_Garagentor_Status_zu").val; tor(); on({id: 'knx.0.Tür_und_Tor.Tor.Garage_Garagentor_Status_zu', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; geschlossen = (obj.state ? obj.state.val : ""); tor(); setState("0_userdata.0.Targetdoorstate"/*Targetdoorstate*/, false, true); }); on({id: 'knx.0.Tür_und_Tor.Tor.Garage_Garagentor_Status_offen', change: "ne", ack: false}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; offen = (obj.state ? obj.state.val : ""); tor(); setState("0_userdata.0.Targetdoorstate"/*Targetdoorstate*/, true, true); }); 1;
-
@graydens
Der erste Trigger (Targetdoorstate) darf nur auf Befehl reagieren!
Der dritte Trigger (Garage_Garagentor_Status_offen) darf nicht nur auf Befehl reagieren (egal)! -
Vielen Dank, jetzt läuft es einwandfrei, habe noch etwas mit der Polarität für AUF und ZU gespielt und jetzt wird es auch in meiner App richtig angezeigt.
Super Unterstützung, danke
Anbei das Endprodukt!
-
@graydens sagte: Anbei das Endprodukt!
Stimmt es mit den Zustandtexten (states) von CDS überein, dass 0 = offen und 1 = geschlossen ist ?
-
Hatte nicht gepasst, habe ich in den Objekten dann einfach umgeschrieben.
Jetzt hab ich nur noch ein Problem, dass wenn ich das Tor von einer anderen Stelle (zb Gira App, oder Taster) ansteuere, dass sich auch der TDS demensprechend ändert.
-
@graydens sagte:
wenn ich das Tor von einer anderen Stelle (zb Gira App, oder Taster) ansteuere, dass sich auch der TDS demensprechend ändert.
Was ist das Problem ?