Alarmmeldung nur einmal die Stunde

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Alarmmeldung nur einmal die Stunde

Beitrag von linsenpago »

Hallo!

Es wurde bestimmt schon oft gefragt, aber die Suche hier im Forum hat mir nichts passendes ausgespuckt. Wahrscheinlich habe ich falsch gesucht.

Aber ich habe eine Rule, welche mir bei zu starkem Wind die Beschattung hochfährt.
Da das ganze aber über RFXcom und Somfy läuft, kennt Openhab den Status der Beschattung nicht.

Wenn jetzt der Wind über den definierten Wert von 40km/h steigt dann wird der Alarm ausgelöst und an unsere Handys geschickt. Das ist bei böhigem Wind natürlich mit der Zeit sehr lästig.

Ob die Beschattung jetzt jedesmal einen Befehl bekommt ist mir nicht so wichtig. Hauptsache sie ist oben.. ;-)

Wie müsste ich einen Timer einbauen, damit aber die Alarmmeldungen nur 1x in der Stunde geschickt werden und nicht jedesmal wenn die Windstärke 40 überschreitet?

Code: Alles auswählen

rule "Terrassenrollo 3 bei Wind hochfahren"
when 
    Item HMWetter_Windgeschwindigkeit received update
then
    if (HMWetter_Windgeschwindigkeit.state as Number > 40) {
    logInfo("RFXCOM - Windschutz Terrasse", "Windgeschwindigkeit höher als 40kmh! Fahre Rollo 3 hoch! aktuell: " + HMWetter_Windgeschwindigkeit.state)
    sendBroadcastNotification("Windschutz aktiv! Fahre Terrasse 3 hoch! Windstärke: " + HMWetter_Windgeschwindigkeit.state )
    Beschattung_3.sendCommand(UP)
    }
end 
Ich danke euch schon vorab für eure Hilfe und auch meine Frau wird es euch sehr danken... :-D
von linsenpago » 31. Dez 2020 17:01
Hi!

Danke für die Info!

Ich habe es nun selbst hineingebastelt.
Ich habe es in anderen hier geposteten Beispielen gefunden und für mich angepasst.

Code: Alles auswählen

rule "Terrasseenrollo 3 bei Wind hochfahren"
when 
    Item HMWetter_Windgeschwindigkeit received update
then
    if (tWind3 === null && (HMWetter_Windgeschwindigkeit.state as Number > 40)) {
        logInfo("STARTING TIMER :", triggeringItem.name.toString)
        tWind3 = createTimer(now.plusHours(1), [ |
            tWind3 = null
        ])
    logInfo("RFXCOM - Windschutz Terrasse", "Windgeschwindigkeit höher als 40kmh! Fahre Rollo 3 hoch! aktuell: " + HMWetter_Windgeschwindigkeit.state)
    sendBroadcastNotification("Windschutz aktiv! Fahre Terrasse 3 hoch! Windstärke: " + HMWetter_Windgeschwindigkeit.state )
    Beschattung_3.sendCommand(UP)
    }
end 
Gehe zur vollständigen Antwort
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Alarmmeldung nur einmal die Stunde

Beitrag von PeterA »

Hi,

so habe ich es bei mir gelöst:

Code: Alles auswählen

 // globale Variablen müssen zu Beginn der rules Datei deklariert werden!
var Timer tWind = null

rule "Windwarnung"

when
    Item LocalWeatherAndForecast_Current_WindSpeed changed
    
then
    if(tWind === null && (LocalWeatherAndForecast_Current_WindSpeed.state >25 | "km/h")) {
        tWind = createTimer(now.plusHours(3), [ |
            tWind = null
        ])
        sendBroadcastNotification("WINDWARNUNG !!  Gartensachen sichern!") //Allgemeine Warnung an alle 
        
        
    }
end
- OpenHab 2.4
#PWRUP

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Alarmmeldung nur einmal die Stunde

Beitrag von violine21 »

Hallo,
ich habe das für meine Dachfenster mit 2 Rules gelöst.
Rule 1 triggert auf den Windstärkemesser und Regensensor, setzt bei Überschreitung ein Proxy-Item (Item ohne Anbindung) und schliesst die Fenster.

Code: Alles auswählen

rule "Schlechtwetter Ein"
when
    Item Wetterstation1RAINING changed or
    Item Wetterstation1WINDSPEED changed
then
    
    if (Wetterstation1RAINING.state == ON && virtual_schlechtwetter.state == OFF)
        {virtual_schlechtwetter.sendCommand(ON)
        virtual_wetterereignis.postUpdate(now.toString("HH:mm")+" Uhr: Regen = "+Wetterstation1RAINING.state)}

    if ((Wetterstation1WINDSPEED.state as Number).floatValue >= 20 && virtual_schlechtwetter.state == OFF)
        {virtual_schlechtwetter.sendCommand(ON)
        virtual_wetterereignis.postUpdate(now.toString("HH:mm")+" Uhr: Windgeschwindigkeit = "+Wetterstation1WINDSPEED.state as Number+ " kmh")}  

end
Rule 2 wird 2x täglich getriggert und öffnet bei entsprechender Bedingung die Fenster wieder.

Code: Alles auswählen

rule "Schlechtwetter Aus"
when
    Time cron "0 0 0 * * ?" or
    Time cron "0 0 12 * * ?"
then
    if (Wetterstation1RAINING.state == OFF && ((Wetterstation1WINDSPEED.state as Number).floatValue < 20))
        {virtual_schlechtwetter.sendCommand(OFF)}
end
Den cron-Trigger müsstest Du noch auf Deine Bedürfnisse anpassen.
Ich habe die Schaltaktion für die Aktoren weggelassen und nur das Proxy-Item und die Textmeldung für die Paper UI gelassen.

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Alarmmeldung nur einmal die Stunde

Beitrag von linsenpago »

Hi!

Danke für die Hilfe!

Ich habe die Rule nun so umgebaut und sie funktioniert... Jetzt bekomme ich die Meldung nur noch 1x Pro Stunde und auch der "UP" Befehl an die Beschattung wird auch nur noch max. 1x die Stunde geschickt.

Wäre es auch irgendwie möglich den Start des Timers zu loggen und alle z.b 10 sekunden ins Logfile zu schreiben?

Die Rule sieht jetzt so aus:

Code: Alles auswählen

rule "Terrasseenrollo 3 bei Wind hochfahren"
when 
    Item HMWetter_Windgeschwindigkeit received update
then
    if (tWind3 === null && (HMWetter_Windgeschwindigkeit.state as Number > 40)) {
        tWind3 = createTimer(now.plusHours(1), [ |
            tWind3 = null
        ])
    logInfo("RFXCOM - Windschutz Terrasse", "Windgeschwindigkeit höher als 40kmh! Fahre Rollo 3 hoch! aktuell: " + HMWetter_Windgeschwindigkeit.state)
    sendBroadcastNotification("Windschutz aktiv! Fahre Terrasse 3 hoch! Windstärke: " + HMWetter_Windgeschwindigkeit.state )
    Beschattung_3.sendCommand(UP)
    }
end 
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Alarmmeldung nur einmal die Stunde

Beitrag von linsenpago »

Hat jemand noch zu dem Thema "Timer ins Logfile Schreiben" einen Tipp?
linsenpago hat geschrieben: 28. Dez 2020 22:47 Wäre es auch irgendwie möglich den Start des Timers zu loggen und alle z.b 10 sekunden ins Logfile zu schreiben?
Danke schonmal im Voraus!

LG!
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Alarmmeldung nur einmal die Stunde

Beitrag von PeterA »

Einen Logeintrag zu erzeugen ist kein Problem. Aber weshalb alle 10sek ? Das geht nicht weil ein Logeintrag auch immer durch ein Ereignis ausgelöst wird.
- OpenHab 2.4
#PWRUP

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Alarmmeldung nur einmal die Stunde

Beitrag von linsenpago »

War einfach nur eine Idee von mir, damit ich sehe ob der Timer noch läuft... aber wenn nur geloggt wird, dass der Timer gestartet wurde wäre das auch schon mal genug information. ;-)
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Alarmmeldung nur einmal die Stunde

Beitrag von PeterA »

Soweit ich informiert bin ist es in OH nicht vorgesehen laufende Timer "nachsehen" zu können.
Du kannst aber an entsprechender Stelle in der Rule z.B. zum Start des Timers einen Log Eintrag erzeugen lassen oder auch eine Nachricht aufs Mobiltelefon pushen lassen.
Ich habe Beispiel Code dafür. Aber den suche ich erst nächstes Jahr raus [emoji23].
- OpenHab 2.4
#PWRUP

linsenpago
Beiträge: 25
Registriert: 7. Jan 2019 12:30
Answers: 1
Wohnort: Österreich
Kontaktdaten:

Re: Alarmmeldung nur einmal die Stunde

Beitrag von linsenpago »

Hi!

Danke für die Info!

Ich habe es nun selbst hineingebastelt.
Ich habe es in anderen hier geposteten Beispielen gefunden und für mich angepasst.

Code: Alles auswählen

rule "Terrasseenrollo 3 bei Wind hochfahren"
when 
    Item HMWetter_Windgeschwindigkeit received update
then
    if (tWind3 === null && (HMWetter_Windgeschwindigkeit.state as Number > 40)) {
        logInfo("STARTING TIMER :", triggeringItem.name.toString)
        tWind3 = createTimer(now.plusHours(1), [ |
            tWind3 = null
        ])
    logInfo("RFXCOM - Windschutz Terrasse", "Windgeschwindigkeit höher als 40kmh! Fahre Rollo 3 hoch! aktuell: " + HMWetter_Windgeschwindigkeit.state)
    sendBroadcastNotification("Windschutz aktiv! Fahre Terrasse 3 hoch! Windstärke: " + HMWetter_Windgeschwindigkeit.state )
    Beschattung_3.sendCommand(UP)
    }
end 
In Verwendung:
Wago SPS 750-881 für Rolladen/Raffstore, Garagen und Einfahrtstorsteuerung mit Dali Bus für Beleuchtung und COM Schnittstelle für SMS Empfang und Versand, Sonnenstandsberechnung für Automatische Beschattung, Alarmanlage
Raspberrymatic, openHab2, Hue Bridge, Alexa, Logitech Harmony

Antworten