[gelöst] Wetterdaten in Abhängigkeit von GPS-Standort

Begonnen von pure-current, 23 Februar 2019, 14:25:27

Vorheriges Thema - Nächstes Thema

amenomade

#15
Ja, aber
Zitatzig mal "set ... update"
bringt nichts

Also nochmal: Du hast um 23:00 Uhr die Werte geholt, dann anschliessend die Attribute in global geändert, und dann ist um 9:00 Uhr nichts neues gekommen?

Das klingt normal. Diese Werte werden beim Define des Devices eingelesen. Solange kein neues Define vom Weather Modul, passiert nichts.

Deswegen: defmod
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Das kann so nicht gehen. Die Werte für die Location werden doch nicht jedesmal vom global Device geladen, sondern einmalig nach einem define oder defmod und danach im Cache vorgehalten.
Es muss also schon noch ein defmod gemacht werden, was wiederum eine save nach sich ziehen müsste da strukturelle Änderung.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amenomade

Zitat von: CoolTux am 24 Februar 2019, 11:47:49
Das kann so nicht gehen. Die Werte für die Location werden doch nicht jedesmal vom global Device geladen, sondern einmalig nach einem define oder defmod und danach im Cache vorgehalten.
Es muss also schon noch ein defmod gemacht werden, was wiederum eine save nach sich ziehen müsste da strukturelle Änderung.
Genau ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

pure-current

also dann doch zurück zu meiner ursprünglichen Idee mit defmod....

Ich hab jetzt in mein ursprüngliches defmod die Schreibweise von hanami eingebaut:
define change_GPS_Weather at +*00:01:00 {fhem("defmod Wetter_GPS Weather location=".ReadingsVal("GPS","lat","").",".ReadingsVal("GPS","lon","")." API=DarkSkyAPI,cachemaxage:600 apikey=02701858558221516c56f3faf5bc8e5c interval=3600 lang=de")}
(steht nur zu Testzwecken auf 1 min.)

Ist etwas lang und unübersichtlich geworden, scheint aber zu gehen.
Nach jedem Update erscheint das rote "?" bei save config.

Wie würdet Ihr jetzt noch das automatische Speichern der config realisieren? An das "at" als zusätzlichen Befehl mit anhängen?
Raspberry PI mit drei stackable CC (2x866MHz-HM&WMBUS, 1x433MHz-Somfy)
HM-LAN (Keymatic, Dimmer, Bewegungsmelder, Rolladen, Lichtschalter, KFM100)
div. Tasmota via MQTT

2. Raspberry Pi/FHEM im Wohnmobil (Heizungsregelung,GPS) Batterieüberwachung-toDo

Christoph Morrison

Zitat von: CoolTux am 24 Februar 2019, 11:47:49
Das kann so nicht gehen. Die Werte für die Location werden doch nicht jedesmal vom global Device geladen, sondern einmalig nach einem define oder defmod und danach im Cache vorgehalten.
Es muss also schon noch ein defmod gemacht werden, was wiederum eine save nach sich ziehen müsste da strukturelle Änderung.

Interessanter Punkt. Ist irgendwo dokumentiert, dass Weather die Positionsdaten zusätzlich zu global persistiert? Sollte es zumindest, imho, besser noch: Weather/die Plugins sollten die Daten nicht persistieren und aus global lesen, wenn der User im Rahmen der Definition nichts anderes angegeben hat.

(ceterum censeo: Dies wäre übrigens der Punkt, wo ich mir wünschen würde, dass die Diskussion abgetrennt wird)

amenomade

Das ist aber klar: etwas, was zu DEF gehört (auch wenn es eine Abweichmöglichkeit gibt, wie hier über global) wird nie dynamisch aktualisiert. Das ist bei allen Devices in Fhem gleich.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Christoph Morrison

Zitat von: amenomade am 24 Februar 2019, 13:00:12
Das ist aber klar: etwas, was zu DEF gehört (auch wenn es eine Abweichmöglichkeit gibt, wie hier über global) wird nie dynamisch aktualisiert. Das ist bei allen Devices in Fhem gleich.

So klar ist das nicht, denn z.B. wird Twilight das nicht so machen, wenn man global als Quelle für die Positionsdaten angibt. Warum auch? Die Daten sind in global persistiert, dann halte ich die doch nicht noch mal im Modul vor. Und offenbar, siehe diesen Thread, gibt es FHEMs die sich bewegen (ich hab auch so eins im Auto, da ich aber keine mobil-lokalen Wetterdaten brauche, ist mir das nie aufgefallen).

Das sollte man zumindest mal diskutieren, bzw. dokumentieren.

(Immerhin ist mir gerade der Gedanke gekommen, dass ich mir ein zusätzliches mobiles FHEM für (Geschäfts-)Reisen bauen könnte, dass mir ortsbezogene Infos liefert, z.B. wie hier die Wettervorhersage, aber auch Twilight für den Wecker etc.)

CoolTux

Zitat von: Christoph Morrison am 24 Februar 2019, 12:49:13
Interessanter Punkt. Ist irgendwo dokumentiert, dass Weather die Positionsdaten zusätzlich zu global persistiert? Sollte es zumindest, imho, besser noch: Weather/die Plugins sollten die Daten nicht persistieren und aus global lesen, wenn der User im Rahmen der Definition nichts anderes angegeben hat.

(ceterum censeo: Dies wäre übrigens der Punkt, wo ich mir wünschen würde, dass die Diskussion abgetrennt wird)

https://github.com/LeonGaultier/fhem-weather/blob/master/API-Modulebeschreibung%20fuer%2059_Weather.odt

Ich bilde mir ein hier etwas dazu geschrieben zu haben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

KernSani

Vielleicht tatsächlich ein separater Thread, aber ich würde auch erwarten, dass sich eine Änderung der global Attribute durchschlägt sofern es nicht im Modul explizit gepflegt ist.


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Christoph Morrison

Zitat von: CoolTux am 24 Februar 2019, 13:15:13
Ich bilde mir ein hier etwas dazu geschrieben zu haben.

Nichts was Änderungen an global nach dem Define betrifft ...

amenomade

Zitat von: Christoph Morrison am 24 Februar 2019, 13:10:08
So klar ist das nicht, denn z.B. wird Twilight das nicht so machen, wenn man global als Quelle für die Positionsdaten angibt.

Wie machst Du das?
Zitat von: CommandRefDefine

    define <name> Twilight <latitude> <longitude> [<indoor_horizon> [<Weather_Position>]]
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Zitat von: Christoph Morrison am 24 Februar 2019, 13:17:19
Nichts was Änderungen an global nach dem Define betrifft ...

Habe ich wohl nicht genau gelesen. Ich bin nicht davon ausgegangen das erwähnt wurde das Änderungen an global nach einem Weather define gemacht werden sollen. Das ist ja noch unsinniger wenn ein Modul sowas machen sollte.
Das Weather Modul liest beim define lediglich die Attribute aus dem globalen Device für Latitude und Longitude aus. Mehr nicht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Christoph Morrison

Zitat von: amenomade am 24 Februar 2019, 13:25:45
Wie machst Du das?

Aktuell kann Twilight das nicht. Ich überarbeite das Modul aber gerade und dann kann man entweder global als Keyword für Lat oder Long angeben (wenn man einen indoor horizon braucht), oder aber alle Angaben weglassen, dann ist global als Default hinterlegt. Bei Berechnungen greife ich dann auf global zu. Wie ich erkenne das global geändert wurde um die Daten neu zu errechnen, weiß ich noch nicht genau, aber es gibt ja einen Event dafür. Weather_Position wird es dann nur noch zur Kompatiblität geben, hat aber keinen Effekt (außer eines Log-Eintrages) mehr. Wetterdaten kommen analog zu useExtWeather dazu, jedoch klarer benannt.

Wenn allerdings Positionsdaten explizit angegeben sind, werden diese auch verwendet. Die Minimaldefintion von Twilight wird dann defmod Twilight Twilight sein (vorausgesetzt, man hat global gepflegt).

Dies ist das Verhalten, das ich von einer indirekten Angabe erwarten würde.

amenomade

#28
Wenn es wirklich dynamisch werden soll, dann wäre es m.M.n. sinnvoller über ein "set" Kommando auf dem Device. So wäre es wirklich dynamisch. Alle andere Lösungen führen zu einem unnötigen "save".

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

UweUwe

Hallo,
die Idee mit lokalen Wettervorhersage bei wechselnden Standort finde ich ganz prima.
Gerne würde ich dies auch realisieren. Ich muss aber leider noch etwas früher einsteigen.
ZitatIch bin schon soweit, dass ich das DarkSky Wetter angezeigt kriege mit fix angegebenen GPS-Koordinaten:
Dafür benötige ich noch etwas Unterstützung.
Bitte schickt mir doch zu, welchen GPS-Empfänger ihr verwendet, und wie ihr die GPS-Daten in FHEM bringt.
Dann kann ich dies schonmal auf die Reihe bringen.
Merci