Seite 1 von 1

Rules in OH 3 übernehmen?

Verfasst: 9. Feb 2021 23:03
von isostar1101
Guten Abend liebe Gemeinde,

ich habe vor zwei Wochen auf OH 3 umgestellt und alle Items neu angelegt, nun habe ich eine Frage, wie ich am Besten die alten Regeln integriere?
Ich habe z.B. eine Heizungssteuerung/Lichtsteuerung für WC die só aussieht....

Code: Alles auswählen

var Timer WCBewegungsmelder_timer = null
rule "WC Heizung"


when
    Item GF_Toilette_Temperatur changed
or
    Item GF_Toilette_Window changed

then
    
    var Heizung = OFF  // Falls etwas schief geht, auf jeden Fall abschalten 
    var Number Temp = null
    if (GF_Toilette_Window.state == CLOSED)
    if(GF_Toilette_Temperatur.state instanceof Number) { //Gültiger Wert?
        Temp = GF_Toilette_Temperatur.state as Number
        if(now.getHourOfDay > 08 && now.getHourOfDay < 21) //innerhalb des Zeitfensters?
            if(Temp < 19 || (Temp < 20 && GF_Toilette_Heating.state == ON)) Heizung = ON
            
    }
    if(GF_Toilette_Heating.state != Heizung) GF_Toilette_Heating.sendCommand(Heizung)
    end







rule "WC-Licht Bewegungsmelder"

when
        Item GF_Toilette_Motion  received update ON
then

if
      (GF_Toilette_Motion.state == ON && Elevation.state  <-0|° && WCBewegungsmelder_timer === null) {
     
     GF_Toilette_Light_Spiegel.sendCommand(ON)
       
         WCBewegungsmelder_timer = createTimer(now.plusMinutes(3)) [|
         GF_Toilette_Light_Spiegel.sendCommand(OFF)
        
         WCBewegungsmelder_timer = null
]}
else if 
        (GF_Toilette_Motion.state == ON) {
        WCBewegungsmelder_timer.reschedule(now.plusMinutes(3))
}

end
oder für die Fabwechsel im Wochzimmer und Küche nutze ich das hier...

Code: Alles auswählen

ule "Farbe in der Küche und Wohnzimmer wechseln"
when
    Item GF_Wohn_Esszimmer_Milight_Color changed
then
    if(!(GF_Wohn_Esszimmer_Milight_Color.state instanceof HSBType)) return;
    GF_Kueche_Color_Unterschrank.sendCommand((GF_Wohn_Esszimmer_Milight_Color.state as HSBType).toString)
    GF_Kueche_Color_Fensterbank.sendCommand((GF_Wohn_Esszimmer_Milight_Color.state as HSBType).toString)
    GF_Wohn_Esszimmer_Color.sendCommand((GF_Wohn_Esszimmer_Milight_Color.state as HSBType).toString)
    GF_Wohn_Esszimmer_LED_Strip_TV_Color.sendCommand((GF_Wohn_Esszimmer_Milight_Color.state as HSBType).toString)
    GF_Wohn_Esszimmer_LED_Strip_SideboardColor.sendCommand((GF_Wohn_Esszimmer_Milight_Color.state as HSBType).toString)
    GF_Kueche_Color_Arbeitsplatte.sendCommand((GF_Wohn_Esszimmer_Milight_Color.state as HSBType).toString)
    
    
end


rule "Helligkeitsanpassung "

when
    Item GF_Wohn_Esszimmer_Milight_Brightness changed

    then

            if(!(GF_Wohn_Esszimmer_Milight_Brightness.state instanceof HSBType)) return;
    GF_Kueche_Brightness_Unterschrank.sendCommand((GF_Wohn_Esszimmer_Milight_Brightness.state as HSBType).toString)
    GF_Kueche_Brightness_Fensterbank.sendCommand((GF_Wohn_Esszimmer_Milight_Brightness.state as HSBType).toString)
    GF_Wohn_Esszimmer_Ambiente.sendCommand((GF_Wohn_Esszimmer_Milight_Brightness.state as HSBType).toString)
    GF_Wohn_Esszimmer_LED_Strip_TV_Brightness.sendCommand((GF_Wohn_Esszimmer_Milight_Brightness.state as HSBType).toString)
    GF_Wohn_Esszimmer_LED_Strip_SideboradBrightness.sendCommand((GF_Wohn_Esszimmer_Milight_Brightness.state as HSBType).toString)
    GF_Kueche_Brightness_Arbeitsplatte.sendCommand((GF_Wohn_Esszimmer_Milight_Brightness.state as HSBType).toString)
    
end
jetzt die Frage soll ich das über Blockly abbilden oder via DSL einfach nur einlesen...wobei ich dann Sorge habe das DSL in Zukunft aufgegeben wird?

Was mint ihr ist hier der Beste Weg?

Danke vG. Isostar

Re: Rules in OH 3 übernehmen?

Verfasst: 9. Feb 2021 23:46
von udo1toni
Das einfachste wäre wohl, die Rules exakt so einzubinden, wie sie auch schon unter OH2 liefen, also als vollständige rules Datei. Insbesondere für den Timer gibt es gar keine andere Möglichkeit (es sei denn, Du schreibst Die Rule komplett neu mit einer anderen Rules Sprache.

Re: Rules in OH 3 übernehmen?

Verfasst: 10. Feb 2021 07:20
von isostar1101
Danke Udo1toni,


dann werde ich mal mein Glück versuchen!

vG. Isostar