Rule Denkfehler

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

Moderatoren: Cyrelian, seppy

Antworten
Mario_a_b
Beiträge: 3
Registriert: 23. Nov 2019 10:15
Answers: 0

Rule Denkfehler

Beitrag von Mario_a_b »

Hallo,
mir ist schon klar das ich nen Denkfehler habe...…
Die Lampen brennen jetzt die ganze Zeit.
Sie sollen:
"When" Im Zeit Bereich von 15 Uhr bis 1 Uhr, Licht kleiner 3 Watt/m" und die Temperatur kleiner 5° sollen die Lampen 1-5 an (Dummy_Test Schalter ist zum manuellen testen, später "wenn Rollo auf bzw zu").
Aus "when" entsprendes "oder" passiert.
Aber die Lampen sind jetzt immer an.

Code: Alles auswählen

rule "Terrasse 1 blau"
when
Item Dummy_Test received state ON
Time cron “0 0 15 * * ?”
Item vWeather_SolarRad <= 3
Item vWeather_Temp <= 5

then
{

Terrasse_1_Farbe.sendCommand("240,100,50")
Terrasse_2_Farbe.sendCommand("30,60,60")
Terrasse_3_Farbe.sendCommand("30,60,60")
Terrasse_4_Farbe.sendCommand("30,60,60")
Terrasse_5_Farbe.sendCommand("30,60,60")

}
end 

rule "Terrasse 1 aus"
when
            Item Dummy_Test changed from ON to OFF
      or    Time cron “0 0 1 * * ?”
      or    Item vWeather_SolarRad >= 3
      or    Item vWeather_Temp >= 5
  then
        sendCommand(Terrasse_1_Schalter, OFF)
        sendCommand(Terrasse_2_Schalter, OFF)
        sendCommand(Terrasse_3_Schalter, OFF)
        sendCommand(Terrasse_4_Schalter, OFF)
        sendCommand(Terrasse_5_Schalter, OFF)
       
end
Zuletzt geändert von seppy am 16. Dez 2019 11:22, insgesamt 1-mal geändert.
Grund: Code Tags eingefügt

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

Re: Rule Denkfehler

Beitrag von peter-pan »

Probiere mal:
rule "Terrasse 1 aus"
when
Item Dummy_Test changed from ON to OFF
or Time cron “0 0 1 * * ?”
or Item vWeather_SolarRad >= 3
or Item vWeather_Temp >= 5
then
Terrasse_1_Schalter.sendCommand (OFF)
Terrasse_2_Schalter.sendCommand (OFF)
Terrasse_3_Schalter.sendCommand (OFF)
Terrasse_4_Schalter.sendCommand (OFF)
Terrasse_5_Schalter.sendCommand (OFF)
end
und lies dir mal dieses Kapitel durch
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Rule Denkfehler

Beitrag von udo1toni »

Du hast aber schon verstanden, wie Rules funktionieren?

Rules werden getriggert. Im when-Teil der Rule werden alle Trigger einer Rule aufgeführt. Jeder Trigger ist gleichberechtigt. Ein Trigger wäre "bestimmtes Datum mit Uhrzeit erreicht" oder "Item hat ein Kommando empfangen" oder "Itemwert hat sich geändert"

Ein sinnvoller Trigger für die Rule wäre z.B., auf die Temperaturänderung zu triggern (und nur darauf).

wenn bestimmte Bedingungen erfüllt sein müssen, muss dies innerhalb des then-Teils der Rule geprüft werden (z.B. mit if()). Sinnvolle Prüfungen wären hier natürlich "Zeitraum korrekt", Lichtmenge unterschritten und Temperatur unterschritten.

Code: Alles auswählen

rule "Licht Terrasse"
when
    Item vWeather_Temp received update
then
    if((now.getMinuteOfDay > 15*60 || now.getMinuteOfDay < 1*60) && (vWeather_SolarRad.state as Number).floatValue <= 3 && (vWeather_Temp.state as Number).floatValue <= 5) {
        Terrasse_1_Farbe.sendCommand("240,100,50")
        Terrasse_2_Farbe.sendCommand("30,60,60")
        Terrasse_3_Farbe.sendCommand("30,60,60")
        Terrasse_4_Farbe.sendCommand("30,60,60")
        Terrasse_5_Farbe.sendCommand("30,60,60")
    } else {
        Terrasse_1_Schalter.sendCommand(OFF)
        Terrasse_2_Schalter.sendCommand(OFF)
        Terrasse_3_Schalter.sendCommand(OFF)
        Terrasse_4_Schalter.sendCommand(OFF)
        Terrasse_5_Schalter.sendCommand(OFF)
    }
end
Es wäre allerdings sinnvoll, über ein proxy Item zu arbeiten. Die Rule oben steuert nur das Proxy Item, wenn das Proxy Item sich ändert, wird eine weitere Rule getriggert. Damit werden unnötige Schaltvorgänge vermieden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten