Wettervorhersage über AccuWeather

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

MichaelN
Beiträge: 9639
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von MichaelN » 13.08.2021, 11:22

Dein Problem war nicht (nur) die RainProbability, sondern auch Rain an sich.

Da Rain auch in RainProbability steckt, hat die Suche nach Rain eben RainProbability gefunden. Du musst nach Rain" suchen. Und als EndeTag nach Snow". Beachte auch das RegenFlag, jenachdem ob Du Durchschnitt (999) oder Gesamtmenge (4) auswerten willst.

Code: Alles auswählen

integer AnzahlTags        = 5; !-Anzahl der eingetragenen XML-Tags
string xmlTagStart        = 'Temperature,RealFeelTemperature,WindGust,RainProbability,Rain"';     !-XML-Start-Tag
string xmlTagEnd          = 'RealFeelTemperature,RealFeelTemperatureShade,RelativeHumidity,SnowProbability,Snow"'; !-XML-End-Tag
string xmlWertStart       = 'Value,Value,Value,:,Value'; !-Suchstring vor dem Wert
string xmlWertEnd         = 'Unit,Unit,Unit,",Unit';    !-Suchstring nach dem Wert
string xmlWertStartOffset = "7,7,7,1,7";             !-Länge Wert-Suchstring + Anzahl Zeichen bis zum Wert
string xmlWertEndOffset   = "9,9,9,2,9";             !-StartOffset + Anzahl Zeichen zwischen Zahl und Ende-String
string NameSVavg0         = ",AW_FC_Temp_feel,,AW_FC_Rain_Prob,AW_FC_Rain_all";      !- Namen der Systemvariablen fuer Durchschnitt aktueller Tag
string NameSVmin0         = "AW_FC_Temp_min,,,,";	  !- Namen der Systemvariablen fuer min-Wert
string NameSVmax0         = "AW_FC_Temp_max,,AW_FC_WindGust_max,,";	  !- Namen der Systemvariablen fuer max-Wert
integer RegenFlag         = 4;      !- Position der Regendaten (ab 0 zählen) zur Ausgabe der Gesamtmenge - auf 999 setzen, wenn stattdessen der Tagesdurchschnitt gewünscht ist
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

MichaelN
Beiträge: 9639
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von MichaelN » 13.08.2021, 11:45

chriwi hat geschrieben:
11.08.2021, 19:41
Ich versuche in der Zwischenzeit das Windflag nachzubauen, was in Deiner OWM Lösung drin ist - dann aber andersrum, sprich Umrechnung in m/s
Dafür muss ich neben der Variablendefinition nur in der einen Schleife den Eintrag ergänzen, richtig?
Ich habe deine Idee aufgegriffen und das mit eingebaut. Ist im ersten Beitrag nun als V1.4 veröffentlicht.
Deine Code-Änderung war an dieser Stelle tatsächlich am einfachsten. Erprobt, funktioniert.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von chriwi » 15.08.2021, 21:35

Wunderbar, danke Dir! Hat jetzt alles prima funktioniert!
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von chriwi » 16.08.2021, 22:41

Einen Fehler habe ich bei „CurrentCondition“ hinsichtlich „PrecipitationType“ (Zeichenkette):

Wenn "HasPrecipitation" auf false steht, lautet der Wert von "PrecipitationType" einfach null (= ohne Anführungszeichen!)
Wenn "HasPrecipitation" auf true gesetzt wird, steht bei "PrecipitationType": "Rain" (oder "Snow" etc. also mit Anführungszeichen!)
Dann kommen die nachfolgenden SV durcheinander.

Mit

Code: Alles auswählen

integer AnzahlTags        = 4; !-Anzahl der eingetragenen XML-Tags
string xmlTagStart        = 'HasPrecipitation,PrecipitationType,RealFeelTemperature,WindGust';     !-XML-Start-Tag
string xmlTagEnd          = 'PrecipitationType,IsDayTime,RealFeelTemperatureShade,UVIndex'; !-XML-End-Tag
string xmlWertStart       = ':,:,Value,Value'; !-Suchstring vor dem Wert
string xmlWertEnd         = '",",Unit,Unit';    !-Suchstring nach dem Wert
string xmlWertStartOffset = "1,1,7,7";             !-Länge Wert-Suchstring + Anzahl Zeichen bis zum Wert
string xmlWertEndOffset   = "2,2,9,9";             !-StartOffset + Anzahl Zeichen zwischen Zahl und Ende-String
Bekomme ich die Varianz der Anführungszeichen in beiden Fällen nicht hin. Ist das überhaupt lösbar?
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

MichaelN
Beiträge: 9639
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von MichaelN » 16.08.2021, 22:47

Poste bitte einmal von beiden Varianten den JSON Code.
Zuletzt geändert von MichaelN am 17.08.2021, 12:51, insgesamt 1-mal geändert.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

MichaelN
Beiträge: 9639
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von MichaelN » 17.08.2021, 12:51

chriwi hat geschrieben:
16.08.2021, 22:41
Wenn "HasPrecipitation" auf false steht, lautet der Wert von "PrecipitationType" einfach null (= ohne Anführungszeichen!)
Wenn "HasPrecipitation" auf true gesetzt wird, steht bei "PrecipitationType": "Rain" (oder "Snow" etc. also mit Anführungszeichen!)
Dann kommen die nachfolgenden SV durcheinander.
Deine Analyse war nicht ganz korrekt. PrecipitationType ist nicht null, sondern gar nicht erst vorhanden. Daher kann der String natürlich auch nicht gefunden werden. Ganz perfekt kann man so eine Konstellation nicht lösen, aber mit diesen Parametern geht es ganz gut.
HasPrecipitation wird immer ermittelt. Wenn false, dann steht in PrecipitationType entweder der Wert vom nächsten gefundenen PrecipitationType oder - falls in den Daten keiner (mehr) vorhanden ist - nichts.

Code: Alles auswählen

integer AnzahlTags        = 4; !-Anzahl der eingetragenen XML-Tags
string xmlTagStart        = 'HasPrecipitation,PrecipitationType,RealFeelTemperature,WindGust';     !-XML-Start-Tag
string xmlTagEnd          = 'IsDaylight,IsDaylight,RealFeelTemperatureShade,RelativeHumidity'; !-XML-End-Tag
string xmlWertStart       = ':,:,Value,Value'; !-Suchstring vor dem Wert
string xmlWertEnd         = '",PrecipitationIntensity,Unit,Unit';    !-Suchstring nach dem Wert
string xmlWertStartOffset = "1,2,7,7";             !-Länge Wert-Suchstring + Anzahl Zeichen bis zum Wert
string xmlWertEndOffset   = "2,5,9,9";             !-StartOffset + Anzahl Zeichen zwischen Zahl und Ende-String  
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von chriwi » 17.08.2021, 19:33

Bist Du dir sicher? Für den 12h Forecast dürfte das passen. Gemäß https://developer.accuweather.com/accu ... tionKey%7D ist für aktuelle Werte aber folgendes definiert:
If precipitation is present, the type of precipitation will be returned. Possible values are Rain, Snow, Ice, or Mixed. Null in the absence of precipitation.
.
Ich versuche mal, den Type ans Ende der Werte / Auswertung zu setzen. Vielleicht ist das schon eine Lösung.
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von chriwi » 17.08.2021, 20:04

Wie oben geschrieben beziehe ich mich auf die CurrentConditionAPI. Da gibt es im Ggs zur Forecast API keine Intensity, aber ein null:

Code: Alles auswählen

 [{"LocalObservationDateTime":"2021-08-17T19:57:00+02:00","EpochTime":1629223020,"WeatherText":"Stark bewölkt","WeatherIcon":6,"HasPrecipitation":false,"PrecipitationType":null,"IsDayTime":true,"Temperature":{"Metric":{"Value":14.0,"Unit":"C","UnitType":17},

Code: Alles auswählen

 [{"LocalObservationDateTime":"2021-08-17T15:51:00+02:00","EpochTime":1629208260,"WeatherText":"Leichter Regen","WeatherIcon":12,"HasPrecipitation":true,"PrecipitationType":"Rain","IsDayTime":true,"Temperature":{"Metric":{"Value":15.2,"Unit":"C","UnitType":17},"I
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

MichaelN
Beiträge: 9639
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Wettervorhersage über AccuWeather

Beitrag von MichaelN » 17.08.2021, 20:13

Ja, jetzt habe ich es auch gerafft. Man muss halt jedes Wort lesen und verstehen :lol:

Also, ich habe eine Lösung. Zwar auf die brutale Art, aber es klappt:

Nach

Code: Alles auswählen

recXML = dom.GetObject(CUXD_Device#".CMD_RETS").State();
einfügen

Code: Alles auswählen

recXML = recXML.Replace(':null,',':"null",');
Suchparameter lauten dann:

Code: Alles auswählen

integer AnzahlTags        = 4; !-Anzahl der eingetragenen XML-Tags
string xmlTagStart        = 'HasPrecipitation,PrecipitationType,RealFeelTemperature,WindGust';     !-XML-Start-Tag
string xmlTagEnd          = 'PrecipitationType,DayTime,RealFeelTemperatureShade,UVIndex'; !-XML-End-Tag
string xmlWertStart       = ':,:,Value,Value'; !-Suchstring vor dem Wert
string xmlWertEnd         = '","Is,Unit,Unit';    !-Suchstring nach dem Wert
string xmlWertStartOffset = "1,2,7,7";             !-Länge Wert-Suchstring + Anzahl Zeichen bis zum Wert
string xmlWertEndOffset   = "2,4,9,9";             !-StartOffset + Anzahl Zeichen zwischen Zahl und Ende-String
und natürlich (aber das wusstest Du ja schon vor mir)

Code: Alles auswählen

string xmlTimeStart       = "LocalObservationDateTime"; 
sonst gibt es einen "invalid real division by zero" (Habe das gleich mal als Anlaß genommen V1.5 zu veröffentlichen, die diesen Fehler abfängt)
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

FZX
Beiträge: 2
Registriert: 18.08.2021, 09:54
System: CCU

Re: Wettervorhersage über AccuWeather

Beitrag von FZX » 18.08.2021, 10:00

Hallo zusammen,

entschuldigt meine Unterbrechung. Zu aller erst einmal Danke! Das funktioniert so nun schon sehr lange bei mir ohne es anfassen zu müssen... und genau hier liegt das Problem: Ich habe gerade mal in die Logs geschaut und bekomme folgende Meldungen:

Code: Alles auswählen

local0 ReGaHss ERROR: SyntaxError: „“).State('14.8')); [ParseProgram():iseESP.cpp:387]
local0 ReGaHss ERROR: SyntaxError: Error 1 at row 1 col 21 near ^„“).State('14.8')); [SyntaxError():iseESP.cpp:1137]
local0 ReGaHss ERROR: ScriptRuntimeError: Write(dom.GetObject(10735).State('AccuWeather')); [ExecError():iseESPexec.cpp:12798]
Gibts hier einen Lösungsansatz oder benötigt Ihr noch weitere Informaitonen?

Antworten

Zurück zu „Projektvorstellungen“