Rule mit Statusabfrage Thing

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Rule mit Statusabfrage Thing

Beitrag von zinnik »

Hallo,

Ich hab das Problem das manchmal einige Things (Temperatusensoren) Offline gehen weil sie nicht erreichbar sind zb. weil Batterie leer ist.

Oder keinen Empfang haben. Jetzt dachte ich mir ich lass mir einfach den Status vom Thing schicken wenn es Offline geht, per Pushover oder hat eventuell Openhab eine eigene Funktion?

Dann kann ich nachschauen.

Mit einem Thing habe ich das hinbekommen aber ich finde nicht heraus wie ich das mit Mehreren mache sodass es mir auch genau sagt welches Thing eine Störung hat.

Hier wäre meine Test Rule

Code: Alles auswählen

rule "Push Thing Offline"
when
    Thing "deconz:temperaturesensor:00212E070550:00158d0003faf862010402" changed from Online to Offline
then
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
    
    actions.sendMessage("ThingStatus", "Temperatursensor Schlafzimmer nicht erreichbar")
    
end
Lg Sven
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Rule mit Statusabfrage Thing

Beitrag von udo1toni »

Im Gegensatz zu Items gibt es bei Things keine Gruppen.
Du kommst also leider nicht darum herum, jedes Thing einzeln als Trigger aufzuführen.
In der Auswertung kannst Du aber sehr wohl unterscheiden, welches der Things die Rule getriggert hat, und welchen Zustand das Thing hat:

Code: Alles auswählen

rule "Push Thing Offline"
when
    Thing "deconz:temperaturesensor:00212E070550:00158d0003faf862010401" changed or
    Thing "deconz:temperaturesensor:00212E070550:00158d0003faf862010402" changed or
    Thing "deconz:temperaturesensor:00212E070550:00158d0003faf862010403" changed or
    Thing "deconz:temperaturesensor:00212E070550:00158d0003faf862010404" changed
then
    if(newThingStatus == "Online") {
        return;
    }
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
    val strLastDigits = triggeringThing.substring(triggeringThing.lastIndexOf(":") + 1)
    val strMessage = "Temperatursensor "
    switch(strLastDigits) {
        case "00158d0003faf862010401" : strMessage += "Wohnzimmer "
        case "00158d0003faf862010402" : strMessage += "Schlafzimmer "
        case "00158d0003faf862010403" : strMessage += "Büro "
        case "00158d0003faf862010404" : strMessage += "Kinderzimmer "
        default : {
            logWarn("pushThing", "Da ist was schief gelaufen! ThingID {} nicht in Liste...",triggeringThing)
            return;
        }
    }
    strMessage += "ist gerade " + newThingStatus + "!"
    actions.sendMessage("ThingStatus", strMessage)
    logInfo("pushThing", strMessage)    
end
Wesentlich eleganter wäre es, die Thing IDs gleich sinnvoll zu setzen. Die Buchstaben-Zahlenkombination sollte bei der Übernahme aus der Inbox angepasst werden können.
Man könnte auch eine Mapping-Tabelle dafür verwenden - und natürlich kann man den String für die Nachricht auch anders gestalten, genau wie man auch newThingstatus explizit auswerten kann, falls das interessant ist.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Rule mit Statusabfrage Thing

Beitrag von zinnik »

Hallo Udo,

vielen Dank für deine Hilfe habe die Rule jetzt erstellt und angepasst.

Funktioniert auch Prima, kann man die Rule vielleicht noch so abändern ,dass nur eine Push kommt bei dem Status OFFLINE

Lg Sven
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Rule mit Statusabfrage Thing

Beitrag von udo1toni »

Ja, sicher, Du kannst entweder die Trigger eingrenzen (changed to OFFLINE) oder alternativ auch in der Rule selbst:

Code: Alles auswählen

...
then
    if(newThingStatus != "OFFLINE") {
        return;
    }
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Rule mit Statusabfrage Thing

Beitrag von zinnik »

Jetzt habe ich ochwas amHerzen aus unerklärlichen gründen ging heute zwei kurz dasdeconz binding offline somit wurde ich zugespamt von Pushover. Kann man es so ab ändern wenn die Temperatursensoren mindestens 1h offline sind dann erst ei push auszugeben.
Lg sven
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

nw378
Beiträge: 199
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: Rule mit Statusabfrage Thing

Beitrag von nw378 »

Was Du machen kannst, ist eine Art Hystere einbauen, also einen zusätzlichen Schalter, der nach erstmaliger Offline-Meldung für 60 Minuten an ist und danach wieder ausgeht.
Dass heißt, Du bekommst sofort eine Pushover Meldung, wenn ein Thing offline geht, die nächste Warnung aber erst eine Stunde später:

.items:

Code: Alles auswählen

Switch deconz_warn  {expire="60m,command=OFF"} 

Code: Alles auswählen

...
then
    if((newThingStatus != "OFFLINE") || (deconz_warn.state==ON)) {
        return;
    }
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
    deconz_warn.sendCommand(ON)  
...
openHAB 4.1.0 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Rule mit Statusabfrage Thing

Beitrag von zinnik »

Ok danke probiere ich aus
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Antworten