Stausänderung eines items 2x mal ein und aus als trigger

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von faximan »

Sry Topic hört sich was holprig an..

ich möchte in der küche 2 zigbee birnen in der abzugshaube die das kochfeld ausleuchten mit dem küchen licht koppeln. es soll aber nicht immer an gehen daher dachte ich an eine regel die greift wenn das küchenlicht innerhalb von 2 sekunden den status auf "on" wechselt..

Mir fehlt nur eine idee wich ich den trigger configurieren könnte...

So ungefähr stell ich mir das vor:

Code: Alles auswählen

rule "Herdlicht"
when
    Item kuechelicht changed from OFF to ON // genau hier müsste m.e. noch was folgen um zu sagen "2x innerhalb 2 sekunen)
then
HerdLicht_Power.sendCommand(ON)
end

Bin komplett auf dem Holzweg? Hat jemand ein Tipp für mich wie ich das mit der erkennung von 2 Schaltvorgängen innerhalb 2 sekunden als trigger definieren kann?

Würde mich sehr über ne idee freuen

lg

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von udo1toni »

Du bist schon auf dem richtigen Weg.
Du musst die Zeit zwischen zwei Triggern messen, bzw. prüfen, ob der letzte Trigger entsprechend kurz her ist.
Aber als erste Frage: kannst Du das Licht "zweimal einschalten", ohne es zwischendurch auszuschalten? Also: kannst Du mit dem Lichttaster gezielt zweimal hintereinander ON senden, ohne ein OFF zu senden? Und falls das geht: meldet der Aktor dann ein Update des Zustands ON?

Falls Du das Licht zwischendurch ausschalten musst:

Code: Alles auswählen

// Globale Variablen zu Beginn der Datei anlegen!
var Timer tHerdlicht = null                              // globale Variable für den Timer

rule "Herdlicht"
when
    Item kuechelicht changed from OFF to ON              // Wechsel OFF -> ON erkannt
then
    if(tHerdlicht === null)                              // falls Timer nicht existiert
        tHerdlicht = createTimer(now.plusSeconds(2), [   // lege Timer an
            tHerdlicht = null
        ])
    else                                                 // sonst
        HerdLicht_Power.sendCommand(ON)                  // Schalte Licht ein
end
Die Rule prüft beim Einschalten des Lichts, ob die Variable tHerdlicht auf einen Schedulereintrag verweist.
Ist das nicht der Fall, so handelt es sich um den ersten Einschaltvorgang. Die Rule erzeugt den Timer.

Existiert der Timer, so handelt es sich (mindestens) um den zweiten Einschaltvorgang. Das Licht wird eingeschaltet.

Der Timer selbst tut nichts anderes, als die Variable zu löschen. Simpel und effizient.

Solltest Du in der Lage sein, mehrfach hintereinander ON zu senden (ohne zwischendurch OFF) und das Item erzeugt auch mehrere Events dazu, müsste der Trigger stattdessen received update ON lauten. Der Rest der Rule bliebe.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von faximan »

dublette
Zuletzt geändert von faximan am 29. Aug 2022 20:48, insgesamt 1-mal geändert.

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von faximan »

doublette sry
Zuletzt geändert von faximan am 29. Aug 2022 20:47, insgesamt 1-mal geändert.

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von faximan »

Lieber Toni, nein, leider kann ich nicht einfach nur ohne aus schalten
Der eine Taster schaltet direkt einen sonoff mini mit tasmota... der andere wippschalter wird mittels eines shelly i3 betrieben (Küche ist ein durchgangsraum).... der shelly i3 schaltet mittels eines webbefehl direkt den sonoff... dessen status würde ich überwachen....
Die lösung in der küche wurde bewust so gemacht wegen aussfallsicherhet... waf faktor...

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von udo1toni »

Wie gesagt, die Rule sollte so wie sie oben ist für den Fall funktionieren, dass Du zwischendurch ausschalten musst. Man könnte übrigens an der Stelle auch andersrum arbeiten, also:
Schritt 1, Du schaltest das Licht an.
Nach einer Weile möchtest Du das Zusatzlicht einschalten. In der bestehenden Lösung musst Du dazu das Licht aus, an, aus und wieder Anschalten.
Du könntest aber auch einfach prüfen, ob das Licht innerhalb der zwei Sekunden (oder vielleicht auch nur eine Sekunde) aus- und wieder eingeschaltet wurde und diesen Schaltpuls als Kommando zum Einschalten verwenden. Die Rule wird unwesentlich komplizierter, weil sie nun sowohl bei ON als auch bei OFF triggern muss und dabei unterschiedliche Dinge tun muss.

Code: Alles auswählen

// Globale Variablen zu Beginn der Datei anlegen!
var Timer tHerdlicht = null                              // globale Variable für den Timer

rule "Herdlicht"
when
    Item kuechelicht changed                             // Wechsel erkannt
then
    if(tHerdlicht === null && newState == OFF)           // falls Timer nicht existiert und Zustand OFF
        tHerdlicht = createTimer(now.plusSeconds(2), [   // lege Timer an
            tHerdlicht = null
        ])
    else if(tHerdlicht !== null && newState == ON)       // falls Timer existent und Zustand ON
        HerdLicht_Power.sendCommand(ON)                  // Schalte Licht ein
end
Die Rule wird sich gewöhnlich genauso verhalten wie geplant, kann aber auch zum Einschalten des zweiten Lichts verwendet werden, weenn das erste Licht schon eine Weile an ist, weil der Timer beim Ausschalten des Lichts gestartet wird, nicht schon beim Einschalten.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von mad-mike »

Moin, willst du den i3 abfragen?

Der hat diese Funktion integriert. Doppel-pressed. (Wenn der per Taster angesteuert wird)


Und ich nutze für solche Funktion nicht "an-aus-an" Funktion.

Sondern kann man überlegen, ob eventuell eine getrennte Schaltung über "short-pressed" und "long-pressed" eventuell sinnvoller ist...?
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von udo1toni »

Achtung, das Problem ist hier, dass der i3 den sonoff direkt steuert, ohne dass openHAB dazwischen wäre. Man müsste also die Unterscheidung direkt im i3 programmieren.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von mad-mike »

Im i3 könnte man auch bei: "2x Klick" Befehl über die URL Action geben.

Es müssen aber Taster sein. (Was passiert wenn man Schalter verwendet, weiss ich in dem Zusammenhang nicht)

Man kann's auch mischen. Also kurz taste läuft über Shelly, und doppel läuft über openHAB.


Ich persönlich habe den i3 wieder entfernt, weil der mir zu träge ist. Ich hatte das Gefühl, der wartet, und prüft ob ich noch eine Schaltung durchführe. (3x Klick oder so).

Es waren nur 1 bis 2 Sekunden, aber nervig.
Die gleiche Schaltung über Shelly 2.5 oder Shelly 1, ist da mir sympathischer. Diese reagiert sofort. (Aber halt kurze taste, lange taste). Aber keine doppel Taste...
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

Re: Stausänderung eines items 2x mal ein und aus als trigger

Beitrag von faximan »

Bei mir ist leider ein Schalter und kein Taster verbaut... da von der stelle aus kein leitung zum licht führt geht nur eine lösung wie der i3....

Alternativ zum i2 ginge noch direkt ne kleine nodemcu verbauen und via tasmota das ganze zu lösen...<

ich werde erstmal die Lösung von Udo ausprobieren.. Bin aber gerade nicht zu hause... ich werde berichten..

Danke trotzdem für den input... Ich habe auch bereits darüber nachgedacht nen Schalter zu verbauen... bin nur zu geizig ne Passende Busch Jäger Kombi zu kaufen

Antworten