JsonMod: Fälle Intensivstationen

Begonnen von TWART016, 01 Dezember 2021, 19:00:30

Vorheriges Thema - Nächstes Thema

TWART016

Hallo,

ich würde mir gerne per JsonMod die Werte holen:
https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json

Das Format ist hier ein wenig anders wie bei den Inzidenzen: Jeden Tag wird einfach nur ganz unten der aktuelle Wert mit dem Datum hinzugefügt:
[  {
    "date": "2021-11-27",
    "faelleCovidAktuell": 606
  },
  {
    "date": "2021-11-28",
    "faelleCovidAktuell": 622
  },
  {
    "date": "2021-11-29",
    "faelleCovidAktuell": 623
  },
  {
    "date": "2021-11-30",
    "faelleCovidAktuell": 622
  },
  {
    "date": "2021-12-01",
    "faelleCovidAktuell": 630
  }
]


Leider scheitere ich an dem readingList. Könnte mir hier jemand helfen?
Ich hätte gerne nur ein Reading faelleCovidAktuell mit der Zahl vom letzten Datum.

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

TWART016

Das sind leider ganz andere Daten. Mit dem Format bekomme ich auch keine Werte.

yersinia

#3
Zitat von: TWART016 am 01 Dezember 2021, 19:00:30Leider scheitere ich an dem readingList. Könnte mir hier jemand helfen?
Ich hätte gerne nur ein Reading faelleCovidAktuell mit der Zahl vom letzten Datum.
Das kann JsonMod imho (noch) nicht. Es hätte wahrscheinlich funktionieren können mit (Angaben ohne Gewähr)
multi(jsonPath("$.[-1:].date"), 'date', property('date'));
multi(jsonPath("$.[-1:].faelleCovidAktuell"), 'faelleCovidAktuell', property('faelleCovidAktuell'));

([-1:] liefert den letzten Array-Wert wieder afaik)
Das ist aber nicht implementiert und steht auf der Wunschliste.

Analog zu xavers Lösung kannst du dir aber anders behelfen. Du benötigst das aktuelle Datum im Format YYYY-MM-DD und kannst dann in der JSON-Quelle danach suchen. Für das aktuelle Datum erstellst und nutzt du eine Funktion in deiner myUtils:
sub mydividate {
my $tm = localtime;
return sprintf("%04d-%02d-%02d", $tm->year, $tm->mon, $tm->mday);
}


diese wiederum verwendest du in deinem readingList:
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'date', property('date'));
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'faelleCovidAktuell', property('faelleCovidAktuell'));


Stand jetzt gibt es kein Reading für heute, demnach ist das JsonMod auch noch leer. Solle sich aber im Laufe des Tages erledigen. Zum Testen kannst du das return in der Funktion so abändern:
return "2021-12-01";

Alternativ geht auch complete(); im readingList, dann hast du schön die Historie. ;)
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

yersinia

#4
Zitat von: JoWiemann am 01 Dezember 2021, 19:29:30warum neu erfinden, wenn schon da: https://forum.fhem.de/index.php/topic,113798.msg1188775.html#msg1188775 und folgende Posts.
Zitat von: TWART016 am 01 Dezember 2021, 23:56:25Das sind leider ganz andere Daten. Mit dem Format bekomme ich auch keine Werte.
Die sind doch nur nach Landkreis aufgesplittet, was viele Daten mit sich bringt. Daher ist die Query schon auf BW eingeschränkt. In dem Beispiel von Mickey sogar auf den LK Göttingen. Das macht das JSON wesentlich kleiner und ist einfacher zu verarbeiten. Man kann das auch auf BL einschränken.
Anbei ein RAW welches alle BL abruft, aber sich auf die BL einschränken lässt.
defmod IntensivRKI JsonMod https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/DIVI_Intensivregister_Landkreise/FeatureServer/0/query?where=BL_ID%3E0&outFields=AGS,BL,BL_ID,county,anzahl_standorte,anzahl_meldebereiche,betten_frei,betten_belegt,betten_gesamt,Anteil_betten_frei,faelle_covid_aktuell,faelle_covid_aktuell_beatmet,Anteil_covid_beatmet,Anteil_COVID_betten&returnGeometry=false&f=json
attr IntensivRKI readingList multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_county'), property('.attributes.county'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_anzahl_standorte'), property('.attributes.anzahl_standorte'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_anzahl_meldebereiche'), property('.attributes.anzahl_meldebereiche'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_betten_frei'), property('.attributes.betten_frei'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_betten_belegt'), property('.attributes.betten_belegt'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_betten_gesamt'), property('.attributes.betten_gesamt'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_Anteil_betten_frei'), property('.attributes.Anteil_betten_frei'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_faelle_covid_aktuell'), property('.attributes.faelle_covid_aktuell'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_faelle_covid_aktuell_beatmet'), property('.attributes.faelle_covid_aktuell_beatmet'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_Anteil_covid_beatmet'), property('.attributes.Anteil_covid_beatmet'));;\
multi(jsonPath("\$.features.[?(\@.attributes.BL_ID in ['8'])]"), concat(property('.attributes.AGS'),'_Anteil_COVID_betten'), property('.attributes.Anteil_COVID_betten'));;
attr IntensivRKI update-on-start 0
attr IntensivRKI interval 0 12 * * *
attr IntensivRKI webCmd reread

Dabei sind die BL_IDs:
1 = Schleswig-Holstein
2 = Hamburg
3 = Niedersachsen
4 = Bremen
5 = Nordrhein-Westfalen
6 = Hessen
7 = Rheinland-Pfalz
8 = Baden-Württemberg
9 = Bayern
10 = Saarland
11 = Berlin
12 = Brandenburg
13 = Mecklenburg-Vorpommern
14 = Sachsen
15 = Sachsen-Anhalt
16 = Thüringen

Interessiert man sich nur für vereinzelte Landkreise, würde ich nach dem AGS suchen und filtern:
defmod IntensivRKI JsonMod https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/DIVI_Intensivregister_Landkreise/FeatureServer/0/query?where=BL_ID%3E0&outFields=AGS,BL,BL_ID,county,anzahl_standorte,anzahl_meldebereiche,betten_frei,betten_belegt,betten_gesamt,Anteil_betten_frei,faelle_covid_aktuell,faelle_covid_aktuell_beatmet,Anteil_covid_beatmet,Anteil_COVID_betten&returnGeometry=false&f=json
attr IntensivRKI interval 0 12 * * *
attr IntensivRKI readingList multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_county'), property('.attributes.county'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_BL'), property('.attributes.BL'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_anzahl_standorte'), property('.attributes.anzahl_standorte'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_anzahl_meldebereiche'), property('.attributes.anzahl_meldebereiche'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_betten_frei'), property('.attributes.betten_frei'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_betten_belegt'), property('.attributes.betten_belegt'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_betten_gesamt'), property('.attributes.betten_gesamt'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_Anteil_betten_frei'), property('.attributes.Anteil_betten_frei'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_faelle_covid_aktuell'), property('.attributes.faelle_covid_aktuell'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_faelle_covid_aktuell_beatmet'), property('.attributes.faelle_covid_aktuell_beatmet'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_Anteil_covid_beatmet'), property('.attributes.Anteil_covid_beatmet'));;\
multi(jsonPath("\$.features.[?(\@.attributes.AGS in ['08117', '08118'])]"), concat(property('.attributes.AGS'),'_Anteil_COVID_betten'), property('.attributes.Anteil_COVID_betten'));;
attr IntensivRKI update-on-start 0
attr IntensivRKI webCmd reread

Die AGS müssen einmal mühsam aus der Quelle rausgesucht werden.
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

TWART016

Zitat von: yersinia am 02 Dezember 2021, 08:37:35
Das kann JsonMod imho (noch) nicht. Es hätte wahrscheinlich funktionieren können mit (Angaben ohne Gewähr)
multi(jsonPath("$.[-1:].date"), 'date', property('date'));
multi(jsonPath("$.[-1:].faelleCovidAktuell"), 'faelleCovidAktuell', property('faelleCovidAktuell'));

([-1:] liefert den letzten Array-Wert wieder afaik)
Das ist aber nicht implementiert und steht auf der Wunschliste.
Damit bekomme ich leider keine Readings. Bedeutet -1 das letzte Ergebnis, oder das gestrige Datum?

Zitat von: yersinia am 02 Dezember 2021, 08:37:35
Analog zu xavers Lösung kannst du dir aber anders behelfen. Du benötigst das aktuelle Datum im Format YYYY-MM-DD und kannst dann in der JSON-Quelle danach suchen. Für das aktuelle Datum erstellst und nutzt du eine Funktion in deiner myUtils:
sub mydividate {
my $tm = localtime;
return sprintf("%04d-%02d-%02d", $tm->year, $tm->mon, $tm->mday);
}


diese wiederum verwendest du in deinem readingList:
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'date', property('date'));
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'faelleCovidAktuell', property('faelleCovidAktuell'));

Auch hier bekomme ich keine Daten. Ich teste das mit set DEVICE reread

Zitat von: yersinia am 02 Dezember 2021, 08:37:35
Stand jetzt gibt es kein Reading für heute, demnach ist das JsonMod auch noch leer. Solle sich aber im Laufe des Tages erledigen. Zum Testen kannst du das return in der Funktion so abändern:
return "2021-12-01";
Hier wird es allerdings wie gewünscht angezeigt.

yersinia

Zitat von: TWART016 am 04 Dezember 2021, 22:20:57Damit bekomme ich leider keine Readings. Bedeutet -1 das letzte Ergebnis, oder das gestrige Datum?
Zitat von: yersinia am 02 Dezember 2021, 08:37:35Das kann JsonMod imho (noch) nicht.
([-1:] liefert den letzten Array-Wert wieder afaik)
::)

Zitat von: TWART016 am 04 Dezember 2021, 22:20:57Auch hier bekomme ich keine Daten.
Kurios, bei mir funktioniert es. Eben nochmal nachgestellt. Natürlich hat deine Quelle jetzt für heute keine Werte. Aber für gestern. Und das klappt.
Shit in shit out - wenn die Quelle keine Daten liefert wirst du auch nichts finden.

Zitat von: TWART016 am 04 Dezember 2021, 22:20:57Ich teste das mit set DEVICE reread
Ein reread musst du immer machen wenn du readingsList anpasst - oder darauf warten, dass das Interval wieder eintrifft.
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

TWART016

Ich habe beide Varianten probiert
defmod corona1 JsonMod https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
attr corona1 comment https://www.intensivregister.de/#/aktuelle-lage/zeitreihen
attr corona1 interval 0 */1 * * *
attr corona1 readingList multi(jsonPath("$.[-1:].date"), 'date', property('date'));;\
multi(jsonPath("$.[-1:].faelleCovidAktuell"), 'faelleCovidAktuell', property('faelleCovidAktuell'));;


und

defmod corona2 JsonMod https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
attr corona2 comment https://www.intensivregister.de/#/aktuelle-lage/zeitreihen
attr corona2 interval 0 */1 * * *
attr corona2 readingList multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'date', property('date'));;\
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'faelleCovidAktuell', property('faelleCovidAktuell'));;


sub mydividate {
my $tm = localtime;
#return "2021-12-01";
return sprintf("%04d-%02d-%02d", $tm->year, $tm->mon, $tm->mday);
}



jeweils kommen keine Daten seit 2 Tagen.

yersinia

Zitat von: TWART016 am 05 Dezember 2021, 14:58:04Ich habe beide Varianten probiert
defmod corona1 JsonMod https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
attr corona1 comment https://www.intensivregister.de/#/aktuelle-lage/zeitreihen
attr corona1 interval 0 */1 * * *
attr corona1 readingList multi(jsonPath("$.[-1:].date"), 'date', property('date'));;\
multi(jsonPath("$.[-1:].faelleCovidAktuell"), 'faelleCovidAktuell', property('faelleCovidAktuell'));;
Nochmal: deine Mühen kannst du sparen, das untertsützt JsonMod nicht!

Zitat von: TWART016 am 05 Dezember 2021, 14:58:04defmod corona2 JsonMod https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
attr corona2 comment https://www.intensivregister.de/#/aktuelle-lage/zeitreihen
attr corona2 interval 0 */1 * * *
attr corona2 readingList multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'date', property('date'));;\
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'faelleCovidAktuell', property('faelleCovidAktuell'));;
Tja:
Internals:
   API_LAST_MSG 200
   API_LAST_RES 1638711535.66196
   CFGFN     
   DEF        https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
   FUUID      61acbf5f-f33f-3151-5691-c09d515521bfca5b
   NAME       testJM2
   NEXT       NEVER
   NR         23871
   SOURCE     https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json (200)
   STATE      ???
   SVN        24783 2021-07-21 22:37:12 UTC
   TYPE       JsonMod
   .attraggr:
   .attrminint:
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
     SECRET:
   READINGS:
     2021-12-05 14:35:13   .computedReadings faelleCovidAktuell,date
     2021-12-05 14:35:13   date            2021-12-04
     2021-12-05 14:35:13   faelleCovidAktuell 641
Attributes:
   readingList multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'date', property('date'));
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'faelleCovidAktuell', property('faelleCovidAktuell'));

Define:
defmod testJM2 JsonMod https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
attr testJM2 readingList multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'date', property('date'));;\
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."'])]"), 'faelleCovidAktuell', property('faelleCovidAktuell'));;

und in der 99_myUtils:
sub mydividate {
my $tm = localtime;
return sprintf("%04d-%02d-%02d", $tm->year, $tm->mon, $tm->mday);
#return "2021-12-04"; #for testing
}


Was gibt denn
{mydividate()}
aus wenn du es in der FHEM Befehlseingabe eingibst? Es muss zwingend das Format YYYY-MM-DD sein.
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

yersinia

#9
Hier ein Update um die letzten drei Tage zu bekommen. Geänderte mydividate() in 99_myUtils.pm:
sub mydividate {
use DateTime qw( );

my $offset = shift // 0;
if(!looks_like_number($offset)) {
$offset = 0;
}

my $dateYMD =
DateTime
      ->now( time_zone => 'local' )
      ->set_time_zone('floating')
      ->truncate( to => 'day' )
      ->add( days => $offset )
      ->strftime('%Y-%m-%d');

return $dateYMD;
}

Aufruf dann entweder für heute:
mydividate()
für gestern (offset = -1 Tage):
mydividate(-1)
oder morgen (+1 Tag):
mydividate(1)

JsonMod (sucht nach dem Datum für Heute, Gestern und Vorgestern; die Quelle liefert Stand jetzt aber nur Daten bis Vorgestern):
defmod testJM JsonMod https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
attr testJM webCmd reread
attr testJM readingList multi(jsonPath("\$.[?(\@.date in ['".mydividate()."','".mydividate(-1)."','".mydividate(-2)."'])]"), concat(count(), '_date'), property('date'));;\
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."','".mydividate(-1)."','".mydividate(-2)."'])]"), concat(count(), '_faelleCovidAktuell'), property('faelleCovidAktuell'));;

hier das dazugehörige list:
Internals:
   API_LAST_MSG 200
   API_LAST_RES 1638777767.09722
   CFGFN     
   DEF        https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
   FUUID      61acbf5f-f33f-3151-5691-c09d515521bfca5b
   NAME       testJM
   NEXT       NEVER
   NR         23871
   SOURCE     https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json (200)
   STATE      ???
   SVN        24783 2021-07-21 22:37:12 UTC
   TYPE       JsonMod
   .attraggr:
   .attrminint:
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://europe-west3-brdata-corona.cloudfunctions.net/diviApi/query?area=BW&indicator=Patienten&filetype=json
     SECRET:
   OLDREADINGS:
   READINGS:
     2021-12-06 09:02:47   .computedReadings 0_date,0_faelleCovidAktuell
     2021-12-06 09:02:47   0_date          2021-12-04
     2021-12-06 09:02:47   0_faelleCovidAktuell 641
Attributes:
   readingList multi(jsonPath("\$.[?(\@.date in ['".mydividate()."','".mydividate(-1)."','".mydividate(-2)."'])]"), concat(count(), '_date'), property('date'));
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."','".mydividate(-1)."','".mydividate(-2)."'])]"), concat(count(), '_faelleCovidAktuell'), property('faelleCovidAktuell'));
   webCmd     reread




Edith meint, man kann das readingList noch kürzer handhaben:
multi(jsonPath("\$.[?(\@.date in ['".mydividate()."','".mydividate(-1)."','".mydividate(-2)."'])]"), property('date'), property('faelleCovidAktuell'));
Dann ist es aber nicht so generisch, da das reading nach dem Datum benannt ist und Wert enthält:
READINGS:
     2021-12-06 09:25:24   2021-12-04      641
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

TWART016

Zitat von: yersinia am 05 Dezember 2021, 15:12:32
Was gibt denn
{mydividate()}
aus wenn du es in der FHEM Befehlseingabe eingibst? Es muss zwingend das Format YYYY-MM-DD sein.

Gibt wohl ein Problem mit year
Can't locate object method "year" via package "Mon Dec  6 11:59:24 2021" (perhaps you forgot to load "Mon Dec  6 11:59:24 2021"?) at ./FHEM/99_myUtils.pm line 23.