From 9f29868f18124711333dd89d8c71ff57440131ba Mon Sep 17 00:00:00 2001 From: Elio Di Puma Date: Fri, 18 Aug 2023 10:41:26 +0200 Subject: [PATCH] wip --- pom.xml | 2 +- .../.settings/org.eclipse.m2e.core.prefs | 4 + .../config/variables.yaml | 2 +- .../srf/weather/connector/demo/Data.ivyClass | 10 +- srf-weather-connector-demo/pom.xml | 6 +- .../processes/srfWeatherForecastDemo.p.json | 55 + .../processes/srfweatherDemo.p.json | 50 - .../checkWeather.rddescriptor} | 0 .../checkWeather.xhtml} | 31 +- .../checkWeather/checkWeatherData.ivyClass | 4 + .../checkWeather/checkWeatherProcess.p.json | 102 + .../checkWeatherFormData.ivyClass | 4 - .../checkWeatherFormProcess.p.json | 227 - .../enterLocationForm.rddescriptor | 7 - .../enterLocationForm/enterLocationForm.xhtml | 45 - .../enterLocationFormData.ivyClass | 8 - .../enterLocationFormProcess.p.json | 130 - srf-weather-connector-product/.project | 17 + .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.core.prefs | 4 + srf-weather-connector-test/pom.xml | 87 +- .../srf/weather/connector/WeatherMock.java | 66 + .../srf/weather/connector/json/forecast.json | 3949 +++++++++++++++++ .../weather/connector/json/geolocation.json | 134 + .../srf/weather/test/SampleProcessTest.java | 56 - .../srf/weather/test/TestDemoProcess.java | 36 + .../.settings/ch.ivyteam.ivy.designer.prefs | 3 +- .../.settings/org.eclipse.m2e.core.prefs | 4 + .../config/rest-clients.yaml | 1 + srf-weather-connector/config/variables.yaml | 2 +- .../srf/weather/connector/Data.ivyClass | 6 - .../srf/weather/connector}/Location.ivyClass | 2 +- .../connector/srfWeatherForecastData.ivyClass | 10 + srf-weather-connector/pom.xml | 4 +- .../processes/srfWeatherForecast.p.json | 112 + .../checkWeatherForm.rddescriptor | 7 - .../checkWeatherForm/checkWeatherForm.xhtml | 93 - .../checkWeatherFormData.ivyClass | 6 - .../checkWeatherFormProcess.p.json | 68 - 39 files changed, 4569 insertions(+), 789 deletions(-) create mode 100644 srf-weather-connector-demo/.settings/org.eclipse.m2e.core.prefs create mode 100644 srf-weather-connector-demo/processes/srfWeatherForecastDemo.p.json delete mode 100644 srf-weather-connector-demo/processes/srfweatherDemo.p.json rename srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/{checkWeatherForm/checkWeatherForm.rddescriptor => checkWeather/checkWeather.rddescriptor} (100%) rename srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/{checkWeatherForm/checkWeatherForm.xhtml => checkWeather/checkWeather.xhtml} (78%) create mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherData.ivyClass create mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherProcess.p.json delete mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormData.ivyClass delete mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormProcess.p.json delete mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.rddescriptor delete mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.xhtml delete mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormData.ivyClass delete mode 100644 srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormProcess.p.json create mode 100644 srf-weather-connector-product/.project create mode 100644 srf-weather-connector-product/.settings/org.eclipse.m2e.core.prefs create mode 100644 srf-weather-connector-test/.settings/org.eclipse.m2e.core.prefs create mode 100644 srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/WeatherMock.java create mode 100644 srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/forecast.json create mode 100644 srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/geolocation.json delete mode 100644 srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/SampleProcessTest.java create mode 100644 srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/TestDemoProcess.java create mode 100644 srf-weather-connector/.settings/org.eclipse.m2e.core.prefs delete mode 100644 srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Data.ivyClass rename {srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo => srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector}/Location.ivyClass (74%) create mode 100644 srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/srfWeatherForecastData.ivyClass create mode 100644 srf-weather-connector/processes/srfWeatherForecast.p.json delete mode 100644 srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.rddescriptor delete mode 100644 srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.xhtml delete mode 100644 srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormData.ivyClass delete mode 100644 srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormProcess.p.json diff --git a/pom.xml b/pom.xml index 3d71886..06ec9a9 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.axonivy.connector.srf.weather srf-weather-connector srf-weather-connector-modules - 11.1.0-SNAPSHOT + 10.0.0-SNAPSHOT pom diff --git a/srf-weather-connector-demo/.settings/org.eclipse.m2e.core.prefs b/srf-weather-connector-demo/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/srf-weather-connector-demo/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/srf-weather-connector-demo/config/variables.yaml b/srf-weather-connector-demo/config/variables.yaml index fd14458..e82d815 100644 --- a/srf-weather-connector-demo/config/variables.yaml +++ b/srf-weather-connector-demo/config/variables.yaml @@ -3,4 +3,4 @@ # You can define here your project Variables. # Variables: -# myVariable: value +# value: value" diff --git a/srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Data.ivyClass b/srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Data.ivyClass index 833de5c..d3ba8d8 100644 --- a/srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Data.ivyClass +++ b/srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Data.ivyClass @@ -1,10 +1,4 @@ Data #class com.axonivy.connector.srf.weather.connector.demo #namespace -geolocation ch.srgssr.api.srf.meteo.v2.client.GeolocationNamesSearch #field -geolocation PERSISTENT #fieldModifier -forcastPointWeek ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek #field -forcastPointWeek PERSISTENT #fieldModifier -day ch.srgssr.api.srf.meteo.v2.client.DayForecastInterval #field -day PERSISTENT #fieldModifier -location com.axonivy.connector.srf.weather.connector.demo.Location #field -location PERSISTENT #fieldModifier +srfWeatherForcastData com.axonivy.connector.srf.weather.connector.srfWeatherForecastData #field +srfWeatherForcastData PERSISTENT #fieldModifier diff --git a/srf-weather-connector-demo/pom.xml b/srf-weather-connector-demo/pom.xml index 4346c1a..324007a 100644 --- a/srf-weather-connector-demo/pom.xml +++ b/srf-weather-connector-demo/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.axonivy.connector.srf.weather srf-weather-connector-demo - 11.1.0-SNAPSHOT + 10.0.0-SNAPSHOT iar com.axonivy.connector.srf.weather srf-weather-connector - 11.1.0-SNAPSHOT + 10.0.0-SNAPSHOT iar @@ -19,7 +19,7 @@ com.axonivy.ivy.ci project-build-plugin - 11.1.0 + 10.0.6 true diff --git a/srf-weather-connector-demo/processes/srfWeatherForecastDemo.p.json b/srf-weather-connector-demo/processes/srfWeatherForecastDemo.p.json new file mode 100644 index 0000000..690872c --- /dev/null +++ b/srf-weather-connector-demo/processes/srfWeatherForecastDemo.p.json @@ -0,0 +1,55 @@ +{ + "format" : "10.0.0", + "id" : "189FE26D94E3ECBA", + "config" : { + "data" : "com.axonivy.connector.srf.weather.connector.demo.Data" + }, + "elements" : [ { + "id" : "f0", + "type" : "RequestStart", + "name" : "start.ivp", + "config" : { + "callSignature" : "start", + "outLink" : "start.ivp", + "tags" : "demo" + }, + "visual" : { + "at" : { "x" : 96, "y" : 64 } + }, + "connect" : { "id" : "f4", "to" : "f3" } + }, { + "id" : "f1", + "type" : "TaskEnd", + "visual" : { + "at" : { "x" : 352, "y" : 64 } + } + }, { + "id" : "f3", + "type" : "DialogCall", + "name" : "checkWeather", + "config" : { + "dialogId" : "com.axonivy.connector.srf.weather.connector.demo.checkWeather", + "startMethod" : "start(String,Number)", + "output" : { + "map" : { + "out" : "in", + "out.srfWeatherForcastData" : "result.srfWeatherForcastData" + } + }, + "call" : { + "params" : [ + { "name" : "locationName", "type" : "String" }, + { "name" : "zip", "type" : "Number" } + ], + "map" : { + "param.locationName" : "in.srfWeatherForcastData.location.locationName", + "param.zip" : "in.srfWeatherForcastData.location.zip" + } + } + }, + "visual" : { + "at" : { "x" : 216, "y" : 64 } + }, + "connect" : { "id" : "f2", "to" : "f1" } + } ] +} \ No newline at end of file diff --git a/srf-weather-connector-demo/processes/srfweatherDemo.p.json b/srf-weather-connector-demo/processes/srfweatherDemo.p.json deleted file mode 100644 index 589cbd6..0000000 --- a/srf-weather-connector-demo/processes/srfweatherDemo.p.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/process/11.1.26/process.json", - "id" : "189CFC3474ECF538", - "config" : { - "data" : "com.axonivy.connector.srf.weather.connector.demo.Data" - }, - "elements" : [ { - "id" : "f0", - "type" : "RequestStart", - "name" : "start.ivp", - "config" : { - "signature" : "start" - }, - "visual" : { - "at" : { "x" : 104, "y" : 80 } - }, - "connect" : [ - { "id" : "f3", "to" : "f2" } - ] - }, { - "id" : "f1", - "type" : "TaskEnd", - "visual" : { - "at" : { "x" : 496, "y" : 80 } - } - }, { - "id" : "f2", - "type" : "DialogCall", - "name" : "checkWeatherForm", - "config" : { - "dialog" : "com.axonivy.connector.srf.weather.connector.demo.checkWeatherForm:start(com.axonivy.connector.srf.weather.connector.demo.Data)", - "call" : { - "map" : { - "param.data" : "in" - } - }, - "output" : { - "map" : { - "out" : "result.data" - } - } - }, - "visual" : { - "at" : { "x" : 312, "y" : 80 } - }, - "connect" : [ - { "id" : "f4", "to" : "f1" } - ] - } ] -} \ No newline at end of file diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherForm.rddescriptor b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeather.rddescriptor similarity index 100% rename from srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherForm.rddescriptor rename to srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeather.rddescriptor diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherForm.xhtml b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeather.xhtml similarity index 78% rename from srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherForm.xhtml rename to srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeather.xhtml index 54fcb0a..b43562f 100644 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherForm.xhtml +++ b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeather.xhtml @@ -7,11 +7,11 @@ xmlns:pe="http://primefaces.org/ui/extensions"> - checkWeatherForm + checkWeatherForecast -

Please enter the city for which you'd like - to retrieve the weather information.

+

Please enter the city oder ZIP-Code for which you'd like + to retrieve the weather information.

@@ -21,9 +21,10 @@ - - + value="#{data.srfWeatherForcastData.location.locationName}"> + + @@ -40,18 +41,18 @@ styleClass="ui-panelgrid-blank ui-fluid" columnClasses="ui-g-12 ui-md-12 ui-lg-12"> - @@ -87,18 +88,6 @@ - - - - - - - - - - - - diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherData.ivyClass b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherData.ivyClass new file mode 100644 index 0000000..912703c --- /dev/null +++ b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherData.ivyClass @@ -0,0 +1,4 @@ +checkWeatherData #class +com.axonivy.connector.srf.weather.connector.demo.checkWeather #namespace +srfWeatherForcastData com.axonivy.connector.srf.weather.connector.srfWeatherForecastData #field +srfWeatherForcastData PERSISTENT #fieldModifier diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherProcess.p.json b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherProcess.p.json new file mode 100644 index 0000000..67e2562 --- /dev/null +++ b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeather/checkWeatherProcess.p.json @@ -0,0 +1,102 @@ +{ + "format" : "10.0.0", + "id" : "18A0758E68F62B82", + "kind" : "HTML_DIALOG", + "config" : { + "data" : "com.axonivy.connector.srf.weather.connector.demo.checkWeather.checkWeatherData" + }, + "elements" : [ { + "id" : "f0", + "type" : "HtmlDialogStart", + "name" : "start(String,Number)", + "config" : { + "callSignature" : "start", + "result" : { + "params" : [ + { "name" : "srfWeatherForcastData", "type" : "com.axonivy.connector.srf.weather.connector.srfWeatherForecastData" } + ], + "map" : { + "result.srfWeatherForcastData" : "in.srfWeatherForcastData" + } + }, + "guid" : "18A0758E68F275E0", + "input" : { + "params" : [ + { "name" : "locationName", "type" : "String" }, + { "name" : "zip", "type" : "Number" } + ] + } + }, + "visual" : { + "at" : { "x" : 96, "y" : 64 } + }, + "connect" : { "id" : "f2", "to" : "f1" } + }, { + "id" : "f1", + "type" : "HtmlDialogEnd", + "visual" : { + "at" : { "x" : 224, "y" : 64 } + } + }, { + "id" : "f3", + "type" : "HtmlDialogEventStart", + "name" : "close", + "config" : { + "guid" : "18A0758E6906B548" + }, + "visual" : { + "at" : { "x" : 96, "y" : 160 } + }, + "connect" : { "id" : "f5", "to" : "f4" } + }, { + "id" : "f4", + "type" : "HtmlDialogExit", + "visual" : { + "at" : { "x" : 224, "y" : 160 } + } + }, { + "id" : "f6", + "type" : "HtmlDialogEventStart", + "name" : "getWeather", + "config" : { + "guid" : "18A07596251FA920" + }, + "visual" : { + "at" : { "x" : 104, "y" : 264 } + }, + "connect" : { "id" : "f9", "to" : "f7" } + }, { + "id" : "f7", + "type" : "SubProcessCall", + "name" : "srfWeatherForecast", + "config" : { + "processCall" : "srfWeatherForecast:call(Number,String)", + "output" : { + "map" : { + "out" : "in", + "out.srfWeatherForcastData" : "result.srfWeatherForecastData" + } + }, + "call" : { + "params" : [ + { "name" : "zip", "type" : "Number" }, + { "name" : "locationName", "type" : "String" } + ], + "map" : { + "param.zip" : "in.srfWeatherForcastData.location.zip", + "param.locationName" : "in.srfWeatherForcastData.location.locationName" + } + } + }, + "visual" : { + "at" : { "x" : 248, "y" : 264 } + }, + "connect" : { "id" : "f10", "to" : "f8" } + }, { + "id" : "f8", + "type" : "HtmlDialogEnd", + "visual" : { + "at" : { "x" : 392, "y" : 264 } + } + } ] +} \ No newline at end of file diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormData.ivyClass b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormData.ivyClass deleted file mode 100644 index 49a1b24..0000000 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormData.ivyClass +++ /dev/null @@ -1,4 +0,0 @@ -checkWeatherFormData #class -com.axonivy.connector.srf.weather.connector.demo.checkWeatherForm #namespace -data com.axonivy.connector.srf.weather.connector.demo.Data #field -data PERSISTENT #fieldModifier diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormProcess.p.json b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormProcess.p.json deleted file mode 100644 index 947cbd8..0000000 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/checkWeatherForm/checkWeatherFormProcess.p.json +++ /dev/null @@ -1,227 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/process/11.1.26/process.json", - "id" : "189D41EA096BCFED", - "kind" : "HTML_DIALOG", - "config" : { - "data" : "com.axonivy.connector.srf.weather.connector.demo.checkWeatherForm.checkWeatherFormData" - }, - "elements" : [ { - "id" : "f0", - "type" : "HtmlDialogStart", - "name" : "start(Data)", - "config" : { - "signature" : "start", - "input" : { - "params" : [ - { "name" : "data", "type" : "com.axonivy.connector.srf.weather.connector.demo.Data", "desc" : "" } - ], - "map" : { - "out.data" : "param.data" - } - }, - "result" : { - "params" : [ - { "name" : "data", "type" : "com.axonivy.connector.srf.weather.connector.demo.Data", "desc" : "" } - ], - "map" : { - "result.data" : "in.data" - } - }, - "guid" : "189D41EA09722F70" - }, - "visual" : { - "at" : { "x" : 96, "y" : 64 } - }, - "connect" : [ - { "id" : "f2", "to" : "f1" } - ] - }, { - "id" : "f1", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 224, "y" : 64 } - } - }, { - "id" : "f3", - "type" : "HtmlDialogEventStart", - "name" : "close", - "config" : { - "guid" : "189D41EA0973E561" - }, - "visual" : { - "at" : { "x" : 96, "y" : 160 } - }, - "connect" : [ - { "id" : "f5", "to" : "f4" } - ] - }, { - "id" : "f4", - "type" : "HtmlDialogExit", - "visual" : { - "at" : { "x" : 224, "y" : 160 } - } - }, { - "id" : "f6", - "type" : "HtmlDialogEventStart", - "name" : "getWeather", - "config" : { - "guid" : "189D41F0C6B6A73F" - }, - "visual" : { - "at" : { "x" : 88, "y" : 248 } - }, - "connect" : [ - { "id" : "f10", "to" : "f8" } - ] - }, { - "id" : "f7", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 600, "y" : 248 } - } - }, { - "id" : "f8", - "type" : "RestClientCall", - "name" : "getGeolocation", - "config" : { - "target" : { - "clientId" : "abb4be9f-e610-498b-84db-a60dddc472ba", - "path" : "/geolocationNames", - "queryParams" : { - "limit" : "", - "name" : "in.data.location.locationName", - "zip" : "" - }, - "headers" : { - "Authorization" : "\"Bearer JeAGGB2vOuhvSAMbPlZT400ZzAlv\"" - } - }, - "response" : { - "entity" : { - "type" : "com.fasterxml.jackson.databind.JsonNode", - "code" : [ - "import ch.srgssr.api.srf.meteo.v2.client.GeolocationNamesSearch;", - "import com.fasterxml.jackson.databind.node.ObjectNode;", - "import com.fasterxml.jackson.databind.node.ObjectNode;", - "import com.fasterxml.jackson.databind.JsonNode;", - "import com.fasterxml.jackson.databind.node.ArrayNode;", - "", - "ArrayNode arrayNode = result as ArrayNode;", - "JsonNode firstNode = arrayNode.get(0);", - "", - "ObjectNode objectNode = firstNode as ObjectNode;", - "", - "//in.data.location.locationName = objectNode.get(\"description_short\").asText();", - "", - "ObjectNode geoNode = objectNode.get(\"geolocation\") as ObjectNode;", - "in.data.location.geolocationId = geoNode.get(\"id\").asText();" - ] - } - } - }, - "visual" : { - "at" : { "x" : 264, "y" : 248 } - }, - "connect" : [ - { "id" : "f11", "to" : "f9" } - ] - }, { - "id" : "f9", - "type" : "RestClientCall", - "name" : "getForcastPointWeekly", - "config" : { - "target" : { - "clientId" : "abb4be9f-e610-498b-84db-a60dddc472ba", - "path" : "/forecastpoint/{geolocationId}", - "templateParams" : { - "geolocationId" : "in.data.location.geolocationId" - }, - "headers" : { - "Authorization" : "\"Bearer JeAGGB2vOuhvSAMbPlZT400ZzAlv\"" - } - }, - "response" : { - "entity" : { - "type" : "ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek", - "code" : [ - "in.data.forcastPointWeek = result;", - "in.data.day = result.days.get(0);" - ] - } - } - }, - "visual" : { - "at" : { "x" : 456, "y" : 248 } - }, - "connect" : [ - { "id" : "f12", "to" : "f7" } - ] - }, { - "id" : "f13", - "type" : "Script", - "name" : "loadData", - "config" : { - "output" : { - "code" : [ - "import ch.srgssr.api.srf.meteo.v2.client.Color;", - "import com.axonivy.connector.srf.weather.connector.demo.Location;", - "import java.time.ZoneOffset;", - "import java.time.OffsetDateTime;", - "import ch.srgssr.api.srf.meteo.v2.client.DayForecastInterval;", - "", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 10, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 11, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 12, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 13, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 14, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "out.data.forcastPointWeek.days.add((new DayForecastInterval()).setDateTime(OffsetDateTime.of(2023, 8, 15, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5)", - ".setMinColor(new Color().setTemperature(13).backgroundColor(\"#146d6c\").setTextColor(\"#ffffff\"))", - ".setMaxColor(new Color().setTemperature(23).backgroundColor(\"#e4e20c\").setTextColor(\"#e4e20c\")));", - "", - "out.data.day = new DayForecastInterval().setDateTime(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setRRRMM(0).setPROBPCPPERCENT(44).setFFKMH(4).setSUNH(4).setSUNRISE(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSUNSET(OffsetDateTime.of(2023, 8, 9, 0, 0, 0, 0, ZoneOffset.ofHours(2))).setSymbolCode(1).setTXC(10).setTNC(5);", - "", - "out.data.location = new Location().setZip(6300).setGeolocationId(\"1234\").setLocationName(\"Zug\");" - ] - } - }, - "visual" : { - "at" : { "x" : 240, "y" : 392 } - }, - "connect" : [ - { "id" : "f17", "to" : "f15" } - ] - }, { - "id" : "f14", - "type" : "HtmlDialogEventStart", - "name" : "loadStaticData", - "config" : { - "guid" : "189D9B1DEF13FCB2" - }, - "visual" : { - "at" : { "x" : 96, "y" : 392 } - }, - "connect" : [ - { "id" : "f16", "to" : "f13" } - ] - }, { - "id" : "f15", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 392, "y" : 392 } - } - } ] -} \ No newline at end of file diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.rddescriptor b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.rddescriptor deleted file mode 100644 index ae605f0..0000000 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.rddescriptor +++ /dev/null @@ -1,7 +0,0 @@ - - - - viewTechnology - JSF - - diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.xhtml b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.xhtml deleted file mode 100644 index f2a9ae7..0000000 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationForm.xhtml +++ /dev/null @@ -1,45 +0,0 @@ - - - - enterLocationForm - - -

- This is an - Html Dialog - implemented with JSF and Primefaces as widget library -

- - - - - - - - - - - - - - - -
-
- - - -
-
- -
-
-
- - \ No newline at end of file diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormData.ivyClass b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormData.ivyClass deleted file mode 100644 index 4fa142b..0000000 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormData.ivyClass +++ /dev/null @@ -1,8 +0,0 @@ -enterLocationFormData #class -com.axonivy.connector.srf.weather.connector.demo.enterLocationForm #namespace -geolocationId String #field -geolocationId PERSISTENT #fieldModifier -zip Number #field -zip PERSISTENT #fieldModifier -geolocationName String #field -geolocationName PERSISTENT #fieldModifier diff --git a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormProcess.p.json b/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormProcess.p.json deleted file mode 100644 index dd03cc9..0000000 --- a/srf-weather-connector-demo/src_hd/com/axonivy/connector/srf/weather/connector/demo/enterLocationForm/enterLocationFormProcess.p.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/process/11.1.26/process.json", - "id" : "189D044718A43E0C", - "kind" : "HTML_DIALOG", - "config" : { - "data" : "com.axonivy.connector.srf.weather.connector.demo.enterLocationForm.enterLocationFormData" - }, - "elements" : [ { - "id" : "f0", - "type" : "HtmlDialogStart", - "name" : "start(Number)", - "config" : { - "signature" : "start", - "input" : { - "params" : [ - { "name" : "zip", "type" : "Number", "desc" : "" } - ], - "map" : { - "out.zip" : "param.zip" - } - }, - "result" : { - "params" : [ - { "name" : "location", "type" : "com.axonivy.connector.srf.weather.connector.demo.location", "desc" : "" } - ], - "map" : { - "result.location.geolocationId" : "in.geolocationId", - "result.location.geolocationName" : "in.geolocationName", - "result.location.zip" : "in.zip" - } - }, - "guid" : "189D044718B95549" - }, - "visual" : { - "at" : { "x" : 96, "y" : 64 } - }, - "connect" : [ - { "id" : "f2", "to" : "f1" } - ] - }, { - "id" : "f1", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 224, "y" : 64 } - } - }, { - "id" : "f3", - "type" : "HtmlDialogEventStart", - "name" : "close", - "config" : { - "guid" : "189D044718CD1F75" - }, - "visual" : { - "at" : { "x" : 96, "y" : 160 } - }, - "connect" : [ - { "id" : "f5", "to" : "f4" } - ] - }, { - "id" : "f4", - "type" : "HtmlDialogExit", - "visual" : { - "at" : { "x" : 416, "y" : 160 } - } - }, { - "id" : "f6", - "type" : "HtmlDialogEventStart", - "name" : "getGeolocationId", - "config" : { - "guid" : "189D0495F48C766D" - }, - "visual" : { - "at" : { "x" : 96, "y" : 264 } - }, - "connect" : [ - { "id" : "f9", "to" : "f7" } - ] - }, { - "id" : "f8", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 608, "y" : 256 } - } - }, { - "id" : "f7", - "type" : "RestClientCall", - "name" : "getGeolocationId", - "config" : { - "target" : { - "clientId" : "abb4be9f-e610-498b-84db-a60dddc472ba", - "path" : "/geolocationNames", - "queryParams" : { - "zip" : "in.zip" - }, - "headers" : { - "Authorization" : "\"Bearer oYhSGDRliAdnfE5hqIFzLCImRj0J\"" - } - }, - "response" : { - "entity" : { - "type" : "com.fasterxml.jackson.databind.JsonNode", - "code" : [ - "import com.fasterxml.jackson.databind.node.ObjectNode;", - "import com.fasterxml.jackson.databind.JsonNode;", - "import com.fasterxml.jackson.databind.node.ArrayNode;", - "", - "ArrayNode arrayNode = result as ArrayNode;", - "JsonNode firstNode = arrayNode.get(0);", - "", - "ObjectNode objectNode = firstNode as ObjectNode;", - "", - "in.geolocationName = objectNode.get(\"description_short\").asText();", - "", - "ObjectNode geoNode = objectNode.get(\"geolocation\") as ObjectNode;", - "in.geolocationId = geoNode.get(\"id\").asText();", - "", - "//in.geolocationId = result.get(\"geolocation.id\").asText();", - "//in.geolocationName = result.get(\"description_short\").asText();" - ] - } - } - }, - "visual" : { - "at" : { "x" : 248, "y" : 264 } - }, - "connect" : [ - { "id" : "f10", "to" : "f8" } - ] - } ] -} \ No newline at end of file diff --git a/srf-weather-connector-product/.project b/srf-weather-connector-product/.project new file mode 100644 index 0000000..3b9de74 --- /dev/null +++ b/srf-weather-connector-product/.project @@ -0,0 +1,17 @@ + + + srf-weather-connector-product + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/srf-weather-connector-product/.settings/org.eclipse.m2e.core.prefs b/srf-weather-connector-product/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/srf-weather-connector-product/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/srf-weather-connector-test/.settings/org.eclipse.m2e.core.prefs b/srf-weather-connector-test/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/srf-weather-connector-test/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/srf-weather-connector-test/pom.xml b/srf-weather-connector-test/pom.xml index 206d684..6fa9d1c 100644 --- a/srf-weather-connector-test/pom.xml +++ b/srf-weather-connector-test/pom.xml @@ -1,44 +1,45 @@ - - 4.0.0 - com.axonivy.connector.srf.weather - srf-weather-connector-test - 11.1.0-SNAPSHOT - iar - - - com.axonivy.connector.srf.weather - srf-weather-connector - 11.1.0-SNAPSHOT - iar - - - com.axonivy.ivy.test - unit-tester - 11.1.0 - test - - - - src_test - - - com.axonivy.ivy.ci - project-build-plugin - 11.1.0 - true - - - - - - maven-deploy-plugin - 3.0.0-M1 - - true - - - - - - \ No newline at end of file + + 4.0.0 + com.axonivy.connector.srf.weather + srf-weather-connector-test + 10.0.0-SNAPSHOT + iar + + + com.axonivy.ivy.test + unit-tester + 11.1.0 + test + + + com.axonivy.connector.srf.weather + srf-weather-connector + ${project.version} + iar + + + + src_test + + + + maven-deploy-plugin + 3.0.0-M1 + + true + + + + + + + com.axonivy.ivy.ci + project-build-plugin + 10.0.6 + true + + + + diff --git a/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/WeatherMock.java b/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/WeatherMock.java new file mode 100644 index 0000000..acc676d --- /dev/null +++ b/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/WeatherMock.java @@ -0,0 +1,66 @@ +package com.axonivy.connector.srf.weather.connector; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.security.PermitAll; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.apache.commons.io.IOUtils; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JSR310Module; + +import ch.ivyteam.ivy.environment.Ivy; +import ch.srgssr.api.srf.meteo.v2.client.Color; +import ch.srgssr.api.srf.meteo.v2.client.DayForecastInterval; +import ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek; +import ch.srgssr.api.srf.meteo.v2.client.Geolocation; +import ch.srgssr.api.srf.meteo.v2.client.GeolocationName; +import ch.srgssr.api.srf.meteo.v2.client.OneHourForecastInterval; +import ch.srgssr.api.srf.meteo.v2.client.ThreeHourForecastInterval; + +//import io.swagger.v3.oas.annotations.Hidden; + +@Path(WeatherMock.PATH_SUFFIX) +@PermitAll +//@Hidden +public class WeatherMock { + + static final String PATH_SUFFIX = "weatherMock"; + // URI where this mock can be reached: to be referenced in tests that use it! + public static final String URI = "{ivy.app.baseurl}/api/" + PATH_SUFFIX; + + @GET + @Path("geolocationNames") + @Produces(MediaType.APPLICATION_JSON) + public Response forecastpoint(@QueryParam("zip") int zip, @QueryParam("location") String location) throws IOException { + try(InputStream is = WeatherMock.class.getResourceAsStream("json/geolocation.json")) { + var json = IOUtils.toString(is, StandardCharsets.UTF_8); + return Response.status(200).entity(json).build(); + } + } + + + @GET + @Path("forecastpoint/{geolocationId}") + @Produces(MediaType.APPLICATION_JSON) + public Response forecastpoint(@PathParam("geolocationId") String geolocationId) throws IOException { + try(InputStream is = WeatherMock.class.getResourceAsStream("json/forecast.json")) { + var json = IOUtils.toString(is, StandardCharsets.UTF_8); + return Response.status(200).entity(json).build(); + } + } + +} diff --git a/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/forecast.json b/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/forecast.json new file mode 100644 index 0000000..f5bde04 --- /dev/null +++ b/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/forecast.json @@ -0,0 +1,3949 @@ +{ + "days": [ + { + "date_time": "2023-08-17T00:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 37, + "RRR_MM": 0.6, + "FF_KMH": 4, + "FX_KMH": 31, + "DD_DEG": 180, + "SUNSET": "2023-08-17T20:32:00+02:00", + "SUNRISE": "2023-08-17T06:27:00+02:00", + "SUN_H": 6, + "UVI": 7, + "TX_C": 28, + "TN_C": 18, + "min_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + }, + "max_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T00:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 19, + "DD_DEG": 140, + "SUNSET": "2023-08-18T20:30:00+02:00", + "SUNRISE": "2023-08-18T06:28:00+02:00", + "SUN_H": 12, + "UVI": 7, + "TX_C": 32, + "TN_C": 17, + "min_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + }, + "max_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T00:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 19, + "DD_DEG": 170, + "SUNSET": "2023-08-19T20:29:00+02:00", + "SUNRISE": "2023-08-19T06:30:00+02:00", + "SUN_H": 11, + "UVI": 7, + "TX_C": 33, + "TN_C": 18, + "min_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + }, + "max_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T00:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 17, + "DD_DEG": 150, + "SUNSET": "2023-08-20T20:27:00+02:00", + "SUNRISE": "2023-08-20T06:31:00+02:00", + "SUN_H": 12, + "UVI": 7, + "TX_C": 33, + "TN_C": 19, + "min_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + }, + "max_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T00:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 5, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 17, + "DD_DEG": 150, + "SUNSET": "2023-08-21T20:25:00+02:00", + "SUNRISE": "2023-08-21T06:32:00+02:00", + "SUN_H": 13, + "UVI": 7, + "TX_C": 33, + "TN_C": 19, + "min_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + }, + "max_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T00:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 8, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 19, + "DD_DEG": 130, + "SUNSET": "2023-08-22T20:23:00+02:00", + "SUNRISE": "2023-08-22T06:34:00+02:00", + "SUN_H": 12, + "UVI": 7, + "TX_C": 33, + "TN_C": 20, + "min_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + }, + "max_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T00:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 13, + "RRR_MM": 0.5, + "FF_KMH": 4, + "FX_KMH": 20, + "DD_DEG": 160, + "SUNSET": "2023-08-23T20:21:00+02:00", + "SUNRISE": "2023-08-23T06:35:00+02:00", + "SUN_H": 11, + "UVI": 7, + "TX_C": 33, + "TN_C": 20, + "min_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + }, + "max_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T00:00:00+02:00", + "symbol_code": 11, + "symbol24_code": 2, + "PROBPCP_PERCENT": 23, + "RRR_MM": 3, + "FF_KMH": 4, + "FX_KMH": 22, + "DD_DEG": 170, + "SUNSET": "2023-08-24T20:19:00+02:00", + "SUNRISE": "2023-08-24T06:37:00+02:00", + "SUN_H": 9, + "UVI": 7, + "TX_C": 30, + "TN_C": 19, + "min_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + }, + "max_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-25T00:00:00+02:00", + "symbol_code": 11, + "symbol24_code": 2, + "PROBPCP_PERCENT": 30, + "RRR_MM": 5, + "FF_KMH": 4, + "FX_KMH": 20, + "DD_DEG": 200, + "SUNSET": "2023-08-25T20:17:00+02:00", + "SUNRISE": "2023-08-25T06:38:00+02:00", + "SUN_H": 8, + "UVI": 7, + "TX_C": 27, + "TN_C": 18, + "min_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + }, + "max_color": { + "temperature": 27, + "background_color": "#fce404", + "text_color": "#000000" + } + } + ], + "three_hours": [ + { + "date_time": "2023-08-17T02:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 6, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 19.7, + "TTH_C": 21.1, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 76, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T05:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 6, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 230, + "TTT_C": 19, + "TTL_C": 18.2, + "TTH_C": 19.6, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 85, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T08:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 230, + "TTT_C": 19, + "TTL_C": 17.8, + "TTH_C": 19.2, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 88, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 75, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T11:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 6, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 190, + "TTT_C": 23, + "TTL_C": 22.5, + "TTH_C": 23.9, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 72, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 102, + "IRRADIANCE_WM2": 411, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 23, + "background_color": "#e4e20c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T14:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 5, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 180, + "TTT_C": 26, + "TTL_C": 25.2, + "TTH_C": 27.6, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 60, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 90, + "IRRADIANCE_WM2": 550, + "TTTFEEL_C": 27, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T17:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 21, + "PROBPCP_PERCENT": 18, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 20, + "DD_DEG": 170, + "TTT_C": 28, + "TTL_C": 26.2, + "TTH_C": 29, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 53, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 96, + "IRRADIANCE_WM2": 322, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T20:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 21, + "PROBPCP_PERCENT": 25, + "RRR_MM": 0.3, + "FF_KMH": 9, + "FX_KMH": 24, + "DD_DEG": 160, + "TTT_C": 25, + "TTL_C": 23, + "TTH_C": 26.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 64, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 57, + "IRRADIANCE_WM2": 53, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T23:00:00+02:00", + "symbol_code": -5, + "symbol24_code": 122, + "PROBPCP_PERCENT": 25, + "RRR_MM": 0.2, + "FF_KMH": 7, + "FX_KMH": 22, + "DD_DEG": 170, + "TTT_C": 21, + "TTL_C": 19.9, + "TTH_C": 22.1, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 78, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T02:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 12, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 180, + "TTT_C": 19, + "TTL_C": 18, + "TTH_C": 19.8, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 83, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T05:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 210, + "TTT_C": 17, + "TTL_C": 16.6, + "TTH_C": 18.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 89, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 18, + "cur_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 220, + "TTT_C": 17, + "TTL_C": 16.6, + "TTH_C": 18.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 88, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 105, + "IRRADIANCE_WM2": 97, + "TTTFEEL_C": 18, + "cur_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 120, + "TTT_C": 24, + "TTL_C": 23.2, + "TTH_C": 24.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 66, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 174, + "IRRADIANCE_WM2": 581, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T14:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 140, + "TTT_C": 29, + "TTL_C": 28.5, + "TTH_C": 29.9, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 48, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 869, + "TTTFEEL_C": 30, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 160, + "TTT_C": 32, + "TTL_C": 31.3, + "TTH_C": 32.9, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 38, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 592, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 150, + "TTT_C": 29, + "TTL_C": 28, + "TTH_C": 30, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 47, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1014, + "SUN_MIN": 117, + "IRRADIANCE_WM2": 97, + "TTTFEEL_C": 29, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 170, + "TTT_C": 24, + "TTL_C": 22.8, + "TTH_C": 24.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 64, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 180, + "TTT_C": 21, + "TTL_C": 20.2, + "TTH_C": 21.8, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 73, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 210, + "TTT_C": 19, + "TTL_C": 18.2, + "TTH_C": 19.8, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 81, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 220, + "TTT_C": 19, + "TTL_C": 18.2, + "TTH_C": 20, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 82, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 105, + "IRRADIANCE_WM2": 94, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T11:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 150, + "TTT_C": 25, + "TTL_C": 24.4, + "TTH_C": 25.8, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 62, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 153, + "IRRADIANCE_WM2": 519, + "TTTFEEL_C": 26, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T14:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 170, + "TTT_C": 30, + "TTL_C": 29.4, + "TTH_C": 31, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 46, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 153, + "IRRADIANCE_WM2": 778, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T17:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 19, + "DD_DEG": 200, + "TTT_C": 33, + "TTL_C": 32.2, + "TTH_C": 33.8, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 37, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 162, + "IRRADIANCE_WM2": 575, + "TTTFEEL_C": 33, + "cur_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 200, + "TTT_C": 30, + "TTL_C": 28.8, + "TTH_C": 31.2, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 45, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 114, + "IRRADIANCE_WM2": 97, + "TTTFEEL_C": 30, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 180, + "TTT_C": 24, + "TTL_C": 23.4, + "TTH_C": 25.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 63, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1020, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 190, + "TTT_C": 22, + "TTL_C": 20.8, + "TTH_C": 22.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 75, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 19.1, + "TTH_C": 20.9, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 82, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 250, + "TTT_C": 20, + "TTL_C": 18.8, + "TTH_C": 20.8, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 85, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1023, + "SUN_MIN": 108, + "IRRADIANCE_WM2": 83, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 190, + "TTT_C": 25, + "TTL_C": 24.1, + "TTH_C": 25.7, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 68, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1023, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 547, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T14:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 150, + "TTT_C": 30, + "TTL_C": 28.8, + "TTH_C": 30.6, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 53, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 786, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 170, + "TTT_C": 32, + "TTL_C": 31, + "TTH_C": 33.2, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 45, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 583, + "TTTFEEL_C": 33, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 190, + "TTT_C": 30, + "TTL_C": 28.2, + "TTH_C": 31.2, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 53, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 105, + "IRRADIANCE_WM2": 92, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 180, + "TTT_C": 25, + "TTL_C": 23.3, + "TTH_C": 25.7, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 70, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1023, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 230, + "TTT_C": 22, + "TTL_C": 21, + "TTH_C": 23, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 80, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1024, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 250, + "TTT_C": 20, + "TTL_C": 19.2, + "TTH_C": 21.2, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 86, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1024, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 260, + "TTT_C": 20, + "TTL_C": 19, + "TTH_C": 21, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 87, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1024, + "SUN_MIN": 117, + "IRRADIANCE_WM2": 83, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 110, + "TTT_C": 25, + "TTL_C": 24, + "TTH_C": 26.2, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 70, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1024, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 564, + "TTTFEEL_C": 26, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T14:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 150, + "TTT_C": 30, + "TTL_C": 28.6, + "TTH_C": 31.4, + "DEWPOINT_C": 20, + "RELHUM_PERCENT": 54, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1023, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 814, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 130, + "TTT_C": 33, + "TTL_C": 30.9, + "TTH_C": 34.5, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 45, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 572, + "TTTFEEL_C": 34, + "cur_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 140, + "TTT_C": 30, + "TTL_C": 28.2, + "TTH_C": 32, + "DEWPOINT_C": 20, + "RELHUM_PERCENT": 53, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 105, + "IRRADIANCE_WM2": 86, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-21T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 170, + "TTT_C": 25, + "TTL_C": 23.1, + "TTH_C": 25.9, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 70, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 190, + "TTT_C": 22, + "TTL_C": 21, + "TTH_C": 23.4, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 78, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 230, + "TTT_C": 21, + "TTL_C": 19.5, + "TTH_C": 21.7, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 84, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 250, + "TTT_C": 20, + "TTL_C": 19.2, + "TTH_C": 21.4, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 85, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 111, + "IRRADIANCE_WM2": 83, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 110, + "TTT_C": 25, + "TTL_C": 23.6, + "TTH_C": 26.4, + "DEWPOINT_C": 20, + "RELHUM_PERCENT": 72, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1022, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 561, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T14:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 130, + "TTT_C": 30, + "TTL_C": 28, + "TTH_C": 31.6, + "DEWPOINT_C": 20, + "RELHUM_PERCENT": 55, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1020, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 806, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 120, + "TTT_C": 32, + "TTL_C": 30.1, + "TTH_C": 34.5, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 46, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 180, + "IRRADIANCE_WM2": 558, + "TTTFEEL_C": 34, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 160, + "TTT_C": 29, + "TTL_C": 27.1, + "TTH_C": 31.7, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 55, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 105, + "IRRADIANCE_WM2": 75, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-22T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 7, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 190, + "TTT_C": 24, + "TTL_C": 22.6, + "TTH_C": 26, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 71, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 6, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 200, + "TTT_C": 22, + "TTL_C": 20.8, + "TTH_C": 23.4, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 79, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1020, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 6, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 220, + "TTT_C": 21, + "TTL_C": 19.4, + "TTH_C": 21.8, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 86, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 18.8, + "TTH_C": 21.2, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 88, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 108, + "IRRADIANCE_WM2": 78, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 120, + "TTT_C": 25, + "TTL_C": 23.5, + "TTH_C": 26.9, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 70, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 171, + "IRRADIANCE_WM2": 542, + "TTTFEEL_C": 26, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T14:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 15, + "DD_DEG": 160, + "TTT_C": 30, + "TTL_C": 27.5, + "TTH_C": 32.1, + "DEWPOINT_C": 20, + "RELHUM_PERCENT": 55, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 177, + "IRRADIANCE_WM2": 767, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 5, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 19, + "DD_DEG": 160, + "TTT_C": 32, + "TTL_C": 29.4, + "TTH_C": 34.8, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 46, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 162, + "IRRADIANCE_WM2": 508, + "TTTFEEL_C": 34, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 4, + "PROBPCP_PERCENT": 8, + "RRR_MM": 0.1, + "FF_KMH": 7, + "FX_KMH": 19, + "DD_DEG": 200, + "TTT_C": 29, + "TTL_C": 26.5, + "TTH_C": 31.7, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 56, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 96, + "IRRADIANCE_WM2": 72, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-23T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 102, + "PROBPCP_PERCENT": 13, + "RRR_MM": 0.2, + "FF_KMH": 7, + "FX_KMH": 19, + "DD_DEG": 180, + "TTT_C": 24, + "TTL_C": 22.2, + "TTH_C": 25.8, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 71, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 102, + "PROBPCP_PERCENT": 12, + "RRR_MM": 0.2, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 200, + "TTT_C": 22, + "TTL_C": 20.1, + "TTH_C": 23.1, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 81, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 102, + "PROBPCP_PERCENT": 14, + "RRR_MM": 0.1, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 210, + "TTT_C": 20, + "TTL_C": 18.9, + "TTH_C": 21.5, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 85, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 2, + "PROBPCP_PERCENT": 10, + "RRR_MM": 0.1, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 230, + "TTT_C": 20, + "TTL_C": 19, + "TTH_C": 21.6, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 84, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 87, + "IRRADIANCE_WM2": 72, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 4, + "PROBPCP_PERCENT": 9, + "RRR_MM": 0.1, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 120, + "TTT_C": 24, + "TTL_C": 21.8, + "TTH_C": 25.8, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 72, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 141, + "IRRADIANCE_WM2": 439, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T14:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 4, + "PROBPCP_PERCENT": 5, + "RRR_MM": 0.1, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 170, + "TTT_C": 28, + "TTL_C": 24.9, + "TTH_C": 30.5, + "DEWPOINT_C": 19, + "RELHUM_PERCENT": 58, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 141, + "IRRADIANCE_WM2": 631, + "TTTFEEL_C": 29, + "cur_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T17:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 4, + "PROBPCP_PERCENT": 10, + "RRR_MM": 0.3, + "FF_KMH": 7, + "FX_KMH": 19, + "DD_DEG": 180, + "TTT_C": 29, + "TTL_C": 26, + "TTH_C": 32.8, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 50, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 129, + "IRRADIANCE_WM2": 436, + "TTTFEEL_C": 30, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T20:00:00+02:00", + "symbol_code": 11, + "symbol24_code": 2, + "PROBPCP_PERCENT": 12, + "RRR_MM": 0.9, + "FF_KMH": 9, + "FX_KMH": 19, + "DD_DEG": 190, + "TTT_C": 26, + "TTL_C": 23, + "TTH_C": 29.6, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 62, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 69, + "IRRADIANCE_WM2": 53, + "TTTFEEL_C": 27, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-24T23:00:00+02:00", + "symbol_code": -12, + "symbol24_code": 103, + "PROBPCP_PERCENT": 24, + "RRR_MM": 0.8, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 180, + "TTT_C": 22, + "TTL_C": 19.6, + "TTH_C": 24.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 75, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-25T02:00:00+02:00", + "symbol_code": -11, + "symbol24_code": 102, + "PROBPCP_PERCENT": 23, + "RRR_MM": 0.6, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 18, + "TTH_C": 21.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 83, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-25T05:00:00+02:00", + "symbol_code": -11, + "symbol24_code": 102, + "PROBPCP_PERCENT": 23, + "RRR_MM": 0.4, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 230, + "TTT_C": 18, + "TTL_C": 16.7, + "TTH_C": 20.1, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 88, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 19, + "cur_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-25T08:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 2, + "PROBPCP_PERCENT": 19, + "RRR_MM": 0.5, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 240, + "TTT_C": 18, + "TTL_C": 16.3, + "TTH_C": 19.5, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 90, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 75, + "IRRADIANCE_WM2": 58, + "TTTFEEL_C": 19, + "cur_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-25T11:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 2, + "PROBPCP_PERCENT": 16, + "RRR_MM": 0.5, + "FF_KMH": 4, + "FX_KMH": 11, + "DD_DEG": 200, + "TTT_C": 22, + "TTL_C": 19.6, + "TTH_C": 24, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 74, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 117, + "IRRADIANCE_WM2": 403, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + } + ], + "hours": [ + { + "date_time": "2023-08-17T00:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 180, + "TTT_C": 22, + "TTL_C": 21.9, + "TTH_C": 22.9, + "DEWPOINT_C": 15, + "RELHUM_PERCENT": 65, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T01:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 200, + "TTT_C": 21, + "TTL_C": 20.7, + "TTH_C": 21.9, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 71, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T02:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 6, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 19.7, + "TTH_C": 21.1, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 76, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T03:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 19.1, + "TTH_C": 20.5, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 79, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T04:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 220, + "TTT_C": 19, + "TTL_C": 18.5, + "TTH_C": 20.1, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 82, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T05:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 230, + "TTT_C": 19, + "TTL_C": 18.2, + "TTH_C": 19.6, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 85, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T06:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 110, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 230, + "TTT_C": 19, + "TTL_C": 17.9, + "TTH_C": 19.3, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 87, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 19, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T07:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 230, + "TTT_C": 18, + "TTL_C": 17.5, + "TTH_C": 18.9, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 89, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 14, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 19, + "cur_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T08:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 230, + "TTT_C": 19, + "TTL_C": 17.8, + "TTH_C": 19.2, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 88, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 20, + "IRRADIANCE_WM2": 75, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T09:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 220, + "TTT_C": 20, + "TTL_C": 19, + "TTH_C": 20.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 84, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 26, + "IRRADIANCE_WM2": 169, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T10:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 210, + "TTT_C": 22, + "TTL_C": 20.8, + "TTH_C": 22.2, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 78, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 31, + "IRRADIANCE_WM2": 286, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T11:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 190, + "TTT_C": 23, + "TTL_C": 22.5, + "TTH_C": 23.9, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 72, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 34, + "IRRADIANCE_WM2": 411, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 23, + "background_color": "#e4e20c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T12:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 180, + "TTT_C": 25, + "TTL_C": 23.7, + "TTH_C": 25.3, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 67, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 34, + "IRRADIANCE_WM2": 483, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T13:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 3, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 180, + "TTT_C": 26, + "TTL_C": 24.5, + "TTH_C": 26.5, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 63, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 32, + "IRRADIANCE_WM2": 531, + "TTTFEEL_C": 26, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T14:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 180, + "TTT_C": 26, + "TTL_C": 25.2, + "TTH_C": 27.6, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 60, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 30, + "IRRADIANCE_WM2": 550, + "TTTFEEL_C": 27, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T15:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 8, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 180, + "TTT_C": 27, + "TTL_C": 25.8, + "TTH_C": 28.4, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 56, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 31, + "IRRADIANCE_WM2": 492, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 27, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T16:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 10, + "PROBPCP_PERCENT": 13, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 180, + "TTT_C": 28, + "TTL_C": 26.3, + "TTH_C": 28.9, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 54, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 32, + "IRRADIANCE_WM2": 414, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T17:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 21, + "PROBPCP_PERCENT": 16, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 17, + "DD_DEG": 170, + "TTT_C": 28, + "TTL_C": 26.2, + "TTH_C": 29, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 53, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 32, + "IRRADIANCE_WM2": 322, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T18:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 21, + "PROBPCP_PERCENT": 17, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 19, + "DD_DEG": 170, + "TTT_C": 27, + "TTL_C": 25.5, + "TTH_C": 28.5, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 55, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 29, + "IRRADIANCE_WM2": 219, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 27, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T19:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 21, + "PROBPCP_PERCENT": 16, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 19, + "DD_DEG": 160, + "TTT_C": 26, + "TTL_C": 24.3, + "TTH_C": 27.7, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 59, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 24, + "IRRADIANCE_WM2": 128, + "TTTFEEL_C": 27, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T20:00:00+02:00", + "symbol_code": 3, + "symbol24_code": 21, + "PROBPCP_PERCENT": 15, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 19, + "DD_DEG": 160, + "TTT_C": 25, + "TTL_C": 23, + "TTH_C": 26.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 64, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 19, + "IRRADIANCE_WM2": 53, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T21:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 121, + "PROBPCP_PERCENT": 15, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 17, + "DD_DEG": 160, + "TTT_C": 24, + "TTL_C": 22, + "TTH_C": 25, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 68, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 12, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T22:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 121, + "PROBPCP_PERCENT": 16, + "RRR_MM": 0.1, + "FF_KMH": 9, + "FX_KMH": 17, + "DD_DEG": 170, + "TTT_C": 22, + "TTL_C": 20.8, + "TTH_C": 23.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 73, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-17T23:00:00+02:00", + "symbol_code": -3, + "symbol24_code": 121, + "PROBPCP_PERCENT": 15, + "RRR_MM": 0.1, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 170, + "TTT_C": 21, + "TTL_C": 19.9, + "TTH_C": 22.1, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 78, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T00:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 12, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 170, + "TTT_C": 20, + "TTL_C": 19.1, + "TTH_C": 21.1, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 80, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T01:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 7, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 170, + "TTT_C": 20, + "TTL_C": 18.6, + "TTH_C": 20.4, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 82, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T02:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 4, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 180, + "TTT_C": 19, + "TTL_C": 18, + "TTH_C": 19.8, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 83, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T03:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 190, + "TTT_C": 18, + "TTL_C": 17.6, + "TTH_C": 19.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 85, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T04:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 200, + "TTT_C": 18, + "TTL_C": 17, + "TTH_C": 18.6, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 87, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 19, + "cur_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T05:00:00+02:00", + "symbol_code": -10, + "symbol24_code": 101, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 210, + "TTT_C": 17, + "TTL_C": 16.6, + "TTH_C": 18.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 89, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 18, + "cur_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T06:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 220, + "TTT_C": 17, + "TTL_C": 16.2, + "TTH_C": 17.8, + "DEWPOINT_C": 15, + "RELHUM_PERCENT": 90, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 18, + "cur_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T07:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 220, + "TTT_C": 17, + "TTL_C": 16, + "TTH_C": 17.6, + "DEWPOINT_C": 15, + "RELHUM_PERCENT": 91, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 22, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 18, + "cur_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T08:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 220, + "TTT_C": 17, + "TTL_C": 16.6, + "TTH_C": 18.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 88, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 35, + "IRRADIANCE_WM2": 97, + "TTTFEEL_C": 18, + "cur_color": { + "temperature": 17, + "background_color": "#84be34", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T09:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 180, + "TTT_C": 19, + "TTL_C": 18.3, + "TTH_C": 19.7, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 82, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 45, + "IRRADIANCE_WM2": 231, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T10:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 130, + "TTT_C": 22, + "TTL_C": 20.8, + "TTH_C": 22.2, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 73, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 53, + "IRRADIANCE_WM2": 397, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 120, + "TTT_C": 24, + "TTL_C": 23.2, + "TTH_C": 24.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 66, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 58, + "IRRADIANCE_WM2": 581, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T12:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 130, + "TTT_C": 26, + "TTL_C": 25.2, + "TTH_C": 26.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 59, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 708, + "TTTFEEL_C": 27, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T13:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 140, + "TTT_C": 28, + "TTL_C": 27, + "TTH_C": 28.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 53, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 808, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T14:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 140, + "TTT_C": 29, + "TTL_C": 28.5, + "TTH_C": 29.9, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 48, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 869, + "TTTFEEL_C": 30, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T15:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 150, + "TTT_C": 31, + "TTL_C": 30, + "TTH_C": 31.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 43, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 814, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 31, + "background_color": "#fcc404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T16:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 150, + "TTT_C": 32, + "TTL_C": 31, + "TTH_C": 32.6, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 39, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 719, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 160, + "TTT_C": 32, + "TTL_C": 31.3, + "TTH_C": 32.9, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 38, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 60, + "IRRADIANCE_WM2": 592, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T18:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 150, + "TTT_C": 32, + "TTL_C": 30.8, + "TTH_C": 32.6, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 39, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 57, + "IRRADIANCE_WM2": 403, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T19:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 13, + "DD_DEG": 150, + "TTT_C": 31, + "TTL_C": 29.5, + "TTH_C": 31.5, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 42, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1014, + "SUN_MIN": 49, + "IRRADIANCE_WM2": 233, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 31, + "background_color": "#fcc404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 11, + "DD_DEG": 150, + "TTT_C": 29, + "TTL_C": 28, + "TTH_C": 30, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 47, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1014, + "SUN_MIN": 39, + "IRRADIANCE_WM2": 97, + "TTTFEEL_C": 29, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T21:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 11, + "DD_DEG": 150, + "TTT_C": 27, + "TTL_C": 26.3, + "TTH_C": 28.1, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 52, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 25, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 27, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T22:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 9, + "DD_DEG": 160, + "TTT_C": 25, + "TTL_C": 24.4, + "TTH_C": 26, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 58, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1015, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 26, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-18T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 170, + "TTT_C": 24, + "TTL_C": 22.8, + "TTH_C": 24.2, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 64, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T00:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 170, + "TTT_C": 22, + "TTL_C": 21.7, + "TTH_C": 23.1, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 68, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T01:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 7, + "DD_DEG": 180, + "TTT_C": 22, + "TTL_C": 20.9, + "TTH_C": 22.5, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 70, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 180, + "TTT_C": 21, + "TTL_C": 20.2, + "TTH_C": 21.8, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 73, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T03:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 190, + "TTT_C": 20, + "TTL_C": 19.4, + "TTH_C": 21, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 76, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T04:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 210, + "TTT_C": 20, + "TTL_C": 18.7, + "TTH_C": 20.3, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 78, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1016, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 21, + "cur_color": { + "temperature": 20, + "background_color": "#c4d71c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T05:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 210, + "TTT_C": 19, + "TTL_C": 18.2, + "TTH_C": 19.8, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 81, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T06:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 220, + "TTT_C": 19, + "TTL_C": 17.8, + "TTH_C": 19.4, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 83, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T07:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 230, + "TTT_C": 18, + "TTL_C": 17.5, + "TTH_C": 19.3, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 84, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 22, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 18, + "background_color": "#a4ca2c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T08:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 220, + "TTT_C": 19, + "TTL_C": 18.2, + "TTH_C": 20, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 82, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 35, + "IRRADIANCE_WM2": 94, + "TTTFEEL_C": 20, + "cur_color": { + "temperature": 19, + "background_color": "#b4d21f", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T09:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 200, + "TTT_C": 21, + "TTL_C": 19.7, + "TTH_C": 21.5, + "DEWPOINT_C": 16, + "RELHUM_PERCENT": 77, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 43, + "IRRADIANCE_WM2": 217, + "TTTFEEL_C": 22, + "cur_color": { + "temperature": 21, + "background_color": "#d4da13", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T10:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 160, + "TTT_C": 23, + "TTL_C": 22.1, + "TTH_C": 23.7, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 69, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 48, + "IRRADIANCE_WM2": 361, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 23, + "background_color": "#e4e20c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T11:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 9, + "DD_DEG": 150, + "TTT_C": 25, + "TTL_C": 24.4, + "TTH_C": 25.8, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 62, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 51, + "IRRADIANCE_WM2": 519, + "TTTFEEL_C": 26, + "cur_color": { + "temperature": 25, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T12:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 11, + "DD_DEG": 150, + "TTT_C": 27, + "TTL_C": 26.3, + "TTH_C": 27.7, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 56, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 52, + "IRRADIANCE_WM2": 633, + "TTTFEEL_C": 28, + "cur_color": { + "temperature": 27, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T13:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 13, + "DD_DEG": 160, + "TTT_C": 29, + "TTL_C": 28.1, + "TTH_C": 29.5, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 51, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 51, + "IRRADIANCE_WM2": 722, + "TTTFEEL_C": 30, + "cur_color": { + "temperature": 29, + "background_color": "#fcd004", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T14:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 170, + "TTT_C": 30, + "TTL_C": 29.4, + "TTH_C": 31, + "DEWPOINT_C": 18, + "RELHUM_PERCENT": 46, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 51, + "IRRADIANCE_WM2": 778, + "TTTFEEL_C": 31, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T15:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 0, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 180, + "TTT_C": 32, + "TTL_C": 30.8, + "TTH_C": 32.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 42, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 52, + "IRRADIANCE_WM2": 747, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T16:00:00+02:00", + "symbol_code": 10, + "symbol24_code": 1, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 190, + "TTT_C": 33, + "TTL_C": 31.9, + "TTH_C": 33.5, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 39, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 54, + "IRRADIANCE_WM2": 678, + "TTTFEEL_C": 33, + "cur_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T17:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 17, + "DD_DEG": 200, + "TTT_C": 33, + "TTL_C": 32.2, + "TTH_C": 33.8, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 37, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 54, + "IRRADIANCE_WM2": 575, + "TTTFEEL_C": 33, + "cur_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T18:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 15, + "DD_DEG": 200, + "TTT_C": 33, + "TTL_C": 31.7, + "TTH_C": 33.7, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 38, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1017, + "SUN_MIN": 51, + "IRRADIANCE_WM2": 394, + "TTTFEEL_C": 33, + "cur_color": { + "temperature": 33, + "background_color": "#fcac04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T19:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 13, + "DD_DEG": 200, + "TTT_C": 32, + "TTL_C": 30.4, + "TTH_C": 32.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 41, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 46, + "IRRADIANCE_WM2": 233, + "TTTFEEL_C": 32, + "cur_color": { + "temperature": 32, + "background_color": "#fcb404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T20:00:00+02:00", + "symbol_code": 1, + "symbol24_code": 0, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 11, + "DD_DEG": 200, + "TTT_C": 30, + "TTL_C": 28.8, + "TTH_C": 31.2, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 45, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1018, + "SUN_MIN": 38, + "IRRADIANCE_WM2": 97, + "TTTFEEL_C": 30, + "cur_color": { + "temperature": 30, + "background_color": "#fcca04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T21:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 11, + "DD_DEG": 190, + "TTT_C": 28, + "TTL_C": 27, + "TTH_C": 29.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 50, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1019, + "SUN_MIN": 24, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 29, + "cur_color": { + "temperature": 28, + "background_color": "#fcde04", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T22:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 7, + "FX_KMH": 9, + "DD_DEG": 190, + "TTT_C": 26, + "TTL_C": 25, + "TTH_C": 27.2, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 57, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1020, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 27, + "cur_color": { + "temperature": 26, + "background_color": "#fce404", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-19T23:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 9, + "DD_DEG": 180, + "TTT_C": 24, + "TTL_C": 23.4, + "TTH_C": 25.4, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 63, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1020, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 25, + "cur_color": { + "temperature": 24, + "background_color": "#f4e50b", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T00:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 2, + "RRR_MM": 0, + "FF_KMH": 6, + "FX_KMH": 7, + "DD_DEG": 180, + "TTT_C": 23, + "TTL_C": 22.3, + "TTH_C": 24.1, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 68, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 24, + "cur_color": { + "temperature": 23, + "background_color": "#e4e20c", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T01:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 7, + "DD_DEG": 180, + "TTT_C": 22, + "TTL_C": 21.5, + "TTH_C": 23.3, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 72, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + }, + { + "date_time": "2023-08-20T02:00:00+02:00", + "symbol_code": -1, + "symbol24_code": 100, + "PROBPCP_PERCENT": 1, + "RRR_MM": 0, + "FF_KMH": 4, + "FX_KMH": 6, + "DD_DEG": 190, + "TTT_C": 22, + "TTL_C": 20.8, + "TTH_C": 22.6, + "DEWPOINT_C": 17, + "RELHUM_PERCENT": 75, + "FRESHSNOW_CM": 0, + "PRESSURE_HPA": 1021, + "SUN_MIN": 0, + "IRRADIANCE_WM2": 0, + "TTTFEEL_C": 23, + "cur_color": { + "temperature": 22, + "background_color": "#dcde14", + "text_color": "#000000" + } + } + ], + "geolocation": { + "id": "47.1707,8.5154", + "lat": 47.1707, + "lon": 8.5154, + "station_id": "S15398", + "timezone": "Europe/Zurich", + "default_name": "Zug", + "alarm_region_id": "109", + "alarm_region_name": "Zugersee", + "district": "", + "geolocation_names": [ + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "f6a0ecce63412ae119e9596d672b6c30", + "location_id": "4180006300", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6300, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "cbfe5e1bf17d423915412e8c5d56c669", + "location_id": "4180006301", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6301, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "88a5337f5d3584a96985d8154d9b4dcf", + "location_id": "4180006302", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6302, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "018dd1cd3d958baddeb10e584d2c97c2", + "location_id": "4180006303", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6303, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "b370230031f638eddb3ac6f2332be599", + "location_id": "4180006304", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6304, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "f6b2544c30d11d49933b704b6036a7e8", + "location_id": "4180006305", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6305, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "95900edca2302ce566e34da711b0a3cd", + "location_id": "4180006310", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6310, + "ch": 1 + } + ] + } +} \ No newline at end of file diff --git a/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/geolocation.json b/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/geolocation.json new file mode 100644 index 0000000..b048a3f --- /dev/null +++ b/srf-weather-connector-test/src/com/axonivy/connector/srf/weather/connector/json/geolocation.json @@ -0,0 +1,134 @@ +[ + { + "district": "", + "description_short": "Bern", + "description_long": "Zug, 425 m.ü.M.", + "id": "f6a0ecce63412ae119e9596d672b6c30", + "geolocation": { + "id": "47.1707,8.5154", + "lat": 47.1707, + "lon": 8.5154, + "station_id": "S15398", + "timezone": "Europe/Zurich", + "default_name": "Zug", + "alarm_region_id": "109", + "alarm_region_name": "Zugersee", + "district": "", + "geolocation_names": [ + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "cbfe5e1bf17d423915412e8c5d56c669", + "location_id": "4180006301", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6301, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "88a5337f5d3584a96985d8154d9b4dcf", + "location_id": "4180006302", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6302, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "018dd1cd3d958baddeb10e584d2c97c2", + "location_id": "4180006303", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6303, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "b370230031f638eddb3ac6f2332be599", + "location_id": "4180006304", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6304, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "f6b2544c30d11d49933b704b6036a7e8", + "location_id": "4180006305", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6305, + "ch": 1 + }, + { + "district": "", + "description_short": "Zug", + "description_long": "Zug, 425 m.ü.M.", + "id": "95900edca2302ce566e34da711b0a3cd", + "location_id": "4180006310", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6310, + "ch": 1 + } + ] + }, + "location_id": "4180006300", + "type": "city", + "language": 0, + "translation_type": "orig", + "name": "Zug", + "country": "Schweiz", + "province": "Zug", + "inhabitants": 0, + "height": 425, + "plz": 6300, + "ch": 1 + } +] \ No newline at end of file diff --git a/srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/SampleProcessTest.java b/srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/SampleProcessTest.java deleted file mode 100644 index 09253c9..0000000 --- a/srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/SampleProcessTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.axonivy.connector.srf.weather.test; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import ch.ivyteam.ivy.bpm.engine.client.BpmClient; -import ch.ivyteam.ivy.bpm.engine.client.ExecutionResult; -import ch.ivyteam.ivy.bpm.engine.client.element.BpmElement; -import ch.ivyteam.ivy.bpm.engine.client.element.BpmProcess; -import ch.ivyteam.ivy.bpm.exec.client.IvyProcessTest; -import ch.ivyteam.ivy.workflow.CaseState; - -/** - * This sample ProcessTest simulates users and systems working through - * your process flow. Created data and tasks can be easily asserted. - * - *

The test can either be run

    - *
  • in the Designer IDE ( right click > run as > JUnit Test )
  • - *
  • or in a Maven continuous integration build pipeline ( mvn clean verify )
  • - *

- * - *

Detailed guidance on writing these kind of tests can be found in our - * Process Testing docs - *

- */ -@IvyProcessTest -public class SampleProcessTest{ - - private static final BpmProcess testee = BpmProcess.path("MyProcess"); - - @Test - public void callProcess(BpmClient bpmClient){ -// BpmElement startable = testee.elementName("start.ivp"); -// ExecutionResult result = bpmClient.start().process(startable).execute(); -// CompositeObject data = result.data().last(); -// assertThat(data).isNotNull(); - } - - @Test - @Disabled("illustrative code: needs adaption to your environment") - public void workflow(BpmClient bpmClient) - { - BpmElement startable = testee.elementName("start.ivp"); - - // start as authenticated user - String myUser = "myUser"; - ExecutionResult result = bpmClient.start().process(startable).as().user(myUser).execute(); - assertThat(result.workflow().activeCase()).isEqualTo(CaseState.RUNNING); - assertThat(result.workflow().executedTask().activator().name()).isEqualTo(myUser); - - // continue after task/switch - bpmClient.start().anyActiveTask(result).as().role("supervisor").execute(); - } -} diff --git a/srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/TestDemoProcess.java b/srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/TestDemoProcess.java new file mode 100644 index 0000000..c9353d3 --- /dev/null +++ b/srf-weather-connector-test/src_test/com/axonivy/connector/srf/weather/test/TestDemoProcess.java @@ -0,0 +1,36 @@ +package com.axonivy.connector.srf.weather.test; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import com.axonivy.connector.srf.weather.connector.WeatherMock; +import com.axonivy.connector.srf.weather.connector.srfWeatherForecastData; + +import ch.ivyteam.ivy.bpm.engine.client.BpmClient; +import ch.ivyteam.ivy.bpm.engine.client.ExecutionResult; +import ch.ivyteam.ivy.bpm.engine.client.element.BpmElement; +import ch.ivyteam.ivy.bpm.engine.client.element.BpmProcess; +import ch.ivyteam.ivy.bpm.exec.client.IvyProcessTest; +import ch.ivyteam.ivy.environment.AppFixture; + + +@IvyProcessTest +public class TestDemoProcess { + + private static final BpmProcess testee = BpmProcess.path("srfWeatherForecast"); + + @BeforeEach + void beforeEach(AppFixture fixture) { + fixture.config("RestClients.'srfweatherService (SRF Weather)'.Url", WeatherMock.URI); + } + + @Test + void weatherOfZug(BpmClient bpmClient) throws NoSuchFieldException { + BpmElement startable = testee.elementName("call(Number,String)"); + ExecutionResult result = bpmClient.start().subProcess(startable).execute(6300, "Zug"); + srfWeatherForecastData data = result.data().last(); + assertThat(data.getDay().getTNC()).isEqualTo(18); + } +} diff --git a/srf-weather-connector/.settings/ch.ivyteam.ivy.designer.prefs b/srf-weather-connector/.settings/ch.ivyteam.ivy.designer.prefs index 52d18c5..79817bc 100644 --- a/srf-weather-connector/.settings/ch.ivyteam.ivy.designer.prefs +++ b/srf-weather-connector/.settings/ch.ivyteam.ivy.designer.prefs @@ -1,5 +1,6 @@ -ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axonivy.connector.srf.weather.connector.Data +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_DATA_CLASS=com.axonivy.connector.srf.weather.connector.srfWeatherForecastData ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:DEFAULT_NAMESPACE=com.axonivy.connector.srf.weather.connector +ch.ivyteam.ivy.designer.preferences.DataClassPreferencePage\:useProjectSettings=true ch.ivyteam.ivy.project.preferences\:PRIMEFACES_VERSION=11 ch.ivyteam.ivy.project.preferences\:PROJECT_VERSION=111000 eclipse.preferences.version=1 diff --git a/srf-weather-connector/.settings/org.eclipse.m2e.core.prefs b/srf-weather-connector/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/srf-weather-connector/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/srf-weather-connector/config/rest-clients.yaml b/srf-weather-connector/config/rest-clients.yaml index 7fe81db..8a10cfd 100644 --- a/srf-weather-connector/config/rest-clients.yaml +++ b/srf-weather-connector/config/rest-clients.yaml @@ -3,6 +3,7 @@ RestClients: srfweatherService (SRF Weather): UUID: abb4be9f-e610-498b-84db-a60dddc472ba Url: https://api.srgssr.ch/srf-meteo/v2 + #Url: http://localhost:8081/designer/api/weatherMock Features: - ch.ivyteam.ivy.rest.client.mapper.JsonFeature OpenAPI: diff --git a/srf-weather-connector/config/variables.yaml b/srf-weather-connector/config/variables.yaml index fd14458..df58992 100644 --- a/srf-weather-connector/config/variables.yaml +++ b/srf-weather-connector/config/variables.yaml @@ -3,4 +3,4 @@ # You can define here your project Variables. # Variables: -# myVariable: value + myBearerToken: "Bearer DIBe0LTTFqAGxCA4jGJYYhh3NVCF" diff --git a/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Data.ivyClass b/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Data.ivyClass deleted file mode 100644 index f5ec6fb..0000000 --- a/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Data.ivyClass +++ /dev/null @@ -1,6 +0,0 @@ -Data #class -com.axonivy.connector.srf.weather.connector #namespace -geolocation ch.srgssr.api.srf.meteo.v2.client.Geolocation #field -geolocation PERSISTENT #fieldModifier -forcastPointWeek ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek #field -forcastPointWeek PERSISTENT #fieldModifier diff --git a/srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Location.ivyClass b/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Location.ivyClass similarity index 74% rename from srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Location.ivyClass rename to srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Location.ivyClass index c49e9d2..f49fcd1 100644 --- a/srf-weather-connector-demo/dataclasses/com/axonivy/connector/srf/weather/connector/demo/Location.ivyClass +++ b/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/Location.ivyClass @@ -1,5 +1,5 @@ Location #class -com.axonivy.connector.srf.weather.connector.demo #namespace +com.axonivy.connector.srf.weather.connector #namespace zip Number #field zip PERSISTENT #fieldModifier geolocationId String #field diff --git a/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/srfWeatherForecastData.ivyClass b/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/srfWeatherForecastData.ivyClass new file mode 100644 index 0000000..f692568 --- /dev/null +++ b/srf-weather-connector/dataclasses/com/axonivy/connector/srf/weather/connector/srfWeatherForecastData.ivyClass @@ -0,0 +1,10 @@ +srfWeatherForecastData #class +com.axonivy.connector.srf.weather.connector #namespace +geolocation ch.srgssr.api.srf.meteo.v2.client.GeolocationNamesSearch #field +geolocation PERSISTENT #fieldModifier +forcastPointWeek ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek #field +forcastPointWeek PERSISTENT #fieldModifier +day ch.srgssr.api.srf.meteo.v2.client.DayForecastInterval #field +day PERSISTENT #fieldModifier +location com.axonivy.connector.srf.weather.connector.Location #field +location PERSISTENT #fieldModifier diff --git a/srf-weather-connector/pom.xml b/srf-weather-connector/pom.xml index d54d9bb..097f9e6 100644 --- a/srf-weather-connector/pom.xml +++ b/srf-weather-connector/pom.xml @@ -4,14 +4,14 @@ 4.0.0com.axonivy.connector.srf.weathersrf-weather-connector - 11.1.0-SNAPSHOT + 10.0.0-SNAPSHOTiar com.axonivy.ivy.ci project-build-plugin - 11.1.0 + 10.0.6 true diff --git a/srf-weather-connector/processes/srfWeatherForecast.p.json b/srf-weather-connector/processes/srfWeatherForecast.p.json new file mode 100644 index 0000000..2c62877 --- /dev/null +++ b/srf-weather-connector/processes/srfWeatherForecast.p.json @@ -0,0 +1,112 @@ +{ + "format" : "10.0.0", + "id" : "18A074A7BF4A40CC", + "kind" : "CALLABLE_SUB", + "config" : { + "data" : "com.axonivy.connector.srf.weather.connector.srfWeatherForecastData" + }, + "elements" : [ { + "id" : "f0", + "type" : "CallSubStart", + "name" : "call(Number,String)", + "config" : { + "callSignature" : "call", + "input" : { + "params" : [ + { "name" : "zip", "type" : "Number" }, + { "name" : "locationName", "type" : "String" } + ], + "map" : { + "out.location.locationName" : "param.locationName", + "out.location.zip" : "param.zip" + } + }, + "result" : { + "params" : [ + { "name" : "srfWeatherForecastData", "type" : "com.axonivy.connector.srf.weather.connector.srfWeatherForecastData" } + ], + "map" : { + "result.srfWeatherForecastData" : "in" + } + }, + "tags" : "connector" + }, + "visual" : { + "at" : { "x" : 96, "y" : 64 } + }, + "connect" : { "id" : "f4", "to" : "f3" } + }, { + "id" : "f1", + "type" : "CallSubEnd", + "visual" : { + "at" : { "x" : 584, "y" : 64 } + } + }, { + "id" : "f3", + "type" : "RestClientCall", + "name" : "getGeolocation", + "config" : { + "path" : "/geolocationNames", + "headers" : { + "Accept" : "*/*", + "Authorization" : "ivy.var.myBearerToken" + }, + "clientId" : "abb4be9f-e610-498b-84db-a60dddc472ba", + "clientErrorCode" : "ivy:error:rest:client", + "queryParams" : { + "limit" : "", + "name" : "in.location.locationName", + "zip" : "in.location.zip" + }, + "statusErrorCode" : "ivy:error:rest:client", + "resultType" : "com.fasterxml.jackson.databind.JsonNode", + "responseCode" : [ + "import ch.srgssr.api.srf.meteo.v2.client.GeolocationNamesSearch;", + "import com.fasterxml.jackson.databind.node.ObjectNode;", + "import com.fasterxml.jackson.databind.node.ObjectNode;", + "import com.fasterxml.jackson.databind.JsonNode;", + "import com.fasterxml.jackson.databind.node.ArrayNode;", + "", + "ArrayNode arrayNode = result as ArrayNode;", + "JsonNode firstNode = arrayNode.get(0);", + "", + "ObjectNode objectNode = firstNode as ObjectNode;", + "", + "in.location.locationName = objectNode.get(\"description_short\").asText();", + "", + "ObjectNode geoNode = objectNode.get(\"geolocation\") as ObjectNode;", + "in.location.geolocationId = geoNode.get(\"id\").asText();" + ] + }, + "visual" : { + "at" : { "x" : 232, "y" : 64 } + }, + "connect" : { "id" : "f6", "to" : "f5" } + }, { + "id" : "f5", + "type" : "RestClientCall", + "name" : "getForecastPointWeekly", + "config" : { + "path" : "/forecastpoint/{geolocationId}", + "headers" : { + "Accept" : "*/*", + "Authorization" : "ivy.var.myBearerToken" + }, + "clientId" : "abb4be9f-e610-498b-84db-a60dddc472ba", + "clientErrorCode" : "ivy:error:rest:client", + "statusErrorCode" : "ivy:error:rest:client", + "templateParams" : { + "geolocationId" : "in.location.geolocationId" + }, + "resultType" : "ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek", + "responseCode" : [ + "in.forcastPointWeek = result;", + "in.day = result.days.get(0);" + ] + }, + "visual" : { + "at" : { "x" : 416, "y" : 64 } + }, + "connect" : { "id" : "f2", "to" : "f1" } + } ] +} \ No newline at end of file diff --git a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.rddescriptor b/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.rddescriptor deleted file mode 100644 index ae605f0..0000000 --- a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.rddescriptor +++ /dev/null @@ -1,7 +0,0 @@ - - - - viewTechnology - JSF - - diff --git a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.xhtml b/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.xhtml deleted file mode 100644 index 7693dc1..0000000 --- a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherForm.xhtml +++ /dev/null @@ -1,93 +0,0 @@ - - - - checkWeatherForm - - -

- This is an - Html Dialog - implemented with JSF and Primefaces as widget library -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
- -
-
-
- - \ No newline at end of file diff --git a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormData.ivyClass b/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormData.ivyClass deleted file mode 100644 index 39bd75b..0000000 --- a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormData.ivyClass +++ /dev/null @@ -1,6 +0,0 @@ -checkWeatherFormData #class -com.axonivy.connector.srf.weather.connector.checkWeatherForm #namespace -forcastPointWeek ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek #field -forcastPointWeek PERSISTENT #fieldModifier -geolocation ch.srgssr.api.srf.meteo.v2.client.Geolocation #field -geolocation PERSISTENT #fieldModifier diff --git a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormProcess.p.json b/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormProcess.p.json deleted file mode 100644 index c9afcd8..0000000 --- a/srf-weather-connector/src_hd/com/axonivy/connector/srf/weather/connector/checkWeatherForm/checkWeatherFormProcess.p.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "$schema" : "https://json-schema.axonivy.com/process/11.1.26/process.json", - "id" : "189D415155C26879", - "kind" : "HTML_DIALOG", - "config" : { - "data" : "com.axonivy.connector.srf.weather.connector.checkWeatherForm.checkWeatherFormData" - }, - "elements" : [ { - "id" : "f0", - "type" : "HtmlDialogStart", - "name" : "start(ForecastPointWeek,Geolocation)", - "config" : { - "signature" : "start", - "input" : { - "params" : [ - { "name" : "forcastPointWeek", "type" : "ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek", "desc" : "" }, - { "name" : "geolocation", "type" : "ch.srgssr.api.srf.meteo.v2.client.Geolocation", "desc" : "" } - ], - "map" : { - "out.forcastPointWeek" : "param.forcastPointWeek", - "out.geolocation" : "param.geolocation" - } - }, - "result" : { - "params" : [ - { "name" : "forcastPointWeek", "type" : "ch.srgssr.api.srf.meteo.v2.client.ForecastPointWeek", "desc" : "" }, - { "name" : "geolocation", "type" : "ch.srgssr.api.srf.meteo.v2.client.Geolocation", "desc" : "" } - ], - "map" : { - "result.forcastPointWeek" : "in.forcastPointWeek", - "result.geolocation" : "in.geolocation" - } - }, - "guid" : "189D415155D14002" - }, - "visual" : { - "at" : { "x" : 96, "y" : 64 } - }, - "connect" : [ - { "id" : "f2", "to" : "f1" } - ] - }, { - "id" : "f1", - "type" : "HtmlDialogEnd", - "visual" : { - "at" : { "x" : 224, "y" : 64 } - } - }, { - "id" : "f3", - "type" : "HtmlDialogEventStart", - "name" : "close", - "config" : { - "guid" : "189D415155F57E9A" - }, - "visual" : { - "at" : { "x" : 96, "y" : 160 } - }, - "connect" : [ - { "id" : "f5", "to" : "f4" } - ] - }, { - "id" : "f4", - "type" : "HtmlDialogExit", - "visual" : { - "at" : { "x" : 224, "y" : 160 } - } - } ] -} \ No newline at end of file