NEWS
Blockly für einen Fensterkontakt mit zwei Werten
-
Hallo allerseits,
ich versuche seit einiger Zeit mit Blockly zu realisieren, dass meine Lüfungsfunktion mit einem Shelly Blu Door/Window gesteuert wird.
Der Shelly hat einen Datenpunkt für Auf/Zu und einen für die Fensterneigung in Grad.
Ich möchte nun steuern:
Kontakt auf und Neigung 0° - Fenster ist auf.
Kontakt auf und Neigung über 2° - Fenster gekippt.Nun schaltet aber zwangsweise immer auch der Datenpunkt Auf/Zu mit.
Wie bekomme ich es gebacken, dass Blockly beim Kippen den Datenpunkt Auf/Zu ignoriert?
Kann mir jemand weiter helfen?
Mfg
Tom -
@autodidakt sagte:
Kontakt auf und Neigung 0° - Fenster ist auf.
Kontakt auf und Neigung über 2° - Fenster gekippt.Du möchtest in zwei eigenen Datenpunkt signalisieren, dass das Fenster offen oder gekippt ist? Dann versuche es mal so:
-
-
@autodidakt sagte: Leider steuert es noch immer bei beiden Aktionen den DP "öffnen"...
DP "öffnen" wird auf true gesetzt, wenn gekippt wird und bleibt auch true?
Im gezeigten Blockly kann nur einer der beiden DP true werden.Wenn es ein zeitliches Problem ist, dann ergänze um eine kleine Verzögerung:
-
Ganz unten habe ich statt "aktualisiere mit" zu "steuere mit" eingefügt, sonst erfolgt keine Aktion.
"öffnen" springt auf true und bleibt true.
"kippen" ändert sich nicht.Ich muss warten bis meine Frau zu Hause ist, dann sehe ich in Echtzeit genau was passiert.
Das Tablet ist ein wenig langsam. Ich muss direkt am Pc schauen wie die Datenpunkte springen und was der Bus dazu sagt. -
@autodidakt sagte: statt "aktualisiere mit" zu "steuere mit" eingefügt, sonst erfolgt keine Aktion.
Es sind also keinen eigenen DP, sondern Adapter-DP?
@autodidakt sagte in Blockly für einen Fensterkontakt mit zwei Werten:
"öffnen" springt auf true und bleibt true.
"kippen" ändert sich nicht.Wird nicht auf "rotation" getriggert? Füge mal einen Debug-Log mit dem Namen des Trigger-DP ein.
-
Es sind also keinen eigenen DP, sondern Adapter-DP?
"window" und "rotation" sind die Datenpunkte des Shelly BLE
"Schlafen Fensterkontakt öffnen" und "Schlafen Fensterkontakt kippen" sind Datenpunkte im KNX Adapter, die an den Bus gehen.Wird nicht auf "rotation" getriggert? Füge mal einen Debug-Log mit dem Namen des Trigger-DP ein.
Mach ich.
-
javascript.0 13:50:22.077 info Start JavaScript script.js.Shelly.Schlafen_Fensterkontakt (Blockly) javascript.0 13:50:22.083 info registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 13:50:38.606 info windowWert:true javascript.0 13:50:54.001 info rotationWert:5.800000000000001
-
Nochmal mit Timeout Baustein:
javascript.0 13:58:40.613 info Start JavaScript script.js.Shelly.Schlafen_Fensterkontakt (Blockly) javascript.0 13:58:40.619 info registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 13:58:55.237 info windowWert:true javascript.0 13:59:08.955 info rotationWert:5.7
-
@autodidakt
Wenn "rotation" mit dem Wert 5.7 triggert, muss "kippen" auf true und "öffnen" auf false gehen.
Falls nicht: Blockly zeigen!@autodidakt sagte in Blockly für einen Fensterkontakt mit zwei Werten:
"Schlafen Fensterkontakt öffnen" und "Schlafen Fensterkontakt kippen" sind Datenpunkte im KNX Adapter
Dann muss man "steuere" verwenden.
-
@paul53 sagte in Blockly für einen Fensterkontakt mit zwei Werten:
@autodidakt
Wenn "rotation" mit dem Wert 5.7 triggert, muss "kippen" auf true und "öffnen" auf false gehen.Soweit war ich ja schon. Es soll wenn "rotation = true" dann "öffnen" ignorieren. Sonst fährt der Rollo wirr, weil er erst "öffnen" anfahren will, dann aber doch "kippen".
Er müsste praktisch dann bei Aktion - egal ob öffnen oder kippen - erst die rotation prüfen und dann je nach x,x° den Datenpunkt "Schlafen Fensterkontakt öffnen" oder eben den Datenpunkt "Schlafen Fensterkontakt kippen" ändern. Oder liege ich falsch?
@autodidakt sagte in Blockly für einen Fensterkontakt mit zwei Werten:
"Schlafen Fensterkontakt öffnen" und "Schlafen Fensterkontakt kippen" sind Datenpunkte im KNX Adapter
Dann muss man "steuere" verwenden.
Ok.
-
@autodidakt sagte: egal ob öffnen oder kippen - erst die rotation prüfen
In beiden Logs kommt der Wert für "rotation" erst ca. 15 s nach dem Wert true für "window". Also verwende eine Verzögerung von 20 s, damit nicht erst 15 s lang "offen" gemeldet wird.
EDIT: Besser ist es, nur die Reaktion auf den Wechsel von "window" auf true um 20 s zu verzögern: