An die Wetter Modulauthoren API-Dokumentation online

Begonnen von CoolTux, 12 Januar 2019, 17:58:50

Vorheriges Thema - Nächstes Thema

CoolTux

Die aktuelle Version der API-Moduldokumentation für 59_Weather findet man hier





ZitatAb morgen gibt es das neue 59_Weather.pm Modul mit einer Modul API Schnittstelle.
Ich werde mich bemühen in den nächsten Wochen eine Beschreibung der API ins Wiki nach zu reichen.

Ich würde mich sehr freuen wenn im laufe der Monate die noch vorhandenen Wetter Module  als API Modul neu geschrieben würden. Sie wären dann Backend und als Frontend käme 59_Weather.pm zum tragen.
Bei Fragen einfach hier fragen oder auch als PM

Grüße
Leon
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

Loredo

Hat sich denn herauskristallisiert, welcher Anbieter die meisten "readings" bietet?
Kann man zum Zweck der "reading Maximierung" denn mehrere Anbieter abfragen und dabei eine Reihenfolge festlegen (bevorzugt alles von Anbieter A, was der nicht kann vin Anbieter B, ggf aber das Reading XYZ immer von Anbieter C).

Ist vorgesehen, dass eigene Wetterstationen auch zuliefern sollen?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

CoolTux

Zitat von: Loredo am 12 Januar 2019, 18:30:07
Hat sich denn herauskristallisiert, welcher Anbieter die meisten "readings" bietet?
Kann man zum Zweck der "reading Maximierung" denn mehrere Anbieter abfragen und dabei eine Reihenfolge festlegen (bevorzugt alles von Anbieter A, was der nicht kann vin Anbieter B, ggf aber das Reading XYZ immer von Anbieter C).

Ist vorgesehen, dass eigene Wetterstationen auch zuliefern sollen?
Hallo Julian,

Es ist bisher nicht geplant mehrere Anbieter abrufen zu lassen. Man kann natürlich mehrere Weather Instanzen mit unterschiedlicher API definieren. Also im Grunde das was Du möchtest.
Natürlich können auch Wetterstationen liefern. Sofern es ein API-Modul gibt.

Grüße
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

CoolTux

Eine erste Version der API-Modul Dokumentation ist nun online.
Würde mich über Feedback sehr freuen. Und bitte spart nicht an Kritik was Aufbau und Verständnis an geht.
Ich möchte ja das bald neue API-Module entstehen.


Grüße
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

Loredo

Weil es mir gerade wieder aufgefallen ist: Wird denn fhem.cfg.demo auch an die neuen Wetter Module angepasst?
Aktuell gibt es dort nur einen Fehler, wenn man auf den Weather Raum zugreift:


Undefined subroutine &main::WeatherAsHtmlH called at (eval 104) line 1.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

CoolTux

Hallo Julian,

Das müsstest Du bitte im Developer Thread fragen. Ich gehe davon aus das Rudi für die fhem.cfg.demo zuständig ist. Denke die Frage wäre da gut aufgehoben.



Grüße
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

rudolfkoenig

Kann jemand, der sich auskennt, sagen, was falsch ist?

CoolTux

die komplette Weather Definition hat sich geändert. Yahoo liefert über die alte API keine Daten mehr, daher wurde Anfang des Jahres Weather so umgeschieben das auch andere Anbieter abgerufen werden können. Dafür wurde eine schon vorhandene API Schnittstelle vom Weathermodul aufgebohrt und parallel 2 API Module für DarkSky und OpenWeatherMap entwickelt.

Im Grunde muß lediglich die Definition vom Weather geändert werden.
Dummerweise muss aber ein API-Key verwendet werden damit es funktioniert. Das in einer Demo wird schwierig.
Sofern Latitude und Longitude im Global Device stehen reicht ein


define myWeather Weather apikey=<api-key>

aus und es sollten Daten kommen.



Grüße
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

rudolfkoenig

ZitatDummerweise muss aber ein API-Key verwendet werden damit es funktioniert. Das in einer Demo wird schwierig.
Da gebe ich dir Recht. Bevor ich das aus fhem.cfg.demo entferne: hat jemand eine rettende Idee?

Beta-User

Vielleicht hilft der Code aus https://forum.fhem.de/index.php/topic,95339.msg901931.html#msg901931?

Auch wenn mir die konkrete Umsetzung in diesem Thread nicht gefällt. Gibt aber doch sicher mehrere Optionen, das javascript einzubinden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

betateilchen

Zitat von: rudolfkoenig am 26 Februar 2019, 15:53:06
Bevor ich das aus fhem.cfg.demo entferne: hat jemand eine rettende Idee?

Ein dummy-API-provider, aus dem das Weather device mit Beisipieldaten versorgt wird?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

Kenne jetzt die Abhängigkeiten von HTTPMOD nicht. Evtl. könnte man die ORF-Daten verwenden und die Readings konform zum neuen Wettermodul benennen?
(Es gibt ein template zu ORF, wenn jeand code sucht. Ggf. bald auch zu bergfex.at). Nur Deutschlang scheint schwieriger zu sein.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

CoolTux

Zitat von: betateilchen am 26 Februar 2019, 16:39:30
Ein dummy-API-provider, aus dem das Weather device mit Beisipieldaten versorgt wird?

Ich glaube Du bei bringst mich da auf eine Idee. Wie wäre es wenn ich alleine für die Demo eine DarkSkyDemoAPI fertig mache wo die Daten zur Darstellung dann enthalten sind?
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

betateilchen

Ja, es reicht ja ein beliebiger Datensatz in einem bereits bekannten Format für die Darstellung in der FHEM Demo. Der Datensatz muss ja nicht "live" sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Ein User brachte mich gerade und die Idee erstmal einfach bei DarkSky zu schauen ob die nicht einen Demo Key anbieten.
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

rudolfkoenig

Ich warte dann mal solange, bis jemand mir sagt was ich tun soll :)

CoolTux

Zitat von: rudolfkoenig am 26 Februar 2019, 18:39:25
Ich warte dann mal solange, bis jemand mir sagt was ich tun soll :)

Das wäre nett Rudi. Ich kümmere mich.


Grüße
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

CoolTux

#17
Hallo Rudi,
Hab mich gekümmert


define Weather Weather apikey=DEMO API=DarkSkyDemoAPI,cachemaxage:600



Grüße
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

betateilchen

Ein mögliches Problem mit dieser Lösung sehe ich darin, dass dieses Pseudo-Modul in der FHEM Konfiguration in jedes Auslieferungspaket mit eingepackt werden muss. Das könnte bei Anwendern zu - berechtigten - Fragen führen.

Mir ist zwischenzeitlich eine andere Idee eingefallen.

Könnte man nicht in der regulären DarkSkyAPI.pm den Demo-Modus einbauen, der dafür sorgt, dass im Fall (apikey eq 'DEMO') automatisch Demodaten zurückgeliefert werden, ohne eine echte Dienst-Abfrage durchzuführen?

Es ist den Benutzern vermutlich einfacher verständlich zu vermitteln, dass sie ihren eigenen APIkey eintragen müssen, als ein zweites Modul zu rechtfertigen, das "nix tut".
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Klingt logisch und sinnvoll. Ich denke das ich das relativ zeitnah morgen umgesetzt bekomme.
Melde mich morgen Mittag deswegen dann noch mal.
Danke Udo.


Grüße
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

CoolTux

Guten Morgen,

Ich habe soeben eine Version von der DarkSkyAPI eingecheckt in der es einen Demomode gibt.
Einfach apikey=demo eingeben.


define Weather Weather apikey=demo


sollte ausreichend sein. Vorausgesetzt das im global Device latitude und longitude gesetzt ist.
Ansonsten muß in der Definition noch eine location Angabe mit rein.


define Weather Weather apikey=demo location=52.4545,13.4545



Grüße
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

betateilchen

Funktioniert. Einen Vorschlag hätte ich noch, um nicht auf die Groß-/Kleinschreibung von "demo" achten zu müssen:


Index: DarkSkyAPI.pm
===================================================================
--- DarkSkyAPI.pm       (revision 18747)
+++ DarkSkyAPI.pm       (working copy)
@@ -168,7 +168,7 @@
           . $self->{lang}
           . '&units=auto';

-        if ( $self->{key} eq 'demo' )
+        if ( lc($self->{key}) eq 'demo' )
         { _RetrieveDataFinished($paramRef,undef,DEMODATA); }
         else { main::HttpUtils_NonblockingGet($paramRef); }
     }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

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

betateilchen


Index: fhem.cfg.demo
===================================================================
--- fhem.cfg.demo       (revision 18750)
+++ fhem.cfg.demo       (working copy)
@@ -631,6 +631,8 @@
attr CT setList on:noArg off:noArg ct:colorpicker,CT,2000,1,6500
attr CT webCmd ct::ct 2040:ct 2630:ct 3703:ct 6250:on:off

+define Weather Weather apikey=demo location=52.4545,13.4545
+attr Weather room Weather

define Weather.weblink weblink htmlCode { WeatherAsHtmlH("Weather") }
attr Weather.weblink alias Weather Forecast
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Danke fuer den Patch.

Wenn man nach dem FHEM-Start Weather aufruft dann kriegt man eine relativ langweilige Seite (siehe Anhang).
Nach eine Weile aendert sich Initialized, und wenn man _danach_ ein Reload der Seite macht, dann sieht man alles in seiner vollen Pracht.
Das ist fuer den taeglichen Betrieb voellig ausreichend, fuer eine Demo-Seite aber Unschoen.
Koennt ihr an diesem Timeout (im Demo-Fall) was drehen?

CoolTux

Dafür müsste das Weather Modul angepasst werden. In meinen Augen ein mini Patch. Eventuell könntest Du es erst einmal damit testen und wenn es so ausreichend ist reiche ich den Patch bei Boris ein.


diff --git a/59_Weather.pm b/59_Weather.pm
index aa004bc..877e690 100755
--- a/59_Weather.pm
+++ b/59_Weather.pm
@@ -601,6 +601,10 @@ sub Weather_Notify($$) {
     Log3 $hash, 5,
"Weather $name: FHEM initialization or rereadcfg triggered update, delay $delay seconds.";
     Weather_RearmTimer( $hash, gettimeofday() + $delay );
+   
+    ### quick run GetUpdate then Demo
+    Weather_GetUpdate( $hash )
+    if ( lc($hash->{APIKEY}) eq 'demo' );

     return undef;
}
lines 1-15/15 (END)
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

rudolfkoenig


CoolTux

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

betateilchen

Die erstmal leere Seite beim Aufruf eines Weather devices nervt mich auch im Regelbetrieb.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

und nicht die commandref vergessen für den neuen apikey :D
viele Wege in FHEM es gibt!

CoolTux

Ich denke nicht das es etwas für die Commandref ist. Soll doch einzig und alleine für den ersten Start mit der demo.cfg sein
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

nils_

dann warten wir mal auf die erste meldung, wenn einer die def-zeile auf der demo.cfg in seine umgebung kopiert hat  ;D



die erwähnung das es nun einen solchen apikey gibt und was er tut gehört mMn trotzdem in die commandref.
vielleicht will ich mir ja das modul nur mal angucken und sehen was auf der seite gezeigt wird (mit den testdaten). und dafür brauche ich dann nicht gleich nen key woanders beantragen :)
viele Wege in FHEM es gibt!

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

viele Wege in FHEM es gibt!

Dr. Boris Neubert

Zitat von: CoolTux am 28 Februar 2019, 09:24:24
Dafür müsste das Weather Modul angepasst werden. In meinen Augen ein mini Patch. Eventuell könntest Du es erst einmal damit testen und wenn es so ausreichend ist reiche ich den Patch bei Boris ein.


diff --git a/59_Weather.pm b/59_Weather.pm
index aa004bc..877e690 100755
--- a/59_Weather.pm
+++ b/59_Weather.pm
@@ -601,6 +601,10 @@ sub Weather_Notify($$) {
     Log3 $hash, 5,
"Weather $name: FHEM initialization or rereadcfg triggered update, delay $delay seconds.";
     Weather_RearmTimer( $hash, gettimeofday() + $delay );
+   
+    ### quick run GetUpdate then Demo
+    Weather_GetUpdate( $hash )
+    if ( lc($hash->{APIKEY}) eq 'demo' );

     return undef;
}
lines 1-15/15 (END)


Ist $hash->{APIKEY} immer vorhanden? Sonst gibt es Warnings und damit Nutzeranfragen.

Vielleicht besser

if( defined($hash->{APIKEY}) &&  lc($hash->{APIKEY}) eq 'demo' );

Wenn es damit klappt: kannst Du es bitte einchecken für mich?
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CoolTux

Ohne apikey ist eine Definition des Weather Devices nicht möglich. Ich frage aber gerne ab ob hash->{APIKEY} deklariert ist.
Schecke ich heute Abend oder morgen früh ein.


Grüße
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

Dr. Boris Neubert

Zitat von: CoolTux am 04 März 2019, 18:02:19
Ohne apikey ist eine Definition des Weather Devices nicht möglich. Ich frage aber gerne ab ob hash->{APIKEY} deklariert ist.

Hmm, sowohl gemäß commandref als auch tatsächlichem Code (Weather_Define) ist apikey optional. Dass ohne keines der derzeit implementierten APIs geht, ist ein anderes Ding.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CoolTux

Danke für die Richtigstellung, ich dachte es gibt eine Abbruch wenn apikey nicht mit übergeben wird.
Dann passt ja die vorherige Abfrage. Bau ich nachher ein.
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

CoolTux

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

(Macht doch mal eine Markdown-Version davon ins Git, dann kann man auch pull requests schicken)

CoolTux

Zitat von: Christoph Morrison am 05 März 2019, 15:17:45
(Macht doch mal eine Markdown-Version davon ins Git, dann kann man auch pull requests schicken)

Siehst Du meine Fragezeichen auf dem Kopf  ;D
https://github.com/fhem/Weather
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

nils_

viele Wege in FHEM es gibt!

Christoph Morrison

Ich mach euch einfach eine und schicke sie euch über einen pull request.


CoolTux

Ist angekommen. Schaue ich mir heute Abend in Ruhe an.

Vielen lieben Dank schon mal.
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