Hauptmenü

myUtils.pm

Begonnen von satprofi, 26 Februar 2025, 10:05:06

Vorheriges Thema - Nächstes Thema

satprofi

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
 
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

#2
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

satprofi

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

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.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram