98_openweathermap

Begonnen von betateilchen, 26 Juli 2013, 13:09:09

Vorheriges Thema - Nächstes Thema

betateilchen

Hallo Thomas,

kannst Du mal bitte die hier angehängte Version testen?

Die liest Proxy-Einstellungen aus Deiner Systemumgebung und berücksichtigt diese (falls vorhanden) beim Verbindungsaufbau.


Sollte das nicht funktionieren, werde ich die Proxy-Einstellungen per Attribut konfigurierbar einbauen.

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

Thomas Kregelin

@betateilchen

Perfekt!

Mit der modifizierten Version funktionierte es auf Anhieb.

Vielen Dank für die schnelle Hilfe.

Interessanter Weise habe ich weder systemseitig (Ubuntu) noch browserseitig (Firefox) einen Proxy eingestellt. Es funktionieren auch alle Dienste die ich soweit genutzt habe. Nur fhem scheint Probleme zu haben.

Kennst du bei dieser Gelegenheit auch eine Abhilfe für das update Problem (Can't get release.pm from http://fhem.de)?

betateilchen

Zitat von: Thomas Kregelin schrieb am Do, 08 August 2013 20:58Kennst du bei dieser Gelegenheit auch eine Abhilfe für das update Problem

Ja: installiere Dir einen svn-Client und hole Dir die updates direkt per SVN auf Deinen Rechner. Das funktioniert auch über eine simple http-Verbindung. So habe ich das Problem bei mir im Büro gelöst, um an die Updates zu kommen. Damit bist Du auch nicht mehr auf die morgendliche Bereitstellung angewiesen, sondern kannst das Update beliebig oft am Tag machen. Sobald ein Entwickler eine Änderung veröffentlich hat, steht sie Dir dann auch zum Abruf zur Verfügung. Lediglich das Backup vor dem Update findet dann nicht mehr automatisch statt, aber das läßt sich ja problemlos in ein linux-Script einbauen, wenn es das Gewissen beruhigt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: bgewehr schrieb am So, 11 August 2013 21:33Nun ließ sich das Modul laden und anwenden, aber nicht alle Readings werden gefüllt:
Aus der JSON Antwort von openweathermap fehlen einige Angaben:

(siehe Anhang / see attachement)

liegt das an allow_nonref?

Bei mir werden für Essen momentan folgende Readings geliefert:

(http://up.picr.de/15472284xd.png)

Wenn alle anderen Readings bei Dir korrekt dekodiert werden, liegt es nicht an der json Auswertung, denn die ist für alle Readings gleich.
Wenn eine Station einen bestimmten Wert nicht liefert, taucht das Reading einfach nicht auf.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ich arbeite gerade an einer Version, bei der mittels eines neuen Attributes eingestellt werden kann, ob die Daten per JSON oder per XML verarbeitet werden sollen, da JSON auf vielen Fritzboxen nicht (ohne weiteres) funktioniert.

Welcher Fritzbox-Nutzer, der noch kein JSON auf seiner Kiste hat, wäre bereit, mich beim Testen zu unterstützen? Mit fehlt leider die entsprechende Hardware für eigene Tests.

Warum beide Versionen ermöglichen?

Ganz einfach: Bei der API-Nutzung mittels JSON werden einige Daten mehr übertragen als bei XML.


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

bgewehr

Zum Thema JSON auf Fritzbox: Ich habe es mit meinem Volkszaehler Modul und auch mit Deinem owo Modul erfolgreich zum Laufen gebracht.


Das Modul nutzt einen JSON-Interpreter, um die Antwort vom Volkszaehler in eine PERL-Variable zu wandeln. Dazu sind einige zusätzliche PERL Module notwendig.
JSON für PERL kann von hier geladen werden:
http://cpansearch.perl.org/src/MAKAMAKA/JSON-1.15/lib/JSON/


Ich habe die json.pm im fhem/FHEM liegen und den Ordner JSON ebenfalls, damit geht alles!

Allerdings sind die Funktiosnamen dieser "alten" JSON Version anders, daher musste ich das owo Modul anpassen, siehe Anhang.

Anstelle decode heißt es dort noch jsonToObj. Damit läuft es nun auf der Fritze 7390.
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

Mal ne andere Frage: Wie kann ich die Regenmenge der letzten 12 Stunden ermitteln und loggen?

Ich stelle mir einen Graphen der Regenmenge vor, der mit dem gleitenden 12h Mittelwert gefüllt wird.
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

betateilchen

Es gibt grundsätzlich Regenwerte für verschiedene Zeiträume, (1h, 12h, 24h, today) Welche Werte von einer Wetterstation gemeldet werden, läßt sich allerdings als reiner Abfrager nicht beeinflussen.

Bei openweathermap kannst Du laut api-Beschreibung nur den 3h Wert bekommen:

(http://up.picr.de/15475901ag.png)

Als Gegenbeispiel: Der Deutsche Wetterdienst liefert die Regenwerte 1h und 24h.

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

betateilchen

Zitat von: bgewehr schrieb am Mo, 12 August 2013 08:37Zum Thema JSON auf Fritzbox: Ich habe es mit meinem Volkszaehler Modul und auch mit Deinem owo Modul erfolgreich zum Laufen gebracht.

Hattest Du eigentlich mal meinen gestern hier im Forum geschriebenen Ratschlag ausprobiert?

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

betateilchen

98_openweathermap benötigt ab sofort das Perl Modul XML::Simple, da es aktuell beide Decodierverfahren (JSON und XML) beherrscht.

Sobald openweathermap.org es geschafft hat, in beiden Datasets die gleichen Informationen zu liefern (ich stehe dazu mit owo in Diskussion) wird die JSON Dekodierung aus dem Modul verschwinden.


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

betateilchen

Seit heute nachmittag, ca. 16:45 Uhr funktioniert das Senden der Daten an owo nicht mehr. Scheint aber ein Fehler auf dem Zielserver zu sein, von dort kommt nur ein Error 500 zurück.

Es liegt also nicht am fhem Modul, wenn in Eurem Account keine Daten aktualisiert werden. Schauen wir mal, wann es wieder funktioniert. Die ab morgen verfügbare Modulversion wird einen solchen Übertragungsfehler auch in den Readings anzeigen. Die Version ist bereits eingecheckt.



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

Frank S.

Moin.

Besteht das Problem bei der Übetragung zum Server immer noch? Ich habe gestern versucht, meine Daten an den Server zu senden. Es hat aber bisher nicht geklappt.

Im LogFile steht folgende Fehlermeldung


2013.09.08 07:39:21 3: openWeather return value: -1

Ich nutze folgendes Beispiel zur Übertragung:

define openWeather notify openWeather { my $temp = ReadingsVal("Temperatursender","temperature", "");; my $humi = ReadingsVal("Temperatursender", "humidity", "");; system("curl -d 'temp=$temp&humidity=$humi&lat=xx.xxxx&long=y.yyyy&name=Stationsname' --user 'user:passwort' http://openweathermap.org/data/post") }

define send_openWeather at +*00:30:00 trigger openWeather


Schöne Grüße
Frank S.

betateilchen

Deine Frage hat nichts mit dem Modul 98_openweathermap zu tun, denn für das Modul brauchst Du keine notify und trigger mehr.

Wenn ich mich recht erinnere, ist -1 keine Fehlermeldung. Schau doch bei openweathermap einfach mal in die Landkarte, dort sollte Deine Meldung angezeigt werden, wenn Du "Show Station Details" anklickst.

Derzeit (Stand vergangener Donnerstag) sind mir keine Störungen bei der Datenübertragung bekannt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bgewehr

Ich bekomme im Moment für Essen nur alte Daten, wenn ich danach auf openweathermap.org suche... found x Stations, X bad...
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Frank S.

Moin.

Tschuldigung, dass ich meien Frage ans falsche Thema gehängt habe. Da hier der über den Ausfall des Servers berichtet wurde, habe ich hier nach gefragt.

Ich habe noch einmal nachgesehen. Meine Station wird noch nicht auf der Karte angezeigt. Auch wird sie unter "my stats" nicht angezeigt.

Schöne Grüße
Frank