Zitat von Onkelandy
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Plugin darksky.net für Wetterdaten - wird Ende 2021 Abgeschaltet
Einklappen
X
-
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
-
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
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.Code:json_obj = response.json()
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.
- Likes 1
Kommentar
-
Naja den Bugfix hatte ich ja schon eingebaut, siehe oben. Bei mir lief es dann auch so.Zitat von Msinn Beitrag anzeigenDamit 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.
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:
Allerdings auch nach der Installation von 3.7 läuft SmartHomeNG nicht. :-(Code:sudo apt remove python3.5 sudo apt purge python3.5
Kommentar
-
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.Zitat von Msinn Beitrag anzeigenWas läuft nicht? Mit so globalgalaktischen Aussagen kann nich nichts anfangen.
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
-
Ja Danke, ist sonst zu kompliziert. Ich froh, dass es wieder läuft. Ja Raspberry Pi 3 Model B.Zitat von Onkelandy Beitrag anzeigenDann 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
-
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.Zitat von Onkelandy Beitrag anzeigenDas würde dann nach meinem raspi image schreien. Plug and play baby
Kommentar
-
Selbst das ist schon als Script drauf. Vielleicht findest ja ne zweite SD KarteZitat 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.
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:
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.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.
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


Kommentar