FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mane88 am 08 Oktober 2017, 21:08:10

Titel: Probleme mit Smartmatch
Beitrag von: mane88 am 08 Oktober 2017, 21:08:10
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
Titel: Antw:Probleme mit Smartmatch
Beitrag von: viegener am 08 Oktober 2017, 21:39:08
Was willst Du denn mit dem smartmatch operator erreichen, willst Du nicht eher einen regex vergleich machen (also =~ )?
Titel: Antw:Probleme mit Smartmatch
Beitrag von: mane88 am 10 Oktober 2017, 06:49:40
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.
Titel: Antw:Probleme mit Smartmatch
Beitrag 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...

Titel: Antw:Probleme mit Smartmatch
Beitrag von: mane88 am 11 Oktober 2017, 21:42:31
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!