Autor Thema: Anwendungsbeispiel JsonMod #2: CORONA Verbreitung  (Gelesen 27687 mal)

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #180 am: 10 August 2021, 19:30:49 »
Hallo zusammen,

mir fehlt bei meiner Corona Auswertung per Json neuerdings die Cases?
Hat jemand eine Idee
Internals:
   API_LAST_MSG 200
   API_LAST_RES 1628616152.85657
   DEF        https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json
   FUUID      5f975018-f33f-3c55-b947-2d72a37160719a57
   NAME       coronaSpreadCounties
   NEXT       2021-08-10 21:10:00
   NR         220
   SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json (200)
   STATE      active
   SVN        24420 2021-05-11 21:25:20 UTC
   TYPE       JsonMod
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json
     SECRET:
   OLDREADINGS:
   READINGS:
     2021-08-10 19:22:32   Cases7_per_100k 46.8
     2021-08-10 19:22:32   Cases_per_100k  4247
     2021-08-10 19:22:32   Death           440
     2021-08-10 19:22:32   Name            SK Düsseldorf
     2021-08-10 19:22:32   Updated         10.08.2021, 00:00 Uhr
Attributes:
   interval   10 */3 * * *
   readingList multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Name', property('attributes.county')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases', sprintf('%.0d',property('attributes.cases')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Death', sprintf('%.0d',property('attributes.deaths')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases_per_100k',sprintf('%.0f', property('attributes.cases_per_100k')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases7_per_100k',sprintf('%.1f', property('attributes.cases7_per_100k')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Updated', property('attributes.last_update'))
   update-on-start 1
   verbose    0
Gruß
Roman

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1299
    • Cyanide & Happiness
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #181 am: 11 August 2021, 09:27:55 »
Ja, ich hab ein ähnliches Problem - ist aber eine andere Quelle vom RKI.

In deiner Quelle kommen die Werte aber vor:
{"attributes":{"cases":26490,"deaths":440,"cases_per_100k":4259.68479297353,"cases_per_population":4.25968479297353,"cases7_per_100k":50.9747104330921,"BL":"Nordrhein-Westfalen","BL_ID":"5","county":"SK Düsseldorf","OBJECTID":64,"last_update":"11.08.2021, 00:00 Uhr"}}Hast du mal ein reread initiiert?
viele Grüße, yersinia
----
FHEM 6.1 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #182 am: 12 August 2021, 08:45:54 »
Ja hatte ich versucht, aber irgendwie bekommt JsonMod das nicht geregelt.
Keiner einen Tip?
Gruß Roman

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1299
    • Cyanide & Happiness
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #183 am: 12 August 2021, 09:11:44 »
Keine Probleme festzustellen wenn ich dies nachstelle:
Internals:
   API_LAST_MSG 200
   API_LAST_RES 1628751812.64973
   CFGFN     
   DEF        https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json
   FUUID      6114c799-f33f-3151-2ed7-5fd81075ae9182de
   NAME       testJM
   NEXT       2021-08-12 10:00:00
   NR         41361
   SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json (200)
   STATE      ???
   SVN        24783 2021-07-21 22:37:12 UTC
   TYPE       JsonMod
   .attraggr:
   .attrminint:
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json
     SECRET:
   READINGS:
     2021-08-12 09:03:32   .computedReadings Cases7_per_100k,Name,Death,Updated,Cases_per_100k
     2021-08-12 09:03:32   Cases7_per_100k 58.2
     2021-08-12 09:03:32   Cases_per_100k  4274
     2021-08-12 09:03:32   Death           440
     2021-08-12 09:03:32   Name            SK Düsseldorf
     2021-08-12 09:03:32   Updated         12.08.2021, 00:00 Uhr
Attributes:
   readingList multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Name', property('attributes.county')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases', sprintf('%.0d',property('attributes.cases')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Death', sprintf('%.0d',property('attributes.deaths')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases_per_100k',sprintf('%.0f', property('attributes.cases_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases7_per_100k',sprintf('%.1f', property('attributes.cases7_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Updated', property('attributes.last_update'));

Aber zwei Sachen, dir mir aufgefallen sind:
1. deine JsonMod Version ist nicht die aktuellste; deine:
SVN        24420 2021-05-11 21:25:20 UTCversus die aktuelle aus dem SVN:
SVN        24783 2021-07-21 22:37:12 UTC
2. in deinem ReadingsList fehlen abschließende Semikolon; dein readingsList:
   readingList multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Name', property('attributes.county')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases', sprintf('%.0d',property('attributes.cases')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Death', sprintf('%.0d',property('attributes.deaths')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases_per_100k',sprintf('%.0f', property('attributes.cases_per_100k')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases7_per_100k',sprintf('%.1f', property('attributes.cases7_per_100k')))
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Updated', property('attributes.last_update'))
versus
   readingList multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Name', property('attributes.county')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases', sprintf('%.0d',property('attributes.cases')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Death', sprintf('%.0d',property('attributes.deaths')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases_per_100k',sprintf('%.0f', property('attributes.cases_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Cases7_per_100k',sprintf('%.1f', property('attributes.cases7_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"), 'Updated', property('attributes.last_update'));

Ich empfehle dir, readingsList zu korrigieren und ein Update zu machen. Und danach ein reread und dann schauen wir weiter.
viele Grüße, yersinia
----
FHEM 6.1 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #184 am: 12 August 2021, 16:16:53 »
So, alles durchgeführt. Das Problem besteht weiterhin. Jemadn eine Idee?

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1299
    • Cyanide & Happiness
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #185 am: 12 August 2021, 16:19:14 »
So, alles durchgeführt.
Ok, dann bitte ein neues List des Devices.
viele Grüße, yersinia
----
FHEM 6.1 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #186 am: 12 August 2021, 16:26:11 »
Hallo yersinia,
die Lösung ist sehr simple. Die Reihenfolge des Ergebnis der Abfrage (cases,deaths,cases_per_100k,cases...) muss mit der Reihenfolge der JsonMod Defination übereinstimmen. Dann gehts. Manchmal brauchts den Anstoss von anderen.
Danke und Gruß
Roman

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #187 am: 12 August 2021, 16:30:47 »
Zu früh gefreut, jetzt fehlt der wert für das Update:
Internals:
   API_LAST_MSG 200
   API_LAST_RES 1628778513.72146
   DEF        https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json
   FUUID      5f975018-f33f-3c55-b947-2d72a37160719a57
   NAME       coronaSpreadCounties
   NEXT       2021-08-12 18:10:00
   NR         220
   SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json (200)
   STATE      active
   SVN        24783 2021-07-21 22:37:12 UTC
   TYPE       JsonMod
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID='64'&outFields=cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID,last_update&returnGeometry=false&outSR=4326&f=json
     SECRET:
   OLDREADINGS:
   READINGS:
     2021-08-12 16:28:33   Cases           26578
     2021-08-12 16:28:33   Cases7_per_100k 58.2
     2021-08-12 16:28:33   Cases_per_100k  4274
     2021-08-12 16:28:33   Death           440
     2021-08-12 16:28:33   Name            SK Düsseldorf
Attributes:
   event-on-change-reading Updated,Cases7_per_100k,Cases
   interval   10 */6 * * *
   readingList multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Cases',sprintf('%d',property('attributes.cases')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Death',sprintf('%d',property('attributes.deaths')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Cases_per_100k',sprintf('%.0f',property('attributes.cases_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Cases7_per_100k',sprintf('%.1f',property('attributes.cases7_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Name',property('attributes.county')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Updated',property('attributes.last_update')));
   update-on-start 1
   verbose    0

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1299
    • Cyanide & Happiness
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #188 am: 12 August 2021, 16:42:32 »
die Lösung ist sehr simple. Die Reihenfolge des Ergebnis der Abfrage (cases,deaths,cases_per_100k,cases...) muss mit der Reihenfolge der JsonMod Defination übereinstimmen. Dann gehts.
Ich glaube nicht, dass das beabsichtigt ist - ich vermute hier eher ein Bug. Aber wenn es in der richtigen Reihenfolge funktioniert, alles gut.

Zu früh gefreut, jetzt fehlt der wert für das Update:
Wenn du verbose nicht auf 0 hättest, würdest du sehen, dass das Device ein Fehler wirft.
2021.08.12 16:34:40 2: [testJM] syntax error in readingList statement: ')'Du hast in deinem Code eine schließende Klammer zuviel bei Name:
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Name',property('attributes.county')));
Richtig sollte es so aussehen:
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Cases', sprintf('%d',property('attributes.cases')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Death', sprintf('%d',property('attributes.deaths')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Cases_per_100k', sprintf('%.0f',property('attributes.cases_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Cases7_per_100k', sprintf('%.1f',property('attributes.cases7_per_100k')));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Name', property('attributes.county'));
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['64'])]"),'Updated', property('attributes.last_update'));
viele Grüße, yersinia
----
FHEM 6.1 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline romakrau

  • Full Member
  • ***
  • Beiträge: 223
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #189 am: 12 August 2021, 16:56:35 »
Danke für die Hilfe. Jetzt klappt's.
Gruß
Roman

Offline curt

  • Hero Member
  • *****
  • Beiträge: 1370
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #190 am: 29 September 2021, 03:47:57 »
Wo und wie bekomme ich die 7-Tage-Inzidenz von Deutschland her? Hat das jemand integriert?

Ich habe mein Bundesland, zwei Landkreise, das funktioniert fein. Das zeige ich auch in FTUI an. Aber Deutschland selbst fehlt mir.
RPI 4 - Jeelink HomeMatic Z-Wave

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1299
    • Cyanide & Happiness
viele Grüße, yersinia
----
FHEM 6.1 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline curt

  • Hero Member
  • *****
  • Beiträge: 1370
Antw:Anwendungsbeispiel JsonMod #2: CORONA Verbreitung
« Antwort #192 am: 29 September 2021, 08:46:44 »
Hallo @yersinia

ich hatte Deine freundlichen Hinweise zu schnell gelesen und war zudem gedanklich auf dem falschen Boot.

Herzlichen Dank!
« Letzte Änderung: 01 Oktober 2021, 04:33:43 von curt »
RPI 4 - Jeelink HomeMatic Z-Wave

 

decade-submarginal