Seite 1 von 2
Regel mit Timer in OH3
Verfasst: 21. Apr 2021 09:48
von ruab01
Hallo liebe Forenmitglieder,
ich habe eine Frage: ich möchte in einer Regel einen Timer starten, dass ich 30 Minuten nach Öffnen eines Fensters eine Whatsapp bekomme und so nicht vergesse das Fenster wieder zu schließen. Also habe ich einen Fensterkontakt, der mir offen und geschlossen signalisiert und das Skript, dass ich eine Whatsapp bekomme funktioniert auch schon. Nur der Teil mit dem Timer fehlt mir noch. Kann mir da bitte jemand helfen, wie dieses Skript aussehen muss, damit ich nach 30 Minuten meine Meldung bekomme ?
Danke
SG
Rudi
Re: Regel mit Timer in OH3
Verfasst: 21. Apr 2021 09:58
von ruab01
noch zur Info: so sieht meine Regel derzeit aus, der Teil in conditions fehlt mir noch
triggers:
- id: "1"
configuration:
itemName: BadOGFensterkontakt_Kontakt
state: OPEN
previousState: CLOSED
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/javascript
script: >-
var HttpUtil = Java.type("org.openhab.core.io.net.http.HttpUtil")
var urlmessage = encodeURI("Fenster ist nun 30 Minuten offen, bitte schließen")
HttpUtil.executeUrl("GET", "
https://api.callmebot.com/whatsapp.php? ... yyyy&text=" +urlmessage , 2000)
type: script.ScriptAction
EDIT: Datenschutzrelevante Infos gelöscht... (vom Moderator)
Re: Regel mit Timer in OH3
Verfasst: 21. Apr 2021 17:12
von geos
Habe leider keine Antwort auf deine Frage aber du solltest mal prüfen, ob du wirklich die komplette URL samt Telefonnummer und apikey hier veröffentlichen wolltest.
Re: Regel mit Timer in OH3
Verfasst: 21. Apr 2021 20:59
von udo1toni
Die einfachste Möglichkeit: Du legst ein Proxy Item vom Typ Switch an. Deine Rule setzt das Item z.B. auf ON, wenn das Fenster geöffnet wird und OFF, wenn das Fenster geschlossen wird (per postUpdate()!, das ist essenziell).
In dem Proxy Item stellst Du in den Metadaten "Expire" ein, 30 Minuten und sendCommand(OFF).
Dann legst Du eine zweite Rule an, die auf das sendCommand(OFF) triggert (Proxy Item received command OFF)
In dieser Rule trägst Du den Aufruf für callmebot ein.
Der Punkt ist, die erste Rule setzt nur den Status des Items. Die zweite Rule wird nur getriggert, wenn der Status des Proxy Items mehr als eine halbe Stunde nicht OFF ist, denn nur dann sendet Expire das OFF als Kommando.
Oder Du lernst, wie man Timer aus Java Script heraus in openHAB nutzt.

Re: Regel mit Timer in OH3
Verfasst: 21. Apr 2021 22:38
von canstar
hi ruab01,
es ist zwar keine Antwort auf deine Frage, aber falls du noch einen intelligenten Rolladen hast, ist es auch sehr praktisch diesen herunterfahren zu lassen. dann kühlt das Zimmer nicht zu stark aus.
hab ich bei uns so installiert, weil wir auch sehr gerne vergessen das Fenster rechtzeitig wieder zu schließen. und im Winter hat es sich sehr bewährt

und wenn das Fenster wieder geschlossen wird, fährt es wieder hoch.
ein automatischen Fensterschließer wäre zwar noch die perfekte Lösung, aber da ist mir leider noch nichts vernünftiges über den Weg gelaufen.
Re: Regel mit Timer in OH3
Verfasst: 22. Apr 2021 00:51
von udo1toni

Wir haben tatsächlich ein Oberlicht, welches im Giebelbereich eingebaut ist. Und da diese mechanischen Griffe nicht nur arg 20. Jahrhundert (erse Hälfte...), sondern auch störungsanfällig sind, haben wir gleich einen Motor einbauen lassen. Der tut nun schon seit 15 Jahren zuverlässig seinen Dienst und öffnet das Fenster täglich für eine Stunde. Sehr angenehm (und der Motor hat nur wenig mehr gekostet als das Gestänge... ich glaube, der Aufpreis lag so um 50 €).
Re: Regel mit Timer in OH3
Verfasst: 22. Apr 2021 06:32
von retai
Ich habe folgenden timer in der Rules Datei im conf/rules ordner abgelegt welche mir zu einer gewissen uhrzeit den timer nach 10 minuten aktiviert:
rule "Kontaktitem ist länger als 10 Minuten geöffnet (20:00-07:00)"
when
Time cron "0 0/10 20-7 * * ?"
then
if (Kontaktitem.state == CLOSED && Kontaktitem.changedSince(now.minusMinutes(10))){
Switchitem.sendCommand(ON)
}
end
Beim Switchitem musst du dann deinen Befehl für die Whatsapp integrieren.
Vielleicht nützt dir das was.
Re: Regel mit Timer in OH3
Verfasst: 22. Apr 2021 09:17
von ruab01
Danke für die Antworten.
@retai: das ist javascript, oder , und das kann ich in der UI nicht so eintragen. Wie ich sowas ins openhab bringe, weiß ich noch nicht.
@udo1toni: ich werde mal das mit den 2 Regeln probieren, wobei ich nicht ganz sicher bin, was du mit "Proxy" Item meinst. Aber lege einfach mal ein Item (Switch) an mit irgendeinen sprechenden Namen mit den Metadaten, wie beschrieben und schalte diesen über die erste Rule und frag den Status mit der zweiten Rule ab, um mein Whatsapp zu verschicken. Das sollte ich auch als Anfänger hoffentlich schaffen. Wenn ich es getestet habe, wird ich mich wieder melden, ob es funktioniert.
Re: Regel mit Timer in OH3
Verfasst: 22. Apr 2021 09:31
von ruab01
So, jetzt habe ich folgende Rules gemacht:
Rule1:
triggers:
- id: "1"
configuration:
itemName: BadOGFensterkontakt_Kontakt
state: OPEN
previousState: CLOSED
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "4"
configuration:
itemName: BadOGFensterSchalter
command: ON
type: core.ItemCommandAction
BadOGFensterSchalter ist der Switch mit Metadaten Expiration Timer send command=OFF
Rule2:
triggers:
- id: "1"
configuration:
itemName: BadOGFensterSchalter
state: OFF
previousState: ON
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/javascript
script: >-
var HttpUtil = Java.type("org.openhab.core.io.net.http.HttpUtil")
var urlmessage = encodeURI("Fenster ist nun 30 Minuten offen, bitte schließen")
HttpUtil.executeUrl("GET", "
https://api.callmebot.com/whatsapp.php? ... xxxx&text=" +urlmessage , 2000)
type: script.ScriptAction
Sollte hoffentlich so funktionieren.
Re: Regel mit Timer in OH3
Verfasst: 22. Apr 2021 22:09
von int5749
ruab01 hat geschrieben: ↑22. Apr 2021 09:31
So, jetzt habe ich folgende Rules gemacht:
Wie stabil läuft dieser Call-me bot für WhatsApp?? Ich suche noch nach einem Ersatz für Prowl. was in OH3 leider nicht mehr unterstützt wird und das senden von Mails an Prowl schlägt in letzter Zeit öfter mal fehl, speziell wenn zu viele in kurzer Zeit gesendet werden.