NEWS
Adapter: Weatherunderground 24h Prognose
-
danke für das tolle Script, funktioniert super….
außer das es die Javascript Instanz killt, wenn keine Internetverbindung vorhanden ist
host-Mastermind 2016-08-26 10:30:13.165 error instance system.adapter.javascript.0 terminated with code 0 (OK) javascript-0 2016-08-26 10:30:10.604 info terminating TypeError: 2016-08-26 10:30:10.598 error at Socket.emit (events.js:169:7) TypeError: 2016-08-26 10:30:10.598 error at emitOne (events.js:77:13) TypeError: 2016-08-26 10:30:10.598 error at Socket.socketErrorListener (_http_client.js:269:9) TypeError: 2016-08-26 10:30:10.598 error at ClientRequest.emit (events.js:169:7) TypeError: 2016-08-26 10:30:10.598 error at emitOne (events.js:77:13) TypeError: 2016-08-26 10:30:10.598 error at Request.onRequestError (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:813:8) TypeError: 2016-08-26 10:30:10.598 error at Request.emit (events.js:169:7) TypeError: 2016-08-26 10:30:10.598 error at emitOne (events.js:77:13) TypeError: 2016-08-26 10:30:10.598 error at self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:187:22) TypeError: 2016-08-26 10:30:10.598 error at Request._callback (script.js.Umwelt.weatherground_upload:220:78) TypeError: 2016-08-26 10:30:10.598 error Cannot read property 'statusCode' of undefined uncaught 2016-08-26 10:30:10.595 error exception: Cannot read property 'statusCode' of undefined
Ich habe es im Moment so gelöst, dass ich mit dem Ping Adapter auf google pinge und in deinem Script überprüfe, ob die Verbindung da ist, bevor die Funktion augeführt wird.
Soweit ich sehe, hast du eine Fehlerabfrage eingebaut, irgendwie greift die aber nicht
-
Welches Skript meinst du?
Dieses? http://forum.iobroker.net/viewtopic.php … =20#p29617
Denn da ist ein try & catch enthalten. Das sollte die Javascript Instanz verschonen, wenn es Probleme gibt.
Gruß
Pix
-
das zweite Script:
http://forum.iobroker.net/viewtopic.php … =20#p30225
Ich habe es ein bisschen angepasst, ist aber noch work-in-progress, da meine selbstgebastelte Wetterstation noch nicht ganz fertig ist. Mein Script schaut so aus, die Fehlermeldung hat es mir vor dem Einfügen der Pingabfrage gegeben:
/* Skript zum Beschreiben der Personal Weather Station Autor: pix (30.6.2016), mit Anpassungen durch dtp nach dem Vorbild dieses HM-Skriptes von mape http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007 Voraussetzung: Anmeldung einer PWS unter https://www.wunderground.com/personal-weather-station/signup (Hardware: other) */ var pws_id = "xxx"; // "Station ID" der PWS var pws_key = "xxx"; // "Station Key" der PWS var iduv = "javascript.1.Wetterstation.UV"/*UV*/; var idtempc = "hm-rpc.0.KEQ0174268.1.TEMPERATURE"/*Aussentemp.TEMPERATURE*/; // Tempertur in °C var idhumidity = "hm-rpc.0.KEQ0174268.1.HUMIDITY"/*Aussentemp.HUMIDITY*/; // Luftfeuchtigkeit in % var idwinddir = "javascript.1.Wetterstation.windrichtung"/*windrichtung*/; // Windrichtung (0-360°) var idwindspeedkmh = "javascript.1.Wetterstation.windstaerke"/*windstaerke*/; // Windgeschwindigkeit in km/h //var iddailyrainmm = "hm-rega.0.4978"; // Regen heute in mm // Ab hier nix mehr anpassen var request = require('request'); function weatherupdate() { var ping = getState("ping.0.Mastermind.www_google_at"/*google*/); if(ping) { log("----------------WONDERGROUND UPDATE"); var tempc = getState(idtempc).val; var tempf = (tempc * 1.8) + 32; // Umwandlung °C in °F var humidity = getState(idhumidity).val; var winddir = getState(idwinddir).val; var windspeedkmh = getState(idwindspeedkmh).val; var windspeedmph = windspeedkmh * 0.621371; // Umwandlung km/h in mph var dailyrainmm = 0;//getState(iddailyrainmm).val; var dailyrainin = dailyrainmm * 0.0393701; // Umwandlung mm in in var uvindex = getState(iduv).val; // Uv index //var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&UV=' + uvindex + '&action=updateraw'; var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&UV=' + uvindex + '&action=updateraw'; try { request(weatherURL,function (error, response, body) { if (!error && response.statusCode == 200) { // Update ok log('Wunderground Personal Weather Station successfully updated','debug'); } else { log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn'); log(error,'error'); } }); } catch (e) { log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error'); } } } on(idtempc, weatherupdate); // aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor on(idhumidity, weatherupdate); // aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor //on(idwinddir, weatherupdate); // aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor //on(idwindspeedkmh, weatherupdate); // aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor //on(iddailyrainmm, weatherupdate); // aktualisieren, wenn neuer Regenwert von HM-Kombisensor
-
Hi Leute,
hätte ebenfalls gerade probiert den Adapter zu installieren.
Leider bekomme ich im Log immer folgende Fehlermeldung:
error No forecast data found in response
Ich habe die API eingegeben und meine Koordinaten.Ist sonst noch etwas notwendig ?
Beste Grüße
-
Ich habe die Erfahrung gemacht das es über eine Station-ID am besten geht! Über Ort und Koordinaten kann es sein das mehrere Stationen in Frage kommen und dann liefert die API von denen eine Liste der Stationen zurück anstelle der Daten die man eigentlich will … das endet dann in dem Fehler das keine Daten in der Response sind.
Wenn Du genau wissen willst was zurück kommt lass den Adapter auf "debug" laufen, dann stehen die URLs im Log die du im Browser aufrufen kannst.Dann kannst du da auch mit den Daten rumspielen bis echte Werte kommen.
Aber die gesagt: Meiner Meinung nach am Einfachsten ist wenn Du auf die Webseite gehst , dort nach der für dich besten Station suchst (viele Stationen != alle gleich gute Daten!) die für dich am besten passt und die ID dann einträgst.
Ingo F
-
Hi apollon,
hat leider auch nix gebracht.
Mit Station-ID kommen jetzt sogar 2 Fehlermeldungen:
Muss ich eventuell bei meinem wunderground Konto wo etwas einstellen ? Hab da nämlich nix gefunden …
-
Schreib die Messstation mal in der Konfig unter "Messstation" rein (ohne pws).
Also ich musste folgendes angeben:
Stadt: Karlsruhe%2C+Germany
Messstation: IKARLSRU331
Ansonsten lass mit deinen einstellungen mal in debug laufen und schick die URLs
-
Hi apollon77,
ich stoße das Thema noch einmal an, nachdem ich hier nicht weiter nach Problemlösungen fündig geworden bin.
Ich habe das gleiche Problem wie von Qlink berichtet.
Eingetragen ist der Api-Key und die Stations-ID (EDDH).
Im Log steht dann:
weatherunderground.0 2017-01-04 15:45:02.100 error No current observation data found in response weatherunderground.0 2017-01-04 15:45:02.072 error No forecast data found in response
Die Station wäre diese hier, falls das in irgendeiner Weise weiter hilft:
https://www.wunderground.com/history/ai … .wmo=10147
Hast Du für mich den Stups in die richtige Richtung?
Danke,
Gruß
Thomas
-
Hast du nur mal zum testen eine andere Station eingetragen?
Z.B. Flughafenstrasse (IHAMBURG1819)
Gruß
Mirko
-
Hi Mirko,
das klappt….. merkwürdig. Private liefern halt nicht ganz so exakte Daten.... aber besser wie nix.
Hast Du n Ahnung, wie man das Wettericon (aktuelles Wetter) ins VIS rein bekommt...
Danke und Gruß
Thomas
-
Welches Widget genau meinst du?
Gesendet von iPhone mit Tapatalk
-
Hey, Dein Link oben liefert nix …
Was immer hilft ist in solchen Fällen den Adapter im Debug zu starten (Expertenmodus unter "Instanzen" und dann die relevante Instanz auf Debug setzen). Dann sieht man die URLs die er versucht abzurufen und könnt da genau schauen. "EDDH" kommt mir irgendwie als Stationsname etwas kurz vor ...
-
Hi Mirko,
das klappt….. merkwürdig. Private liefern halt nicht ganz so exakte Daten.... aber besser wie nix.
Hast Du n Ahnung, wie man das Wettericon (aktuelles Wetter) ins VIS rein bekommt...
Danke und Gruß
Thomas `
Bin mir nicht sicher ob ich dich richtig verstanden habe aber eventuell so.
Ich lade mir mit dem Widget immer die Aktuelle Wetterkarte vom DWD für NRW:
[{"tpl":"tplIFrame","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"120000","refreshOnWakeUp":"false","refreshOnViewChange":"false","scrollX":false,"scrollY":false,"seamless":true,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"src":"http://www.dwd.de/DWD/wetter/radar/rad_nrw_akt.jpg","noSandbox":false},"style":{"left":"0px","top":"37px","width":"557px","height":"515px"},"widgetSet":"basic"}]
Vielleicht auf der Weatherundergroundseite nach der "Quelle" für das Icon suchen und den DWD link ersetzen!?
-
Welches Widget genau meinst du?
Gesendet von iPhone mit Tapatalk `
Hi Mirko,
mir geht es darum, dass ich z.B. das von Wunderground aus gelieferte Icon angezeigt wird.
https://icons.wxug.com/i/c/v4/partlycloudy.svg
Dies wird in den Objekten unter
weatherunderground.0.current.icon_url
erwähnt.
Hi Apollon77,
es gibt noch diesen Link hier:
https://www.wunderground.com/de/hamburg … .227.10147
Ob hier dann das "zmw....." die ID ist, keine Ahnung.
Das Debug für die Flughafen Station liefert:
weatherunderground.0 2017-01-05 09:15:01.904 error weatherunderground.0 No current observation data found in response weatherunderground.0 2017-01-05 09:15:01.813 error weatherunderground.0 No forecast data found in response weatherunderground.0 2017-01-05 09:15:01.355 debug weatherunderground.0 calling forecast: http://api.wunderground.com/api/9fd05296740dbb54/hourly/lang:DL/q/pws:EDDH.json weatherunderground.0 2017-01-05 09:15:01.355 debug weatherunderground.0 calling forecast: http://api.wunderground.com/api/9fd05296740dbb54/conditions/lang:DL/q/pws:EDDH.json weatherunderground.0 2017-01-05 09:15:01.355 debug weatherunderground.0 init forecast objects weatherunderground.0 2017-01-05 09:15:01.355 debug weatherunderground.0 init conditions objects weatherunderground.0 2017-01-05 09:15:01.355 info weatherunderground.0 starting. Version 1.0.2 in /opt/iobroker/node_modules/iobroker.weatherunderground, node: v4.7.0
ID und Namen werden in den Objekten angelegt, allerdings ohne einen entsprechenden Wert dazu.
-
Welches Widget genau meinst du?
Gesendet von iPhone mit Tapatalk `
Hi Mirko,
mir geht es darum, dass ich z.B. das von Wunderground aus gelieferte Icon angezeigt wird.
https://icons.wxug.com/i/c/v4/partlycloudy.svg
Dies wird in den Objekten unter
weatherunderground.0.current.icon_url
erwähnt. `
So:
[{"tpl":"tplValueStringImg","data":{"oid":"weatherunderground.0.current.icon_url","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false},"style":{"left":"637px","top":"194px","width":"135px","height":"123px"},"widgetSet":"basic"}]
Kann es sein das Weatherunderground die Daten für den Flughafen nicht öffentlich machen möchte für die Breite Masse!?
-
Danke, das mit dem Icon klappt…
Das mit der "breiten Masse" wäre möglich wenn auch komisch.... was soll da geheim oder so sein?
Mal sehen ob wir das noch gebacken bekommen.
-
Geheim nicht, aber vielleicht möchte man einfach zu viele Anfragen verhindern.
Versuch doch mal zum Vergleich z.B. Flughafen Düsseldorf EDDL
-
Danke für den Adapter - funktioniert super!
Würde jetzt noch gerne die Forecast Daten in ein flot chart füttern.
Hat wer eine Idee, wie das funktionieren könnte?
-
Wahrscheinlich wie bei allen Daten
http://www.iobroker.net/?page_id=144&lang=de
Oder viele Informationen in diesem Thread
http://forum.iobroker.net/viewtopic.php?f=20&t=4619
Gruß
Rainer
-
Hi,
als ersten bei den Werten die du benutzen willst das Aufzeichnen aktivieren. Dazu im Tab Objects den Value auswählen und ganz hinten auf das Zahnrad klicken.
Dann den Datenpunkt in Flot auswählen.
… Rainer war schneller