Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Steuerung per Sonnenauf- und Untergangszeit

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

    - √ - Steuerung per Sonnenauf- und Untergangszeit

    Hi,

    ich wollte mal noch fragen, ob es möglich ist, per OpenHAB die aktuelle Sonnenauf- und untergangszeit im Internet abzurufen und die Rolläden entsprechend (mit ca. 20 - 30 Minuten verzögerung) rauf und runter zu fahren. Zur Zeit mache ich dies mit einer einfachen Zeitschaltuhr, bei der ich allerdings alle paar Wochen die Zeiten korrigiere.

    Gruß Jan

    #2
    Guggsu hier https://groups.google.com/d/msg/open...Q/y6gICkmQneQJ

    da ist eine Rule hinterlegt die die Sonnenauf-und Untergangszeiten berechnet.


    Gruß,
    Thorsten

    Kommentar


      #3
      Zitat von thoweiss Beitrag anzeigen
      da ist eine Rule hinterlegt die die Sonnenauf-und Untergangszeiten berechnet.
      nicht ganz :-) Sie berechnet die Sonnenhöhe und den Azimut (auch zu finden unter https://knx-user-forum.de/openhab/21...affstores.html). Wenn Du nun noch eine Regel schreibst, die auf Basis der Sonnenhöhe entscheidet, was Sonnenuntergang bedeutet, wärest Du am Ziel:

      Code:
      rule "calculate dawn"
      when
        Item Sun_Height changed
      then
        Sun_Dawn_Solar.postUpdate( if (sonnenhoehe < 0) ON else OFF )
        Sun_Dawn_Civil.postUpdate( if (sonnenhoehe < -6) ON else OFF )
        Sun_Dawn_Nautical.postUpdate( if (sonnenhoehe < -12) ON else OFF )
        Sun_Dawn_Astronomical.postUpdate( if (sonnenhoehe < -18) ON else OFF)
      end

      und dann kannst Du eine Regel anlegen, die Deine Rolländen fährt:

      Code:
      rule "move blinds when dawn"
      when
        Item Sun_Dawn_Astronomical changed to ON // oder nach belieben andere Dawn-Ausprägungen
      then
        Blinds_GF_xxx.sendCommand(DOWN)
      end

      Hoffe das hilft,

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

      Kommentar


        #4
        Danke schonmal! Ich wollte dies nun ausprobieren und habe folgenden Code in die Rule-Datei gepackt:
        Code:
        import org.openhab.core.library.types.*
        import java.lang.Math
        
        
        // Constants
        var Number K = 0.017453
        
        // Change this reflecting your destination
        var Number latitude = 49.640000
        var Number longitude = 08.640000
        
        
        rule "Set Sun sonnenhoehe and Dawn States"
        when
        	Time cron "0 0/5 * * * ?"
        then
        	var Number tageszahl
        	var Number deklination
        	var Number zeitgleichung
        	var Number stundenwinkel
        	var Number x 
        	var Number y
        	var Number sonnenhoehe
        	var Number azimut
        	
        	var month  = now.getMonthOfYear
        	var day    = now.getDayOfMonth
        	var hour   = now.getHourOfDay
        	var minute = now.getMinuteOfHour
        	
        	// Source: http://www.jgiesen.de/SME/tk/index.htm
        	tageszahl = (month - 1) * 30 + day + hour / 24 
        	deklination = -23.45 * Math::cos((K * 360 * (tageszahl + 10) / 365).doubleValue)
        	zeitgleichung = 60.0 * (-0.171 * Math::sin((0.0337*tageszahl+0.465).doubleValue) - 0.1299 * Math::sin((0.01787*tageszahl-0.168).doubleValue))
        	stundenwinkel = 15.0 * (hour.doubleValue + (minute.doubleValue/60.0) - (15.0-longitude)/15.0 - 12.0 + zeitgleichung/60.0)
        	x = Math::sin((K * latitude).doubleValue()) * Math::sin((K * deklination).doubleValue()) + Math::cos((K * latitude).doubleValue()) * Math::cos((K * deklination).doubleValue()) * Math::cos((K * stundenwinkel).doubleValue())
        	y = - (Math::sin((K*latitude).doubleValue) * x - Math::sin((K*deklination).doubleValue)) / (Math::cos((K*latitude).doubleValue) * Math::sin(Math::acos(x.doubleValue)))
        	sonnenhoehe = Math::asin(x.doubleValue) / K
        	
        	var break = hour.doubleValue + (minute.doubleValue/60.0) <= 12.0 + (15.0-longitude)/15.0 - zeitgleichung/60.0 
        	if (break) {
        		azimut = Math::acos(y.doubleValue) / K
        	} else {
        		azimut = 360.0 - Math::acos(y.doubleValue) / K
        	}
        	 
        	logDebug("Sun.rules", "month: " + month)
        	logDebug("Sun.rules", "day: " + day)
        	logDebug("Sun.rules", "hour: " + hour)
        	logDebug("Sun.rules", "minute: " + minute)
        	logDebug("Sun.rules", "tageszahl: " + tageszahl)
        	logDebug("Sun.rules", "deklination: " + deklination)
        	logDebug("Sun.rules", "zeitgleichung: " + zeitgleichung)
        	logDebug("Sun.rules", "stundenwinkel: " + stundenwinkel)
        	logDebug("Sun.rules", "x: " + x)
        	logDebug("Sun.rules", "y: " + y)
        	logDebug("Sun.rules", "sonnenhoehe: " + sonnenhoehe)
        	logDebug("Sun.rules", "azimut: " + azimut)
        	
        	logDebug("Sun.rules", "Calculated new SunHeight angle '" + sonnenhoehe + "°'")
        	logDebug("Sun.rules", "Calculated new Azimut angle '" + sonnenhoehe + "°'")
        	
        	// Send all calculations to the event bus
        	
        	Sun_Height.postUpdate(sonnenhoehe)
        	Sun_Azimut.postUpdate(azimut)
        	
        	Sun_Dawn_Solar.postUpdate( if (sonnenhoehe < 0) ON else OFF )
        	Sun_Dawn_Civil.postUpdate( if (sonnenhoehe < 6) ON else OFF )
        	Sun_Dawn_Nautical.postUpdate( if (sonnenhoehe < 12) ON else OFF )
        	Sun_Dawn_Astronomical.postUpdate( if (sonnenhoehe < 18) ON else OFF )
        end
        
        rule "calculate dawn"
        when
          Item Sun_Height changed
        then
          Sun_Dawn_Solar.postUpdate( if (sonnenhoehe < 0) ON else OFF )
          Sun_Dawn_Civil.postUpdate( if (sonnenhoehe < -6) ON else OFF )
          Sun_Dawn_Nautical.postUpdate( if (sonnenhoehe < -12) ON else OFF )
          Sun_Dawn_Astronomical.postUpdate( if (sonnenhoehe < -18) ON else OFF)
        end
        
        
        rule "move blinds when dawn"
        when
          Item Sun_Dawn_Astronomical changed to ON // oder nach belieben andere Dawn-Ausprägungen
        then
          Shutter_GEG_LivingWindow.sendCommand(DOWN)
        end
        Allerdings bekomme ich dann folgende Ausgabe im Log:
        Code:
        21:40:00.156 ERROR o.o.m.r.i.e.ExecuteRuleJob[:77]- Error during the execution of rule Set Sun sonnenhoehe and Dawn States
        java.lang.RuntimeException: The name 'Sun_Height' cannot be resolved to an item or type.
        	at org.openhab.model.script.interpreter.ScriptInterpreter.internalFeatureCallDispatch(ScriptInterpreter.java:87)
        	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._evaluateAbstractFeatureCall(XbaseInterpreter.java:658)
        	at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        	at java.lang.reflect.Method.invoke(Unknown Source)
        	at org.eclipse.xtext.util.PolymorphicDispatcher.invoke(PolymorphicDispatcher.java:291)
        Wo ist der Fehler?

        Kommentar


          #5
          in einer der configuration/items-Dateien musst du natürtlich das entsprechende Item noch defineiren. In deinem Fall das Item Sun_Height.

          Vermutlich werden die anderen Items auch noch fehlen

          Kommentar


            #6
            Danke,

            kannst du mir auch noch sagen, wie ich die anlegen muß? Ich habe im Wiki nix gefunden.

            Gruß Jan

            Kommentar


              #7
              So sollte es funktionieren

              Code:
              Switch Sun_DawnTwilight_Solar           "Solar"         <none>  (Sun) // height < 0
              Switch Sun_DawnTwilight_Civil           "Civil"         <none>  (Sun) // height < -6
              Switch Sun_DawnTwilight_Nautical        "Nautical"      <none>  (Sun) // height < -12
              Switch Sun_DawnTwilight_Astronomical    "Astronomical"  <none>  (Sun) // height < -18
              Number Sun_Azimut               "Azimut [%.1f <B0>]"    <none> (Sun)
              Number Sun_Height               "Sonnenhöhe [%.1f <B0>]"     <none> (Sun)

              Kommentar


                #8
                Danke!
                Ich habe den Code von dir nun in meine Items-Datei eingefügt. Jetzt bekomme ich bei der Ausführung aber folgendes:
                Code:
                19:50:01.078 ERROR o.o.m.r.i.e.ExecuteRuleJob[:77]- Error during the execution of rule Set Sun sonnenhoehe and Dawn States
                org.eclipse.emf.common.util.WrappedException: org.eclipse.xtext.util.PolymorphicDispatcher$NoSuchMethodException: Couldn't find method ''_assignValue'' for objects [org.eclipse.xtext.common.types.impl.JvmGenericTypeImplCustom@874920 (visibility: PUBLIC, simpleName: NumberItem, identifier: org.openhab.core.library.items.NumberItem) (abstract: false, static: false, final: false, packageName: org.openhab.core.library.items) (interface: false), <null> sonnenhoehe <XBinaryOperationImplCustom>, -11.67822304, org.eclipse.xtext.xbase.interpreter.impl.DefaultEvaluationContext@24d892, org.eclipse.xtext.util.CancelIndicator$1@b0b3b0]
                	at org.eclipse.xtext.util.Exceptions.throwUncheckedException(Exceptions.java:23)
                	at org.eclipse.xtext.util.PolymorphicDispatcher$DefaultErrorHandler.handle(PolymorphicDispatcher.java:41)
                	at org.eclipse.xtext.util.PolymorphicDispatcher.handleNoSuchMethod(PolymorphicDispatcher.java:304)
                	at org.eclipse.xtext.util.PolymorphicDispatcher.invoke(PolymorphicDispatcher.java:286)
                	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.assignValue(XbaseInterpreter.java:849)
                	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._evaluateAssignment(XbaseInterpreter.java:844)
                Caused by: org.eclipse.xtext.util.PolymorphicDispatcher$NoSuchMethodException: Couldn't find method ''_assignValue'' for objects [org.eclipse.xtext.common.types.impl.JvmGenericTypeImplCustom@874920 (visibility: PUBLIC, simpleName: NumberItem, identifier: org.openhab.core.library.items.NumberItem) (abstract: false, static: false, final: false, packageName: org.openhab.core.library.items) (interface: false), <null> sonnenhoehe <XBinaryOperationImplCustom>, -11.67822304, org.eclipse.xtext.xbase.interpreter.impl.DefaultEvaluationContext@24d892, org.eclipse.xtext.util.CancelIndicator$1@b0b3b0]
                	at org.eclipse.xtext.util.PolymorphicDispatcher.handleNoSuchMethod(PolymorphicDispatcher.java:304)
                	at org.eclipse.xtext.util.PolymorphicDispatcher.invoke(PolymorphicDispatcher.java:286)
                	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.assignValue(XbaseInterpreter.java:849)
                	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._evaluateAssignment(XbaseInterpreter.java:844)
                	at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source)
                	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                Zur Vollständigkeit:

                Meine Items-Datei hat nun folgenden Anhang:
                Code:
                ...
                /* sonstige Items */
                Switch Sun_DawnTwilight_Solar           "Solar"         <none>  (Sun) // height < 0
                Switch Sun_DawnTwilight_Civil           "Civil"         <none>  (Sun) // height < -6
                Switch Sun_DawnTwilight_Nautical        "Nautical"      <none>  (Sun) // height < -12
                Switch Sun_DawnTwilight_Astronomical    "Astronomical"  <none>  (Sun) // height < -18
                Number Sun_Azimut               "Azimut [%.1f <B0>]"    <none> (Sun)
                Number Sun_Height               "Sonnenhoehe [%.1f <B0>]"     <none> (Sun)
                Number sonnenhoehe               "Sonnenhoehe [%.1f <B0>]"     <none> (Sun)
                ...
                und meine rules-Datei sieht folgendermaßen aus:

                Code:
                import org.openhab.core.library.types.*
                import java.lang.Math
                
                
                // Constants
                var Number K = 0.017453
                
                // Change this reflecting your destination
                var Number latitude = 49.640000
                var Number longitude = 08.640000
                
                
                rule "Set Sun sonnenhoehe and Dawn States"
                when
                	Time cron "0 0/5 * * * ?"
                then
                	var Number tageszahl
                	var Number deklination
                	var Number zeitgleichung
                	var Number stundenwinkel
                	var Number x 
                	var Number y
                	var Number sonnenhoehe
                	var Number azimut
                	
                	var month  = now.getMonthOfYear
                	var day    = now.getDayOfMonth
                	var hour   = now.getHourOfDay
                	var minute = now.getMinuteOfHour
                	
                	// Source: http://www.jgiesen.de/SME/tk/index.htm
                	tageszahl = (month - 1) * 30 + day + hour / 24 
                	deklination = -23.45 * Math::cos((K * 360 * (tageszahl + 10) / 365).doubleValue)
                	zeitgleichung = 60.0 * (-0.171 * Math::sin((0.0337*tageszahl+0.465).doubleValue) - 0.1299 * Math::sin((0.01787*tageszahl-0.168).doubleValue))
                	stundenwinkel = 15.0 * (hour.doubleValue + (minute.doubleValue/60.0) - (15.0-longitude)/15.0 - 12.0 + zeitgleichung/60.0)
                	x = Math::sin((K * latitude).doubleValue()) * Math::sin((K * deklination).doubleValue()) + Math::cos((K * latitude).doubleValue()) * Math::cos((K * deklination).doubleValue()) * Math::cos((K * stundenwinkel).doubleValue())
                	y = - (Math::sin((K*latitude).doubleValue) * x - Math::sin((K*deklination).doubleValue)) / (Math::cos((K*latitude).doubleValue) * Math::sin(Math::acos(x.doubleValue)))
                	sonnenhoehe = Math::asin(x.doubleValue) / K
                	
                	var break = hour.doubleValue + (minute.doubleValue/60.0) <= 12.0 + (15.0-longitude)/15.0 - zeitgleichung/60.0 
                	if (break) {
                		azimut = Math::acos(y.doubleValue) / K
                	} else {
                		azimut = 360.0 - Math::acos(y.doubleValue) / K
                	}
                	 
                	logDebug("Sun.rules", "month: " + month)
                	logDebug("Sun.rules", "day: " + day)
                	logDebug("Sun.rules", "hour: " + hour)
                	logDebug("Sun.rules", "minute: " + minute)
                	logDebug("Sun.rules", "tageszahl: " + tageszahl)
                	logDebug("Sun.rules", "deklination: " + deklination)
                	logDebug("Sun.rules", "zeitgleichung: " + zeitgleichung)
                	logDebug("Sun.rules", "stundenwinkel: " + stundenwinkel)
                	logDebug("Sun.rules", "x: " + x)
                	logDebug("Sun.rules", "y: " + y)
                	logDebug("Sun.rules", "sonnenhoehe: " + sonnenhoehe)
                	logDebug("Sun.rules", "azimut: " + azimut)
                	
                	logDebug("Sun.rules", "Calculated new SunHeight angle '" + sonnenhoehe + "°'")
                	logDebug("Sun.rules", "Calculated new Azimut angle '" + sonnenhoehe + "°'")
                	
                	// Send all calculations to the event bus
                	
                	Sun_Height.postUpdate(sonnenhoehe)
                	Sun_Azimut.postUpdate(azimut)
                	
                	Sun_DawnTwilight_Solar.postUpdate( if (sonnenhoehe < 0) ON else OFF )
                	Sun_DawnTwilight_Civil.postUpdate( if (sonnenhoehe < 6) ON else OFF )
                	Sun_DawnTwilight_Nautical.postUpdate( if (sonnenhoehe < 12) ON else OFF )
                	Sun_DawnTwilight_Astronomical.postUpdate( if (sonnenhoehe < 18) ON else OFF )
                end
                
                rule "calculate dawn"
                when
                  Item Sun_Height changed
                then
                  Sun_DawnTwilight_Solar.postUpdate( if (sonnenhoehe < 0) ON else OFF )
                  Sun_DawnTwilight_Civil.postUpdate( if (sonnenhoehe < -6) ON else OFF )
                  Sun_DawnTwilight_Nautical.postUpdate( if (sonnenhoehe < -12) ON else OFF )
                  Sun_DawnTwilight_Astronomical.postUpdate( if (sonnenhoehe < -18) ON else OFF)
                end
                
                
                rule "move blinds when dawn"
                when
                  Item Sun_DawnTwilight_Astronomical changed to ON // oder nach belieben andere Dawn-Ausprägungen
                then
                  Shutter_GEG_LivingWindow.sendCommand(DOWN)
                end

                Kommentar


                  #9
                  Hi Jan,

                  passe die Regel mal wie folgt an:

                  Code:
                  import org.openhab.core.library.types.*
                  import java.lang.Math
                  
                  
                  // Constants
                  var Number K = 0.017453
                  
                  // Change this reflecting your destination
                  var Number latitude = 49.640000
                  var Number longitude = 08.640000
                  
                  
                  rule "Set Sun sonnenhoehe and Dawn States"
                  when
                  	Time cron "0 0/5 * * * ?"
                  then
                  	var Number tageszahl
                  	var Number deklination
                  	var Number zeitgleichung
                  	var Number stundenwinkel
                  	var Number x 
                  	var Number y
                  	var Number sonnenhoehe
                  	var Number azimut
                  	
                  	var month  = now.getMonthOfYear
                  	var day    = now.getDayOfMonth
                  	var hour   = now.getHourOfDay
                  	var minute = now.getMinuteOfHour
                  	
                  	// Source: http://www.jgiesen.de/SME/tk/index.htm
                  	tageszahl = (month - 1) * 30 + day + hour / 24 
                  	deklination = -23.45 * Math::cos((K * 360 * (tageszahl + 10) / 365).doubleValue)
                  	zeitgleichung = 60.0 * (-0.171 * Math::sin((0.0337*tageszahl+0.465).doubleValue) - 0.1299 * Math::sin((0.01787*tageszahl-0.168).doubleValue))
                  	stundenwinkel = 15.0 * (hour.doubleValue + (minute.doubleValue/60.0) - (15.0-longitude)/15.0 - 12.0 + zeitgleichung/60.0)
                  	x = Math::sin((K * latitude).doubleValue()) * Math::sin((K * deklination).doubleValue()) + Math::cos((K * latitude).doubleValue()) * Math::cos((K * deklination).doubleValue()) * Math::cos((K * stundenwinkel).doubleValue())
                  	y = - (Math::sin((K*latitude).doubleValue) * x - Math::sin((K*deklination).doubleValue)) / (Math::cos((K*latitude).doubleValue) * Math::sin(Math::acos(x.doubleValue)))
                  	sonnenhoehe = Math::asin(x.doubleValue) / K
                  	
                  	var break = hour.doubleValue + (minute.doubleValue/60.0) <= 12.0 + (15.0-longitude)/15.0 - zeitgleichung/60.0 
                  	if (break) {
                  		azimut = Math::acos(y.doubleValue) / K
                  	} else {
                  		azimut = 360.0 - Math::acos(y.doubleValue) / K
                  	}
                  	 	 
                  	logDebug("Sun.rules", "month: " + month)
                  	logDebug("Sun.rules", "day: " + day)
                  	logDebug("Sun.rules", "hour: " + hour)
                  	logDebug("Sun.rules", "minute: " + minute)
                  	logDebug("Sun.rules", "tageszahl: " + tageszahl)
                  	logDebug("Sun.rules", "deklination: " + deklination)
                  	logDebug("Sun.rules", "zeitgleichung: " + zeitgleichung)
                  	logDebug("Sun.rules", "stundenwinkel: " + stundenwinkel)
                  	logDebug("Sun.rules", "x: " + x)
                  	logDebug("Sun.rules", "y: " + y)
                  	logDebug("Sun.rules", "sonnenhoehe: " + sonnenhoehe)
                  	logDebug("Sun.rules", "azimut: " + azimut)
                  	
                  	logDebug("Sun.rules", "Calculated new SunHeight angle '" + sonnenhoehe + "°'")
                  	logDebug("Sun.rules", "Calculated new Azimut angle '" + azimut + "°'")
                  	
                  	// Berechnungen auf den Bus schicken ...
                  
                  	Sun_Height.postUpdate(sonnenhoehe)
                  	Sun_Azimut.postUpdate(azimut)
                  end
                  
                  rule "calculate dawn"
                  when
                    Item Sun_Height changed
                  then
                    Sun_Dawn_Solar.postUpdate( if (Sun_Height.state < 0) ON else OFF )
                    Sun_Dawn_Civil.postUpdate( if (Sun_Height.state < -6) ON else OFF )
                    Sun_Dawn_Nautical.postUpdate( if (Sun_Height.state < -12) ON else OFF )
                    Sun_Dawn_Astronomical.postUpdate( if (Sun_Height.state < -18) ON else OFF)
                  end
                  
                  
                  rule "move blinds when dawn"
                  when
                    Item Sun_Dawn_Astronomical changed to ON
                  then
                    Shutter_GEG_LivingWindow.sendCommand(DOWN)
                  end
                  In der Fehlermeldung wurde angemeckert, dass die Variable "sonnenhoehe" nicht bekannt ist. Die hast Du tatsächlich in der Regel 'calculate dawn' verwendet.

                  Klappt es nun?

                  Gruß,

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

                  Kommentar


                    #10
                    Es funktioniert!
                    Vielen, vielen Dank!

                    Kommentar


                      #11
                      Na also, prima!
                      Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                      Kommentar


                        #12
                        Sun_Dawn_Solar.postUpdate( if (Sun_Height.state < 0) ON else OFF )
                        Sun_Dawn_Civil.postUpdate( if (Sun_Height.state < -6) ON else OFF )
                        Sun_Dawn_Nautical.postUpdate( if (Sun_Height.state < -12) ON else OFF )
                        Sun_Dawn_Astronomical.postUpdate( if (Sun_Height.state < -18) ON else OFF)
                        Nach meinem Verständnis sind da noch zwei Bugs: Wenn ich Wikipedia richtig verstehe ist die Bürgerliche Dämmerung definiert als 0<= Sonnenhöhe <= 6 , die anderen entsprechend.

                        Außerdem dürfte es so morgens beim Sonnenaufgang keine ON Events geben, da der Status vom vorhergehenden Sonnenuntergang noch auf ON steht. Da kann ich bei Gelegenheit noch ein Update posten, werde nur heute keine Zeit haben das vorher wenigstens mal kurz zu testen.

                        Und noch eine Frage zu den Logiken: Ich sehe es richtig, dass die Abfrage " Item Sun_Dawn_Astronomical changed to ON" nur war ist, wenn es den Statuswechsel von OFF zu ON gegeben hat und nicht jedes mal, wenn mehrere postUpdate(ON) hintereinander auf den Event-Bus geschickt werden?

                        Kommentar


                          #13
                          Hab gerade zufällig das Beispiel zum Sonnenstand im Wiki gesehen.

                          Dort steht:
                          Sun_Dawn_Solar.postUpdate( if (sonnenhoehe < 0) ON else OFF )
                          Sun_Dawn_Civil.postUpdate( if (sonnenhoehe < 6) ON else OFF )
                          Sun_Dawn_Nautical.postUpdate( if (sonnenhoehe < 12) ON else OFF )
                          Sun_Dawn_Astronomical.postUpdate( if (sonnenhoehe < 18) ON else OFF )
                          Nach meinem Verständnis muss es mindestens -6, -12 und -18 heißen. Astronomisch korrekt müsste die vorhergehende Phase aber beim Erreichen der nächsten auch wieder deaktiviert werden. Außerdem Dawn ja nur morgens. Also z.B.

                          postUpdate(Sun_DawnTwilight_Civil_ext, if( (height < 0) && (height >= -6) && (hour < 12)) {ON} else {OFF})
                          Soll ich das berichtigen, für den Fall das irgendwer das für relevant hält...?

                          Kommentar


                            #14
                            Zitat von Jockel Beitrag anzeigen
                            Soll ich das berichtigen, für den Fall das irgendwer das für relevant hält...?
                            ja, bitte :-)
                            Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                            Kommentar


                              #15
                              Erledigt!

                              Kommentar

                              Lädt...
                              X