Windwarnung über Cloudserver

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Windwarnung über Cloudserver

Beitrag von udo1toni »

Oh ja, das leidige Thema UoM. Das hatte ich gar nicht mehr auf dem Schirm.

Also noch mal, nur der Vollständigkeit halber, mit erweiterten Features:

Code: Alles auswählen

// globale Variablen müssen zu Beginn der rules Datei deklariert werden!
var Timer tWind = null
val Number nSpeedAlarm = 20 // regulär 49

rule "Wind Alarm"
when
    Item localCurrentWindSpeed changed
then
    logDebug("windAlarm","Rule getriggert, aktuelle Windgeschwindigkeit: {}",localCurrentWindSpeed)
    if(localCurrentWindSpeed.state as Number).floatValue > nSpeedAlarm) {
        logDebug("windAlarm","Grenzwert {} überschritten!",nSpeedAlarm)
        if(tWind === null) {
           logInfo("windAlarm","Warnung versenden.")
            sendBroadcastNotification("WINDWARNUNG !!  Gartensachen sichern!")
            tWind = createTimer(now.plusHours(3), [ |
                tWind = null
            ])
        } else {
           logDebug("windAlarm","Letzte Warnung wurde vor weniger als 3 Stunden versendet.")
        }
    }
end
Um alle Meldungen zu Gesicht zu bekommen, muss der LogLevel für diese Rule auf DEBUG gesetzt werden. Alternativ kann man natürlich auch den Code anpassen, aber wenn es schon solche Möglichkeiten gibt:
  • in die Karaf Konsole wechseln: openhab-cli console
  • Log Level anzeigen: log:list
  • Log Level gezielt setzen: log:set DEBUG org.eclipse.smarthome.model.script.windAlarm
  • Log Level gezielt zurücksetzen: log:set DEFAULT org.eclipse.smarthome.model.script.windAlarm
Das Log Level wird nur für den angegebenen Zweig gesetzt. Das Setting wirkt unmittelbar. Die Liste ist hierarchisch und das Level wird vererbt, man könnte also das Log Level für alle Rules gemeinsam setzen, indem man org.eclipse.smarthome.model.script setzt. Ist auch der Unterzweig windAlarm gesetzt, hat dieses Setting Vorrang.

Falls Du einen aktuellen Nightly Build einsetzt, kann es sein, dass org.eclipse.smarthome verkehrt ist und es stattdessen org.openhab heißen muss. Das hängt mit dem Merge von Eclipse Smarthome und openHAB zusammen, und leider ist momentan nicht immer klar, welche Namensräume schon migriert sind.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

madmike
Beiträge: 278
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Windwarnung über Cloudserver

Beitrag von madmike »

Hallo zusammen,

ich danke Euch vielmals, Peters Tipp war der entscheidende, dennoch auch nochmals vielen Dank für deine Rule Udo was auch wieder viel neues mitbringt. Die Mühe, die Ihr beiden Euch gemacht habt ist bewundernswert und dafür möchte ich mich bei Euch bedanken.
So nun abschliessend meine (mit Eurer Hilfe) gestaltete Rule:

Code: Alles auswählen

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

rule "Windwarnung"

when
    Item localCurrentWindSpeed changed
    
then
    if(tWind === null && (localCurrentWindSpeed.state >40 | "km/h")) {
        tWind = createTimer(now.plusHours(3), [ |
            tWind = null
        ])
        sendBroadcastNotification("WINDWARNUNG !!  Gartensachen sichern!")
        sendNotification("max.mustermann@muster.com", "WINDWARNUNG !! Gartensachen sichern!")
        sendNotification("mimi.mustermann@muster.com", "WINDWARNUNG !! Gartensachen sichern!")
    }
end

So alles funktioniert erstmal super ob die Grösse von 40km/h optimal ist wird sich halt durch die Praxis zeigen, ggf. muss sie nach Euren Gusto geändert werden.
bei der Sendung der Notification ist mir aufgefallen das ich in den Cloud Einstellung die Rolle "master" habe, dadurch wurden meine genutzten Geräte auch angezeigt. Meine Frau hat diese Rolle nicht, dadurch werden Ihre Geräte nicht angezeigt, aber Ihre Mail ist erfasst. daher sende ich einmal mit BroadcastNotification an alle eingetragenden Geräte und einmal über sendNotification an die anderen User in meiner Cloud. dies zur Info.
Somit ist unser Gartenequipment hoffentlich geschützt und ich kann dieses Erweiterung unseres "OpenhabSmarthomes" als erledigt sehen.
Danke nochmals an Peter und Udo wenn wir uns irgendwann mal real sehen seid Ihr herzlich eingeladen auf eine "Openhab Hopfenkaltschale" :D

Benutzeravatar
peter-pan
Beiträge: 2767
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Windwarnung über Cloudserver

Beitrag von peter-pan »

Hallo Micha,
immer wieder gerne. Aber der Ansatz von Udo ist m.E. hier besser. Mit der Konstanten val Number nSpeedAlarm = 20 // regulär 49 und der Abfrage über if(localCurrentWindSpeed.state as Number).floatValue > nSpeedAlarm) bist du einfach flexibler. Es könnte ja auch mal sein, dass dein Pattern/Suffix ein "mp/h" ist :) , dann musst du nur die Konstante anpassen (natürlich auch nur wenn du willst :D )

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten