Rules bitte einmal überprüfen.

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Rules bitte einmal überprüfen.

Beitrag von Boxana »

Ich komme nicht so ichtig weiter mit den rules.
ibt es da kein Kompendium?
Der Windalarm an sich geht aber Telegram sendet nicht. Ich denke das ich die Verkettung falsch anlege finde aber kein Beispiel oder weiß nicht so richtig wie ich das bei google suchen soll.
wenn ich den wert 85 über die sitemap einstellen möchte, muss ich das ein dummyschalter in der .items anlegen z.B. ein und dann mit einem slider verbinden?

Code: Alles auswählen

rule "Windwächter"

when
    Item Wind_Gust changed  or System started


then

        if (Wind_Gust.state>  85)
		sendCommand(WindAlarm, ON)
        sendTelegram("bot1", "WindAlarm,Jalousie wird gesperrt!")
        else
        sendCommand(WindAlarm, OFF)

end
Openhab auf einem Qnap NAS
Gruß
Christian

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Rules bitte einmal überprüfen.

Beitrag von Darkwin101 »

Du musst die If anweisung in {} setzen damit das ganze dem IF zugeordnet wird das gleiche gilt für else

Code: Alles auswählen

rule "Windwächter"
when
    Item Wind_Gust changed or System started
then
    if(Wind_Gust.state> 85) {
        sendCommand(WindAlarm, ON)
        sendTelegram("bot1", "WindAlarm,Jalousie wird gesperrt!")
    } else {
        sendCommand(WindAlarm, OFF)
    }
end
Ich würde auch noch ein Counter einbauen damit du nicht x Alarme bekommst wenn der Wind über 85 ist, denn ist der Wert 90 bekommst du eine Nachricht und sinkt der Wert auf 89 bekommst du die nächste Nachricht

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Rules bitte einmal überprüfen.

Beitrag von Darkwin101 »

Zu Telegram hast du den Bot auch eingerichtet und ihm beim ersten mal eine Nachricht von deinem Telefon geschickt der Bot fängt erst an zu senden wenn er von dir eine Nachricht empfangen hat.
Zu deiner Frage ja du nimmst ein ITEM ohne Zuordnung als Number und in der Sitemap koppelst du das ganze mit einem Slider.
Deine Item würde dann So aussehen.
Number Slider_Name
Ich würde die Rule dann so aufbauen

Code: Alles auswählen

rule "Windwächter"
when
    Item Wind_Gust changed or System started
then
    if((Wind_Gust.state > Slider_Name.state) && WindAlarm.state != ON) {
        WindAlarm.sendCommand(ON)
        sendTelegram("bot1", "WindAlarm,Jalousie wird gesperrt!")
    } else {
        WindAlarm.sendCommand(OFF)
    }
end
Es kann sein das eventuell noch ein as Number hinter Wind_Gust.state und Slider_Name.state kommen muss

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Rules bitte einmal überprüfen.

Beitrag von Boxana »

Danke euch für die schnelle und die freundliche Info und ja der Bot und Telegam sind aktiv und funktionieren.
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Rules bitte einmal überprüfen.

Beitrag von Boxana »

Ich denke so geht es nicht.
Wenn Wind > xx und Windalarm != ON
führt dazu das er beim nächstem changed den Alarm wieder ausschaltet da ja die Bedingung Wenn Wind > xx und Windalarm != ON nicht mehr gegeben ist
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Rules bitte einmal überprüfen.

Beitrag von Boxana »

So richtig?
40 ist nur ein debagg wert.

Code: Alles auswählen

rule "Windwächter"
when
        Item Wind_Gust changed or System started
then

        if ((Wind_Gust.state > 40) && WindAlarm.state == OFF){
                WindAlarm.sendCommand(ON)
                sendTelegram("bot1", "WindAlarm,Jalousie wird gesperrt!")}

else if {(Wind_Gust.state < 40)

                WindAlarm.sendCommand(OFF)
                } 

end
Zuletzt geändert von seppy am 27. Feb 2020 11:26, insgesamt 1-mal geändert.
Grund: Code Tags eingefügt
Openhab auf einem Qnap NAS
Gruß
Christian

Benutzeravatar
Boxana
Beiträge: 125
Registriert: 19. Feb 2020 16:24
Answers: 0

Re: Rules bitte einmal überprüfen.

Beitrag von Boxana »

korrekt

Code: Alles auswählen

rule "Windwächter"
when
        Item Wind_Gust changed or System started
then

        if ((Wind_Gust.state > 40) && WindAlarm.state != OFF){
                WindAlarm.sendCommand(ON)
                sendTelegram("bot1", "WindAlarm,Jalousie wird gesperrt!")}

else if (Wind_Gust.state< 40) {
        sendCommand(WindAlarm, OFF)
                } 

end
Openhab auf einem Qnap NAS
Gruß
Christian

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

Re: Rules bitte einmal überprüfen.

Beitrag von udo1toni »

Nein, so ganz stimmt das nicht.
Also, mal abgesehen von unterschiedlichen Schreibweisen des gleichen Befehls, was immer hässlich ist (einmal Methode, einmal Action), gibt es drei gültige Status für ein Switch Item, nämlich ON, OFF und NULL. Wenn man nun nur dann auf ON schaltet, falls das Item nicht OFF ist (!=), so wird der Befehl maximal einmal nach dem Start von openHAB ausgeführt. ;)

Korrekt sähe die Rule eher so aus:

Code: Alles auswählen

rule "Windwächter"
when
    Item Wind_Gust changed
then
    if (Wind_Gust.state > 40 && WindAlarm.state != ON) {
        WindAlarm.sendCommand(ON)
        sendTelegram("bot1", "WindAlarm,Jalousie wird gesperrt!")
    } else if(Wind_Gust.state < 40 && WindAlarm.state != OFF)
        WindAlarm.sendCommand(OFF)
end
Die Rule wird bei Systemstart auf jeden Fall triggern, sobald ein gültiger Wert für Wind_Gust ansteht. Es hat hier keinen Vorteil, zusätzlich auf System started zu triggern.

Eventuell wäre es sicherer, zuerst zu prüfen, ob Wind_Gust eine Zahl enthält.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten