NEWS
[Vorlage Blockly] Wunderground Upload
-
@Christian-B Ich nutze hier den UV-Adapter openuv. Mein Weatherman hat leider keinen Sensor für UV- Einstahlung, daher nutze ich die Daten aus dem Adapter für meine Region.
-
Hier ist das finale Script zum Upload der Weatherman Wetterdaten zu WeatherUnderground. Solar Radiation wird in der Homematic berechnet.
Beide Windarten (Spitze und Durchschnitt) werden nun an WeatherUnderground übertragen./* Skript zum Beschreiben der Personal Weather Station Autor: pix (30.6.2016), mit Anpassungen durch dtp {1} nach dem Vorbild dieses HM-Skriptes von mape http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007 {1} Voraussetzung: Anmeldung einer PWS unter https://www.wunderground.com/personal-weather-station/signup (Hardware: other) */ var logging = false; var pws_id = "IHOHENxx"; // "Station ID" der PWS var pws_key = "abcdef"; // "Station Key" der PWS var idtempc = "hm-rega.0.4849"; // Temperatur in °C var idhumidity = "hm-rega.0.2987"; // Luftfeuchtigkeit in % var idwinddir = "hm-rega.0.2966"; // Windrichtung (0-360°) var idwindspeedkmh = "hm-rega.0.2648"; // Windgeschwindigkeit in km/h var idwindgustkmh = "hm-rega.0.3745"; // Windgeschwindigkeit Peak in km/h var iddailyrainmm = "hm-rega.0.3006"; // Regen heute in mm var iddailynowrainmm = "hm-rega.0.3000"; // Regenstärke aktuell in mm var idpressure = "hm-rega.0.2955"; // Luftdruck var idsolarradiation = "hm-rega.0.4835"; // Solar Radiation var iduv = "openuv.0.UV"; // UV Einstrahlung aus OpenUV // Ab hier nix mehr anpassen var request = require('request'); function weatherupdate() { var tempc = getState(idtempc).val; var tempf = (tempc * 1.8) + 32; // Umwandlung °C in °F var barometera = getState(idpressure).val; var barometerb = (barometera*0.02952998751); 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 windgustkmh = getState(idwindgustkmh).val; var windgustmph = windgustkmh * 0.621371; // Umwandlung km/h in mph var dailyrainmm = getState(iddailyrainmm).val; var dailyrainin = dailyrainmm * 0.0393701; // Umwandlung mm in in var dailyrainnowmm = getState(iddailynowrainmm).val; var dailyrainnowin = dailyrainnowmm * 0.0393701; // Umwandlung mm in in var taupkt = 0; var taupktf = (taupkt * 1.8) + 32; var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol) var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K)) var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin) var tk = tempc + t0; // Temperatur in Kelvin var solarradiation1 = getState(idsolarradiation).val; var uv = getState(iduv).val; var a, b; if (tempc >= 0) { a = 7.5; b = 237.3; } else if (tempc < 0) { a = 7.6; b = 240.7; } // Sättigungsdampfdruck (hPa) var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc)); // Dampfdruck (hPa) var dd = sdd * (humidity/100); // Wasserdampfdichte bzw. absolute Feuchte (g/m3) af = Math.pow(10,5) * mw/gk * dd/tk; // v v = Math.log10(dd/6.1078); // Taupunkttemperatur (°C) td = (b*v) / (a-v); taupkt = (Math.round(td*100)/100); taupktf = (taupkt * 1.8) + 32; taupktf1 = (Math.round(taupktf*100)/100); 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 + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&solarradiation=' + solarradiation1 +'&uv=' + uv +'&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'); } if (logging === true) { log ('Daten wurden an Wunderground gesendet', 'info'); log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)'); log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)'); log ('Luftfeuchte : ' + humidity + ' %'); log ('Windrichtung : ' + winddir); log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)'); log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)'); log ('Regen : Aktuell ' + dailyrainnowmm + ('mm und am Tag: ') + ' (' + dailyrainmm + ' mm)'); log ('--------------------------------------------------------------------------'); log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)'); log ('--------------------------------------------------------------------------'); } } 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(idwindgustkmh, weatherupdate); // aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor on(iddailynowrainmm, weatherupdate); // aktualisieren, wenn neuer Regenwert von HM-Kombisensor on(iddailyrainmm, weatherupdate); // aktualisieren, wenn neuer Regenwert von HM-Kombisensor on(idpressure, weatherupdate); // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor on(idsolarradiation, weatherupdate); on(iduv, weatherupdate);
Hier das Script für die CCU. Ich habe es bisher nicht für den iobroker umgeschrieben, das sowieso alle Daten vom Weatherman über die CCU kommen:
! Solar_Radiation aus Sonnentemperatur berechnen ! und in Systemvariable "SV_Solar_Radiation" schreiben ! Stand: 22.07.2019 ! real r1; object r1 = dom.GetObject ("w_sonne_diff_mittel").Value(); r1 = dom.GetObject ("w_sonne_diff_mittel").Value(); WriteLine(r1); ! Ergebnis berechnen real r3; r3 = ((r1 - 3.0)*30).ToInteger(); WriteLine(r3); ! Ergebnis abspeichern dom.GetObject("SV_Solar_Radiation").State(r3); WriteLine(r3);
Viel Spaß mit den Skripten und dem Weatherman.
-
@MartyBr Hallo,
Eine Frage zur Sonnenstrahlung (Solar Radiation). Wie kann ich die mit den Daten vom Weatherman berechnen. Den in deinem Skript angegebenen Wert "w_sonne_diff_mittel" liefert der weatherman bei mir nicht. Ich bekomme die Werte "w_sonnentemperatur" und "w_sonne_diff_temp".Wäre für Hilfe dankbar.
-
@CKMartens
Ich berechne die Werte auch in der Homematic. Bei Änderung der Außentemperatur läuft dann das folgende Script an:! Skript zur berechnung des Mittelwertes der AußenTemperatur ! real tau = 0.3; ! 1 = keine mittelung ; kleinere werte, umso stärker ist mittelung real temperatur = dom.GetObject("w_temperature").Value(); ! WriteLine(temp); real w_temperatur_mittel = dom.GetObject("w_temperatur_mittel").Value(); ! WriteLine(w_temperatur_mittel); real Diff = temperatur - w_temperatur_mittel; w_temperatur_mittel = w_temperatur_mittel + (tau*Diff); ! WriteLine(w_temperatur_mittel); dom.GetObject("w_temperatur_mittel").State(w_temperatur_mittel); ! ------------------------------------------ ! Skript zur berechnung des Mittelwertes der Differnztemperatur ! real tau1 = 0.3; ! 1 = keine mittelung ; kleinere werte, umso stärker ist mittelung real Sonne_Diff = dom.GetObject("w_diff_temp").Value(); ! WriteLine(Sonne_Diff); real Sonne_Diff_Mittel = dom.GetObject("w_sonne_diff_mittel").Value(); ! WriteLine(Sonne_Diff_Mittel); real Diff= Sonne_Diff - Sonne_Diff_Mittel; ! WriteLine(Diff); Sonne_Diff_Mittel = Sonne_Diff_Mittel + (tau1 *Diff); ! WriteLine(Sonne_Diff_Mittel); dom.GetObject("w_sonne_diff_mittel").State(Sonne_Diff_Mittel);
Du kannst aber auch die "echten" Werte vom Weatherman nehmen. Die gemittelten sind nur geglättet. Die Vorlage vom Script kommt von "Funkleuchtturm".
Gruß Martin -
@MartyBr
ich nutze das Skript schon länger und bin sehr zufrieden damit.
Eine Sache habe ich jedoch. Die Windgeschwindigkeit kommen bei mir von dem Wiffi-wz Adapter und werden in m/s ausgegeben und entsprechend auch zu Wunderground übertragen. Da ich keine Ahnung vom Programmieren habe, wollte ich fragen, ob es möglich ist, in dem Skript den m/s einfach mit 3,6 zu multiplizieren damit WG den richtigen Wert erhält? An welche Stelle des Skriptes müsste die Formal eigetragen werden.
Danke und Grüße -
@Christian-B
Ich Rechner die Werte schon in der Homematic um und übertrage die Werte dann zum ioBroker (mit dem Rega-Adapter).
Auch wenn du die originalen Werte in m/s hast, macht das eigentlich keine Probleme.
Die Anpassung sollte so gehen:/* Skript zum Beschreiben der Personal Weather Station Autor: pix (30.6.2016), mit Anpassungen durch dtp {1} nach dem Vorbild dieses HM-Skriptes von mape http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007 {1} Voraussetzung: Anmeldung einer PWS unter https://www.wunderground.com/personal-weather-station/signup (Hardware: other) */ var logging = false; var pws_id = "IHOHENxx"; // "Station ID" der PWS var pws_key = "abcdef"; // "Station Key" der PWS var idtempc = "hm-rega.0.4849"; // Temperatur in °C var idhumidity = "hm-rega.0.2987"; // Luftfeuchtigkeit in % var idwinddir = "hm-rega.0.2966"; // Windrichtung (0-360°) var idwindspeedms = "hm-rega.0.2648"; // Windgeschwindigkeit in m/s var idwindgustms = "hm-rega.0.3745"; // Windgeschwindigkeit Peak in m/s var iddailyrainmm = "hm-rega.0.3006"; // Regen heute in mm var iddailynowrainmm = "hm-rega.0.3000"; // Regenstärke aktuell in mm var idpressure = "hm-rega.0.2955"; // Luftdruck var idsolarradiation = "hm-rega.0.4835"; // Solar Radiation var iduv = "openuv.0.UV"; // UV Einstrahlung aus OpenUV // Ab hier nix mehr anpassen var request = require('request'); function weatherupdate() { var tempc = getState(idtempc).val; var tempf = (tempc * 1.8) + 32; // Umwandlung °C in °F var barometera = getState(idpressure).val; var barometerb = (barometera*0.02952998751); var humidity = getState(idhumidity).val; var winddir = getState(idwinddir).val; var windspeedms = getState(idwindspeedms).val; var windspeedmph = windspeedms * 2,2369356; // Umwandlung m/s in mph var windgustms = getState(idwindgustms).val; var windgustmph = windgustms * 2.2369356; // Umwandlung m/s in mph var dailyrainmm = getState(iddailyrainmm).val; var dailyrainin = dailyrainmm * 0.0393701; // Umwandlung mm in in var dailyrainnowmm = getState(iddailynowrainmm).val; var dailyrainnowin = dailyrainnowmm * 0.0393701; // Umwandlung mm in in var taupkt = 0; var taupktf = (taupkt * 1.8) + 32; var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol) var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K)) var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin) var tk = tempc + t0; // Temperatur in Kelvin var solarradiation1 = getState(idsolarradiation).val; var uv = getState(iduv).val; var a, b; if (tempc >= 0) { a = 7.5; b = 237.3; } else if (tempc < 0) { a = 7.6; b = 240.7; } // Sättigungsdampfdruck (hPa) var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc)); // Dampfdruck (hPa) var dd = sdd * (humidity/100); // Wasserdampfdichte bzw. absolute Feuchte (g/m3) af = Math.pow(10,5) * mw/gk * dd/tk; // v v = Math.log10(dd/6.1078); // Taupunkttemperatur (°C) td = (b*v) / (a-v); taupkt = (Math.round(td*100)/100); taupktf = (taupkt * 1.8) + 32; taupktf1 = (Math.round(taupktf*100)/100); 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 + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&solarradiation=' + solarradiation1 +'&uv=' + uv +'&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'); } if (logging === true) { log ('Daten wurden an Wunderground gesendet', 'info'); log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)'); log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)'); log ('Luftfeuchte : ' + humidity + ' %'); log ('Windrichtung : ' + winddir); log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)'); log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)'); log ('Regen : Aktuell ' + dailyrainnowmm + ('mm und am Tag: ') + ' (' + dailyrainmm + ' mm)'); log ('--------------------------------------------------------------------------'); log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)'); log ('--------------------------------------------------------------------------'); } } 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(idwindgustkmh, weatherupdate); // aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor on(iddailynowrainmm, weatherupdate); // aktualisieren, wenn neuer Regenwert von HM-Kombisensor on(iddailyrainmm, weatherupdate); // aktualisieren, wenn neuer Regenwert von HM-Kombisensor on(idpressure, weatherupdate); // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor on(idsolarradiation, weatherupdate); on(iduv, weatherupdate);
Du müsstest also die beiden Variablen einlesen:
var idwindspeedms = "hm-rega.0.2648"; // Windgeschwindigkeit in m/s var idwindgustms = "hm-rega.0.3745"; // Windgeschwindigkeit Peak in m/s
Die Umrechnung habe ich im Script dann vorgenommen. An Underground werden ja mph (Miles per hour) übergeben.
-
Hallo @MartyBr
ich habe den Neuen Skript übernommen und die Windgeschwindigkeiten werden jetzt korrekt umgerechnet in km/h angezeigt.
Allerdings erst nachdem ich ich in der Zeile 39 das Komma gegen einen Punkt getausch habeIrgendwas scheint dennoch noch nicht 100% zu funktionieren, da der Doppelbalken, der den aktivierten Skript signalisiert bei mir nicht grün sondern gelb ist
in dem Kasten bekomme ich auch eine Warnmeldung, die mich leider nicht weiter bringt. Mit dem ersten Skript hatte ich das nicht.
Hast du eine Idee, was das sein könnte. -
@Christian-B
Das mit dem Punkt ist richtig, ich habe die Umrechnung ja für dich eingeführt.
Eine kurze Frage: Hast du den openuv-Adapter installiert? dort kommen ja die UV-Werte her.
Eine zweite Frage: du hast einen wunderground-API key?Bis auf die letzte Umrechnung dürfte es keine Problem sein.
Ein Hinweis noch: Im Javascript-Adapter muss du das Modul "request" Einfragen.
-
@MartyBr
ich kann alle deine Fragen bejahen.
Die Werte werden auch zu wunderground übertragen und dort korrekt, incl. Windgeschwindigkeiten in km/h angezeigt.
Request habe ich unter Javascript auch.
Folgendes verwundert mich jedoch sehr.
Tausche ich, das Komma in Zeile 39 gegen einen Punkt, wird der "Doppelbalken", wie beschrieben gelb, es funktioniert aber scheinbar alles und wird zu wunderground korrekt übertragen. Mache ich aber ein Komma daraus, wie du es eingestellt hast, wird der Doppelbalken/Statusanzeige grün. Die Übertragung zu wunderground wird jedoch unterbrochen. -
@Christian-B
In Zeile 39 muss definitiv ein Punkt hin (wie bei Zeile 41).Das Script sollte grün werden und die Daten übertragen. Hast du den javascript-Adapter schon mal neu gestartet?
Das hat bei mir bei anderen Skripten, die Module erfordern, schon geholfen.
-
@Christian-B
In deinem Log zeigt der Fehler auf Zeile 53. Hier werden die UV Werte von OpenUV eingelesen. Schau mal bitte nach, ob hier die Konfiguration stimmt. -
@MartyBr
da hate ich tatsächlich noch kein OpenUV installiert gehabt. Das habe ich nachgeholt und die UV Werte werden auch zu Wunderground übertragen.
Was muss ich nochmal machen, damit der Log wieder angezeigt wird?
Im Moment steht nichts in dem "Protokoll" Kasten. -
@Christian-B Wenn ich rate, dann schalte mal den javascript-Adapter auf Info oder kurz mal auf auf debug. Dann solltest du die Log-Meldungen sehen.
-
Ahh... danke.
Jetzt sieht es so aus.14.3.2020, 15:30:34.661 [info ]: javascript.0 (5388) Stop script script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3 14.3.2020, 15:30:41.260 [info ]: javascript.0 (5388) Start javascript script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3 14.3.2020, 15:30:41.273 [error]: javascript.0 (5388) script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3: script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3:116 14.3.2020, 15:30:41.274 [error]: javascript.0 (5388) at script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3:116:12 14.3.2020, 15:32:30.472 [debug]: javascript.0 (5388) script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3: Wunderground Personal Weather Station successfully updated 14.3.2020, 15:32:30.475 [debug]: javascript.0 (5388) script.js.Eigene_Skripte.Warnungen.Weatherman_an_Wunderground3: Wunderground Personal Weather Station successfully updated
Es wird ein Fehler in Zeile 116 angegeben.
Dabei steht in Zeile 116 "nur" das:on(idwindspeedkmh, weatherupdate); // aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
Status steht immer noch auf gelb. Daten werden einwandfrei übertragen.
-
@Christian-B
Du musst hier deine Werte eintragen. Ich ziehe windspeedkmh von der CCU an. Du hast die Werte windspeedms. Also *kmh durch *ms ersetzen.
Das musst du auch für die Windböen machen (windgustms statt windgustkmh)Erklärung:
Ich rechne die Werte in der CCU schon auf km/h um. Du erhältst vom Weatherman die Original-Werte in m/s -
@MartyBr
das hat jetzt endlich funktioniert. Vielen Dank Martin. -
@Christian-B
Sehr gerne. -
@Linedancer danke für die Vorlage.
Ich habe es mir einmal angepasst und wieder importierbar gemacht, falls Ihr auch ein Blockly script haben wollt.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="y0*3*6I2Yi,CF`]M~h[2">ID</variable> <variable id="M#rIoys:i17;BN8w{52D">PWD</variable> <variable id="_g}m6=-Y!_;d_q6.nYj%">windspeed_mph</variable> <variable id="t_Uq913Tw~AGFBze$7A[">rain_in</variable> <variable id="Y0[w@0OIDX^XCUp|haUU">rain_daily</variable> <variable id="?SVbcJ?1**tBw$l1~Xh`">baro_in</variable> <variable id="!]N$0-~^=*se;mdt~|GV">Aussentemp_F</variable> <variable id="ac2QCA3id7.c|WGkY8U-">Taupunkt_F</variable> <variable id="L[-9VuA$TtC{}Aw7Z_4t">url</variable> <variable id="qYP~o]}86Ah?{kkywtVa">result</variable> </variables> <block type="schedule" id="NVQ4`W#p(8mnMqzc.so@" x="338" y="12"> <field name="SCHEDULE">*/2 * * * *</field> <statement name="STATEMENT"> <block type="create" id="Ryy@[}Z8I!]_}]:y!y#Z"> <field name="NAME">javascript.0.WEATHERMAN.Last_Wunderground_upload</field> <next> <block type="variables_set" id="J6pfV3Pv:-PcV-U8o3e("> <field name="VAR" id="y0*3*6I2Yi,CF`]M~h[2">ID</field> <value name="VALUE"> <block type="text" id="4o}!@aUA-7n3A_,+!Zf="> <field name="TEXT">ID</field> </block> </value> <next> <block type="variables_set" id="lNS})+2:]k7-.RJdgaeC"> <field name="VAR" id="M#rIoys:i17;BN8w{52D">PWD</field> <value name="VALUE"> <block type="text" id="*`IA18YFG:Rqdhs/%lt."> <field name="TEXT">PW</field> </block> </value> <next> <block type="variables_set" id="IuV!Ik{*|@RQ?@o@p54s"> <field name="VAR" id="_g}m6=-Y!_;d_q6.nYj%">windspeed_mph</field> <value name="VALUE"> <block type="math_rndfixed" id=")Nr+l:1Yegww1EF#^trH"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="vN~A3f_oOWr=sNCfrH;w"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="Hr]VNoyEq)zWSA3Ov.!B"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="y8`^YX%BoO1CEijv?e;J"> <field name="NUM">1.60934</field> </shadow> <block type="get_value" id="PcDIA^0^.^0!CyEyQ%Ih"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.OEQ1864642.1.WIND_SPEED</field> </block> </value> <value name="B"> <shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("> <field name="NUM">1.60934</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="[|mfN)utM;gIrF5{Q{r2"> <field name="COMMENT">mph instantaneous wind speed</field> <next> <block type="variables_set" id=")G^m+8#;HudLoG-nk7to" disabled="true"> <field name="VAR" id="t_Uq913Tw~AGFBze$7A[">rain_in</field> <value name="VALUE"> <block type="math_rndfixed" id="Twaj.z}A5()!7aQJ,x;-"> <field name="n">2</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="EJ:zeKou)@z-Z2-COK:-"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">3.937</field> </shadow> <block type="get_value" id="loyLQaYwd;tGF{H~%?S_"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.OEQ1864642.1.RAINING</field> </block> </value> <value name="B"> <shadow type="math_number" id="P86!-zN:C~XagS8aI*Rh"> <field name="NUM">25.4</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="b4+*^4yIKMi*J_4;%E.Q"> <field name="COMMENT">rain inches over the past hour</field> <next> <block type="variables_set" id="KavP@R0V/~7;G^;G/*lE"> <field name="VAR" id="Y0[w@0OIDX^XCUp|haUU">rain_daily</field> <value name="VALUE"> <block type="math_rndfixed" id="(FWK!~Yi~,OS$aLgb+q$"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="KgBvBA!Ys-8Vr-zwC)Gu"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="xx2y4{FP^qg).tBzcw4i"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="q}Qu!!A_q*bMo2]/6npC"> <field name="NUM">3.937</field> </shadow> <block type="get_value" id="{OwS|_!RcuS#gd9I7dYB"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.22943</field> </block> </value> <value name="B"> <shadow type="math_number" id="mZ)Ma|[J(lS$pA]lv,ZD"> <field name="NUM">25.4</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="p9gJJn~3#ucjv)%.FfXj"> <field name="COMMENT">rain inches so far today in local time</field> <next> <block type="variables_set" id="2o.mspN{c2VuYMvet|^e"> <field name="VAR" id="?SVbcJ?1**tBw$l1~Xh`">baro_in</field> <value name="VALUE"> <block type="math_rndfixed" id="j+z|al.?V$$Se*GaQ7Z*"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="EVsQxzS+I0ET:Yeyzo_!"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="IOs;[N;fdtiNHk2GC:3K"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="X-R?36spX2@GhM+Bhih["> <field name="NUM">0.0295301</field> </shadow> <block type="get_value" id="yuXUY_6Kz%x6D2742NaL"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.NEQ0544128.10.AIR_PRESSURE</field> </block> </value> <value name="B"> <shadow type="math_number" id="m%SnK7;T58uvrpj1Kq/X"> <field name="NUM">33.8639</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="?gZQ[RcS)+@Y[Ah|r|T="> <field name="COMMENT">barometric pressure inches</field> <next> <block type="variables_set" id="}ZNtE{YDT~uH^(9oC@uJ"> <field name="VAR" id="!]N$0-~^=*se;mdt~|GV">Aussentemp_F</field> <value name="VALUE"> <block type="math_rndfixed" id="@/~BOZH,*T=u;l?1:3Vq"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="Fn`edZw$aNhYzWP(UbBY"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="~)9T~(f~8P[fqQ+zVlzZ"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="%PDN|YJ@naL)yZi3QAvx"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="c,;et0f(JDhiPflCEvQ~"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="#wm=O,l0nAF9wv.iOX11"> <field name="NUM">1.8</field> </shadow> <block type="get_value" id="qOqzkEcqx~:Aulh^61Hv"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.OEQ1864642.1.TEMPERATURE</field> </block> </value> <value name="B"> <shadow type="math_number" id="pYs?t#+euS,=;_ewnVvA"> <field name="NUM">1.8</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="j*@d,/*5vtdrrXk|~.Eh"> <field name="NUM">32</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="$wwhg|u6gN%RPi*}b?QL"> <field name="COMMENT">F outdoor temperature</field> <next> <block type="variables_set" id="Knc[}47D!:t{BiPPIyJ:"> <field name="VAR" id="ac2QCA3id7.c|WGkY8U-">Taupunkt_F</field> <value name="VALUE"> <block type="math_rndfixed" id="!5=YyjNY*^/{6H5Vq!*t"> <field name="n">2</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="m@.@N{d2^z2,pWl!#Y/Z"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="T9Zak.4H!|p9Dz%/2Q*7"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1.8</field> </shadow> <block type="get_value" id="5RZwE.v6`GbvVn~}pscq"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.39443</field> </block> </value> <value name="B"> <shadow type="math_number" id="5qN=4(xR43jIk`U_eaIz"> <field name="NUM">1.8</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="2l~{%NSZ-_q6yG.n/PMH"> <field name="NUM">32</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="/_WCHMB2m5G]4-OEzOFc"> <field name="COMMENT">F outdoor dewpoint F</field> <next> <block type="variables_set" id="(..4D@D}1bg(~)~wtU]Y"> <field name="VAR" id="L[-9VuA$TtC{}Aw7Z_4t">url</field> <value name="VALUE"> <block type="text_join" id="(`%c8pO+2VPBopp8V2uE"> <mutation items="21"></mutation> <value name="ADD0"> <block type="text" id="Q!k*6kwCyW4I4Cz|wd@P"> <field name="TEXT">https://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="xj,x#Q6z02@Ne;(-k1!A"> <field name="VAR" id="y0*3*6I2Yi,CF`]M~h[2">ID</field> </block> </value> <value name="ADD2"> <block type="text" id=".T_p}5;J!Dc{8-CNah?H"> <field name="TEXT">&PASSWORD=</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="fx56Av]MfZot/a{Dmc|{"> <field name="VAR" id="M#rIoys:i17;BN8w{52D">PWD</field> </block> </value> <value name="ADD4"> <block type="text" id="?bO.l@nfrfe/i5II,y7O"> <field name="TEXT">&dateutc=now&winddir=</field> </block> </value> <value name="ADD5"> <block type="get_value" id="_:4@dKfy1.kKNK8pTkt|"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.OEQ1864642.1.WIND_DIRECTION</field> </block> </value> <value name="ADD6"> <block type="text" id="RhOt)(e[UY[^%b7r.[.{"> <field name="TEXT">&windspeedmph=</field> </block> </value> <value name="ADD7"> <block type="variables_get" id="9E;ZOzzC~ZqX=C:x/GjB"> <field name="VAR" id="_g}m6=-Y!_;d_q6.nYj%">windspeed_mph</field> </block> </value> <value name="ADD8"> <block type="text" id="XCSzJxAajajF*^G=U3QM"> <field name="TEXT">&baromin=</field> </block> </value> <value name="ADD9"> <block type="variables_get" id="Jy|66pdKM[;Ymn@O]cSc"> <field name="VAR" id="?SVbcJ?1**tBw$l1~Xh`">baro_in</field> </block> </value> <value name="ADD10"> <block type="text" id="av~BQ)iAy6I1n{#25:+N" disabled="true"> <field name="TEXT">&rainin=</field> </block> </value> <value name="ADD11"> <block type="variables_get" id="/*W]fWFF=nd;?[h@:Y]:" disabled="true"> <field name="VAR" id="t_Uq913Tw~AGFBze$7A[">rain_in</field> </block> </value> <value name="ADD12"> <block type="text" id="hQzg`g3NFN@z%M290qg5"> <field name="TEXT">&humidity=</field> </block> </value> <value name="ADD13"> <block type="get_value" id="c8]Z},O.#(X:^fh8BQDR"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.OEQ1864642.1.HUMIDITY</field> </block> </value> <value name="ADD14"> <block type="text" id="(b%5Hm@:BUeV)lr3NKjd"> <field name="TEXT">&tempf=</field> </block> </value> <value name="ADD15"> <block type="variables_get" id="EY.SScRsM@YGFg^QlVM-"> <field name="VAR" id="!]N$0-~^=*se;mdt~|GV">Aussentemp_F</field> </block> </value> <value name="ADD16"> <block type="text" id="uY~}7_2RK10$YisP5]Bt"> <field name="TEXT">&dailyrainin=</field> </block> </value> <value name="ADD17"> <block type="variables_get" id="kIjIuh}xDg+=O7c?Ujk}"> <field name="VAR" id="Y0[w@0OIDX^XCUp|haUU">rain_daily</field> </block> </value> <value name="ADD18"> <block type="text" id="RP}t]iGo4~kAFBDlLtMn"> <field name="TEXT">&dewptf=</field> </block> </value> <value name="ADD19"> <block type="variables_get" id="DHDV?62iQQ_nxWXc];[Y"> <field name="VAR" id="ac2QCA3id7.c|WGkY8U-">Taupunkt_F</field> </block> </value> <value name="ADD20"> <block type="text" id="{}f?h+FLZDi[/K#P`3C]"> <field name="TEXT">&action=updateraw</field> </block> </value> </block> </value> <next> <block type="request" id="@DtdK@NaHfPFifwX2)9Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="M(AOk0tWYIWcpx2bEYJ."> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="vr9m*ZXavDVMWFaR_iN["> <field name="VAR" id="L[-9VuA$TtC{}Aw7Z_4t">url</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="=dHWKib4(|bqIz[deQxp"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="3^Or==q!t};6PCe3yo3a"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="M6}Pr%6[L-p@i:~0v:uR"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id=";r~4V,}SMS,3}E((4rq:"> <field name="VAR" id="qYP~o]}86Ah?{kkywtVa">result</field> </block> </value> <value name="FIND"> <shadow type="text" id="B[@H~FSpM_!7B}%5XsAX"> <field name="TEXT">false</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="^383WMpd;gqr;Wqg5TmX"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="DJA?*T2{EtJM?Vy#zZN."> <field name="TEXT">Der Wunderground Upload ist fehlgeschlagen</field> </shadow> </value> </block> </statement> <statement name="ELSE"> <block type="update" id="Dhlt1isqfpkSs@W+g!TB"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.WEATHERMAN.Last_Wunderground_upload</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="time_get" id="G8N-|m^zK#|]1Jy2XHa9"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">TT.MM, SS:mm:ss</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
Hallo,
mir zeigt Javascript den Block "Request" als veraltet an.
Hat jemand das evtl. schon umgebaut? -
@c1olli so wie hier ändern
https://forum.iobroker.net/post/1162752