FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Dodger am 18 Dezember 2021, 17:50:19

Titel: gelöst: Aufruf einer Sub aus myUtils funktioniert nicht
Beitrag von: Dodger am 18 Dezember 2021, 17:50:19
Hi Leute,

ich schon wieder...

ich wollte folgendes notify erstellen:
define Status_PC_n notify FritzBox:.* {if(checkFritzMACpresent("E0:D5:5E:81:17:60") = 0) {fhem("set Status_PC off")} else {fhem("set Status_PC on")}}

Die Funktion "checkFritzMACpresent" steht in den myUtils und funktionier an sich auch. Zumindest die presence Devices werden damit aktiviert.
Jetzt wollte ich die Funktion in das Notify übernehmen und bekomme folgende Fehlermeldung:
ZitatCan't modify non-lvalue subroutine call of &main::checkFritzMACpresent in scalar assignment at (eval 563441) line 1, near "0) "

Das Ergebnis der Funktion sollte "0" oder "1" sein.

Wo liegt mein Fehler?

Gruß
Dodger
Titel: Antw:Aufrub einer Sub aus myUtils funktioniert nicht
Beitrag von: Pfriemler am 18 Dezember 2021, 17:56:21
Versuch mal == statt = als Vergleichsoperator ...
= ist eine Zuweisung in perl.
Titel: Antw:Aufruf einer Sub aus myUtils funktioniert nicht
Beitrag von: Dodger am 18 Dezember 2021, 18:00:43
Dankeschön, das war's  8)
Titel: Antw:gelöst: Aufruf einer Sub aus myUtils funktioniert nicht
Beitrag von: Pfriemler am 18 Dezember 2021, 18:02:04
Wenn Du wüsstest, wie oft ich diesen Fehler selber schon gemacht habe als alter BASICianer...
Titel: Antw:gelöst: Aufruf einer Sub aus myUtils funktioniert nicht
Beitrag von: betateilchen am 18 Dezember 2021, 20:54:10
Zitat von: Pfriemler am 18 Dezember 2021, 18:02:04
Wenn Du wüsstest, wie oft ich diesen Fehler selber schon gemacht habe als alter BASICianer...

Einfache Eselsbrücke:

Die Wertzuweisung "$a ist 5" wird geschrieben als $a = 5 mit EINEM Gleichheitszeichen, weil nur ein Wort dazwischen steht.

Die Abfrage "$a ist gleich 5?" wird geschrieben als $a == 5 mit ZWEI Gleichheitszeichen, weil zwei Worte dazwischen stehen.