Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin darksky.net für Wetterdaten - wird Ende 2021 Abgeschaltet

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

    Zitat von Onkelandy Beitrag anzeigen
    Wie sieht da dein Ergebnis aus? Es muss da irgendwas von außen dazwischenpfuschen, anders kann ich's mir nicht erklären. Aber schauen wir uns mal das Ergebnis mit der Version im Anhang an.
    Danke für die Hilfe! Auch hier sind die Tage durcheinander. Also keine Änderung in dieser Sache.

    Kommentar


      Okay es gab wohl tatsächlich einen major change bei ordereddict in python 3.6.
      werde ne saubere Lösung posten

      Kommentar


        Ob es bei ordereddicts eine. Change gab weiss ich nicht. Es gab auf jeden Fall eine Neuimplementierung der dicts. Seit Python 3.6 behält ein dict die Reihenfolge der key-value Paare bei, uns ändert sie nicht evtl. bei jeder Zuweisung (wie in allen Vorversionen von Python). Das ist übrigens nicht als Feature dokumentiert worden, kann sich also mit kommenden Python Versionen evtl. Wieder ändern.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          Bei mir läuft aber noch python 3.5.3. Sollte ich da ein Update machen?

          Kommentar


            Ich habe wenn ich Python 3.5.3 einsetze auch eine gemischte Tagesfolge. Wenn ich Python 3.6.5 einsetze, stimmt die Reihenfolge der Tage bei mir.

            Das requests Package liefert im Plugin das Ergebnis der Abfrage
            Code:
            json_obj = response.json()
            als dict zurück. Damit ist die Reihenfolge im dict für Python Versionen vor 3.6 nicht garantiert. Um das zu beheben müsste man sich im Plugin die response als String liefern lassen und selbst in ein OrderedDict wandeln. Da das nur für Python 3.5 (wird von der nächsten SmartHomeNG Version nicht mehr unterstützt) gilt und darksky sowieso nur noch ca. ein Jahr läuft, glaube ich der Aufwand ist zu hoch.

            Du solltest das Problem für Dich lösen können, wenn Du eine Python 3.6 oder Python 3.7 Version installierst.


            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              Zitat von Msinn Beitrag anzeigen
              Damit ist die Reihenfolge im dict für Python Versionen vor 3.6 nicht garantiert. Um das zu beheben müsste man sich im Plugin die response als String liefern lassen und selbst in ein OrderedDict wandeln. Da das nur für Python 3.5 (wird von der nächsten SmartHomeNG Version nicht mehr unterstützt) gilt und darksky sowieso nur noch ca. ein Jahr läuft, glaube ich der Aufwand ist zu hoch.

              Du solltest das Problem für Dich lösen können, wenn Du eine Python 3.6 oder Python 3.7 Version installierst.
              Naja den Bugfix hatte ich ja schon eingebaut, siehe oben. Bei mir lief es dann auch so.

              Was die Python-Version betrifft, habe ich jetzt die 3.7. installiert. Ein Horror, wenn man das per Hand machen muss. Vor allem hatte ich erst 3.8. installiert und damit lief dann SmartHomeNG nicht. Ich habe dazu einige Anleitungen gefunden und wer es denn noch braucht, findet es hier:

              Installation von 3.7: https://installvirtual.com/install-p...-raspberry-pi/

              De-Installation von 3.5.3:

              Code:
              sudo apt remove python3.5
              sudo apt purge python3.5
              Allerdings auch nach der Installation von 3.7 läuft SmartHomeNG nicht. :-(

              Kommentar


                Was läuft nicht? Mit so globalgalaktischen Aussagen kann nich nichts anfangen.
                Zuletzt geändert von Msinn; 11.05.2020, 12:16.
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  Zitat von Msinn Beitrag anzeigen
                  Was läuft nicht? Mit so globalgalaktischen Aussagen kann nich nichts anfangen.
                  Ich weiß. Ich denke als Entwickleer, will man präzise Angaben oder Logs haben, ich weiß aber nicht, wo ich das finde, weil ich nur Laie bin. SmartHomenG startet nicht nach einem Reboot.

                  Vorerst habe ich jetzt die 3.5.3 wieder installiert. und es geht wieder. Ich vermute er sucht genau die Python-Version?

                  Wie kann ich das denn mit einer anderen python-Version testen oder einrichten? Denn allein einfach ein anderes Pythn zu installieren reicht nicht, richtig?

                  Kommentar


                    Dann würde ich vorschlagen, du nutzt vorerst mal deinen Bugfix mit Python 3.5.3
                    Auf welchem System läuft dein shng eigentlich? Raspi?

                    Kommentar


                      Zitat von Onkelandy Beitrag anzeigen
                      Dann würde ich vorschlagen, du nutzt vorerst mal deinen Bugfix mit Python 3.5.3
                      Auf welchem System läuft dein shng eigentlich? Raspi?
                      Ja Danke, ist sonst zu kompliziert. Ich froh, dass es wieder läuft. Ja Raspberry Pi 3 Model B.

                      Kommentar


                        Das würde dann nach meinem raspi image schreien. Plug and play baby

                        Kommentar


                          Zitat von Onkelandy Beitrag anzeigen
                          Das würde dann nach meinem raspi image schreien. Plug and play baby
                          Ja habe ich schon gesehen. Ich habe damals alles selbst aufgesetzt und später nicht alles als Image neu installiert, weil ich Angst habe, dass dann meine ganzen Sachen verloren gehen. Die Installation und Einrichtung von NGINX und LetsEncyrpt war alles andere als trivial.

                          Kommentar


                            Zitat von Cannon Beitrag anzeigen

                            Ja habe ich schon gesehen. Ich habe damals alles selbst aufgesetzt und später nicht alles als Image neu installiert, weil ich Angst habe, dass dann meine ganzen Sachen verloren gehen. Die Installation und Einrichtung von NGINX und LetsEncyrpt war alles andere als trivial.
                            Selbst das ist schon als Script drauf. Vielleicht findest ja ne zweite SD Karte

                            Kommentar


                              "darksky.daily.day0.precipProbability" gibt die Regenwahrscheinlichkeit zurück. Allerdings möchte ich nicht wissen, ob es heute geregnet hat, sondern nur, ob es heute noch regnen wird. Wie kann ich das am Besten ermitteln?

                              Ich nahm erst an, dass das mit den mean-Werten geht:

                              Die relevantesten Berechnungen zu den stundenweisen Vorhersagen sind aber bereits im Plugin implementiert. Und zwar sind unter den Items bzw. ds_matchstring mit den Namen precipProbability_mean, precipIntensity_mean und temperature_mean die durchschnittlichen Regen- und Temperaturvorhersagen abrufbar. Hierbei werden die entsprechenden stündlichen Einzelwerte herangezogen, um den Mittelwert zu erstellen. Auf diese Weise ist es z.B. möglich, die Regenwahrscheinlichkeit für den restlichen heutigen Tag abzufragen.
                              Aber die Werte sind ungeeignet, um eine Regenwahrscheinlichkeit zu ermitteln, weil hier nur stündliche Mittelwerte herangezogen werden, laut Doku. Und wenn ich davon ausgehe, dass es in 2 h am Tag zu 100% regnen wird und an 10 h zu 0%, dann hätte ich bei einer Restdauer des Tages von 12 h nur eine Wahrscheinlichkeit von 17 %. Bei der Regenwahrscheinlichkeit wären richtigerweise die max-Werte zu verwenden.

                              Kommentar


                                Es gibt im struct ein forecast_hourly mit den Einträge hour0, hour1, etc. hour0 ist die aktuelle Stunde, hour1 die nächste, etc. Da kannst du die precipProbability jeweils rauslesen und in einer Logik den Maximalwert errechnen.

                                Hab bei mir ein einfaches eval, um die Wahrscheinlichkeit für die nächsten beiden Stunden zu errechnen:
                                Code:
                                max(sh.darksky.hourly.hour0.precipProbability.property.value, sh.darksky.hourly.hour1.precipProbability.property.value)

                                Kommentar

                                Lädt...
                                X