Guten Tag, die Herrschaften...
Ich spiele gerade mit "Zeit" in FHEM herum und habe mal mit "qx" ein entsprechendes notify aufgebaut:
defmod nfyTestTime notify atTestTime\
{\
my $currentCW = qx(date +%V);;\
my $lastCW = qx(date -d 'last week' +%V);;\
my $nextCW = qx(date -d 'next week' +%V);;\
my $yesterdaysCW = qx(date -d 'yesterday' +%V);;\
my $yesterday = qx(date -d 'yesterday' +%Y-%m-%d);;\
my $tomorrow = qx(date -d 'tomorrow' +%Y-%m-%d);;\
\
\
fhem "setreading nfyTestTime currentCW $currentCW";;\
fhem "setreading nfyTestTime lastCW $lastCW";;\
fhem "setreading nfyTestTime nextCW $nextCW";;\
fhem "setreading nfyTestTime yesterdaysCW $yesterdaysCW";;\
fhem "setreading nfyTestTime yesterday $yesterday";;\
fhem "setreading nfyTestTime tomorrow $tomorrow";;\
}
setstate nfyTestTime 2020-10-03 12:23:00
setstate nfyTestTime 2020-10-03 12:23:00 currentCW 40\
setstate nfyTestTime 2020-10-03 12:23:00 lastCW 39\
setstate nfyTestTime 2020-10-03 12:23:00 nextCW 41\
setstate nfyTestTime 2020-10-03 12:22:27 state active
setstate nfyTestTime 2020-10-03 12:23:00 tomorrow 2020-10-04\
setstate nfyTestTime 2020-10-03 12:23:00 yesterday 2020-10-02\
setstate nfyTestTime 2020-10-03 12:23:00 yesterdaysCW 40\
In den readings sieht das dann optisch wie im Screenshot anbei aus...
Weshalb kommt da eine Leerzeile in den readings (vgl. reading "state", welches einzeilig erscheint)?
Grüße,
Vinschgauer
So ist der "date" bash-Befehl gebaut. Kann man nicht direkt verhindern.
Du kannst aber das Ergebnis von date auf tr pipen, um dies zu entfernen:
date +%V | tr -d '\n'
Die Lösung sieht elegant aus, würd was dagegen sprechen die newlines einfach mit chomp zu entfernen (was auch um ein paar Zeichen kürzer aber weniger elegant (mMn) wäre) ?
chomp(my $currentCW = qx(date +%V))
Gruß
Thomas
Sieht beides gut aus. ;D Danke!! :)