Anwendungsbeispiel JsonMod / Covid / 7-Tage-Inzidenz

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

Vorheriges Thema - Nächstes Thema

jkriegl

#45
Ja, ist JSON
Muster

Edit: Muster gelöscht, da HTTPMOD - hat hier nichts zu suchen. Sorry
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

raiderxxl

Supi Danke Perfekt ... werde heute Abend mal für BW anpassen :-)

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....

raiderxxl

Hmpff und was mach ich wenn im Namen ein Sonderzeichen ist?

attr Impfen reading01JSON states_Baden-W\u00fcrttemberg_quote

Hau ich das in extra Klammern oder Anführungszeichen?

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....

yersinia

Lustig den JsonMod Thread für eine HTTPMOD-Lösung zu kapern. ;) Aber, zugegebenermaßen, die Strukur der Json-Quelle ist nicht gerade die Beste - Umlaute in den Attributen, wtf?

Anbei ein Vorschlag für JsonMod für BaWü:
defmod coronaVaxRKI JsonMod https://rki-vaccination-data.vercel.app/api
attr coronaVaxRKI interval 0 */3 * * *
attr coronaVaxRKI readingList single(jsonPath('$.states.Baden-Württemberg.total'), 'BW_total', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.vaccinated'), 'BW_vaccinated_1st_dose', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.vaccinated_by_accine.biontech'), 'BW_vaccinated_1st_dose_nr_biontech', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.vaccinated_by_accine.moderna'), 'BW_vaccinated_1st_dose_nr_moderna', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.vaccinated_by_accine.astrazeneca'), 'BW_vaccinated_1st_dose_nr_astrazeneca', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.difference_to_the_previous_day'), 'BW_vaccination_1st_dose_diff_to_the_previous_day', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.vaccinations_per_1000_inhabitants'), 'BW_vaccinations_per_1000_inhabitants', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.quote'), 'BW_vaccination_1st_dose_quote', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.2nd_vaccination.vaccinated'), 'BW_vaccinated_2nd_dose', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.2nd_vaccination.vaccinated_by_accine.biontech'), 'BW_vaccinated_2nd_dose_nr_biontech', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.2nd_vaccination.vaccinated_by_accine.moderna'), 'BW_vaccinated_2nd_dose_nr_moderna', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.2nd_vaccination.vaccinated_by_accine.astrazeneca'), 'BW_vaccinated_2nd_dose_nr_astrazeneca', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.2nd_vaccination.difference_to_the_previous_day'), 'BW_vaccination_2nd_dose_diff_to_the_previous_day', '-?-');;\
single(jsonPath('$.states.Baden-Württemberg.2nd_vaccination.quote'), 'BW_vaccination_2nd_dose_quote', '-?-');;\
single(jsonPath('$.sum_vaccine_doses'), 'sum_vaccine_doses', '-?-');;\
single(jsonPath('$.total'), 'total', '-?-');;\
single(jsonPath('$.vaccinated'), 'vaccinated', '-?-');;\
single(jsonPath('$.vaccinations_per_1000_inhabitants'), 'vaccinations_per_1000_inhabitants', '-?-');;\
single(jsonPath('$.lastUpdate'), 'lastUpdate', '-?-');;
attr coronaVaxRKI update-on-start 0
attr coronaVaxRKI webCmd reread

Die Daten werden alle 3 Stunden aktualisiert.
viele Grüße, yersinia
----
FHEM 6.3 (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

raiderxxl

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....

sylvester

Hallo,

ich habe jetzt schon eine Weile im Netz gesucht ...  habe ich irgendwo die Möglichkeit, auch die Inzidenzwerte für die vergangenen Tage zu bekommen?

Hier gibt es zwar ein schönes Diagramm dazu: https://www.corona-in-zahlen.de . Dort kann ich auch meinen Wohnort auswählen, aber ich komme nicht an die Rohdaten :( .

Viele Grüße

Stephan

raiderxxl

Hi,
ich schreibe meine Inzidenzen in ne Datenbank und kann dann mit Grafana die letzten Tage schön darstellen...

Du hast ja die Aktuellen Zahlen wieso logst du sie nicht? :-)

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....

sylvester

Ja, die aktuellen Zahlen habe ich. Ich wollte nur gerne die alten noch ergänzen .... die werden auf der oben genannten Homepage auch angezeigt, aber ich will die jetzt nicht abschreiben ... runterladen wäre schön ;) vielleicht hat wer eine Quelle ...

raiderxxl

Ja wenn du die aktuellen hast log diese in einem file.log dann hast du "ältere Daten " und kannst diese auch anzeigen...
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....

khk123

Hier mal meine Definitionen für Inzidenzwerte aktuell und Vortag sowie Todesfaelle. Die Daten werden nur einmal am Tag um 08:05 Uhr geholt und geloggt.


defmod coronaRM JsonMod https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=1%3D1&outFields=GEN,cases,deaths,last_update,cases7_per_100k,recovered,cases_per_100k,death_rate,cases_per_population,EWZ_BL,cases7_bl_per_100k,cases7_bl,death7_bl,cases7_lk,death7_lk&returnGeometry=false&outSR=4326&f=json
attr coronaRM DbLogExclude .*
attr coronaRM DbLogInclude .*_Inzidenz,.*_Todesfaelle
attr coronaRM event-on-update-reading .*
attr coronaRM interval 5 8 * * *
attr coronaRM oldreadings Frankfurt_am_Main_Inzidenz,Offenbach_Inzidenz,Offenbach_am_Main_Inzidenz
attr coronaRM readingList multi(jsonPath("\$.features[?(\@.attributes.GEN in ['Frankfurt am Main', 'Offenbach am Main','Offenbach'])]"), concat(property('attributes.GEN'),'_Faelle'), property('attributes.cases'));;\
multi(jsonPath("\$.features[?(\@.attributes.GEN in ['Frankfurt am Main', 'Offenbach am Main','Offenbach'])]"), concat(property('attributes.GEN'),'_Todesfaelle'), property('attributes.deaths'));;\
multi(jsonPath("\$.features[?(\@.attributes.GEN in ['Frankfurt am Main', 'Offenbach am Main','Offenbach'])]"), concat(property('attributes.GEN'),'_Inzidenz'), propertyf('attributes.cases7_per_100k','', '%.02f'));;\
multi(jsonPath("\$.features[?(\@.attributes.GEN in ['Frankfurt am Main', 'Offenbach am Main','Offenbach'])]"), concat(property('attributes.GEN'),'_Aktualisierung'), property('attributes.last_update'))
attr coronaRM room Corona
attr coronaRM stateFormat {strftime("%d-%m-%Y %H:%M:%S",localtime(time_str2num(ReadingsTimestamp($name,".computedReadings",""))))}
attr coronaRM userReadings Frankfurt_am_Main_Inzidenz_alt {OldReadingsVal($name, "Frankfurt_am_Main_Inzidenz", ReadingsVal($name, "Frankfurt_am_Main_Inzidenz", 0))},\
Offenbach_Inzidenz_alt {OldReadingsVal($name, "Offenbach_Inzidenz", ReadingsVal($name, "Offenbach_Inzidenz", 0))},\
Offenbach_am_Main_Inzidenz_alt {OldReadingsVal($name, "Offenbach_am_Main_Inzidenz", ReadingsVal($name, "Offenbach_am_Main_Inzidenz", 0))}
attr coronaRM verbose 0


VG
Karlheinz
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

Wolle02

Wie müsste ich das intervall Attribut eigentlich setzen, dass gar nicht aktualisiert wird, sondern immer manuell ein reread gemacht werden müsste? Wenn ich die CommandRef richtig verstanden habe wird jede Stunde neu eingelesen, wenn ich das Intervall Attribut gar nicht setze.

herrmannj

so was ist nicht vorgesehen. Setz doch mal auf 29.Februar, ist fast "nie" :D

yersinia

Zitat von: herrmannj am 27 April 2021, 19:25:30so was ist nicht vorgesehen.
Apropos nicht vorgesehen:
Zitat von: Wolle02 am 27 April 2021, 19:15:15Wie müsste ich das intervall Attribut eigentlich setzen, dass gar nicht aktualisiert wird, sondern immer manuell ein reread gemacht werden müsste?
Gar nicht. Du setzt Attribut disable auf 1 und führst das reread manuell aus (pro-tipp: setze Attribut webCmd auf reread). 8)
viele Grüße, yersinia
----
FHEM 6.3 (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

majorshark

Mal eine Frage am Rande.
Weiß einer wo man die Inzidenzwerte der letzten 1,5 Jahre als *.csv oder ähnlichen her bekommt?
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

sylvester

Hallo,

das war ja auch meine Frage ... Siehe #52

Die Werte seit November sind beim RKI in Excel zu finden: https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Fallzahlen.html

Die Werte davor habe ich noch nicht gefunden ...

Viele Grüße