FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thomka am 16 Dezember 2013, 22:05:47

Titel: [GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 16 Dezember 2013, 22:05:47
Hallo Community,

ich versuche irgendwie schon seit längerem ein python bzw. Shell-script per FHEM auszuführen zu lassen:

in der fhem.cfg habe ich folgendes definiert:

define Lichtleiste dummy
attr Lichtleiste webCmd on:off
define sw_ll_off notify Lichtleiste:off {system "/fhem/elro_1_off.sh&"}
define sw_ll_on notify Lichtleiste:on {system "/fhem/elro_1_on.sh&"}


Im Ordner /opt/fhem liegt des elro_1_on.sh und off.sh script. Führe ich diese unter dem user PI (Putty) aus, funkrionert es tadellos.

Das Logfile gibt leider auch kaum was her:
2013.12.16 21:58:47 3: sw_ll_on return value: -1
2013.12.16 21:58:49 3: sw_ll_on return value: -1
2013.12.16 21:58:51 3: sw_ll_on return value: -1
2013.12.16 21:58:52 3: sw_ll_on return value: -1
2013.12.16 21:58:53 3: sw_ll_on return value: -1
2013.12.16 21:58:54 3: sw_ll_off return value: -1
2013.12.16 21:58:55 3: sw_ll_off return value: -1
2013.12.16 21:58:57 3: sw_ll_on return value: -1


Auf OS-Ebene haben die Scripte CHMOD 755 bekommen. Auch die im Script gerufene .py Datei hat chmod 755.

Hat vielleicht noch wer eine Idee, was ich machen kann, damit ich das Script per FHEM ausführen kann?

Danke und Grüße,
Thomas
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: MarkusN am 16 Dezember 2013, 22:42:24
Versuch es mal mit folgendem:

{system ("/fhem/elro_1_on.sh &")}
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 16 Dezember 2013, 22:52:44
Hallo Markus,

Danke für die schnelle Hilfe - es funktioniert jedoch leider immer noch nicht :-(

2013.12.16 22:50:20 3: sw_ll_on return value: -1
2013.12.16 22:50:22 3: sw_ll_on return value: -1
2013.12.16 22:50:35 3: sw_ll_on return value: -1
2013.12.16 22:50:37 3: sw_ll_on return value: -1
2013.12.16 22:50:38 3: sw_ll_on return value: -1
2013.12.16 22:51:39 3: sw_ll_off return value: -1
2013.12.16 22:51:42 3: sw_ll_off return value: -1
2013.12.16 22:51:44 3: sw_ll_off return value: -1
2013.12.16 22:51:45 3: sw_ll_off return value: -1
2013.12.16 22:51:46 3: sw_ll_off return value: -1
2013.12.16 22:51:48 3: sw_ll_off return value: -1
2013.12.16 22:51:49 3: sw_ll_off return value: -1


Grüße,
Thomas
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: ollir am 17 Dezember 2013, 07:48:40
Hallo,

so wie du schreibt liegt der fhem-Ordner nicht unter /opt/fhem/... etc. sonder direkt in der Hauptebene.

Müsste dann {system ("./elro_1_on.sh &")} oder ähnlich sein
-oder du gibst den kompletten Pfad an:{system ("/opt/fhem/elro_1_on.sh &")}

VG
Olaf
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 18 Dezember 2013, 10:13:36
Hallo Olaf,

Danke für den Hinweis. Ich habe ihn natürlich gleich umgesetzt - ohne Erfolg  :(

weder der direkte Aufruf mit ./ noch der via Pfad mit /opt...

VG
Thomas
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Puschel74 am 18 Dezember 2013, 10:19:40
Hallo,

ZitatFühre ich diese unter dem user PI (Putty) aus, funkrionert es tadellos.

Soweit mir bekannt besitzt der "User" PI root-Rechte.
FHEM hat allerdings nur einfacher Userrechte.

Stell dem Aufruf doch mal ein sudo vorne dran - was passiert dann?
{system ("sudo ./elro_1_on.sh &")}

Grüsse
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Jaydee am 18 Dezember 2013, 10:21:36
vielleicht liegt es daran, was das Skript tun soll...

Hat der User fhem dafür die Rechte? Also nicht für die Ausführbarkeit des Skriptes, sodern das zu tun, was IM Skript steht? So Sachen wie auf GPIOs oder SPI zuzugreifen sind nämlich auf dem Pi  etwas kniffelig, was die Rechte angeht.

Teste den FHEM-Aufruf, vielleicht erstmal mit etwas was definitiv erlaubt ist, wie zum Beispiel in eine (erlaubte) Textdatei schreiben...

Gruß
Jan
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Jaydee am 18 Dezember 2013, 10:23:05
Ah, Puschel74 war schneller :-)

Soweit ich weiß ist fhem aber out-of-the-box nicht sudo-berechtigt. Da müsste zuvor erst noch was geändert werden...
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 18 Dezember 2013, 10:45:34
Hallo,

Danke für die raschen Antworten. Ich habe vor einigen Tagen, hoffentlich korrekt, den user fhem in die Gruppe root reingepackt:

nano /etc/group

dort in der ersten Zeile einfach mein fhem dazu geschrieben:

root:x:0:fhem,pi

damit sollte doch der User FHEM der Gruppe root angehören und im Umkehrschluss sollte es doch keine Berechtigungsprobleme geben, oder?


----
Im Script selber greife ich auf den GPIO 17 zu. Dazu habe ich in der /etc/rc.local folgende Änderungen vorgenommen:


sudo -u pi /usr/local/bin/gpio export 17 out
sudo -u fhem /usr/local/bin/gpio export 17 out


die Scripte im /opt/fhem Ordner habe ich auch bereits per


sudo chown fhem elro_1_on.sh
sudo chown fhem elro_1_off.sh
sudo chown fhem elro.py


dem User FHEM übergeben.

Die Shell-Scripte sind eigentlich nur Einzeiler, welche das Python Script mit bestimmten Parametern aufrufen. ... Das war auch schon ein Schritt meiner Fehlersuche (Pythonscript-Aufruf mit Parametern in ein Shell Script zu packen) um Probleme bei der Parameterübergabe auszuschließen.

elro_1_on.sh:

#!/bin/sh
python elro_wiringpi.py 8 1



VG,
Thomas
Titel: Antw:Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 18 Dezember 2013, 11:47:44
Ok, ich habe den Fehler gefunden:


define Lichtleiste dummy
attr Lichtleiste webCmd on:off
define sw_ll_off notify Lichtleiste:off {system('sudo /opt/fhem/elro_1_off.sh&');;}
define sw_ll_on notify Lichtleiste:on {system('sudo /opt/fhem/elro_1_on.sh&');;}


mit diesem Code funktioniert das Schalten!

Danke Euch allen für die Unterstützung

VG
Thomas
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Puschel74 am 18 Dezember 2013, 11:51:26
Hallo,

Zitatsystem('sudo /opt/fhem/elro_1_off.sh&');;

Was einfache Anführungszeichen alles ausmachen können  ;)

Aber schön das es jetzt klappt.

Grüsse

P.S.: Könntest du deinen ersten Beitrag bitte editieren und ein Gelöst vorne dran stellen? Danke
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 07 Januar 2014, 20:59:59
Nachtrag:

das ganze funktioniert noch nicht ganz wie beschrieben - wir haben eben herausgefunden, dass trotzdem ein Berechtigungsproblem besteht:
man muss noch die /etc/sudoers modifizieren. Mit folgenden Einträgen funktioniert es bei mir:


# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
fhem    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
fhem ALL=(ALL) NOPASSWD: ALL
pi ALL=(ALL) NOPASSWD: ALL


Anschliessend ein Reboot und dann sollte es klappen

Grüße,
Thomas
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 07 Januar 2014, 21:17:27
Kleiner (nicht unwesentlicher) Hinweis:
fhem ist mit Deinem sudo praktisch root-Berechtigt ... muß das wirklich so sein?

Kannst Du rausfinden, welche Rechte Dein fhem braucht, um das Script auszuführen? Dann könntest Du Ihm genau diese geben (und nicht mehr)
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: thomka am 07 Januar 2014, 21:56:23
Ja ich bin mir dessen bewusst, dass mein FHEM User nun die entsprechenden Berechtigungen hat. Da FHEM auf meinem Raspi läuft - und auch nur FHEM auf diesem Raspi läuft - stellt das für mich derzeitig kein Problem dar. Der Raspi und auch FHEM sind nicht von aussen erreichbar (ich wähle mich per VPN in mein Netzwerk und arbeite quasi im lokalen LAN).

Evtl. kannst du mich über die Nachteile dieser (Berechtigungs)-Konfiguration aufklären (speziell für meine Situation?!)

Danke und Grüße,
Thomas
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 07 Januar 2014, 22:04:04
Naja .. eigentlich versucht man unter Unix  jedem user nur die benötigten rechte zu geben. Deshalb hast Du auf deinem Pi ja auch den fhem user.

Das problem ist primär security, wenn es jemand schat auf deinem Ffhem zu kommen, kann er diesen konfigurieren und amit "praktisch" root-Befehl setzen. Wenn der fhem dagegen weniger rechte hat ...

Es könnte natürlich im "Fehlerfalle", also der fhem "dreht durch" auch weniger kaputt gehen, wenn er weniger Rechte hat.

Wenn natürlich wirklich "nur" fhm auf Deinem Pi läuft ....  trotzdem würde (ich persöhnlich) mir die Mühe machen, es einzuschränken. Da ich nur kein Pi habe, kann ich Dir beim Suchen der einstellungen nichts helfen ... man müste wissen, das Deine Befehle (/opt/fhem/elro_1_off) wirklich machen, d.h. welche Device sie ansprechen ...
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: masterpete23 am 24 Januar 2014, 07:27:27
Gibt es hierzu noch eine Antwort?
etc sudoers wäre schade
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Holgi0815 am 20 Februar 2014, 20:11:22
Hi,

dank dieses Beitrages habe ich meine Anforderung hinbekommen!!
Ich bekomme nur eine weiter Übergabe von Options (hier  -l deu -m p ) nicht hin.
Bsp:
Linux
:~/Scan/1_Scripte$ ./scan_to_ocr_pdf.sh -l deu -m p
geht

fhem>Linux
system('su USER /home/USER/Scan/1_Scripte/scan_to_ocr_pdf.sh -l deu -m p&');; Script wird ausgeführt, aber im Log zum Script ist erkennbar, daß -l $$ und -m $$ leer sind.

Habt Ihr noch Tipps?!
Danke Holger
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 20 Februar 2014, 20:57:54
1. Ich würde Dir empfehlen:
su - USER
Das - bewirkt, das die Umgebung von User geladen wird, sonst erfolgt dieses nicht, d.h. die "aktuelle" Version wird verwendet

2. Verwende lieber die "Originale Schreibweise" mit -c, also
su - USER -c "/home/USER/Scan/1_Scripte/scan_to_ocr_pdf.sh -l deu -m p&"

Ich weiß nicht, ob in Deiner Schreibweise in jedem Fall die Parameter -l, -m von su oder Deinem Script übergeben werden. So wie Deine Probleme klingen, würde ich genau auf dieses Problem Tippen

3. Funktioniert denn Deine Kommandozeile als "FHEM"-User auf der Kommandozeile? Mal Händisch probiert?
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Holgi0815 am 20 Februar 2014, 21:48:33
also:
ich hab mal weiter "geechot":
zu 1
su - USER
hat keine Auswirkung, aber gut zu wissen

zu 2
-c
"verschlechtert" das Ergebnis -> im verfeinerten Log kann ich jetzt sehen, daß mit -c nichts ankommt.
echo  "$1">&2
echo  "$2">&2
echo  "$3">&2
echo  "$4">&2

ergibt:
console:
-l
deu
-m
p

fhem ohne "-c"deu
p
-leer-
-leer-

fhem mit "-c"-leer-
-leer-
-leer-
-leer-

in allen Fällen wird das log geschrieben, die Sritp-Ausführung ist also OK

Danke schonmal
Holger
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 21 Februar 2014, 07:56:39
Der Titel steht auf [gelöst]? Wie hast Du es jetzt gelöst?
Titel: Antw:[teilweise/GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Holgi0815 am 21 Februar 2014, 08:32:10
moin,
nee, das war von meinem Vorgänger, also, wie man überhaupt ein Script zum laufen bekommt!
ich hab mal etwas abgeändert...
Holger
edit:
btw: meine Problematik kann ich natürlich mit verschiedenen Startscripten, die dann das eigentliche Sript rufen, lösen.
gefühlt, ist das aber "unhübsch" ;-)
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 21 Februar 2014, 08:46:14
Du hast 2 mal mit "-c" gepostet. Das erste stimmt ja so,   was ist der Unterschied zum 2. im Aufruf?
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: MacisHere am 12 Mai 2014, 21:14:46
Hallo zusammen,
ich scheitere derzeit daran, aus FHEM heraus einen Python3-Einzeiler aufzurufen. Von der Kommandozeile aus funktioniert der Aufruf (Relais auf PiFace schalten).
Ich rufe das auf mit
{system('python3 /home/pi/Scripts/PiFaceOut_on.py');;}

Auch
{system("python3 /home/pi/Scripts/PiFaceOut_on.py");;}
funktioniert nicht.

Vielleicht hat jemand nen Tip?
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: chr2k am 30 August 2015, 13:34:17
Auch ich bin gerade dran ein python script via fhem zu starten. Leider habe ich ähnliche Probleme wie der Thread Starter und MacisHere.

Es wird mir auch die "-1" angezeigt. Aber der GPIO und die daran (richtig) angeschloseene LED leuchten nicht. Wenn ich das Script per Python ausführe klappt es. Auch über die Kommandozeile des Raspian Systems klappt es.

Auch die Änderung zwischen " und ' hat nicht funktioniert - Außer dass mir immer "-1" angezeigt wird.

Ich muss das Python Script mit sudo starten, da GPIOs angesprochen werden.

Im Log von FHEM steht folgende Zeile:
sudo: no tty present and no askpass program specified

Irgendwie liest sich das für mich, als würden noch Pakete fehlen, die ich in FHEM installieren muss. Stimmt das?

Danke Euch.

Gruß
Christian
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 30 August 2015, 17:15:48
Das hier diskutierte mit den Rechten für sudo hast Du beachtet?

Gruß Otto
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: chr2k am 30 August 2015, 18:04:39
Zitat von: Otto123 am 30 August 2015, 17:15:48
Das hier diskutierte mit den Rechten für sudo hast Du beachtet?

ay Karamba, da ist mir doch die untere Zeile im sudoers durch die Lappen gegangen.

Nunja, jetzt läuft halt alles als SU... fürs erste Ok.


Ich lese gerade in deiner SIgnatur dass du die Fritzbox benutzt. Für FHEM?
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 30 August 2015, 22:05:32
Hallo Christian,

ZitatIch lese gerade in deiner SIgnatur dass du die Fritzbox benutzt. Für FHEM?
hatte ich, als zweite Instanz wegen der Anwesenheitserkennung. Mittlerweile nicht mehr...
Diese Thema und die Umstellung kannst Du ziemlich gut auf meinem Blog nachlesen.

Gruß Otto
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: no_Legend am 29 Oktober 2015, 12:27:15
Kann man auch eine init script per DOIF starten?
Hier auch mit der übergabe start stop restart.

Eventuell auch per Ubuntu Services?

Gruß Robert
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 29 Oktober 2015, 14:27:37
DOIF  (http://fhem.de/commandref_DE.html#DOIF)unterscheidet sich da nicht vom restlichen FHEM. Warum sollte man kein script aus DOIF starten können?

Gruß Otto
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: no_Legend am 29 Oktober 2015, 14:57:35
Ich bekomm es einfach nicht hin.

Hintergrund ist, dass ich mir Homebridge eingerichtet habe und momentan per Konsole den Dienst immer restarten muss.

Nun würde ich gerne in das DOIF den Befehl sudo service homebridge start schicken.
Bekomme es aber nicht hin.
Hier wie ich es mri gedacht habe:


([FHEM.Homebrige] eq "on") ({system ('sudo service homebridge start')})



Edit: Habs nu n hinbekommen, hab vergessen das Script fur fhem freizugeben in der sudoers.

Danke und Gruß Robert
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: hellspawn0815 am 19 Dezember 2015, 14:29:08
Moin zusammen!

Hab mich hier extra registriert um mal Feedback zu geben ;D Danke zunächst mal an alle, mit euch habe ich es zum laufen bekommen.

Bei mir hat es mit folgenden Änderungen geklappt:

sudo nano /etc/group
   gpio:x:997:pi,fhem      << nur ",fhem" (ohne "") anhängen!! Dann speichern und schließen
reboot
pi ALL=(ALL) NOPASSWD: ALL
fhem ALL=(ALL) NOPASSWD: ALL
# Muss einmal definiert werden, kA warum
attr global userattr webCmd

# Lichtleiste
define Lichtleiste dummy
attr Lichtleiste room Arbeitszimmer
attr Lichtleiste webCmd on:off
define sw_ll_off notify Lichtleiste:off {system('python /opt/fhem/relais.py&');;}
define sw_ll_on notify Lichtleiste:on {system('python /opt/fhem/relais.py&');;}

Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: hellspawn0815 am 19 Dezember 2015, 16:18:47
Ich nochmal.

Ich habe noch etwas herausgefunden. Ich habe auch ein wenig mit "echo" experimentiert und geguckt wieviele Parameter mitgegeben werden können.
define Lichtleiste dummy
attr Lichtleiste room Arbeitszimmer
attr Lichtleiste webCmd on:off
define sw_ll_off notify Lichtleiste:off {system('/opt/fhem/test.sh 1 2 3 4&');;}
define sw_ll_on notify Lichtleiste:on {system('/opt/fhem/test.sh 1 2 3 4&');;}


Die test.sh schreibt die übergebenen Parameter in eine Logdatei weg. Ergebnis: Es werden nur "1" und "2" übergeben. Ich bin der Meinung, dass die Funktion system() nur 3 Argumente aufnehmen kann. In diesem Fall wäre das erste Argument: /opt/fhem/test.sh, das zweite Argument wäre 1 und das dritte Argument 2.

Mein Script namens gpio.py benötigt um meine Pins anzusteuern 2 Parameter. Der Aufruf im Terminal läuft so:
python /opt/fhem/gpio.py 37 0
python /opt/fhem/gpio.py 37 1

In der fhem.cfg würde das so aussehen
define Lichtleiste dummy
attr Lichtleiste room Arbeitszimmer
attr Lichtleiste webCmd on:off
define sw_ll_off notify Lichtleiste:off {system('python /opt/fhem/gpio.py 37 0&');;}
define sw_ll_on notify Lichtleiste:on {system('python /opt/fhem/gpio.py 37 1&');;}

Das ist aber ein Problem, denn in der fhem.cfg bekommt die Methode system() nun insgesamt 4 Parameter übergeben.


Die Lösung ist denkbar einfach:
#!/usr/bin/env python
chmod +x gpio.py
/opt/fhem/gpio.py 37 0
/opt/fhem/gpio.py 37 1

define Lichtleiste dummy
attr Lichtleiste room Arbeitszimmer
attr Lichtleiste webCmd on:off
define sw_ll_off notify Lichtleiste:off {system('/opt/fhem/gpio.py 37 0&');;}
define sw_ll_on notify Lichtleiste:on {system('/opt/fhem/gpio.py 37 1&');;}


Jetzt klappt es auch mit dem Python-Script  ;D
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: sascha.m am 08 April 2020, 16:00:54
Zitat von: hellspawn0815 am 19 Dezember 2015, 16:18:47

[/code]/opt/fhem/gpio.py 37 1[/code]

  • Daher kann der Aufruf in der fhem.cfg nun so aussehen:
define Lampe_Nepal dummy
attr Lampe_Nepal room Zimmer
attr Lampe_Nepal webCmd on:off
define sw_ll_off notify Lampe_Nepal:off {system('/opt/fhem/send_Int.py b_off&');;}
define sw_ll_on notify Lampe_Nepal:on {system('/opt/fhem/send_Int.py b_on&');;}


Hallo @hellspawn0815,
vielen Dank für deine ausführliche Beschreibgung. Ich habe mein eigenes Python Script mit den Parameteren "b_off" und "b_on" geschrieben. In Putty funktionieren die Befehle:
/opt/fhem/send_Int.py b_off
/opt/fhem/send_Int.py b_on

Leider nicht in FHEM:
FHEM_1.jpg: Der STATE steht auf "off", trotz schalten
FHEM_2.jpg: Nach dem Einfügen des define-commands in die Konsole wurden die ";;" in ein Simokilon geändert. Dieses habe ich händisch zurückgetragen Lampe_Nepal:on {system('/opt/fhem/send_Int.py b_on&');;}
Leider geht es trotzdem nicht. Der Log gibt nicht viel her:

2020.04.02 15:17:13 1: Including fhem.cfg
2020.04.02 15:17:15 3: WEB: port 8083 opened
2020.04.02 15:17:15 2: eventTypes: loaded 0 events from ./log/eventTypes.txt
2020.04.02 15:17:15 1: usb create starting
2020.04.02 15:17:15 3: Probing ZWDongle device /dev/serial1
2020.04.02 15:17:16 3: Probing CUL device /dev/ttyAMA0
2020.04.02 15:17:16 3: Probing TCM_ESP3 device /dev/ttyAMA0
2020.04.02 15:17:16 3: Probing ZWDongle device /dev/ttyAMA0
2020.04.02 15:17:16 3: Probing SIGNALDuino device /dev/ttyAMA0
2020.04.02 15:17:16 3: Probing MYSENSORS device /dev/ttyAMA0
2020.04.02 15:17:16 3: Probing ArduCounter device /dev/ttyAMA0
2020.04.02 15:17:17 3: Probing ElsnerWS device /dev/ttyAMA0
2020.04.02 15:17:18 3: Probing FRM device /dev/ttyAMA0
2020.04.02 15:17:23 1: usb create end
2020.04.02 15:17:23 0: Featurelevel: 6
2020.04.02 15:17:23 0: Server started with 6 defined entities (fhem.pl:21056/2020-01-26 perl:5.024001 os:linux user:fhem pid:630)

Hast du/habt ihr eine Idee an was das liegen könnte?
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 08 April 2020, 16:06:48
Ich denke nur das Internal STATE wird in der Ansicht nicht aktualisiert. F5 im Browser gedrückt?

Gruß Otto
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: sascha.m am 13 April 2020, 19:08:45
Hallo @Otto,
ich habe die FHEM-Seite mit f5 aktualisiert.

Leider gibt FHEM den Befehl nicht durch (oder ich habe irgendwo einen Fehler drin). Hast du noch eine Idee an was das liegen kann?
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 13 April 2020, 19:29:02
Mit der Frage kann ich wenig anfangen. Was ich sehe und glaube zu wissen:
Es ist ein Dummy
Das Reading state ist auf on, die Lampe ist on und leuchtet. Dahinter gibt es folgende Zusammenhänge:
Das Internal STATE wird von state übernommen, da kein stateFormat  (https://fhem.de/commandref_DE.html#stateFormat)definiert.
Das devStateIcon wird vom Internal STATE gesetzt  (https://fhem.de/commandref_DE.html#devStateIcon) da nichts weiter definiert ist.

state -> STATE -> devStateIcon

Warum STATE in deinem Bild etwas anderes zeigt kann ich nicht erklären.

Gruß Otto
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 13 April 2020, 19:33:48
@sascha:
Unabhängig davon:
Würde Dir empfehlen, als Usernamen NICHT Deine EMail zu nehmen ... das lockt Spammer an ....
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: sascha.m am 18 April 2020, 14:38:22
Zitat von: Otto123 am 13 April 2020, 19:29:02
Mit der Frage kann ich wenig anfangen. Was ich sehe und glaube zu wissen:
Es ist ein Dummy
Das Reading state ist auf on, die Lampe ist on und leuchtet. Dahinter gibt es folgende Zusammenhänge:
Das Internal STATE wird von state übernommen, da kein stateFormat  (https://fhem.de/commandref_DE.html#stateFormat)definiert.
Das devStateIcon wird vom Internal STATE gesetzt  (https://fhem.de/commandref_DE.html#devStateIcon) da nichts weiter definiert ist.

state -> STATE -> devStateIcon

Warum STATE in deinem Bild etwas anderes zeigt kann ich nicht erklären.

Gruß Otto

Hallo Otto,
der "internal state" kann mit f5 aktualisiert werden.

Mein Problem ist, dass das Pythonscript mit dem Befehl nicht funktioniert. FHEM schickt es entweder den Pythonbefehl nicht weiter ans System (im System funktioniert dieser ja) oder es fehlen noch Abhängigkeiten.

Kannst du mir da weiterhelfen?

(@werniman, danke für den Hinweis. Habe ich natürlich gleich geändert)
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 18 April 2020, 19:39:52
Also das Problem liegt hier?:
{system('/opt/fhem/send_Int.py b_on&');;}
Das Script funktioniert, aber der Aufruf unter FHEM klappt nicht - richtig?

Der user fhem hat typischerweise keine Umgebung. Also wird er wohl das py Script gar nicht erst ausführen? Steht dazu nichts im Log?
Ich würde den Aufruf so machen:
"/usr/bin/python /opt/fhem/send_Int.py b_on"
Also ohne {system()}! Es ist wichtig die Anführungszeichen nicht wegzulassen oder so: Also deine Zeile durch meine Zeile ersetzen. So wird das Script auch nicht blockierend ausgeführt. Steht auch alles in der commandref :)

Gruß Otto
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 18 April 2020, 20:40:04
Naja .. wenn das Script in richtige Shebang Zeile hat, würde es auch ausgeführt werden ...
https://de.wikipedia.org/wiki/Shebang (https://de.wikipedia.org/wiki/Shebang)
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Otto123 am 18 April 2020, 20:50:11
Falls das script executable für fhem ist :)
Titel: Antw:[GELÖST]Shell/Python Script ausführen (via Dummy / system{})
Beitrag von: Wernieman am 18 April 2020, 20:52:56
Das und das FHEM es lesen kann, habe ich einfach mal vorrausgesetzt