Hallo Forumgemeinde,
nach dem in diesem Thread (http://forum.fhem.de/index.php?topic=13000.0) ja schon einige Diskussionspunkte (u.a. curl für Fritzbox *g*) aufkamen, konnte ich es einfach nicht sein lassen, die gesamte Funktionalität in ein Modul zu kapseln, das von systemaufrufen unabhängig sein sollte.
Hier kommt die erste Version - zum Testen und zum Rückmelden.
Was kann dieses Modul?
Wetterdaten an einen vom User vorher bei www.openweathermap.org (http://www.openweathermap.org) (im Folgenden: owo) registrierten Account senden.
Die Nutzung der owo-API zum Lesen von Daten ist derzeit noch nicht unterstützt, das ist für einen späteren Zeitpunkt aber bereits geplant.
Wie nutzt man dieses Modul?
define meinWetter openweather
Damit wird ein device "meinWetter" angelegt:
(http://up.picr.de/15300433bt.png)
Die Steuerung des device erfolgt über diverse Attribute:
Für die Definition der Station selbst sind folgende Attribute vorhanden:
owoApiKey = <apiKey> # wird derzeit noch nicht benutzt
owoDebug = <0|1> # solange dieses Attribut nicht mit 0 definiert ist, werden keine Daten tatsächlich an owo übertragen. Wichtig während der Einrichtung des device!
owoInterval = <numerischer Wert> # Abstand zwischen den Übertragungen in Sekunden. Default: 1800
owoStation = <Name der Station> # kann frei gewählt werden, unter diesem Namen wird die Station bei owo geführt
owoUser = <username:password> # Benutzerdaten für den Zugriff auf owo
Die GEO-Daten der Station (latitude, longitude und altitude) werden aus der globalen FHEM-Definition (global) übernommen und von meinem Modul automatisch verwendet!
Für die Definition der zu übertragenden Wetterdaten stehen 10 Werte zur Verfügung, was in den allermeisten Fällen ausreichen sollte. Diese Attribute heißen
owoSrc0 owoSrc1 ... owoSrc9
In diesen Attributen werden immer drei Parameter, getrennt durch einen Doppelpunkt, angegeben.
allgemeine Syntax: attr <device> owoSrcN <owoParam>:<sensorName>:<readingName>
Beispiel: attr meinWetter owoSrc0 temp:sensor_Balkon:temperature
Im Beispiel wird ein Attribut owoSrc0 angelegt, das dem Modul mitteilt, es soll aus dem fhem-device "sensor_Balkon" das Reading "temperature" lesen und diesen Wert als temp an owo schicken. Die Parameternamen bei owo sind dort in der API Beschreibung festgelegt. Es können bis zu 10 dieser vorgegebenen Parameter auf diese Weise definiert werden.
Die Parameter für die GEO-Daten (lat, lon, alt) müssen nicht explizit angegeben werden!
Eine komplette Definition sieht also so aus:
(http://up.picr.de/15300568tl.png)
Die gesamte Verarbeitung wird auch im Logfile protokolliert:
2013.07.26 13:03:54 3: openweather owo started: SendData
2013.07.26 13:03:54 3: openweather owo reading: owoSrc0 temp sensor 27.1
2013.07.26 13:03:54 3: openweather owo debug: name=Leimen&lat=49.35&long=8.68&alt=100&temp=27.1
Während der Einrichtung kann so kontrolliert werden, welche Sensoren gelesen werden und welcher generierte Datenstring das Modul an owo schickt.
Der Eintrag "debug:" wird durch "sending:" ersetzt, sobald das Attribut owoDebug auf 0 gesetzt wird und die tatsächliche Übertragung gestartet wird.
Diskussion und Rückmeldung bitte hier im Thread.
Hier kommt die nächste Version...
Änderungen zur letzten Version:
Das Modul benötigt das Perl Modul JSON
feht dieses Modul auf Eurer fhem-Hardware, muss es mit cpan install JSON
nachinstalliert werden. Das Modul sollte auf allen Plattformen zur Verfügung stehen.
Die Attribute owoSrcXX haben jetzt einen zweistelligen Zähler
der von 00 - 19 geht. Damit lassen sich maximal 20 Parameter (+die 3 GEO-Parameter + Stationsname) an openweather übertragen. DIe owo-Api unterstützt derzeit 18 Parameter, die gesendet werden können:
# OpenWeatherMap API parameters
# -----------------------------
# wind_dir - wind direction, grad
# wind_speed - wind speed, mps
# temp - temperature, grad C
# humidity - relative humidity, %
# pressure - atmosphere pressure
# wind_gust - speed of wind gust, mps
# rain_1h - rain in recent hour, mm
# rain_24h - rain in recent 24 hours, mm
# rain_today - rain today, mm
# snow - snow in recent 24 hours, mm
# lum - illumination, W/M²
# radiation - radiation
# dewpoint - dewpoint
# uv - UV index
#
# name - station name
# lat - latitude
# long - longitude
# alt - altitude, m
Die letzten 4 Parameter brauchen nicht defiiniert zu werden, diese werden automatisch mit übertragen. Somit sind 14 frei definierbare Parameter vorgesehen, und die maximale Anzahl von 20 definierbaren Parametern ist mehr als ausreichend, selbst wenn die owo-Api irgenwann erweitert wird.
Es können nun auch Wetterdaten über die owo-API abgerufen werden
Hierfür gibt es 3 Möglichketen:
get <devName> stationByName <cityName>
Beispiel: get owo stationByName Heidelberg,DE
get <devName> stationById <cityId>
Beispiel: get owo stationById 2907911
get <devName> stationByGeo [<lat> <lon>]
Beispiel: get owo stationByGeo 49.40 8.69
Weitere Infos zur Suche nach Stationen finden sich hier: http://openweathermap.org/API (//openweathermap.org/API)
Alle drei obigen Aufrufe liefern folgende Readings:
Readings:
2013-07-27 11:42:51 clouds 8
2013-07-27 11:42:51 humidity 69
2013-07-27 11:42:51 lastRx Sat Jul 27 11:40:27 2013
2013-07-27 11:42:51 pressureAbs 1006
2013-07-27 11:42:51 rawData
2013-07-27 11:42:51 stationId 2907911
2013-07-27 11:42:51 stationLat 49.4000
2013-07-27 11:42:51 stationLon 8.6900
2013-07-27 11:42:51 stationName Heidelberg
2013-07-27 11:42:51 tempMax 31.7
2013-07-27 11:42:51 tempMin 30.0
2013-07-27 11:42:51 temperature 30.8
2013-07-27 11:42:51 windDir 187.5
2013-07-27 11:42:51 windSpeed 2.31
Die Beschreibung der einzelnen Werte findet sich hier: http://bugs.openweathermap.org/projects/api/wiki/Weather_Data (//bugs.openweathermap.org/projects/api/wiki/Weather_Data)
Anmerkungen:
Das Reading "lastRx" beinhaltet die letzte Aktualisierung der Daten in der Station, nicht den Abruf in fhem.
Das Reading rawData ist per default leer. Sobald man ein Attribut attr <devName> owoRaw 1
setzt, wird in diesem Fall die komplette Antwort vom Openweathermap Server im JSON Format gespeichert. Falls irgendjemand die Rohdaten selbst weiterverarbeiten möchte, kann er das gerne damit tun.
Die Positionsangaben bei stationByGeo sind optional. Werden keine Positionsdaten verwendet, werden die globalen fhem-Attribute latitude und longitude verwendet, in der Regel also der dort festgelegte eigene Standort.
Bei stationById kann das gesuchte Land mit einem Komma hinter den Städtenamen angehängt werden, falls es den Städtenamen in mehreren Ländern gibt. (siehe obiges Beispiel "Heidelberg,DE")
Die API-URL von openweather ist im Attribut owoGetUrl gespeichert. Da sich diese Adresse regelmäßig ändert, kann somit eine Anpassung auch vom Anwender durchgeführt werden, falls das Modul selbst noch nicht aktualisiert ist.
Die Daten werden NICHT automatisch aktualisiert. Vor jeder Auswertung der Readings muss also ein "get ..." abgesetzt werden. Das hat den Hintergrund, mehrere unterschiedliche Stationen abrufen und auswerten zu können.
Hat eigentlich schon jemand von den sieben Downloadern das Modul getestet und kann mir bitte eine Rückmeldung geben?
Bei der finalen Version wird alles anders :) Sie wird drei Aufgaben unterstützen
1. Senden eigener Wetterdaten an openweathermap
2. Definition einer Wetterstation von owo, deren Daten dann in den Readings regelmäßig aktualisiert werden
3. Nutzung der owo-API zum Abruf einer beliebigen Station aus dem owo-Bestand ohne Aktualisierung
Alle drei Anwendungsfälle sind unabhängig voneinander nutzbar, aber auch in beliebiger Kombination und natürlich auch alle gleichzeitig.
Programmiertechnisch ist die Version schon fertig, ich muss mich aber erst noch mit der zugehörigen Doku beschäftigen.
Ausblick auf weitere (vielleicht irgendwann) geplante Funktionen:
- Abruf von Vorhersagedaten
- optisch hübsche Darstellung (Nutzung von owo-Icons in weblink o.ä.) Dazu muss ich mich aber erst näher mit dem Thema weblink beschäftigen.
Das Modul ist fertig, die komplette Doku für commandref erstellt, das Ganze ist bei SVN eingecheckt und wird ab morgen per update verteilt.
Achtung: neuer Modulname = 98_openweathermap.pm um der zugrundeliegenden Internetplattform gerecht zu werden.
Viel Spaß damit!
Und falls Fragen und/oder Probleme auftreten, bitte hier im Thread fragen.
Aktuelle Änderungen/Erweiterungen:
- "set <name> send" hinzugefügt: startet für Testzwecke einen sofortigen Sende/Abruf-Zyklus, unabhängig vom definierten Intervall.
- Attribute owoSendUrl hinzugefügt
beides ist dokumentiert in commandref.
@betateilchen
Bin vor kurzem auf openweathermap.org und dann auf dein FHEM Modul gestoßen.
Vielen Dank für deine Arbeit!
In den nächsten Tagen sollte ich eine HM-WDS-OC3 Wetterstation und einen neuen CUL bekommen - dann werde ich das Modul gleich testen.
Kennst du die HM-WDS-OC3? Welche Wetterstation benutzt du?
Zitat von: Thomas Kregelin schrieb am Mi, 31 Juli 2013 22:48Welche Wetterstation benutzt du?
"Wetterstation" im kompletten Sinne, eher nicht, sondern mehrere einzelne Sensoren:
Für Temperatur und Luftfeuchte: HM-WDS10-TH-O
Für Luftdruck: BMP180 direkt am RaspberryPi, auf dem FHEM läuft.
Zum Feststellen,
ob es regnet (ohne Mengenmessung): HM-Sen-RD-O
Hallo,
Suche eine Wetterstation mit drei Sonnensensoren für Rolladensteuerung.
Für Eib Knx gibt es solche aber zum höchst Preis .
Hat hier jemand Erfahrung?
Danke.
das ist aber hier der völlig falsche Thread für Deine Frage.
Ich habe die Wetterstation in Betrieb genommen; die Sensoren geben plausible Werte aus.
Leider habe ich es noch nicht geschafft, Werte an openweatermap zu schicken.
Ich bin nach Anleitung in der command ref vorgegangen. Zum Testen lasse ich zunächst nur die Temperatur senden.
Meine config:
define owo openweathermap
attr owo owoDebug 1
attr owo owoGetUrl http://api.openweathermap.org/data/2.5/weather (//api.openweathermap.org/data/2.5/weather)
attr owo owoInterval 600
attr owo owoSendUrl http://openweathermap.org/data/post (//openweathermap.org/data/post)
attr owo owoSrc00 temp:OC3:temperature
attr owo owoStation StuSta
attr owo owoUser ***:***
Das log zeigt mir:
2013.08.07 22:38:27 3: openweather owo started: SendData
2013.08.07 22:38:27 3: openweather owo reading: owoSrc00 temp OC3 23.4
2013.08.07 22:38:27 3: openweather owo debug: name=StuSta&lat=48.1831&long=11.6114&alt=?&temp=23.4&APPID=
Wenn ich mystats in meinem owo Onlineprofil anwähle erscheinen keine Werte.
Testweise habe ich per Terminal folgenden Befehl probiert:
curl -d 'temp=20&lat=49.11&long=24.11&alt=200' --user 'username:****' http://openweathermap.org/data/post (//openweathermap.org/data/post)
Wenn ich den Befehl mit meinen Profildaten entsprechend angepasse - wird der Temperaturwert korrekt gesendet und online angezeigt.
Was könnte ich machen um den Fehler zu finden?
Zitat von: Thomas Kregelin schrieb am Mi, 07 August 2013 22:49Ich bin nach Anleitung in der command ref vorgegangen.
Nein, bist Du nicht.
Zitat von: Thomas Kregelin schrieb am Mi, 07 August 2013 22:49Was könnte ich machen um den Fehler zu finden?
Nochmal lesen, was in der commandref steht.
(http://up.picr.de/15430193aw.jpg)
Und Du solltest Deine altitude noch als globales Attribut pflegen, die Höhe fehlt nämlich noch in Deinem Sendestring.
Nachdem ich meinen Post abgesendet hatte, habe ich den Fehler mit dem Debug auch gesehen.
Tja - zu kurz gelesen.
Leider funktioniert es immer noch nicht. Habe auch ein attr global altitude festgelegt - leider kein Unterschied.
Mein log:
2013.08.07 22:56:46 3: openweather owo started: SendData
2013.08.07 22:56:46 3: openweather owo reading: owoSrc00 temp OC3 23.4
2013.08.07 22:56:47 3: openweather owo sending: name=StuSta&lat=48.1831&long=11.6114&alt=515&temp=23.4&APPID=
Zitat von: Thomas Kregelin schrieb am Mi, 07 August 2013 23:05leider kein Unterschied.
vorher:
2013.08.07 22:38:27 3: openweather owo debug: name=StuSta&lat=48.1831&long=11.6114&alt=?&temp=23.4&APPID=
nachher:
2013.08.07 22:56:47 3: openweather owo sending: name=StuSta&lat=48.1831&long=11.6114&alt=515&temp=23.4&APPID=
Anstatt "debug" steht da jetzt "sending". Das Modul versucht also definitiv, die Daten an owo zu schicken. Wenn dann noch etwas schiefgeht, funktioniert die Verbindung an sich nicht. Überprüfe nochmal Deinen user und das password.
Welche Readings werden Dir jetzt angezeigt? Es sollten mindestens zwei Readings mit my_ am Anfang vorhanden sein: my_temp und my_lastSent
Meine Readings:
my_lastSent Wed Aug 7 23:36:41 2013 2013-08-07 23:36:41
my_temp 23 2013-08-07 23:36:41
state active 2013-08-07 23:36:41
In meinem onlineprofil werden keine aktualisierten Daten angezeigt. Es stehen immernoch die Daten dort, die ich mit dem curl Befehl aus dem Terminal abgeschickt hatte.
Wahrscheinlich liegt es dann daran, dass fhem die Daten nicht vernünftig übertragen kann. Ich kann beispielsweise schon keine fhem updates abrufen - er gibt mir ständig:
Can't get release.pm from http://fhem.de (//fhem.de)
Vielleicht liegt es an irgendwelchen Firewall Einstellungen (Studentenwohnheim).
Werde weiter nach dem Fehler suchen.
Danke für die Hilfe.
Zitat von: Thomas Kregelin schrieb am Mi, 07 August 2013 23:53Vielleicht liegt es an irgendwelchen Firewall Einstellungen (Studentenwohnheim).
das sagst Du erst jetzt?Da ist mit Sicherheit ein Proxy-Server dazwischen, dann kann das nicht funktionieren.
Dieses Problem habe ich z.B. auch aus unserem Firmennetzwerk.
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
@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 (//fhem.de))?
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.
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.
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.
-----
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.
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.
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.
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
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.
-----
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.
-----
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.
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.
Ich bekomme im Moment für Essen nur alte Daten, wenn ich danach auf openweathermap.org suche... found x Stations, X bad...
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
@Frank S. probier doch mal die Übertragung mit Hilfe des Moduls, da gibts auch ein paar lesbare Rückmeldungen zur Analyse
@bgewehr:
get owo stationByName Essen,DE liefert bei mir aktuell:
Readings:
2013-09-08 21:25:10 _dataSource www.openweathermap.org
2013-09-08 21:25:10 _decodedWith XML
2013-09-08 21:25:10 _httpResponse_g 200 OK
2013-09-08 21:25:10 g_clouds 92
2013-09-08 21:25:10 g_humidity 100
2013-09-08 21:25:10 g_lastWx 2013-09-08T19:25:10
2013-09-08 21:25:10 g_pressure 1019.72
2013-09-08 21:25:10 g_stationCountry DE
2013-09-08 21:25:10 g_stationId 2928810
2013-09-08 21:25:10 g_stationLat 51.4500
2013-09-08 21:25:10 g_stationLon 7.0167
2013-09-08 21:25:10 g_stationName Essen
2013-09-08 21:25:10 g_sunrise 2013-09-08T04:56:55
2013-09-08 21:25:10 g_sunset 2013-09-08T18:01:49
2013-09-08 21:25:10 g_tempMax 14.1
2013-09-08 21:25:10 g_tempMin 14.1
2013-09-08 21:25:10 g_temperature 14.1
2013-09-08 21:25:10 g_windDir 350
2013-09-08 21:25:10 g_windSpeed 2.55
Das sind durchaus plausible und aktuelle Daten.
OK, gut. Auf openweathermap.org kommen dazu nur alte Daten...
Moin.
Danke für den Hinweis. Ich habe es gerade ausprobiert. Auf meiner FritzBox 7390 habe ich allerdings das JSON-Problem.
Werde es die Tage noch einmal ausprobieren.
Schöne Grüße
Frank
ZitatAuf meiner FritzBox 7390 habe ich allerdings das JSON-Problem.
Das ist kein Problem, die Lösung steht auch im Modul beschrieben. Leg Dir im Modulverzeichnis FHEM ein "Dummymodul" namens JSON.pm an, das lediglich aus einer einzigen Zeile besteht:
return 1;
Für den reinen "Sendebetrieb" war es das dann schon, das Laden des Moduls und das Senden von Wetterdaten sollte problemlos funktionieren.
Wenn Du das Modul auch für den Abruf von Wetterdaten benutzen willst, schaltest Du um auf XML mit
attr <deviceName> owoUseXml 1
Dann klappts auch mit dem Datenempfang, für die Decodierung wird dann XML verwendet.
---
@betateilchen, falls Du Interesse daran hast: statt "use JSON" kann man auch "eval require JSON" verwenden, um ein fehlendes JSON.pm zu ueberleben. Siehe z.Bsp TcpServerUtils.pm
Danke für den Tipp, ich werde das nach dem Urlaub mal testen. Das hätte den Vorteil, dass ich dann sogar automatisch auf XML umschalten kann.
Moin.
Danke für die Hilfe. Ich habe das Modul zum Laufen bekommen.
Die Daten werden allerdings immer noch nicht unter "mystats" angezeigt.
Nun bekomme ich nach dem Senden folgende Debug-Ausgabe:
2013.09.09 17:15:59 3: owo owo: started: SendData
2013.09.09 17:15:59 3: owo owo: reading: owoSrc00 temp Temperatursender 16.8
2013.09.09 17:15:59 3: owo owo: reading: owoSrc01 humidity Temperatursender 76
2013.09.09 17:15:59 3: owo owo: debug: name=FSte&lat=xx.xx&long=y.yy&alt=&temp=16.8&humidity=76&APPID=
Schöne Grüße
Frank
Mich interessieren weniger die Ausgaben im Log, sondern viel mehr die Readings, die mit my_ anfangen.
Übrigens: Du sendest gar keine Daten ab, sondern Dein Modul läuft im Debug-Modus. Manchmal hilft es, die Doku zu lesen.
Setze mal das Attribut owoDebug auf 0
Wenn das Senden aktiviert ist, steht im Log anstatt
2013.09.09 17:15:59 3: owo owo: debug: name=FSte&lat=xx.xx&long=y.yy&alt=&temp=16.8&humidity=76&APPID=
nämlich
2013.09.09 17:15:59 3: owo owo: sending: name=FSte&lat=xx.xx&long=y.yy&alt=&temp=16.8&humidity=76&APPID=
Meine Daten werden aktuell in den owo-Maps auch nicht dargestellt, aber in mystats sind die Daten aktuell.
Moin.
Danke für den dezenten Hinweis. Man sollte doch besser gleich die Doku genau lesen.
Ich habe mal das Attribut owoDebug auf 0 gesetzt und nun funktioniert alles wie gewünscht. Danke für Eure Hilfe.
Schöne Grüße
Frank
Hi
Before starting I updated my Fhem installation.
I have a fritzbox 7390 and at the moment I can send data to openweathermap.org but get errors when I read them. Do you still need testers?
I added an empty JSON.pm to my installation with the 1 line added as described in the forum.
In fhem.cfg I have:
define owo openweathermap
attr owo owoUseXml 1
Calling
sub tt($)
{
fhem("get owo stationByName Heidelberg,DE");
}
results in:
Can't locate unicore/Heavy.pl in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2 /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 . ./FHEM) at /var/InternerSpeicher/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 96.
Hello all
I found the solution for my problem. To one who gets the same problems. have a look at http://www.fhemwiki.de/wiki/Unicode_FritzBox (//www.fhemwiki.de/wiki/Unicode_FritzBox)
{HT}
Zitat von: betateilchen schrieb am So, 28 Juli 2013 11:01Ausblick auf weitere (vielleicht irgendwann) geplante Funktionen:
- Abruf von Vorhersagedaten
That would be nice.
It seems the amount of rain/snow is not shown in fhem yet. Would be good if that is also possible.
{HT}
Zitat von: betateilchen schrieb am Mo, 09 September 2013 20:11Meine Daten werden aktuell in den owo-Maps auch nicht dargestellt, aber in mystats sind die Daten aktuell.
Im Moment werden meine Wetterdaten auch in den Maps wieder korrekt angezeigt.
Zitat von: HarryT schrieb am Mi, 11 September 2013 15:40It seems the amount of rain/snow is not shown in fhem yet. Would be good if that is also possible.
The module can alreadz handle this without any problem. Data for rain and snow will be shown if they are delivered in station's answer. But there are two problems:
1. Not all stations provide these informations in answer dataset
2. Dataset in XML does not contain same data than the JSON dataset, normally XML contains less data
Zitat von: betateilchen schrieb am Do, 12 September 2013 09:56Zitat von: HarryT schrieb am Mi, 11 September 2013 15:40It seems the amount of rain/snow is not shown in fhem yet. Would be good if that is also possible.
The module can alreadz handle this without any problem. Data for rain and snow will be shown if they are delivered in station's answer. But there are two problems:
1. Not all stations provide these informations in answer dataset
2. Dataset in XML does not contain same data than the JSON dataset, normally XML contains less data
I use the version which came with FHEM update on my Fritzbox 7390. Is this the latest?
The module displays the complete xml it gets in the logfile. Good for debuging, but I would suggest to surpress this in the end, the same for the data sended to openweathermap. The same for the sended data.
In the xml I see the rain amount. But in the readings I don't see them.
If it helps, I volunteer for testing your module on FB7390 and deliver feedback.
{HT}
Zitat von: HarryT schrieb am Do, 12 September 2013 10:27I use the version which came with FHEM update on my Fritzbox 7390. Is this the latest?
Sure.
Zitat von: HarryT schrieb am Do, 12 September 2013 10:27but I would suggest to surpress this in the end, the same for the data sended to openweathermap. The same for the sended data.
Module uses standard logging facilities inside fhem. So you can configure output to logfile simply by using verbose attribute yourself. See commandref for details.
Zitat von: HarryT schrieb am Do, 12 September 2013 10:27In the xml I see the rain amount.
Maybe openweathermap changed content of XML dataset. I had some discussions with responsible developers there regarding differences between JSON and XML. I will check this in about two weeks.
Moin.
Mir ist heute noch etwas aufgefallen. Ist es möglich das bei Übertagung des Wertes 0, dies nicht bei openweather.org aktualisiert wird? Dies ist unter anderem beim Wert "rain today" vorgestern war der Wert 7.2, gestern und heute bisher 0. Der Graf bieb bei 7.2 stehen und ist nicht auf 0 aktualisiert worden.
Laut Logfile wird aber der Wert 0 übertragen.
Schöne Grüße
Frank
Das ist aber eine Frage, die nur openweathermap beantworten kann. Was die dort mit den übertragenen Daten machen, kann ich nicht beeinflussen.
Und selbst die grafische Aufbereitung der Daten dort wird extern durchgeführt und nicht von openweathermap selbst.
---
Zitat von: HarryT schrieb am Do, 12 September 2013 10:27The module displays the complete xml it gets in the logfile.
...
In the xml I see the rain amount. But in the readings I don't see them.
I can not find rain data in any XML dataset. Please post an example with valid data here.
Moin.
Ich habe mir dass noch mal bei openweather.org angeschaut. Es scheint wirklich bei der grafischen Darstellung ein Problem zu geben. So ist die Darstellung der Kurven für Tages- und Stundenwerte richtig. Nur die Anzeige der Ticks bleibt beim letzten Wert hängen. Also im großen und ganzen alles richtig.
Noch mal Danke für Eure Mühen, funktioniert super.
Schöne Grüße
Frank
Seit heute braucht das Modul nicht mehr zwingend das JSON Modul für das Decodieren der Daten, standardmäßig wird nun XML verwendet.
Wer das JSON Modul auf seinem System verfügbar hat, kann das Attribut owoUseXml auf 0 setzen (oder löschen) um JSON zu verwenden.
Damit sollten vor allem die Benutzer irgendwelcher dreibuchstabiger "Hardware" aus Berlin ein paar Probleme weniger haben.
Zitat von: betateilchen schrieb am Do, 19 September 2013 11:55Zitat von: HarryT schrieb am Do, 12 September 2013 10:27The module displays the complete xml it gets in the logfile.
...
In the xml I see the rain amount. But in the readings I don't see them.
I can not find rain data in any XML dataset. Please post an example with valid data here.
Hi
Sorry for the delay, I was away for some time. Unfortunately the current version doesn't show the xml in the logfile any longer. And my logging is crashed during my abstance. Do you still have a version which displays the incoming xml in the logfile for debugging?
BTW openweathermap shows the time in GMT. Is it possible to convert these to the time in your actual place?
{HT}
Please read the module's documentation in commandref. You can configure the logging yourself. I did not change anything regarding the logging.
BTW: the more complete JSON dataset is shown with localtime conversion.
Dieses Modul hat mir ein schönes Wochenende bereitet: Interessante Geschichte und letztendlich auch wirklich gut gemacht. Nun läuft alles seit ein paar Stunden und da fällt mir im Log (verbose=3) auf, dass jeder Sendevorgang doppelt abläuft:
2013.10.13 18:05:52 3: owo owo: started: SendData
2013.10.13 18:05:52 3: owo owo: reading: owoSrc00 temp Wetterstation 8.6
2013.10.13 18:05:53 3: owo owo: reading: owoSrc01 humidity Wetterstation 85
2013.10.13 18:05:53 3: owo owo: reading: owoSrc02 wind_dir Wetterstation 280
2013.10.13 18:05:53 3: owo owo: reading: owoSrc03 rain_today RegenmengeTag 18.42194092827
2013.10.13 18:05:53 3: owo owo: reading: owoSrc04 wind_speed WindSpeed_mps 0
2013.10.13 18:05:53 3: owo owo: reading: owoSrc05 rain_1h RegenmengeLast1Hours 0
2013.10.13 18:05:53 3: owo owo: reading: owoSrc06 rain_24h RegenmengeLast24Hours 0
2013.10.13 18:05:53 3: owo owo: reading: owoSrc07 dewpoint Wetterstation 6.8
2013.10.13 18:05:53 3: owo owo: sending: name=Osterholz-Scharmbeck, DE&lat=53.120031&long=8.736286&alt=4&temp=8.6&humidity=85&wind_dir=280&rain_today=18.42194092827&wind_speed=0&rain_1h=0&rain_24h=0&dewpoint=6.8&APPID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2013.10.13 18:05:54 3: owo owo: htmlResponse: 200 OK
2013.10.13 18:05:59 3: owo owo: started: SendData
2013.10.13 18:05:59 3: owo owo: reading: owoSrc00 temp Wetterstation 8.6
2013.10.13 18:05:59 3: owo owo: reading: owoSrc01 humidity Wetterstation 85
2013.10.13 18:05:59 3: owo owo: reading: owoSrc02 wind_dir Wetterstation 280
2013.10.13 18:05:59 3: owo owo: reading: owoSrc03 rain_today RegenmengeTag 18.42194092827
2013.10.13 18:05:59 3: owo owo: reading: owoSrc04 wind_speed WindSpeed_mps 0
2013.10.13 18:05:59 3: owo owo: reading: owoSrc05 rain_1h RegenmengeLast1Hours 0
2013.10.13 18:05:59 3: owo owo: reading: owoSrc06 rain_24h RegenmengeLast24Hours 0
2013.10.13 18:05:59 3: owo owo: reading: owoSrc07 dewpoint Wetterstation 6.8
2013.10.13 18:05:59 3: owo owo: sending: name=Osterholz-Scharmbeck, DE&lat=53.120031&long=8.736286&alt=4&temp=8.6&humidity=85&wind_dir=280&rain_today=18.42194092827&wind_speed=0&rain_1h=0&rain_24h=0&dewpoint=6.8&APPID=XXXXXXXXXXXXXXXXXXXXXXX
2013.10.13 18:06:00 3: owo owo: htmlResponse: 200 OK
Könnte es damit zusammenhängen, dass unsere kleine Stadt einen langen Doppelnamen hat?
Herzliche Grüße
Christian
Komisch... am Namen mit dem Bindestrich liegt es sicher nicht.
Lass mal bitte das ",DE" weg und teste nochmal.
Ansonsten könnte es auch sein, dass da zwei Timer gestartet sind. Mach mal ein "shutdown restart" wenn die erste Maßnahme nicht greift.
Welche Modulversion hast Du im Einsatz?
Cooles Modul!
Hat mir heute während eines ereignisarmen Arbeitstages die Zeit vertrieben: OpenWeatherMap hat jetzt einen Messpunkt mehr ;)
Danke an den Entwickler !
Wird der Datenupload während Internet-Downzeiten eigentlich gepuffert und nach einem Reconnect nachträglich hochgeladen?
Zitat von: CQuadrat am 16 Oktober 2013, 15:52:49
Wird der Datenupload während Internet-Downzeiten eigentlich gepuffert und nach einem Reconnect nachträglich hochgeladen?
nein.
Das würde auch nichts nützen, weil der Timestamp der Datenerfassung nicht mitgesendet wird, somit wären die Daten nicht zuordenbar.
Also, das habe ich noch einmal getestet: Das DE weggelassen, ja unsere Stadt um die zweite Hälfte reduziert. Eine doppelte Definition oder doppelte Notifies kann ich ausschließen. In beiden Fällen habe ich immer noch zwei Log-Einträge je Sendevorgang:
2013.10.15 22:37:36 3: owo owo: started: SendData
2013.10.15 22:37:36 3: owo owo: reading: owoSrc00 temp Wetterstation 7.8
2013.10.15 22:37:36 3: owo owo: reading: owoSrc01 humidity Wetterstation 99
2013.10.15 22:37:36 3: owo owo: reading: owoSrc02 wind_dir Wetterstation 95
2013.10.15 22:37:36 3: owo owo: reading: owoSrc03 rain_today RegenmengeTag 1.74261603375532
2013.10.15 22:37:36 3: owo owo: reading: owoSrc04 wind_speed WindSpeed_mps 0
2013.10.15 22:37:36 3: owo owo: reading: owoSrc05 rain_1h RegenmengeLast1Hours 0
2013.10.15 22:37:36 3: owo owo: reading: owoSrc06 rain_24h RegenmengeLast24Hours 0
2013.10.15 22:37:36 3: owo owo: reading: owoSrc07 dewpoint Wetterstation 6.8
2013.10.15 22:37:36 3: owo owo: sending: name=Osterholz&lat=53.120031&long=8.736286&alt=4&temp=7.8&humidity=99&wind_dir=95&rain_today=1.74261603375532&wind_speed=0&rain_1h=0&rain_24h=0&dewpoint=6.8&APPID=XXXXXXXXXX
2013.10.15 22:37:37 3: owo owo: htmlResponse: 200 OK
2013.10.15 22:37:43 3: owo owo: started: SendData
2013.10.15 22:37:43 3: owo owo: reading: owoSrc00 temp Wetterstation 7.8
2013.10.15 22:37:43 3: owo owo: reading: owoSrc01 humidity Wetterstation 99
2013.10.15 22:37:43 3: owo owo: reading: owoSrc02 wind_dir Wetterstation 95
2013.10.15 22:37:43 3: owo owo: reading: owoSrc03 rain_today RegenmengeTag 1.74261603375532
2013.10.15 22:37:43 3: owo owo: reading: owoSrc04 wind_speed WindSpeed_mps 0
2013.10.15 22:37:43 3: owo owo: reading: owoSrc05 rain_1h RegenmengeLast1Hours 0
2013.10.15 22:37:43 3: owo owo: reading: owoSrc06 rain_24h RegenmengeLast24Hours 0
2013.10.15 22:37:43 3: owo owo: reading: owoSrc07 dewpoint Wetterstation 6.8
2013.10.15 22:37:43 3: owo owo: sending: name=Osterholz&lat=53.120031&long=8.736286&alt=4&temp=7.8&humidity=99&wind_dir=95&rain_today=1.74261603375532&wind_speed=0&rain_1h=0&rain_24h=0&dewpoint=6.8&APPID=XXXXXXXXXXXXXXXXXXXXXXXXXX
2013.10.15 22:37:44 3: owo owo: htmlResponse: 200 OK
Internals:
CFGFN ./FHEM/wetter.cfg
NAME owo
NR 252
NTFY_ORDER 50-owo
STATE active
TYPE openweathermap
Readings:
2013-10-16 07:08:02 my_dewpoint 6.8
2013-10-16 07:08:01 my_humidity 99
2013-10-16 07:08:02 my_lastSent Wed Oct 16 07:08:02 2013
2013-10-16 07:08:02 my_rain_1h 0
2013-10-16 07:08:02 my_rain_24h 0
2013-10-16 07:08:02 my_rain_today 1.74261603375532
2013-10-16 07:08:02 my_response {"message":"","cod":"200","id":"65955"}
2013-10-16 07:08:01 my_temp 10
2013-10-16 07:08:02 my_wind_dir 65
2013-10-16 07:08:02 my_wind_speed 0
2013-10-16 07:08:02 state active
Helper:
AVAILABLE 1
INTERVAL 1800
Attributes:
owoApiKey XXXXXXXXXXXXXXXXXX
owoDebug 0
owoGetUrl http://api.openweathermap.org/data/2.5/weather
owoInterval 1800
owoSendUrl http://openweathermap.org/data/post
owoSrc00 temp:Wetterstation:temperature
owoSrc01 humidity:Wetterstation:humidity
owoSrc02 wind_dir:Wetterstation:windDirection
owoSrc03 rain_today:RegenmengeTag:state
owoSrc04 wind_speed:WindSpeed_mps:state
owoSrc05 rain_1h:RegenmengeLast1Hours:state
owoSrc06 rain_24h:RegenmengeLast24Hours:state
owoSrc07 dewpoint:Wetterstation:dewpoint:state
owoStation Osterholz
owoUseXml 1
owoUser XXXXXXXXXXXXXXXXXXXX
room Wetter
verbose 3
Herzliche Grüße
Christian
Also zum einen sind viele Deiner Werte zu lang, vor allem latitude und longitude sollten nicht mehr als 4 Nachkommastellen haben, sonst kriegt der owo-Server Kummer.
Und dann irritiert mich, dass das doppelte Senden in einem Abstand von 7 Sekunden erfolgt. Da MUSS es irgendwo zwei Schleifen geben, anders kann solch ein Verhalten eigentlich nicht auftreten.
Wie sieht denn Deine fhem.cfg aus? Du hast ja die Definition ausgelagert. Gibt es in fhem.cfg noch irgendwo einen Eintrag, der was mit openweathermap zu tun hat?
Ich habe versucht, das Fehlerbild hier zu reproduzieren - ohne Erfolg.
Ganz herzlichen Dank für die Mühe, die Du, Betateilchen Dir gibtst. Deine Tipps bin ich so nachgegangen, vor allem habe ich die OWO-Definition ins fhem.cfg verlegt. Am Ende steht: Es funktioniert jetzt so wie erwartet - welcher Punkt es nun brachte, weiß ich nicht so recht.
Grüße
Christian
Irgendwie kann ich seit Tagen keine Daten mehr nach openweathermap übertragen - da kommt nur ein Serverfehler 500 zurück.
Hat das Problem sonst noch jemand festgestellt?
Moin.
Das Verhalten kann ich auch beobachten. Seit ein paar Tagen kommt es bei mir auch zu Problemen bei der Übertragung.
Schöne Grüße
Frank
Auch ich habe diesen Fehler. Das Modul hatte ich am Freitag noch erfolgreich eingerichtet und Daten übermittelt. Gestern hatte ich die Fehlermeldung. Und wenn ich mich auf der Homepage anmelden will, gibt es ebenfalls Fehler.
gut zu wissen, dass ich am Modul nix tun muss, sondern das Problem auf der anderen Seite liegt :)
Moin.
Zur Info. Seit gestern nachmittag werden wieder Daten nach Openweather übertragen.
Schöne Grüße
Frank
danke für den Hinweis, ich hab die Übertragung grade wieder aktiviert und sie funktioniert auch hier wieder.
nachdem ich FHEM endlich mal geupdated habe, geht jetzt auch das owo problemlos! Auf der Owo Webseite sehe ich unter "mystats" keinen Eintrag, aber auf der Karte sind sie zu sehen!
Hallo betateilchen,
ich habe 2 probleme mit dem Modul.
1. Es löst immer 2 mal aus:
2013.12.07 06:19:04 3: owo ow.Berlin: retrievingStationData: Id: 6545310 Name:
2013.12.07 06:19:04 3: owo ow.Berlin: decoding JSON
2013.12.07 06:19:19 3: owo ow.Berlin: retrievingStationData: Id: 6545310 Name:
2013.12.07 06:19:19 3: owo ow.Berlin: decoding JSON
2. Die Einstellung event-on-change-reading .* müsste die Anzahl der Log-Einträge auf die geänderten Werte reduzieren, hat aber keine Auswirkung.
2013-12-06_07:03:34 ow.Berlin c_lastWx: Fri Dec 6 06:48:57 2013
2013-12-06_07:03:34 ow.Berlin c_humidity: 75
2013-12-06_07:03:34 ow.Berlin c_pressureAbs: 999.3
2013-12-06_07:03:34 ow.Berlin c_windSpeed: 14.2
2013-12-06_07:03:34 ow.Berlin c_windDir: 265
2013-12-06_07:03:34 ow.Berlin c_clouds: 92
2013-12-06_07:03:34 ow.Berlin c_temperature: 1.4
2013-12-06_07:03:41 ow.Berlin c_lastWx: Fri Dec 6 06:48:57 2013
2013-12-06_07:03:41 ow.Berlin c_humidity: 75
2013-12-06_07:03:41 ow.Berlin c_pressureAbs: 999.3
2013-12-06_07:03:41 ow.Berlin c_windSpeed: 14.2
2013-12-06_07:03:41 ow.Berlin c_windDir: 265
2013-12-06_07:03:41 ow.Berlin c_clouds: 92
2013-12-06_07:03:41 ow.Berlin c_temperature: 1.4
2013-12-06_08:03:35 ow.Berlin c_lastWx: Fri Dec 6 08:00:10 2013
2013-12-06_08:03:35 ow.Berlin c_humidity: 96
2013-12-06_08:03:35 ow.Berlin c_pressureAbs: 999
2013-12-06_08:03:35 ow.Berlin c_windSpeed: 13.4
2013-12-06_08:03:35 ow.Berlin c_windDir: 270
2013-12-06_08:03:35 ow.Berlin c_clouds: 75
2013-12-06_08:03:35 ow.Berlin c_temperature: 1.4
2013-12-06_08:03:42 ow.Berlin c_lastWx: Fri Dec 6 08:00:10 2013
2013-12-06_08:03:42 ow.Berlin c_humidity: 96
2013-12-06_08:03:42 ow.Berlin c_pressureAbs: 999
2013-12-06_08:03:42 ow.Berlin c_windSpeed: 13.4
2013-12-06_08:03:42 ow.Berlin c_windDir: 270
2013-12-06_08:03:42 ow.Berlin c_clouds: 75
2013-12-06_08:03:42 ow.Berlin c_temperature: 1.4
Hast Du eine Idee?
Danke und Gruß,
Veit
Guten Tag,
die Sache mit der doppelten Auslösung hat sich bei mir auch wieder eingestellt - ganz kurz hatte ich (weiß nicht warum und wie) es mal, dass openweather nur einmal auslöste. Hatte dann einige Hinweise durchgespielt, aber ohne dauerhaften Erfolg. Bin froh, dass es jetzt noch eine weitere Beobachtung gibt, ich dachte schon, mein Problem würde vor dem Schirm sitzen :-)
Grüße
Christian
Zitat von: volschin am 07 Dezember 2013, 06:44:03
ich habe 2 probleme mit dem Modul.
1. Es löst immer 2 mal aus:
2. Die Einstellung event-on-change-reading .* müsste die Anzahl der Log-Einträge auf die geänderten Werte reduzieren, hat aber keine Auswirkung.
Hast Du eine Idee?
zu 1: da laufen aus irgendeinem Grund zwei Update-Schleifen innerhalb fhem - warum das auftritt, kann ich Dir im Moment nicht sagen, ich hatte diesen Effekt noch nicht. Kannst Du mal ein komplettes Listing Deines owo-Device posten? Was passiert, wenn Du fhem einmal neustartest? Ist das Problem dann weg?
zu 2: das Verhalten ist ganz einfach logisch erklärbar. Die Readings werden nicht wirklich aktualisiert, sondern im Rahmen der Auswertung IMMER erstmal komplett gelöscht und dann neu befüllt. Deshalb sind das immer alles "neue" Readings und keine update-Readings. Dieses Vorgehen war notwendig, um die Konsistenz der angezeigten Daten zu gewährleisten. Es liefern nämlich nicht alle Stationen den gleichen Datenumfang und Du könntest anhand der Daten nicht erkennen, von welcher Station sie wirklich stammen. Selbst die gleiche Station kann ab und zu unterschiedlich umfangreiche Datensätze liefern.
Übrigens: Datenabfragen in so kurzen Zeitabständen wie Du das machst (im Sekundenbereich), können dazu führen, dass owo Dich irgendwann komplett serverseitig sperrt. In der API-Definition ist ein Mindest-Intervall von 10 Minuten vorgegeben.
Ich habe gerade eine modifizierte Version eingecheckt und hoffe, dass damit das Problem mit der Doppeltverarbeitung behoben wird. Da ich es selbst nicht testen kann (ich hatte den Fehler noch nie) bin ich da auf Eure Rückmeldung angewiesen.
Hallo, Betateilchen,
habe nun seit 3 Stunden die neue Version aktiviert und kann Dir Erfolg vermelden. Jetzt werden bei mir alle halbe Stunde jeweils nur einmal die Daten übermittelt.
Das wäre ein Erfolg.
Herzliche Grüße
Christian
na das klingt doch schonmal ganz gut :)
Hallo betateilchen,
Sieht auch bei mir nach dem Update erstmal gut aus. Vielen Dank.
Gruß
Veit
na prima 8)
Danke für die Rückmeldungen.
Moin.
Ein Frage die mich gerade beschäftigt. Gibt es schon Möglichkeiten, die Wetterdaten auch an das Wetternetzwerk von wetter.com zuschicken?
Schöne Grüße
Frank S.
achso... jetzt (nachdem ich mal auf wetter.com gestöbert habe) verstehe ich erst den Hintergrund der Frage 8)
Achtung:
- das API von wetter.com heißt openweather
- das API um das es hier im Thread geht, ist für openweathermap
Es geht also um zwei völlig unterschiedliche Wetterdienste.
Das Modul hieß Anfangs nur "98_openweather" wurde aber im Laufe seiner Vervollständigung zu 98_openweathermap umbenannt. Lediglich der Thread-Titel blieb bestehen.
Wie kann man die Werte von Openweathermap regelmäßig abrufen?
Indem man die Beschreibung zum Modul liest?
Wenn Du nicht antworten möchtest, tu es einfach nicht. Die Freundlichkeit in deutschen Foren wird immer besser... :-\ Ich habe die Beschreibung gelesen und nicht verstanden, bzw. eine Lösung dafür nicht gefunden. Ich will die Daten von OWM auslesen und nicht wegschicken. Und laut commendref bietet das Modul diese Möglichkeit nicht an. Also muss man bestimmt irgendetwas dafür programmieren.
Moin Joesky,
ich nutze zwar dieses Modul nicht,
aber
im Gegensatz zu Dir habe ich die Beschreibung gelesen.
Es steht alles drin was man wissen muß!
ZitatWenn Du nicht antworten möchtest, tu es einfach nicht. Die Freundlichkeit in deutschen Foren wird immer besser..
Wenn Du nicht in der Lage bist zu lesen und zu verstehen, bzw. bei nichtverstehen eine entsprechende Frage zu formulieren,
dann ist das Dein Problem.
Frage von Dir war:
ZitatWie kann man die Werte von Openweathermap regelmäßig abrufen?
Richtige Antwort:
ZitatIndem man die Beschreibung zum Modul liest?
denn dort steht:
2. set a weather station from owo network as data source for your fhem installation
set owo stationByName Leimen
set owo stationById 2879241
set owo stationByGeo 49.3511 8.6894
All commands will retrieve weather data for Leimen (near Heidelberg,DE)
Readings will be updated periodically, based on value of owoInterval.Ich fand die Antwort ausreichend und freundlich.
Wenn Du in dieser Beschreibung etwas nicht verstanden hast, stelle Verständissfragen.
Gruß Joachim
Wie ich geschrieben habe: Dann habe ich die Beschreibung nicht richtig verstanden. Ich ging davon aus, dass ich mit dem set die Datenübertragung einstelle. Allerdings habe ich das so auch schon probiert und es kam nichts an. Aber egal, ich doktor' dann mal weiter.
Wenn ich etwas nicht verstehe, stelle ich eine Frage in einem Forum, so habe ich das Prinzip verstanden. Wenn jeder alles verstehen würde, wäre ein Forum überflüssig. Aber hier (und inzwischen nicht nur hier) läuft man Gefahr gleich angemacht zu werden, weil man etwas fragt. Nur weil ich erst etwas um die 10 Beiträge geschrieben habe, heißt das nicht, dass ich blutiger Anfänger bin. Ich musste einfach bisher nichts fragen, weil ich eine Antwort fand. Eine Antwort "Indem man die Beschreibung zum Modul liest?" ist eine anmache von der Seite.
Zitat von: Joesky am 17 Januar 2014, 21:25:52Wenn Du nicht antworten möchtest, tu es einfach nicht.
Da ich der Autor des Moduls bin, geht es nicht darum, ob ich antworten will oder nicht. Nur hätte ich Dir nichts anderes antworten können, als das was auch in der commandref steht und was von meinem Vorredner bereits zitiert wurde.
Zitat von: Joesky am 17 Januar 2014, 21:25:52Ich will die Daten von OWM auslesen und nicht wegschicken. Und laut commendref bietet das Modul diese Möglichkeit nicht an.
Ich habe keine Ahnung, wie Du auf diese Aussage kommst. In der commandref zum Modul steht ganz am Anfang eindeutig und leicht verständlich, welche Funktionen diese Modul bietet.
This module provides connection to openweathermap-network www.openweathermap.org (owo)
You can use this module to do three different tasks:
1. send weather data from your own weather station to owo network.
2. set any weather data in owo network as datasource for your fhem installation. Data from this station will be updated periodically.
3. retrieve weather data from any weather station in owo network once. (same as 2. but without update)
Und wenn Du das auch nur ein einziges Mal gelesen hättest, könntest Du nicht auf eine solch falsche Behauptung kommen, denn Punkt 2 dieser Liste ist exakt das, wonach Du gefragt hast. Und wie diese Funktionalität umgesetzt wird, ist in der commandref meiner Meinung nach leicht verständlich beschrieben inklusive Beispiel.
Lesenkönnen setze ich eigentlich bei jedem Anwender voraus.
Egal. Ich versuch's einfach weiter, Danke.
Beschreib doch einfach mal Dein konkretes Problem, bevor Du Leute vollmaulst.
Du mußt doch einfach nur eine Station mit "set..." definieren und alles ist gut.
Nanu?! :o Wo ist denn das Modul geblieben? Ist das aus dem SVN geflogen?
Weder der define geht noch finde ich es in der commandref...
Gruß Marius
http://forum.fhem.de/index.php/topic,24187.0.html
Nach dem deaktiveren des Debug modes bekomme ich folgendes
2014.08.15 14:40:52 3: owo meinWetter: htmlResponse: 500 Internal Server Error
2014.08.15 14:40:52 3: owo meinWetter: sending: name=Hassels&lat=52.17780&long=7.87222&alt=&rain=50.2&APPID=2998a064ea470ba5682b01f0d5825403
2014.08.15 14:40:51 3: owo meinWetter: reading: owoSrc00 rain KS300 50.2
2014.08.15 14:40:51 3: owo meinWetter: started: SendData
owoGetUrl
http://api.openweathermap.org/data/2.5/weather
owoSendUrl
http://openweathermap.org/data/post
owoUseXml
1
Hallo,
ich wüde gerne die Niederschlagswerte für meine Stadt abrufen und loggen. Dafür erschien mir dieses modul passend. Ich hab es jetzt eingerichtet, finde aber keine Readings für Niederschlag. Liegt das an XML?
Gibt es noch irgendwo die Dokumentation für das Modul? bzw. den commandref eintrag?
Vielen Dank &lg
beim openweathermap modul kann ich dir nicht weiterhelfen aber vielleicht ist das netatmo modul etwas für dich. schau mal ins wiki.
gruss
andre
Zitat von: Alex am 13 September 2014, 15:30:24
Ich hab es jetzt eingerichtet, finde aber keine Readings für Niederschlag. Liegt das an XML?
Das kann vielleicht einfach daran liegen, dass bei weitem nicht jede in openweathermap gelistete Station auch tatsächlich Regendaten liefert. Das Thema hatten wir hier schon mehrfach.
Dass die Datensätze zwischen XML und JSON unterschiedliche Datenmengen enthalten, ist ein weiterer Effekt, der sich auswirken kann.
vielen Dank für die schnellen Antworten! Ich habs komplett gelesen und daher mit Berlin, Karlsruhe und Magdeburg versucht und bei allen dreien keinen Niederschlag gefunden (auf der Website ist er allerdings angegeben).
vvon netatmo hatte ich noch nichts gehört, scheint aber sehr vielversprechend zu sein. Ich denke ich werde das mal versuchen. bevor ich mir an JSON die zähne ausbeiße...
Hallo betateilchen,
ich wollte mich heute wieder einmal mit dem openweathermap modul beschäftigen.
Das Modul ist umgezogen in ./contrib - das habe ich gesehen. Ich finde allerdings keine Dokumentation mehr in der commandref. Ist die auch umgezogen - wohin?
Zwischenzeitlich gab es bei openweathermap.org einige - zumindest optische - Umstellungen. Ist die API davon auch betroffen? Können wir unsere Wetterdaten immer noch hochladen?
Warum ist das Modul eigentlich in ./contrib umgezogen. Was bedeutet das für das Modul? Werden noch automatische updates verteilt?
Gruß
TK
Die Dokumentation ist nach wie vor im Modul vorhanden. Allerdings führt die commandref nur die Dokumentation der Modul, die im regulären fhem-Modulpfad enthalten sind.
Das Modul ist (neben einigen anderen auch) von mir nach ./contrib verschoben worden, weil zum einen das Interesse an dem Modul nicht mehr gegeben war und zum anderen keine großen Änderungen/Erweiterungen mehr vorgesehen waren.
http://forum.fhem.de/index.php/topic,24187.0.html
Der Upload von Wetterdaten funktioniert nach wie vor.
(http://up.picr.de/20041505cg.png)