der Code liefert leider nur den Inhalt von $EVENT
und ich bekomme keine Zeit mitgesendet:
my $timestamp = time();
set fhembot msg @xxxxxxxxx $EVENT $timestamp | vom PI1 gesendet
auch geprüft mit {$hms} oder {qx(date +%R)}
was ist zu beachten ?
Hi,
Du mischst Perl mit FHEM Kommandos
my $timestamp = time(); ist Perl
set fhembot msg @xxxxxxxxx $EVENT $timestamp | vom PI1 gesendet ist FHEM
btw: time() liefert eine Zahl, nicht als Zeit human readable :D
So müsste es gehen (Test für die FHEM Kommandozeile).
Alles in Perl:
{my $timestamp = time();;fhem("set fhembot msg \@xxxxxxxxx $EVENT $timestamp | vom PI1 gesendet")}
Wegen dem @ bin ich nicht sicher, soll es als zeichen erhalten bleiben muss es geschützt werden -> \@
Gruß Otto
$hms enthält die aktuelle Uhrzeit in einem einfach lesbaren Format.
habs noch nicht :) - in der Befehslzeile:
a. $EVENT rausgenommen da er zum Fehler : Global symbol "$EVENT" requires explicit package führte
b. weil Inhalt - wie du richtig sagtest kryptisch ist - $hms genommen:
{my $timestamp = $hms ;; fhem("set fhem27bot msg \@xxxxxxx $timestamp | vom PI1 gesendet")}
ergibt auf dem Smartphone 17:59:18 usw.
nachdem ich den Code in das Alias einfügte bekam ich den Fehler:
Unknown command {my, try help.
say .* AS set MyTTS tts '$EVENT'; set MyTTS29 tts '$EVENT'; set MyTTS57 tts '$EVENT';
{my $timestamp = $hms ;; fhem("set fhem27bot msg \@xxxxxxx $EVENT $timestamp | vom PI1 gesendet")}
Ich weiss also nicht wie man diesen Mischcode aus Fhem und Programmiersprache einbringt. Ich dachte die Logic von ;; und \@ und den Aufruf fhem verstanden zu haben ::)
$hms ist doch schon eine perl-Variable...
{ fhem("set fhem27bot msg \@xxxxxxx $EVENT $hms | vom PI1 gesendet")}
In deinem ?Alias? mischst Du ja nun wieder :-[
:o { fhem("set fhem27bot msg \@xxxxxxx $EVENT $hms | vom PI1 gesendet")}
oder fhem("set fhem27bot msg \@xxxxxxx $EVENT $hms | vom PI1 gesendet")
oder set fhem27bot msg @xxxxxxx $EVENT $hms | vom PI1 gesendet
liefern in dem Alias die Fehler : Unknown command fhem("set, try help. bzw.
Unknown command {, try help. bzw. Inhalt von Event und bei $hms eben $hms
und das ursprüngliche Beispiel war eine selbst bestimmte Variable, sodass man etwas beliebiges hätte senden können ... ich nutze soetwas an div. Stellen sehe meinen Fehler aber nicht :
{fhem("set RolloLinks off")};
set Kaffee on;
set fhem27bot msg @xxxxxxxx per Schalter 1 hoch ausgelöst | Titel Rollo hoch Kaffe an;
set Gong1 playTone 43
mache ich daraus
set fhem27bot msg @xxxxxxxx per Schalter 1 hoch ausgelöst $EVENT $hms | Titel Rollo hoch Kaffe an;
kommen alle Events richtig und hms wieder falsch als $hms :-[
hier noch mal das Alias:
say .* AS set MyTTS tts '$EVENT'; set MyTTS29 tts '$EVENT'; set MyTTS57 tts '$EVENT';
set fhem27bot msg @xxxxxxx $EVENT $hms | vom PI1 gesendet
...
Du kannst eigentlich sowas im set Befehl nutzen:
set Willi {($hms)}
In der Doku unter dem Begriff set magic (https://commandref.fhem.de/#set) zu finden.
Gruß Otto
ok gemacht - dummy Willi nimmt jetzt die Uhrzeit so weit so gut!
jetzt muss ich es noch senden :
set Willi {($hms)};
set fhem27bot msg @xxxxxxxx $EVENT "Willi" | vom PI1 gesendet
"Willi" oder ${Willi} ${"Willi"} gehen nicht
:o
Was willst Du mit Willi? das war doch nur ein Beispiel ::) :-[
So versucht?
set fhem27bot msg @xxxxxxxx $EVENT {($hms)}
Ob das so mittendrin geht? keine Ahnung ...In einem test mit einem Dummy geht es auch mittendrin
set Willi {($hms)} Uhr
Zitat"Willi" oder ${Willi} ${"Willi"} gehen nicht
Wenn Du meinen Link gelesen hättest ;D
Wenn dann so: [Willi] oder [Willi:state]
8) :-* mit $EVENT {($hms)} kommt die Uhrzeit - das klappt - DANKE...
teste jetzt noch den Willi ;D
... bereits gemacht - Willi geht auch nochmals Danke habs auch kapiert !!!!
set Willi {($hms)} Uhr;
set fhempi957bot msg @xxxxxx $EVENT {($hms)} [Willi:state] | PI55
Doppel Uhrzeit ;D
Wieder mit set magic?
[Willi] oder [Willi:state] oder [NameeinesbeliebigenFHEMGerätes:NameEinesBeliebigenReadingsDiesesGerätes]
Aber sowas geht natürlich auch:
set wert {(my $val = Value("Aktor01");;return $val)} Uhrzeit
das return $val ist hier überflüssig, wollte nur zeigen das auch eine Befehlsfolge geht.
Und sicher geht auch {(Subroutine-In-99_myUtils)}