Anwendungsbeispiel JsonMod / Covid / 7-Tage-Inzidenz

Begonnen von herrmannj, 24 August 2020, 18:44:17

Vorheriges Thema - Nächstes Thema

Kitt

Hallo,

Internals:
   API_LAST_RES 1606859760.19644
   API__LAST_MSG 200
   CFGFN     
   DEF        https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=last_update,cases7_per_100k,BEZ,BEM,GEN,BL,county&returnGeometry=false&outSR=4326&f=json
   FUUID      5fc016b4-f33f-52ef-2557-103da557e3e6559a
   NAME       Corona
   NEXT       2020-12-01 22:58:00
   NOTIFYDEV  global
   NR         104
   NTFY_ORDER 50-Corona
   SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=last_update,cases7_per_100k,BEZ,BEM,GEN,BL,county&returnGeometry=false&outSR=4326&f=json (200)
   STATE      ???
   SVN        21711 2020-04-17 23:29:22 UTC
   TYPE       JsonMod
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=last_update,cases7_per_100k,BEZ,BEM,GEN,BL,county&returnGeometry=false&outSR=4326&f=json
     SECRET:
   READINGS:
Attributes:
   interval   */2 * * * *
   readingList multi(jsonPath("\$.features[?(\@.attributes.GEN in ['Hamburg'])]"), property('attributes.GEN'), sprintf('%.1f', property('attributes.cases7_per_100k')));
   room       Draußen


In meinem Logfile steht folgende Meldung:
2020.12.01 00:02:00 2: [Corona] error while evaluating readingList: Can't use string ("70328736.0") as a subroutine ref while "strict refs" in use at ./FHEM/98_JsonMod.pm line 503.

Danke und LG

herrmannj

Mach mal ein update. Dein JsonMod ist ur-ur-ur Alt.

Kitt

hab ich gerade mal über den Befehl "update" gemacht.
Hab leider weiterhin das gleiche Problem...?

herrmannj

ist das eine Frage? Wenn ja welche und bitte ein list des Devices nach Deinem Update

Kitt

hier nochmal das list:

Internals:
   API_LAST_RES 1606940760.59111
   API__LAST_MSG 200
   DEF        https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=last_update,cases7_per_100k,BEZ,BEM,GEN,BL,county&returnGeometry=false&outSR=4326&f=json
   FUUID      5fc016b4-f33f-52ef-2557-103da557e3e6559a
   NAME       Corona
   NEXT       2020-12-02 21:28:00
   NOTIFYDEV  global
   NR         78
   NTFY_ORDER 50-Corona
   SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=last_update,cases7_per_100k,BEZ,BEM,GEN,BL,county&returnGeometry=false&outSR=4326&f=json (200)
   STATE      ???
   SVN        21711 2020-04-17 23:29:22 UTC
   TYPE       JsonMod
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=last_update,cases7_per_100k,BEZ,BEM,GEN,BL,county&returnGeometry=false&outSR=4326&f=json
     SECRET:
   READINGS:
Attributes:
   interval   */2 * * * *
   readingList multi(jsonPath("\$.features[?(\@.attributes.GEN in ['Hamburg'])]"), property('attributes.GEN'), sprintf('%.1f', property('attributes.cases7_per_100k')));
   room       Draußen

herrmannj

ist die gleiche uralt Version wie gestern... Neustart gemacht? Wenn ja ist Dein Update schief gegangen.


Kitt


Kitt

#37
Hallo nochmal,

hab endlich das Problem mit der alten Version gelöst (die Rechte waren falsch vergeben).

Jetzt funktioniert es endlich!

Danke für die Hilfe und noch schöne Feiertage
LG

Ainadilion

Hallo, die Übersicht zur Anzahl der Landkreise mit den jeweiligen Inzidenzen funktioniert sehr gut. Wie bekomme ich userReadings hin mit der Ausgabe der Werte der drei höchsten Inzidenzen der jeweiligen Landkreise und die drei geringsten Werte mit Ausgabe der Landkreise hin?
Gruß
Ainadilion

TWART016

Ich frage die Werte jede Stunde ab. Der Readingstimestamp ändert sich bei jeder Abfrage, auch wenn sich der ReadingsVal nicht ändert. Kann das beeinflusst werden?

Zudem ist der OldreadingsVal leer. Wenn Daten sich ändern, ist der Wert korrekt.

defmod coronaSpreadCounties JsonMod https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=death_rate,cases,deaths,cases_per_100k,cases_per_population,cases7_per_100k,BL,BL_ID,county,OBJECTID&returnGeometry=false&outSR=4326&f=json
attr coronaSpreadCounties event-on-change-reading .*
attr coronaSpreadCounties interval 0 */1 * * *
attr coronaSpreadCounties oldreadings .*_cases7_per_100k
attr coronaSpreadCounties readingList multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['183', '181', '179', '184', '186', '187', '188'])]"), concat(property('attributes.OBJECTID'),'_name'), property('attributes.county'));;\
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['183', '181', '179', '184', '186', '187', '188'])]"), concat(property('attributes.OBJECTID'),'_cases'), property('attributes.cases'));;\
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['183', '181', '179', '184', '186', '187', '188'])]"), concat(property('attributes.OBJECTID'),'_deaths'), property('attributes.deaths'));;\
multi(jsonPath("\$.features[?(\@.attributes.OBJECTID in ['183', '181', '179', '184', '186', '187', '188'])]"), concat(property('attributes.OBJECTID'),'_cases7_per_100k'), property('attributes.cases7_per_100k'));;
attr coronaSpreadCounties update-on-start 1

rudolfkoenig

ZitatDer Readingstimestamp ändert sich bei jeder Abfrage, auch wenn sich der ReadingsVal nicht ändert. Kann das beeinflusst werden?
Vermutlich ja, mit dem event-on-change-reading Attribut.

ZitatZudem ist der OldreadingsVal leer.
Vermutlich ist das oldreadings Attribut nicht gesetzt.

TWART016

Zitat von: rudolfkoenig am 12 April 2021, 08:56:29
Vermutlich ja, mit dem event-on-change-reading Attribut.
event-on-change-reading .* ist gesetzt: Im Filelog wird das richtig geschrieben, nur die Änderungen. In den Readings steht bei jedem Interval die Uhrzeit, auch wenn sich nichts ändert.

Zitat von: rudolfkoenig am 12 April 2021, 08:56:29
Vermutlich ist das oldreadings Attribut nicht gesetzt.
attr coronaSpreadCounties oldreadings .*_cases7_per_100k

ist gesetzt und funktioniert grundsätzlich auch. Manchmal ist der Wert dennoch leer und dann kann die Abarbeitung in einem Userreading nicht gemacht werden.

OdfFhem

Bei vereinzelten Devices nutze ich timestamp-on-change-reading; das Wiki sagt dazu:
Zitat
Ist nur event-on-change-reading für ein Reading spezifiziert, entfällt zunächst einmal nur der Trigger, der Zeitstempel wird weiter aktualisiert. Benötigt man jedoch den Zeitstempel der letzten Änderung (z.B. die Ein- oder Ausschaltzeit eines Relais), kann man mithilfe von timestamp-on-change-reading auch die Aktualisierung des Zeitstempels unterbinden, falls der Wert sich nicht geändert hat.

Damian

Falls jemand die Inzidenz seiner Region visualisieren möchte:

defmod di_corona DOIF ##
attr di_corona uiTable {package ui_Table}\
card([RKI7:Duren:col],"Düren","coronavirus",0,200,120,0,"Fälle")|\
card([RKI7:Heinsberg:col],"Heinsberg","coronavirus",0,200,120,0,"Fälle")|\
card([RKI7:Stadteregion_Aachen:col],"Aachen","coronavirus",0,200,120,0,"Fälle")


PS. Die Definition ist ganz frisch, daher sieht man noch keinen Verlauf
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

raiderxxl

Super Sache das...

kann mir jemand eventuell bei den Impfzahlen für BW helfen?

https://rki-vaccination-data.vercel.app/api

Ist das überhaupt json was da zurückkommt?

Grüßle

Pascal
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....