FHEM > readingsGroup / readingsHistory

[erledigt] dumme frage: wochentag für ein gegebenes datum anzeigen

(1/2) > >>

the ratman:
hiho,

ich suche für eine readingsgroup als zusatz zu einem gegebene datum (das kommt als reading) den wochentag um ihn zusätzlich anzeigen zu können.

bspl.:
> im valueformat steht z.b. {'fc0_date' => '$VALUE<br>XXX', ... }
> $VALUE wäre in dem fall der inhalt eines readings - ein datum - im format 06.09.2021

wie kriege ich den, dem datum entsprechenden wochentag, also z.b. mo, di, mi, .., an die stelle XXX in das valueformat?

für hilfe sehr dankbar,
der immer wieder ahnungslose onkel ratti

Otto123:
Hi,

ein Stück Perl sollte es bringen, ich weiß prinzipiell das es damit geht und habe auf die Schnelle diese ungeprüfte Stückchen:

--- Code: ---my ($d,$m,$y) = split /\./, $VALUE;
   $m         = $m - 1;
   $y         = $y - 1900;
   my $sec       = timelocal(00,00,00, $d, $m, $y);
   my ($tmp, $tmp, $tmp, $tmp, $tmp, $tmp, $wday) = localtime($sec);
--- Ende Code ---

In $wday steht dann die Nummer für den Wochentag.
Das mit dem $tmp ist ev. kontra - Du kannst eigentlich die Ausgabe dann beliebig formatieren, siehe auch hier:
https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit

Gruß Otto

TomLee:
Mal ganz kleinlaut nachgefragt

Weil ich mir auch darüber Gedanken gemacht habe und wirklich auf einen Lösungsansatz kam.

Wäre es soo falsch/umständlich gelöst, es so umzusetzen

Kommandozeile:


--- Code: ---{my ($d,$m,$y) = split(/\./,$VALUE);;
$m=$m-1;;
return strftime("%A",localtime(timelocal('0','0','0',$d,$m,$y)))}
--- Ende Code ---

Warum ich beim Jahr nix abziehen muss hab ich selbst nicht verstanden.

edit:

Kommandozeile war so zu verstehen, $VALUE fest vergeben :

--- Code: ---{my ($d,$m,$y) = split(/\./,"06.09.2021");;
$m=$m-1;;
return strftime("%A",localtime(timelocal('0','0','0',$d,$m,$y)))}
--- Ende Code ---

the ratman:
kann man mir da bitte ein beispiel geben, wie ich das ins valueformat eintragen kann?

TomLee:
Keine Ahnung ob man  in der HASH-Version Perl verwenden kann, hab leichte Zweifel und es in der readingsGroup-Definition umzusetzen auch keinen Vorschlag, dazu hab ich bisher zu wenig mit gemacht.

Eine Möglichkeit wäre, wie ich es bisher verstanden habe, ein userReadings in den Devices zu definieren das den oben genannten Code ausführt / zurückgibt, oder ?

edit: nich richtig gelesen, statt xxx

--- Code: ---{'<userreadingsname>' => '$VALUE<br>XXX', ... }
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln