Ankündigung

Einklappen
Keine Ankündigung bisher.

Heizungssteuerung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Ja, ein und aus.

    Kommentar


      #17
      Jetzt habe ich schon den nächsten Hänger:
      Wie erstelle ich für jedes Zimmer ein Setpoint-Item um die Solltemperatur für die einzelnen Räume zu bestimmen, sodass ich diese Sollwerte über eine Regel abfragen und entsprechend reagieren kann, wenn die Ist-Temperatur unter dem Sollwert liegt?
      Die IST-Temperaturen bekomme ich ja bereits von meinem Thermostat. Die SOLL-Temperaturen will ich über ein entsprechendes Setpoint Item für jeden Raum extra einstellen können.
      Geht das, dass die von mir eingestellten Werte abgespeichert und bei einem Neustart von OpenHAB wieder eingelesen werden?

      Gruß Jan

      Kommentar


        #18
        Hi,

        Zitat von Jan0815 Beitrag anzeigen
        Geht das, dass die von mir eingestellten Werte abgespeichert und bei einem Neustart von OpenHAB wieder eingelesen werden?
        ja!

        * erstelle eine Gruppe "Sollwerte"
        * füge der Gruppe jedes Sollwert-Item zu
        * erstelle rrd4j.persist
        * füge dort den Eintrag "Sollwerte : strategy = everyChange, restoreOnStartup" in die Kategorie "Items" ein

        Gruß,

        Thomas E.-E.
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #19
          Ok, das habe ich jetzt alles umgesetzt. Alles scheint nun soweit zu funktionieren. Wenn mir jetzt noch jemand sagt, wie ich die beiden Werte richtig vergleiche, sollte alles so funktionieren, wie ich es mir vorgestellt habe:

          Code:
          rule "Heizung Küche"
          when
          	Item Temperature_GEG_Kitchen changed
          then
          	if (Temperature_GEG_Kitchen<Sollwerte_Kitchen){
          		sendCommand(Heating_GEG_Kitchen, ON)
          	}
          	if (Temperature_GEG_Kitchen>Sollwerte_Kitchen){
          		sendCommand(Heating_GEG_Kitchen, OFF)
          	}
          Gruß Jan

          Kommentar


            #20
            In der Regel fehlt noch das (leider notwendige) .state hinter den Items.
            Außerdem fehlt "end" :-)

            Kommentar


              #21
              Ohne Anspruch auf Richtigkeit probiert es mal damit:

              Code:
              var Number Ist
              var Number Soll
              
              if (Temperature_GEG_Kitchen.state instanceof DecimalType && Sollwerte_Kitchen.state instanceof DecimalType) 
              {
                  Ist =   Temperature_GEG_Kitchen.state as DecimalType
                  Soll = Sollwerte_Kitchen.state as DecimalType
              
                 if (Ist < Soll) {
                 ....
                 } else if (Ist > Soll) {
                 ...
                 }
              
              }
              In der praktischen Anwendung ürde ich da aber auch noch eine Hysterese programmieren!

              Kommentar


                #22
                Gut, das habe ich gemacht. Bei Temperature_GEG_Kitchen.state funktioniert das auch, aber bei Sollwerte_Kitchen.state meckert der Designer immer noch rum und bringt die Meldung: Incompatible types. Expected java.lang.Number but was org.openhab.core.types.State

                Das entsprechende Objekt ist in der Items datei folgendermaßen angelegt:
                Code:
                Number Sollwerte_Kitchen	"Solltemperatur Küche [%.1f °C]" <temperature> (Sollwerte, GEG_Kitchen)
                Die Sollwerte werden über die Buttons in der Sitemap eingestellt:
                Code:
                Setpoint item=Sollwerte_Kitchen minValue=16 maxValue=28 step=1.0
                Die Heizregel sieht aktuell so aus:
                Code:
                rule "Heizung Küche"
                when
                	Item Temperature_GEG_Kitchen changed
                then
                	if (Temperature_GEG_Kitchen.state < Sollwerte_Kitchen.state){
                		sendCommand(Heating_GEG_Kitchen, ON)
                	}
                	if (Temperature_GEG_Kitchen.state > Sollwerte_Kitchen.state){
                		sendCommand(Heating_GEG_Kitchen, OFF)
                	}
                end

                Kommentar


                  #23
                  Danke Jockel,

                  das hat funktioniert!

                  Gruß Jan

                  Kommentar


                    #24
                    Nur der Vollständigkeit halber. Hier nun die Zusammenfassung meiner Heizungslösung:

                    Rule:
                    Code:
                    rule "Heizung Küche"
                    when
                    	Item Temperature_GEG_Kitchen changed
                    then
                    	var Number Ist
                    	var Number Soll
                    
                    	if (Temperature_GEG_Kitchen.state instanceof DecimalType && Sollwerte_Kitchen.state instanceof DecimalType) {
                            Ist =   Temperature_GEG_Kitchen.state as DecimalType
                        	Soll = Sollwerte_Kitchen.state as DecimalType
                    
                     	if (Ist < Soll) {
                     		sendCommand(Heating_GEG_Kitchen, ON)
                    	} 
                    	else if (Ist > Soll) {
                    		sendCommand(Heating_GEG_Kitchen, OFF)
                       }
                    
                    }
                    end
                    Items:
                    Code:
                    ...
                    /*Ist-Werte abfragen*/
                    Number Temperature_GEG_Kitchen 	"Küche [%.1f °C]" <temperature>	(Temperature, GEG_Kitchen, Weather_Chart) { knx="1/2/3" }
                    
                    /*Heizung ein bzw. ausschalten*/
                    Switch Heating_GEG_Kitchen 	"Heizung Küche"	 	<heating>	(GEG_Kitchen, Heating) { knx="1/2/4"}
                    
                    /*Sollwerte einstellen*/
                    Number Sollwerte_Kitchen	"Solltemperatur Küche [%.1f °C]" <temperature> (Sollwerte, GEG_Kitchen)
                    Sitemap:
                    Code:
                    ...
                    /*Hier wird das entsprechende Item angezeigt, mit dem die Sollwerte angepasst werden können. */
                    Text label="Heizung und Temperaturen" icon="chart"{
                    			Group item=Sollwerte label="Sollwerte" icon="settings"{
                    				Setpoint item=Sollwerte_Kitchen minValue=16 maxValue=28 step=1.0
                    				}
                    ....
                    Danke an alle Tippgeber hier im Forum....

                    Gruß Jan

                    Kommentar


                      #25
                      Ich würde beim Ein- und ausschalten noch eine kleine Hysterese einbauen, als z.B. if (Ist < Soll-0.5)...

                      Sonst schaltet das Ventil ständig, wenn die Temperatur um den Sollwert herum leicht schwankt. Hängt aber auch davon ab, wie träge das ganze System regiert.

                      Alternativ wäre eine zeitliche Komponente denkbar, also z.B. erst dann heizen, wenn die Temperatur für 5min unterschritten wurde. Oder eine Kombination aus beidem.

                      Regelungstechnik kann beliebig kompliziert werden

                      Kommentar


                        #26
                        Weil es so gut zum Thema passt - und die eigentliche Anfrage inzwischen gelöst ist, möchte ich den "openHAB-Heizungsoptimierung" folgende Regel nicht vorhalten:

                        Code:
                        rule "Sonnennutzung"
                        when
                          Item Sun_Azimut changed
                        then
                          if (Present.state == OFF) {
                            if (Sun_Azimut.state >= 155 && Sun_Azimut.state <= 156) {
                              var Heizabweichung = TSWohnen.state - T_Wohnen.state
                              if (Heizabweichung > 1 || T_Wohnen.state < 21) {
                                sendCommand(J_Ess_S, UP)
                                sendCommand(J_LH_O, UP)
                                sendCommand(J_LH_U, UP)
                                sendCommand(J_Woh_S, UP)
                            } 
                          }
                        end
                        TSWohnen ist die Wohnraum-Soll-Temperatur
                        T_Wohnen ist die Wohnraum-Ist-Temperatur
                        J_* sind Rollläden
                        Present ist die Anwesenheit (OFF=Weg)
                        Sun_Azimut ist die Sonnenposition horizontal (nicht Höhe)

                        Wenn also keiner da ist und die Sonne in den (für mein Haus) günstigen Bereich einfährt, wird berechnet, ob Bedarf besteht und falls ja, die passenden Rolls hochgefahren.

                        In der Übergangszeit (...habe das Gefühl da sind wir immernoch - bei 12°C draußen) hat das einiges gebracht - die Heizung hat die letzten Wochen bis auf ein paar schäbige Ausnahmen - nur WW gemacht

                        Kommentar


                          #27
                          Hi,

                          Zitat von kuschelganxta Beitrag anzeigen
                          möchte ich den "openHAB-Heizungsoptimierung" folgende Regel nicht vorhalten:
                          wäre nett, wenn Du die auch ins Samples-Wiki aufnehmen würdest.

                          Danke und Gruß,

                          Thomas E.-E.
                          Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                          Kommentar


                            #28
                            Vielleicht kann mir nochmal jemand unter die Arme greifen, ich finde den Fehler nicht.
                            Als ich diese Regel eingebaut habe, hat soweit alles funktioniert. Da es die ganze Zeit warm war, hatte ich bei mir den Schalter Sommerbetrieb auf on, so dass die Heizung nicht angesprungen ist. Jetzt habe ich den Schalter auf off gestellt, OpenHAB schaltet aber trotzdem nicht auf Heizen.

                            Hier der entsprechende Code aus der Rules-Datei:
                            Code:
                            //Heizungssteuerung
                            
                            rule "Heizung KG Küche"
                            when
                            	Item Temperature_GKG_Kitchen changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist10
                            	var Number Soll10
                            
                            	if (Temperature_GKG_Kitchen.state instanceof DecimalType && Sollwerte_GKG_Kitchen.state instanceof DecimalType) {
                                    Ist10 =   Temperature_GKG_Kitchen.state as DecimalType
                                	Soll10 = Sollwerte_GKG_Kitchen.state as DecimalType
                            
                             	if (Ist10 < Soll10) {
                             		sendCommand(Heating_GKG_Kitchen, ON)
                            	} 
                            	else if (Ist10 > Soll10) {
                            		sendCommand(Heating_GKG_Kitchen, OFF)
                               }
                               }
                            }
                            	else if (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist10
                            	var Number Soll10
                            
                            	if (Temperature_GKG_Kitchen.state instanceof DecimalType && Sollwerte_GKG_Kitchen_Urlaub.state instanceof DecimalType) {
                                    Ist10 =   Temperature_GKG_Kitchen.state as DecimalType
                                	Soll10 = Sollwerte_GKG_Kitchen_Urlaub.state as DecimalType
                            
                             	if (Ist10 < Soll10) {
                             		sendCommand(Heating_GKG_Kitchen, ON)
                            	} 
                            	else if (Ist10 > Soll10) {
                            		sendCommand(Heating_GKG_Kitchen, OFF)
                               }
                               }
                            }
                            end
                            
                            rule "Heizung KG Bad"
                            when
                            	Item Temperature_GKG_Bath changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist11
                            	var Number Soll11
                            
                            	if (Temperature_GKG_Bath.state instanceof DecimalType && Sollwerte_GKG_Bath.state instanceof DecimalType) {
                                    Ist11 =   Temperature_GKG_Bath.state as DecimalType
                                	Soll11 = Sollwerte_GKG_Bath.state as DecimalType
                            
                             	if (Ist11 < Soll11) {
                             		sendCommand(Heating_GKG_Bath, ON)
                            	} 
                            	else if (Ist11 > Soll11) {
                            		sendCommand(Heating_GKG_Bath, OFF)
                               }
                               }
                            }
                            	else if (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist11
                            	var Number Soll11
                            
                            	if (Temperature_GKG_Bath.state instanceof DecimalType && Sollwerte_GKG_Bath_Urlaub.state instanceof DecimalType) {
                                    Ist11 =   Temperature_GKG_Bath.state as DecimalType
                                	Soll11 = Sollwerte_GKG_Bath_Urlaub.state as DecimalType
                            
                             	if (Ist11 < Soll11) {
                             		sendCommand(Heating_GKG_Bath, ON)
                            	} 
                            	else if (Ist11 > Soll11) {
                            		sendCommand(Heating_GKG_Bath, OFF)
                               }
                               }
                            }
                            end
                            
                            rule "Heizung KG Wohn-/Schlafzimmer"
                            when
                            	Item Temperature_GKG_Living changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist12
                            	var Number Soll12
                            
                            	if (Temperature_GKG_Living.state instanceof DecimalType && Sollwerte_GKG_Living.state instanceof DecimalType) {
                                    Ist12 =   Temperature_GKG_Living.state as DecimalType
                                	Soll12 = Sollwerte_GKG_Living.state as DecimalType
                            
                             	if (Ist12 < Soll12) {
                             		sendCommand(Heating_GKG_Living, ON)
                            	} 
                            	else if (Ist12 > Soll12) {
                            		sendCommand(Heating_GKG_Living, OFF)
                               }
                               }
                            }
                            	else if (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist12
                            	var Number Soll12
                            
                            	if (Temperature_GKG_Living.state instanceof DecimalType && Sollwerte_GKG_Living_Urlaub.state instanceof DecimalType) {
                                    Ist12 =   Temperature_GKG_Living.state as DecimalType
                                	Soll12 = Sollwerte_GKG_Living_Urlaub.state as DecimalType
                            
                             	if (Ist12 < Soll12) {
                             		sendCommand(Heating_GKG_Living, ON)
                            	} 
                            	else if (Ist12 > Soll12) {
                            		sendCommand(Heating_GKG_Living, OFF)
                               }
                               }
                            }
                            end
                            
                            
                            rule "Heizung Küche"
                            when
                            	Item Temperature_GEG_Kitchen changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist13
                            	var Number Soll13
                            
                            	if (Temperature_GEG_Kitchen.state instanceof DecimalType && Sollwerte_Kitchen.state instanceof DecimalType) {
                                    Ist13 =   Temperature_GEG_Kitchen.state as DecimalType
                                	Soll13 = Sollwerte_Kitchen.state as DecimalType
                            
                             	if (Ist13 < Soll13) {
                             		sendCommand(Heating_GEG_Kitchen, ON)
                            	} 
                            	else if (Ist13 > Soll13) {
                            		sendCommand(Heating_GEG_Kitchen, OFF)
                               }
                               }
                            }
                            	else if (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist13
                            	var Number Soll13
                            
                            	if (Temperature_GEG_Kitchen.state instanceof DecimalType && Sollwerte_Kitchen_Urlaub.state instanceof DecimalType) {
                                    Ist13 =   Temperature_GEG_Kitchen.state as DecimalType
                                	Soll13 = Sollwerte_Kitchen_Urlaub.state as DecimalType
                            
                             	if (Ist13 < Soll13) {
                             		sendCommand(Heating_GEG_Kitchen, ON)
                            	} 
                            	else if (Ist13 > Soll13) {
                            		sendCommand(Heating_GEG_Kitchen, OFF)
                               }
                               }
                            }
                            end
                            
                            
                            rule "Heizung Wohn- und Esszimmer"
                            when
                            	Item Temperature_GEG_Living changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist2
                            	var Number Soll2
                            
                            	if (Temperature_GEG_Living.state instanceof DecimalType && Sollwerte_Living.state instanceof DecimalType) {
                                    Ist2 =   Temperature_GEG_Living.state as DecimalType
                                	Soll2 = Sollwerte_Living.state as DecimalType
                            
                             	if (Ist2 < Soll2) {
                             		sendCommand(Heating_GEG_Living, ON)
                            	} 
                            	else if (Ist2 > Soll2) {
                            		sendCommand(Heating_GEG_Living, OFF)
                               }
                            }
                            }
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist2
                            	var Number Soll2
                            
                            	if (Temperature_GEG_Living.state instanceof DecimalType && Sollwerte_Living_Urlaub.state instanceof DecimalType) {
                                    Ist2 =   Temperature_GEG_Living.state as DecimalType
                                	Soll2 = Sollwerte_Living_Urlaub.state as DecimalType
                            
                             	if (Ist2 < Soll2) {
                             		sendCommand(Heating_GEG_Living, ON)
                            	} 
                            	else if (Ist2 > Soll2) {
                            		sendCommand(Heating_GEG_Living, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung Bad"
                            when
                            	Item Temperature_G1OG_Bath changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist3
                            	var Number Soll3
                            
                            	if (Temperature_G1OG_Bath.state instanceof DecimalType && Sollwerte_Bath.state instanceof DecimalType) {
                                    Ist3 =   Temperature_G1OG_Bath.state as DecimalType
                                	Soll3 = Sollwerte_Bath.state as DecimalType
                            
                             	if (Ist3 < Soll3) {
                             		sendCommand(Heating_G1OG_Bath, ON)
                            	} 
                            	else if (Ist3 > Soll3) {
                            		sendCommand(Heating_G1OG_Bath, OFF)
                               }
                            }
                            }
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist3
                            	var Number Soll3
                            
                            	if (Temperature_G1OG_Bath.state instanceof DecimalType && Sollwerte_Bath_Urlaub.state instanceof DecimalType) {
                                    Ist3 =   Temperature_G1OG_Bath.state as DecimalType
                                	Soll3 = Sollwerte_Bath_Urlaub.state as DecimalType
                            
                             	if (Ist3 < Soll3) {
                             		sendCommand(Heating_G1OG_Bath, ON)
                            	} 
                            	else if (Ist3 > Soll3) {
                            		sendCommand(Heating_G1OG_Bath, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung Lucas"
                            when
                            	Item Temperature_G1OG_Child changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist4
                            	var Number Soll4
                            
                            	if (Temperature_G1OG_Child.state instanceof DecimalType && Sollwerte_Child.state instanceof DecimalType) {
                                    Ist4 =   Temperature_G1OG_Child.state as DecimalType
                                	Soll4 = Sollwerte_Child.state as DecimalType
                            
                             	if (Ist4 < Soll4) {
                             		sendCommand(Heating_G1OG_Child, ON)
                            	} 
                            	else if (Ist4 > Soll4) {
                            		sendCommand(Heating_G1OG_Child, OFF)
                               }
                            }
                            }
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist4
                            	var Number Soll4
                            
                            	if (Temperature_G1OG_Child.state instanceof DecimalType && Sollwerte_Child_Urlaub.state instanceof DecimalType) {
                                    Ist4 =   Temperature_G1OG_Child.state as DecimalType
                                	Soll4 = Sollwerte_Child_Urlaub.state as DecimalType
                            
                             	if (Ist4 < Soll4) {
                             		sendCommand(Heating_G1OG_Child, ON)
                            	} 
                            	else if (Ist4 > Soll4) {
                            		sendCommand(Heating_G1OG_Child, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung 1.OG Flur"
                            when
                            	Item Temperature_G1OG_Corridor changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist5
                            	var Number Soll5
                            
                            	if (Temperature_G1OG_Corridor.state instanceof DecimalType && Sollwerte_Corridor.state instanceof DecimalType) {
                                    Ist5 =   Temperature_G1OG_Corridor.state as DecimalType
                                	Soll5 = Sollwerte_Corridor.state as DecimalType
                            
                             	if (Ist5 < Soll5) {
                             		sendCommand(Heating_G1OG_Corridor, ON)
                            	} 
                            	else if (Ist5 > Soll5) {
                            		sendCommand(Heating_G1OG_Corridor, OFF)
                               }
                            }
                            }
                            
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist5
                            	var Number Soll5
                            
                            	if (Temperature_G1OG_Corridor.state instanceof DecimalType && Sollwerte_Corridor_Urlaub.state instanceof DecimalType) {
                                    Ist5 =   Temperature_G1OG_Corridor.state as DecimalType
                                	Soll5 = Sollwerte_Corridor_Urlaub.state as DecimalType
                            
                             	if (Ist5 < Soll5) {
                             		sendCommand(Heating_G1OG_Corridor, ON)
                            	} 
                            	else if (Ist5 > Soll5) {
                            		sendCommand(Heating_G1OG_Corridor, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung Elternschlafzimmer"
                            when
                            	Item Temperature_G1OG_Parents changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist6
                            	var Number Soll6
                            
                            	if (Temperature_G1OG_Parents.state instanceof DecimalType && Sollwerte_Parents.state instanceof DecimalType) {
                                    Ist6 =   Temperature_G1OG_Parents.state as DecimalType
                                	Soll6 = Sollwerte_Parents.state as DecimalType
                            
                             	if (Ist6 < Soll6) {
                             		sendCommand(Heating_G1OG_Parents, ON)
                            	} 
                            	else if (Ist6 > Soll6) {
                            		sendCommand(Heating_G1OG_Parents, OFF)
                               }
                            }
                            }
                            
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist6
                            	var Number Soll6
                            
                            	if (Temperature_G1OG_Parents.state instanceof DecimalType && Sollwerte_Parents_Urlaub.state instanceof DecimalType) {
                                    Ist6 =   Temperature_G1OG_Parents.state as DecimalType
                                	Soll6 = Sollwerte_Parents_Urlaub.state as DecimalType
                            
                             	if (Ist6 < Soll6) {
                             		sendCommand(Heating_G1OG_Parents, ON)
                            	} 
                            	else if (Ist6 > Soll6) {
                            		sendCommand(Heating_G1OG_Parents, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung 2.Kinderzimmer"
                            when
                            	Item Temperature_G1OG_Zimmer changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist7
                            	var Number Soll7
                            
                            	if (Temperature_G1OG_Zimmer.state instanceof DecimalType && Sollwerte_Kinderzimmer.state instanceof DecimalType) {
                                    Ist7 =   Temperature_G1OG_Zimmer.state as DecimalType
                                	Soll7 = Sollwerte_Kinderzimmer.state as DecimalType
                            
                             	if (Ist7 < Soll7) {
                             		sendCommand(Heating_G1OG_Zimmer, ON)
                            	} 
                            	else if (Ist7 > Soll7) {
                            		sendCommand(Heating_G1OG_Zimmer, OFF)
                               }
                            }
                            }
                            
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist7
                            	var Number Soll7
                            
                            	if (Temperature_G1OG_Zimmer.state instanceof DecimalType && Sollwerte_Kinderzimmer_Urlaub.state instanceof DecimalType) {
                                    Ist7 =   Temperature_G1OG_Zimmer.state as DecimalType
                                	Soll7 = Sollwerte_Kinderzimmer_Urlaub.state as DecimalType
                            
                             	if (Ist7 < Soll7) {
                             		sendCommand(Heating_G1OG_Zimmer, ON)
                            	} 
                            	else if (Ist7 > Soll7) {
                            		sendCommand(Heating_G1OG_Zimmer, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung Büro"
                            when
                            	Item Temperature_GDG_Buero changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist8
                            	var Number Soll8
                            
                            	if (Temperature_GDG_Buero.state instanceof DecimalType && Sollwerte_Buero.state instanceof DecimalType) {
                                    Ist8 =   Temperature_GDG_Buero.state as DecimalType
                                	Soll8 = Sollwerte_Buero.state as DecimalType
                            
                             	if (Ist8 < Soll8) {
                             		sendCommand(Heating_GDG_Buero, ON)
                            	} 
                            	else if (Ist8 > Soll8) {
                            		sendCommand(Heating_GDG_Buero, OFF)
                               }
                            }
                            }
                            
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist8
                            	var Number Soll8
                            
                            	if (Temperature_GDG_Buero.state instanceof DecimalType && Sollwerte_Buero_Urlaub.state instanceof DecimalType) {
                                    Ist8 =   Temperature_GDG_Buero.state as DecimalType
                                	Soll8 = Sollwerte_Buero_Urlaub.state as DecimalType
                            
                             	if (Ist8 < Soll8) {
                             		sendCommand(Heating_GDG_Buero, ON)
                            	} 
                            	else if (Ist8 > Soll8) {
                            		sendCommand(Heating_GDG_Buero, OFF)
                               }
                            }
                            }
                            end
                            
                            
                            rule "Heizung Zimmer"
                            when
                            	Item Temperature_GDG_Zimmer changed
                            then
                            	if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==OFF){
                            	var Number Ist9
                            	var Number Soll9
                            
                            	if (Temperature_GDG_Zimmer.state instanceof DecimalType && Sollwerte_Zimmer.state instanceof DecimalType) {
                                    Ist9 =   Temperature_GDG_Zimmer.state as DecimalType
                                	Soll9 = Sollwerte_Zimmer.state as DecimalType
                            
                             	if (Ist9 < Soll9) {
                             		sendCommand(Heizung_GDG_Zimmer, ON)
                            	} 
                            	else if (Ist9 > Soll9) {
                            		sendCommand(Heizung_GDG_Zimmer, OFF)
                               }
                            }
                            }
                            
                            	else if  (Shutter_ALLG_Heizung_Sommerbetrieb.state==OFF && Urlaubsreise.state==ON){
                            	var Number Ist9
                            	var Number Soll9
                            
                            	if (Temperature_GDG_Zimmer.state instanceof DecimalType && Sollwerte_Zimmer_Urlaub.state instanceof DecimalType) {
                                    Ist9 =   Temperature_GDG_Zimmer.state as DecimalType
                                	Soll9 = Sollwerte_Zimmer_Urlaub.state as DecimalType
                            
                             	if (Ist9 < Soll9) {
                             		sendCommand(Heizung_GDG_Zimmer, ON)
                            	} 
                            	else if (Ist9 > Soll9) {
                            		sendCommand(Heizung_GDG_Zimmer, OFF)
                               }
                            }
                            }
                            end

                            Kommentar

                            Lädt...
                            X