Anwendungsbeispiel JsonMod #2: CORONA Verbreitung

Begonnen von herrmannj, 22 März 2020, 21:11:18

Vorheriges Thema - Nächstes Thema

Andy89

Ja :)
Userreadings fallen doch eigentlich in die gleiche Kategorie, wie das Problem mit den Vortageszahlen jetzt, oder nicht?


Gesendet von iPhone mit Tapatalk
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

herrmannj

ich steh gerade auf dem Schlauch. Loggen, notify usw: einfach regex anlegen und dann passt das. Übersehe ich was?

herrmannj

Umlaute erledigt. Das hatte noch einen Rattenschwanz weil die automatisch erzeugten reading namen auf der einen Seite den fhem rules entsprehcen müsen (a-zA_Z0-9 usw), im JSON aber auch Hindu sein kann. Aus "Baden-Württemberg" wird daher "Baden-Wurttemberg", das RKI Beispiel ist damit komplett in Ordnung.

herrmannj

Zitat von: Jamo am 25 März 2020, 11:39:11
Hallo Hermann,
danke für das klasse Modul. Ich habe mir damit sofort eine eigene Tabelle eingerichtet,
mir ist aber aufgefallen, das angelegte eigene readings mit jedem Lauf wieder gelöscht werden. Ich wollte mir eingene readings anlegen, wo ich mir die 'neuen' Coronafälle für gestern und vorgestern in einem Reading merke.
Aber es wird alles gelöscht und wieder neu angelegt.
Kann man evtl auch nur die vom Modul erzeugten Readings neu anlegen?

Danke, und bleib gesund!
Done, rev 21517. UserReadings sollten damit ab jetzt bestehen bleiben. Bitte testen und berichten.

TWART016

Gibt es eine Möglichkeit herauszufinden von wann die Daten sind, also der Zeitstempel der Daten?

herrmannj


Hauswart

Zitat von: herrmannj am 25 März 2020, 20:56:39
So, dann mal der Reihe nach ;)

RKI: ich weiß nicht was die rauchen um so 'n JSON zum machen. (Wobei es sehr gut ist, dass die die Daten bereitstellen)
Der JSON ist gleich dreifach spannend, ein sehr guter TestCase. Fix im svn, ab morgen per update, rev 21515
[...]

Danke. Mein List nun so aus:



Internals: API_LAST_RES 1585208602.29452 API__LAST_MSG 200 DEF        https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronaf%C3%A4lle_in_den_Bundesl%C3%A4ndern/FeatureServer/0/query?where=1%3D1&outFields=LAN_ew_GEN,Fallzahl,Aktualisierung,faelle_100000_EW,Death&outSR=4326&f=json FUUID      5e7b0e56-f33f-9177-bee2-7cc8eb4143a27a56 NAME       corona NEXT       2020-03-26 09:00:00 NR         320 NTFY_ORDER 50-corona SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronaf%C3%A4lle_in_den_Bundesl%C3%A4ndern/FeatureServer/0/query?where=1%3D1&outFields=LAN_ew_GEN,Fallzahl,Aktualisierung,faelle_100000_EW,Death&outSR=4326&f=json (200) STATE      ??? SVN        21517 2020-03-25 23:14:35 UTC TYPE       JsonMod CONFIG: IN_REQUEST 0 SOURCE     https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronaf%C3%A4lle_in_den_Bundesl%C3%A4ndern/FeatureServer/0/query?where=1%3D1&outFields=LAN_ew_GEN,Fallzahl,Aktualisierung,faelle_100000_EW,Death&outSR=4326&f=json SECRET: OLDREADINGS: READINGS: 2020-03-26 08:43:50   Baden-Wurttemberg_aktualisierung 1585177200000 2020-03-26 08:43:50   Baden-Wurttemberg_death 56 2020-03-26 08:43:50   Baden-Wurttemberg_faelle_100000_EW 66.0683952582795 2020-03-26 08:43:50   Baden-Wurttemberg_fallzahl 7283 2020-03-26 08:43:50   Bayern_aktualisierung 1585177200000 2020-03-26 08:43:50   Bayern_death    47 2020-03-26 08:43:50   Bayern_faelle_100000_EW 61.4978421512812 2020-03-26 08:43:50   Bayern_fallzahl 7993 2020-03-26 08:43:50   Berlin_aktualisierung 1585177200000 2020-03-26 08:43:50   Berlin_death    4 2020-03-26 08:43:50   Berlin_faelle_100000_EW 45.8282078707733 2020-03-26 08:43:50   Berlin_fallzahl 1656 2020-03-26 08:43:50   Brandenburg_aktualisierung 1585177200000 2020-03-26 08:43:50   Brandenburg_death 1 2020-03-26 08:43:50   Brandenburg_faelle_100000_EW 19.0492164661906 2020-03-26 08:43:50   Brandenburg_fallzahl 477 2020-03-26 08:43:50   Bremen_aktualisierung 1585177200000 2020-03-26 08:43:50   Bremen_death    1 2020-03-26 08:43:50   Bremen_faelle_100000_EW 30.9823914294776 2020-03-26 08:43:50   Bremen_fallzahl 211 2020-03-26 08:43:50   Hamburg_aktualisierung 1585177200000 2020-03-26 08:43:50   Hamburg_death   0 2020-03-26 08:43:50   Hamburg_faelle_100000_EW 69.1036303168825 2020-03-26 08:43:50   Hamburg_fallzahl 1265 2020-03-26 08:43:50   Hessen_aktualisierung 1585177200000 2020-03-26 08:43:50   Hessen_death    6 2020-03-26 08:43:50   Hessen_faelle_100000_EW 34.5492468520463 2020-03-26 08:43:50   Hessen_fallzahl 2157 2020-03-26 08:43:50   Mecklenburg-Vorpommern_aktualisierung 1585177200000 2020-03-26 08:43:50   Mecklenburg-Vorpommern_death 0 2020-03-26 08:43:50   Mecklenburg-Vorpommern_faelle_100000_EW 15.1447534291384 2020-03-26 08:43:50   Mecklenburg-Vorpommern_fallzahl 244 2020-03-26 08:43:50   Niedersachsen_aktualisierung 1585177200000 2020-03-26 08:43:50   Niedersachsen_death 8 2020-03-26 08:43:50   Niedersachsen_faelle_100000_EW 29.4746492271852 2020-03-26 08:43:50   Niedersachsen_fallzahl 2347 2020-03-26 08:43:50   Nordrhein-Westfalen_aktualisierung 1585177200000 2020-03-26 08:43:50   Nordrhein-Westfalen_death 53 2020-03-26 08:43:50   Nordrhein-Westfalen_faelle_100000_EW 44.2381683835103 2020-03-26 08:43:50   Nordrhein-Westfalen_fallzahl 7924 2020-03-26 08:43:50   Rheinland-Pfalz_aktualisierung 1585177200000 2020-03-26 08:43:50   Rheinland-Pfalz_death 6 2020-03-26 08:43:50   Rheinland-Pfalz_faelle_100000_EW 44.5788683889919 2020-03-26 08:43:50   Rheinland-Pfalz_fallzahl 1816 2020-03-26 08:43:50   Saarland_aktualisierung 1585177200000 2020-03-26 08:43:50   Saarland_death  2 2020-03-26 08:43:50   Saarland_faelle_100000_EW 43.5531746039729 2020-03-26 08:43:50   Saarland_fallzahl 433 2020-03-26 08:43:50   Sachsen-Anhalt_aktualisierung 1585177200000 2020-03-26 08:43:50   Sachsen-Anhalt_death 1 2020-03-26 08:43:50   Sachsen-Anhalt_faelle_100000_EW 18.802733683568 2020-03-26 08:43:50   Sachsen-Anhalt_fallzahl 418 2020-03-26 08:43:50   Sachsen_aktualisierung 1585177200000 2020-03-26 08:43:50   Sachsen_death   7 2020-03-26 08:43:50   Sachsen_faelle_100000_EW 27.9567236778013 2020-03-26 08:43:50   Sachsen_fallzahl 1141 2020-03-26 08:43:50   Schleswig-Holstein_aktualisierung 1585177200000 2020-03-26 08:43:50   Schleswig-Holstein_death 3 2020-03-26 08:43:50   Schleswig-Holstein_faelle_100000_EW 23.3578481158522 2020-03-26 08:43:50   Schleswig-Holstein_fallzahl 675 2020-03-26 08:43:50   Thuringen_aktualisierung 1585177200000 2020-03-26 08:43:50   Thuringen_death 3 2020-03-26 08:43:50   Thuringen_faelle_100000_EW 21.7552488024154 2020-03-26 08:43:50   Thuringen_fallzahl 468 Attributes: readingList multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_fallzahl'), property('attributes.Fallzahl')); multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_aktualisierung'), property('attributes.Aktualisierung')); multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_faelle_100000_EW'), property('attributes.faelle_100000_EW')); multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_death'), property('attributes.Death'));
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

Andy89

Zitat von: herrmannj am 26 März 2020, 00:25:25
rki hat einen Zeitstempel drin.
danke es funktioniert nun =)


defmod coronaSpreadDe JsonMod https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronaf%C3%A4lle_in_den_Bundesl%C3%A4ndern/FeatureServer/0/query?where=1%3D1&outFields=LAN_ew_GEN,Fallzahl,Aktualisierung,faelle_100000_EW,Death&returnGeometry=false&outSR=4326&f=json
attr coronaSpreadDe interval */10 * * * *
attr coronaSpreadDe readingList multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_cases'), property('attributes.Fallzahl'));;\
multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_deaths'), property('attributes.Death'));;\
multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_lastUpdate'), property('attributes.Aktualisierung'));;\
multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_cp100k'), property('attributes.faelle_100000_EW'));;
attr coronaSpreadDe room Status
attr coronaSpreadDe stateFormat Nordrhein-Westfalen_Death
attr coronaSpreadDe userReadings updated_human {POSIX::strftime ("%d.%m.%Y %H:%M", localtime(ReadingsVal("coronaSpreadDe","Nordrhein-Westfalen_lastUpdate",0)/1000))}

ich habe ein userreading hinzugefügt, damit man den Timestamp auch lesen kann. Nachher muss ich mich noch kurz googlen, wie ich täglich um 5 nach 0 die Daten abrufe. Ich glaube, dass das RKI, die nur einmal am Tag bereitstellt.

Hier noch meine Welt Zahlen:
defmod coronaSpreadWorld JsonMod https://corona.lmao.ninja/all
attr coronaSpreadWorld event-on-change-reading .*
attr coronaSpreadWorld interval */10 * * * *
attr coronaSpreadWorld readingList single(jsonPathf('$.deaths', '%s'), 'world_deaths', 'N/A');;\
single(jsonPathf('$.cases', '%s'), 'world_cases', 'N/A');;\
single(jsonPathf('$.recovered', '%s'), 'world_recovered', 'N/A');;\
single(jsonPathf('$.updated', '%s'), 'world_updated', 'N/A');;
attr coronaSpreadWorld room Status
attr coronaSpreadWorld userReadings updated_human  {setlocale(LC_TIME,"de_DE.utf8");; POSIX::strftime ("%a %d.%m.%Y %H:%M", localtime(ReadingsVal("coronaSpreadWorld","world_updated",0)/1000))}

Diese Daten werden auf jeden Fall häufiger aktualisiert. Ich gaube alle 10 Minuten.

Danke für deine Bug Fixes  :) :) :)
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Jamo

ZitatDone, rev 21517. UserReadings sollten damit ab jetzt bestehen bleiben. Bitte testen und berichten.
Getested, ich berichte: UserReadings bleiben jetzt bestehen!. :)

DANKE!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

herrmannj

#69
sehr gern!

timestamp: hatte ich gestern Abend auch geschaut. Theoretisch könnte man das auch aktuell im multi() mit machen. Das wird aber furchtbar kryptischer code den keine Sau mehr versteht. UserReadings sind da deutlich "angenehmer".

Cron: https://crontab.guru/#0_5_*_*_*
Auf der Seite kann man fix testen. Achtung, ich habe im JsonMod Cron noch keine Wochentage implementiert. (Nicht wundern. ...falls  ;) )

Dracolein

#70
Zitat von: Andy89 am 26 März 2020, 08:49:18

defmod coronaSpreadDe JsonMod https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/Coronaf%C3%A4lle_in_den_Bundesl%C3%A4ndern/FeatureServer/0/query?where=1%3D1&outFields=LAN_ew_GEN,Fallzahl,Aktualisierung,faelle_100000_EW,Death&returnGeometry=false&outSR=4326&f=json
attr coronaSpreadDe interval */10 * * * *
attr coronaSpreadDe readingList multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_cases'), property('attributes.Fallzahl'));;\
multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_deaths'), property('attributes.Death'));;\
multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_lastUpdate'), property('attributes.Aktualisierung'));;\
multi(jsonPath('$.features[*]'), concat(property('attributes.LAN_ew_GEN'),'_cp100k'), property('attributes.faelle_100000_EW'));;
attr coronaSpreadDe room Status
attr coronaSpreadDe stateFormat Nordrhein-Westfalen_Death
attr coronaSpreadDe userReadings updated_human {POSIX::strftime ("%d.%m.%Y %H:%M", localtime(ReadingsVal("coronaSpreadDe","Nordrhein-Westfalen_lastUpdate",0)/1000))}

ich habe ein userreading hinzugefügt, damit man den Timestamp auch lesen kann. Nachher muss ich mich noch kurz googlen, wie ich täglich um 5 nach 0 die Daten abrufe. Ich glaube, dass das RKI, die nur einmal am Tag bereitstellt.

Habe ich 1:1 übernommen, funktioniert gut.

Eine Quick & Dirty Tabelle für FTUI habe ich schnell gemacht:

      <table cellpadding="0" cellspacing="0">
        <tr>
          <td width="250">
            <div class="bigger">Bundesland</div>
          </td>
          <td width="250">
            <div class="bigger">Fälle</div>
          </td>
          <td width="250">
            <div class="bigger">Fälle pro 100.000</div>
          </td>
          <td width="250">
            <div class="bigger">Verstorbene</div>
          </td>
        </tr>
        <tr>
          <td width="250">
            <div class="normal">Aktualisiert:</div>
          </td>
          <td width="250">
            <div class="normal" data-type="label" data-device="coronaSpreadDe" data-get="updated_human"></div>
          </td>
          <td width="250">
           
          </td>
          <td width="250">
           
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Nordrhein-Westfalen</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Nordrhein-Westfalen_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Nordrhein-Westfalen_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Nordrhein-Westfalen_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Baden-Württemberg</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Baden-Wurttemberg_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Baden-Wurttemberg_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Baden-Wurttemberg_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Bayern</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Bayern_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Bayern_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Bayern_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Berlin</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Berlin_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Berlin_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Berlin_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Brandenburg</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Brandenburg_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Brandenburg_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Brandenburg_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Bremen</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Bremen_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Bremen_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Bremen_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Hamburg</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Hamburg_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Hamburg_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Hamburg_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Hessen</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Hessen_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Hessen_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Hessen_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Mecklenburg-Vorpommern</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Mecklenburg-Vorpommern_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Mecklenburg-Vorpommern_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Mecklenburg-Vorpommern_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Niedersachsen</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Niedersachsen_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Niedersachsen_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Niedersachsen_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Rheinland-Pfalz</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Rheinland-Pfalz_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Rheinland-Pfalz_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Rheinland-Pfalz_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Saarland</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Saarland_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Saarland_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Saarland_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Sachsen-Anhalt</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Sachsen-Anhalt_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Sachsen-Anhalt_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Sachsen-Anhalt_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Sachsen</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Sachsen_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Sachsen_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Sachsen_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Schleswig-Holstein</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Schleswig-Holstein_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Schleswig-Holstein_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Schleswig-Holstein_deaths"></div>
          </td>
        </tr>
        <tr>
          <td>
            <div class="bigger">Thüringen</div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Thuringen_cases"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-fix="1" data-get="Thuringen_cp100k"></div>
          </td>
          <td>
            <div class="bigger" data-type="label" data-device="coronaSpreadDe" data-get="Thuringen_deaths"></div>
          </td>
        </tr>
      </table>
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

herrmannj


Dracolein

Sehe gerade, dass mein Log voller Einträge wie diesem ist:
Zitat
2020.03.26 06:01:00 3: IP: corona.lmao.ninja -> 104.18.36.204
2020.03.26 06:01:00 3: https://corona.lmao.ninja/countries: HTTP response code 200
2020.03.26 06:01:00 1: PERL WARNING: Useless use of reference constructor in void context at (eval 12610) line 2.
2020.03.26 06:01:00 1: PERL WARNING: Useless use of reference constructor in void context at (eval 12610) line 3.
2020.03.26 06:01:00 1: PERL WARNING: Useless use of reference constructor in void context at (eval 12610) line 4.
2020.03.26 06:01:00 1: PERL WARNING: Useless use of reference constructor in void context at (eval 12610) line 5.
2020.03.26 06:01:00 1: PERL WARNING: Useless use of reference constructor in void context at (eval 12610) line 6.

Zitat
Internals:
   API_LAST_RES 1585213801.16946
   API__LAST_MSG 200
   DEF        https://corona.lmao.ninja/countries
   FUUID      5e7b1af7-f33f-4dec-2fe1-28ef6f59dd72f647
   NAME       coronaSpread
   NEXT       2020-03-26 10:20:00
   NR         100
   NTFY_ORDER 50-coronaSpread
   SOURCE     https://corona.lmao.ninja/countries (200)
   STATE      0
   SVN        21517 2020-03-25 23:14:35 UTC
   TYPE       JsonMod
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://corona.lmao.ninja/countries
     SECRET:
   READINGS:
     2020-03-26 10:10:01   China_active    3947
     2020-03-26 10:10:01   China_cases     81285
     2020-03-26 10:10:01   China_casesPerOneMillion 56
     2020-03-26 10:10:01   China_deaths    3287
     2020-03-26 10:10:01   China_recovered 74051
     2020-03-26 10:10:01   China_todayCases 67
     2020-03-26 10:10:01   China_todayDeaths 6
     2020-03-26 10:10:01   Denmark_active  1816
     2020-03-26 10:10:01   Denmark_cases   1851
     2020-03-26 10:10:01   Denmark_casesPerOneMillion 320
     2020-03-26 10:10:01   Denmark_deaths  34
     2020-03-26 10:10:01   Denmark_recovered 1
     2020-03-26 10:10:01   Denmark_todayCases 127
     2020-03-26 10:10:01   Denmark_todayDeaths 0
     2020-03-26 10:10:01   France_active   20002
     2020-03-26 10:10:01   France_cases    25233
     2020-03-26 10:10:01   France_casesPerOneMillion 387
     2020-03-26 10:10:01   France_deaths   1331
     2020-03-26 10:10:01   France_recovered 3900
     2020-03-26 10:10:01   France_todayCases 0
     2020-03-26 10:10:01   France_todayDeaths 0
     2020-03-26 10:10:01   Germany_active  33570
     2020-03-26 10:10:01   Germany_cases   37323
     2020-03-26 10:10:01   Germany_casesPerOneMillion 445
     2020-03-26 10:10:01   Germany_deaths  206
     2020-03-26 09:00:03   Germany_procent_todayDeaths 0
     2020-03-26 10:10:01   Germany_recovered 3547
     2020-03-26 10:10:01   Germany_todayCases 0
     2020-03-26 10:10:01   Germany_todayDeaths 0
     2020-03-26 10:10:01   Italy_active    57521
     2020-03-26 10:10:01   Italy_cases     74386
     2020-03-26 10:10:01   Italy_casesPerOneMillion 1
     2020-03-26 10:10:01   Italy_deaths    7503
     2020-03-26 10:10:01   Italy_recovered 9362
     2020-03-26 10:10:01   Italy_todayCases 0
     2020-03-26 10:10:01   Italy_todayDeaths 0
     2020-03-26 10:10:01   Netherlands_active 6053
     2020-03-26 10:10:01   Netherlands_cases 6412
     2020-03-26 10:10:01   Netherlands_casesPerOneMillion 374
     2020-03-26 10:10:01   Netherlands_deaths 356
     2020-03-26 10:10:01   Netherlands_recovered 3
     2020-03-26 10:10:01   Netherlands_todayCases 0
     2020-03-26 10:10:01   Netherlands_todayDeaths 0
     2020-03-26 10:10:01   Spain_active    40501
     2020-03-26 10:10:01   Spain_cases     49515
     2020-03-26 10:10:01   Spain_casesPerOneMillion 1
     2020-03-26 10:10:01   Spain_deaths    3647
     2020-03-26 10:10:01   Spain_recovered 5367
     2020-03-26 10:10:01   Spain_todayCases 0
     2020-03-26 10:10:01   Spain_todayDeaths 0
     2020-03-26 10:10:01   UK_active       8929
     2020-03-26 10:10:01   UK_cases        9529
     2020-03-26 10:10:01   UK_casesPerOneMillion 140
     2020-03-26 10:10:01   UK_deaths       465
     2020-03-26 10:10:01   UK_recovered    135
     2020-03-26 10:10:01   UK_todayCases   0
     2020-03-26 10:10:01   UK_todayDeaths  0
     2020-03-26 10:10:01   USA_active      67063
     2020-03-26 10:10:01   USA_cases       68489
     2020-03-26 10:10:01   USA_casesPerOneMillion 207
     2020-03-26 10:10:01   USA_deaths      1032
     2020-03-26 10:10:01   USA_recovered   394
     2020-03-26 10:10:01   USA_todayCases  278
     2020-03-26 10:10:01   USA_todayDeaths 5
Attributes:
   interval   */10 * * * *
   readingList multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_cases'), property('cases'));;\
multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_todayCases'), property('todayCases'));;\
multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_active'), property('active'));;\
multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_deaths'), property('deaths'));;\
multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_todayDeaths'), property('todayDeaths'));;\
multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_recovered'), property('recovered'));;\
multi(jsonPath("\$.[?(\@.country in ['Germany', 'China', 'Netherlands', 'Denmark', 'UK', 'Italy', 'Spain', 'France', 'USA'])]"), concat(property('country'), '_casesPerOneMillion'), property('casesPerOneMillion'));;
   room       News
   stateFormat Germany_procent_todayDeaths


Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Andy89

ich habe wieder Mal ein Problem...

aber erst einmal eine Frage:
das Internal "NEXT" ist Menschen-lesbar.
Könntest du das Internal "API_LAST_RES" auch Menschen-lesbar machen? Dann würde ich und vielleicht auch andere sehen, wann das letzte Mal Daten abgerufen wurden.

Nun zu meinem Problem. Die Quelle "https://corona.lmao.ninja/countries" hat das Land Iran umbenannt. Das heißt nun:
country "Iran, Islamic Republic of"
Ich vermute, dass das Problem hier das Komma oder evtl die Leerzeichen sind.

Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

yersinia

Zitat von: Andy89 am 26 März 2020, 10:29:47Nun zu meinem Problem. Die Quelle "https://corona.lmao.ninja/countries" hat das Land Iran umbenannt. Das heißt nun:
country "Iran, Islamic Republic of"
Kann man auf die Country-Codes (iso2, iso3) zurückgreifen?
Zitat{"country":"China","countryInfo":{"_id":156,"lat":35,"long":105,"flag":"https://raw.githubusercontent.com/NovelCOVID/API/master/assets/flags/cn.png","iso3":"CHN","iso2":"CN"},"cases":81285,"todayCases":67,"deaths":3287,"todayDeaths":6,"recovered":74051,"active":3947,"critical":1235,"casesPerOneMillion":56,"deathsPerOneMillion":2}
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | 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