Hallo.
Möchte gerne Befehl über SUB ausführen, aber klappt irgendwie nicht. Mit DOIF funktioniert er so
("python2 /usr/local/bin/10Amp.py")
Wie muss ich das in der myUtils formatieren/eintragen?
So klappt's nicht
fhem("python2 /usr/local/bin/10Amp.py");
Und logausgabe
Subroutine fhem_not redefined at /opt/fhem/FHEM/99_myUtils.pm line 294.
Lg
Mit fhem() führt man FHEM-Befehle aus, nicht Betriebssystemkommandos.
Am einfachsten geht es mit qx()
qx(python2 /usr/local/bin/10Amp.py)
Wobei es notwendig sein kann, den kompletten Pfad zur ausführbaren Datei - hier: python2 - anzugeben.
Aber nur am Rande angemerkt: python2 ist doch finsterstes Mittelalter? Das wurde Anfang 2020 eingestellt.
Zitat von: satprofi am 26 Februar 2025, 10:05:06Wie muss ich das in der myUtils formatieren/eintragen?
Die doppelten Anführungszeichen schützen
fhem("\"python2 /usr/local/bin/10Amp.py\"")
https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html
Wobei es zweifelhaft ist es über fhem() zu machen. Allerdings blockiert der Aufruf so nicht, qx() blockiert. system() wäre eine nicht blockierende, direkte Alternative in Perl.
Gruß Otto
Danke
Zitat von: betateilchen am 26 Februar 2025, 10:09:43Mit fhem() führt man FHEM-Befehle aus, nicht Betriebssystemkommandos.
Am einfachsten geht es mit qx()
qx(python2 /usr/local/bin/10Amp.py)
Wobei es notwendig sein kann, den kompletten Pfad zur ausführbaren Datei - hier: python2 - anzugeben.
Aber nur am Rande angemerkt: python2 ist doch finsterstes Mittelalter? Das wurde Anfang 2020 eingestellt.
hab eh python 3.x laufen, aber nur python2 im befehl startet das script.