Hallo
bei folgendem Befehl
HT_.* { if( ($EVENT ~~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }
bekomme ich im Log seit neustem foglenden Fehler
2017.10.03 08:57:48 1: PERL WARNING: Smartmatch is experimental at (eval 1895) line 1.
2017.10.03 08:57:48 3: eval: my $SELF='ntfy_setreading';my $NAME='HT_Flur';my $EVTPART1='0';my $TYPE='CUL_HM';my $EVENT='actuator: 0';my $EVTPART0='actuator:';{ if( ($EVENT ~~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }
Ich verstehe dass das Problem an
~~
liegt, allerdings weiß ich nicht wie man es anders programmieren kann.
Kann mir ggf. jemand die richtigen Codezeile nennen.
Danke
Was willst Du denn mit dem smartmatch operator erreichen, willst Du nicht eher einen regex vergleich machen (also =~ )?
Das ist eine gute Frage, ich habe den Befehl aus dem Wiki
https://wiki.fhem.de/wiki/Dummy
ntfy_setreading
kopiert gehabt.
Ich habe das Notify mal deaktiviert und es scheint keine Auswirkungen zu haben. Dennoch würde ich gerne wissen was es genau bewirkt.
HT_.* { if( ($EVENT =~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }
Das sollte genauso funktionieren. Smartmatch scheint im ersten Befehl einfach nach Leerzeichen zu suchen...
Zitat von: mumpitzstuff am 10 Oktober 2017, 10:32:26
HT_.* { if( ($EVENT =~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }
Das sollte genauso funktionieren. Smartmatch scheint im ersten Befehl einfach nach Leerzeichen zu suchen...
Klappt vielen Dank!