Ankündigung

Einklappen
Keine Ankündigung bisher.

openHab, Synology und Sommerzeit

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

    openHab, Synology und Sommerzeit

    Hallo,
    wie letztes Jahr auch habe ich Probleme mit der Sommerzeit auf der Synology (DS 114, DSM 5 update 1).
    Vielleicht gibt es hier ja auch noch Syno Besitzer die es hinbekommen haben.
    Syno läuft normalerweise auf ntp, Locale auf Berlin/Amsterdam usw.
    Die Zeiten auf der Syno stimmen mit der aktuellen Sommerzeit überein.

    openHAB wird aus /usr/syno/etc/rc.d/ bzw. über den Aufgabenplaner gestartet.
    Alle Zeiten (now.getHourOfDay(), cron) sind GMT+1, also "Winterzeit"
    Diverse Versuche über TZ andere Werte zu setzen sind gescheitert.
    Im Moment läuft die Syno per Hand eine Stunde später, dann stimmen zwar dort die Zeiten nicht, aber in openHAB stimmen die Zeiten.

    Hat jemand eine Lösung ?

    Holger

    #2
    Hallo,

    das Problem tritt auch bei der Sonnenstandsberechnung auf, sobald der Rechner automatisch auf Sommerzeit umstellt. In diesem Fall stimmt die Sonnenstandsberechnung nicht mehr.

    Generell sollten zwei Stundenwerte abfragbar sein: Ohne und mit Sommerzeit
    Für einige Regeln macht Sommerzeit Sinn, für anderen wie Sonnenstandsberechnung die normale Astronomische Zeit.
    Wie ich sie abfragen kann habe ich noch nicht gefunden.

    Oder habe ich einen logische Fehler in meiner Überlegung?

    Gruß Ansgar

    Kommentar


      #3
      Ich hatte am WE so einen ähnlichen Fall beim Einlesen von Sonnenaufgang und Untergang der openweather-XML-Schnittstelle
      siehe
      https://knx-user-forum.de/openhab/32...oundation.html

      Ich weiss jetzt nicht, ob das mit euren Problem direkt zusammen hängt, nur habe ich gesehen, dass der DateTime-Itemtype die Timezone nicht beachtet, wenn ein String geparsed wird.

      Im PullRequest/Patch habe ich das Problem mal beschrieben:
      DateTimeType with timezone detection

      Grüße

      boecko

      Kommentar


        #4
        Hallo,

        bei mir tritt es in der Regel aus Sample Rules auf github auf, die berechnet die Sonnenhöhe und den Azimut. Sie holt sich mit now.getHourOfDay die aktuelle Uhrzeit und somit einmal Sommerzeit und im Winter die Winterzeit. Die Sonne kennt aber keine Sommerzeit ;-) und somit werden falsche Werte ausgegeben. Nach meiner Ansicht kann die Regel nur funktionieren wenn hier keine Sommerzeitverschiebung einrechnet, nur wie?

        Gruß Ansgar


        Sent from my iPad using Tapatalk

        Kommentar


          #5
          Zitat von abodenbe Beitrag anzeigen
          Hallo,

          bei mir tritt es in der Regel aus Sample Rules auf github auf, die berechnet die Sonnenhöhe und den Azimut. Sie holt sich mit now.getHourOfDay die aktuelle Uhrzeit und somit einmal Sommerzeit und im Winter die Winterzeit. Die Sonne kennt aber keine Sommerzeit ;-) und somit werden falsche Werte ausgegeben. Nach meiner Ansicht kann die Regel nur funktionieren wenn hier keine Sommerzeitverschiebung einrechnet, nur wie?

          Gruß Ansgar
          Da ist ein Denkfehler
          Die Sonne kennt überhaupt keine Zeit, sondern nur die Person an Erdposition X kennt seine Zeitzone.

          Beispiel anhand der Daten von openweather
          http://api.openweathermap.org/data/2...metric&lang=de
          Code:
          ..
          <sun rise="2014-04-02T04:36:58" set="2014-04-02T17:42:39"/>
          ...
          Die Daten hier sind in UTC berechnet. Wenn ich diese jetzt einfach in das System (=OpenHab) lade, nimmt das System meine Lokale Zeitzone an, was nicht das gewünschte Ergebnis ist.

          Code:
          XML => Java Date
          Winterzeit
          2014-03-02T04:36:58 => Sun Mar 02 04:36:58 CET 2014
          Sommerzeit
          2014-04-02T04:36:58 => Wed Apr 02 04:36:58 CEST 2014
          [B]FALSCH[/B]
          jetzt mit Zeitzoneninfo:
          Code:
          XML => Java Date
          Winterzeit
          2014-03-02T04:36:58UTC => Sun Mar 02 05:36:58 CET 2014
          Sommerzeit
          2014-04-02T04:36:58UTC => Wed Apr 02 06:36:58 CEST 2014
          [B]RICHTIG[/B]
          In dem Patch auf github habe ich das nochmals beschrieben.
          https://github.com/openhab/openhab/pull/960
          https://github.com/openhab/openhab/pull/960/files

          Kommentar


            #6
            In meiner Frage ging es aber nicht um den Sonnenstand sondern um die Zeitzone mit der der Job läuft und damit falsche Cron Job Zeiten. Und das auf einem Synology Server....
            Holger

            Kommentar


              #7
              Hast du schon versucht, openHab mit den Parametern
              Code:
              java -Duser.timezone="Europe/Berlin"
              oder
              Code:
              java -Duser.timezone="CET"
              zu starten ?

              Kommentar


                #8
                Danke ! Beides scheint zu funktionieren. Beobachte das mal die nächsten Tage.
                Holger

                Kommentar


                  #9
                  Hallo User boecko. was genau meinst du mit "Hast du schon versucht, openHab mit den Parametern ... zu starten ? muss ich das als Parameter hinter start.sh eingeben ? falls ja, weisst du wie man das machen kann wenn man Openhab als Package auf einer Synology installiert hat ?

                  Kommentar


                    #10
                    Du kannst die Parameter in start.sh eintragen, zusätzlich zu den vorhandenen (sieh Dir die Datei einfach mal an, dann wird's sofort klar...)

                    Kommentar


                      #11
                      Hallo udo1toni. Besten Dank für den hint. Habs eingetragen. habs versucht mit "" und ohne "", CET und Europe/Berlin. Leider wird kein Format angenommen. die Timestamps im Log und auch im Chart sind immer noch auf GMT.
                      Kann es sein dass die Java Version (Java(TM) SE Embedded Runtime Environment (build 1.8.0_51-b07, headless) auf der Synology den Parameter gar nicht unterstützt ?

                      Kommentar


                        #12
                        Ich hab auch sehr lange Problemen gehabt um die Richtige Zeit zu bekommen.
                        Aber Heute hab ich es gelöst.
                        Wie @boeko schon gesagt hat muss man in die Startdatei die Zeitzone eintragen. Weil es um ein Synology handelt hab ich es im start_runtime.sh eingetragen.
                        Mein start_runtime sieht so aus
                        Code:
                         [FONT=Lucida Console][SIZE=10px]echo Launching the openHAB runtime...[/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]PROGRAM="java     -Dosgi.clean=true [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Declipse.ignoreApp=true [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Dosgi.noShutdown=true [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Djetty.port=${HTTP_PORT} [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Djetty.port.ssl=${HTTPS_PORT}     [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Djetty.home=. [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Dlogback.configurationFile=configurations/logback.xml [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Dfelix.fileinstall.dir=addons [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Duser.timezone="Europe/Amsterdam"[/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Djava.library.path=lib [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Djava.security.auth.login.config=./etc/login.conf [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Dorg.quartz.properties=./etc/quartz.properties [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -Djava.awt.headless=true [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -jar $cp $* [/SIZE][/FONT]
                          [FONT=Lucida Console][SIZE=10px]        -console ${TELNET_PORT}"[/SIZE][/FONT]
                        Versuch es noch mal. Bei mir hat es geholfen.

                        Kommentar


                          #13
                          Hallo Placemaster. Besten Dank für den Tip. Leider hat auch das nichts gebracht :-( ; vermutlich liegt es an der Java Version der alten DS111 die das nicht unterstützt. Heute morgen hatte ich zwar extra noch ein Paket Update von Java gemacht. Das hat aber leider nach nicht geholfen; Im Gegenteil, seither läuft das Netatmo Binding nicht mehr :-(

                          Kommentar


                            #14
                            Ich hab Java Embedded version 7 auf den Synology DS1813+. Java SE Embedded 7 (1.7.0_75-0031). Vielleicht können Sie das noch versuchen.

                            Kommentar


                              #15
                              Bei mir hat es mit dem Eintrag damals funktioniert.
                              Ich verwende allerdings kein Package.
                              Java ist 1.7.0_75-0034, hat aber schon vorher funktioniert, DS ist eine 114

                              Holger

                              Kommentar

                              Lädt...
                              X