[GELÖST]Shell/Python Script ausführen (via Dummy / system{})

Begonnen von thomka, 16 Dezember 2013, 22:05:47

Vorheriges Thema - Nächstes Thema

thomka

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

MarkusN

Versuch es mal mit folgendem:

{system ("/fhem/elro_1_on.sh &")}

thomka

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

ollir

#3
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

thomka

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

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Jaydee

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

Jaydee

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...

thomka

#8
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

thomka

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

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

thomka

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

Wernieman

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)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

thomka

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

Wernieman

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 ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

masterpete23

Gibt es hierzu noch eine Antwort?
etc sudoers wäre schade

Holgi0815

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

Wernieman

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?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Holgi0815

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

Wernieman

Der Titel steht auf [gelöst]? Wie hast Du es jetzt gelöst?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Holgi0815

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" ;-)

Wernieman

Du hast 2 mal mit "-c" gepostet. Das erste stimmt ja so,   was ist der Unterschied zum 2. im Aufruf?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MacisHere

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?

chr2k

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

Otto123

Das hier diskutierte mit den Rechten für sudo hast Du beachtet?

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

chr2k

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?

Otto123

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
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

no_Legend

Kann man auch eine init script per DOIF starten?
Hier auch mit der übergabe start stop restart.

Eventuell auch per Ubuntu Services?

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Otto123

DOIF unterscheidet sich da nicht vom restlichen FHEM. Warum sollte man kein script aus DOIF starten können?

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

no_Legend

#29
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
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

hellspawn0815

#30
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:


  • Den Benutzer fhem habe ich nicht der Gruppe root hinzugefügt, wie es thomka beschrieben hatte. Ich habe da ähnliche bedenken wie Wernieman. Ich habe stattdessen den Benutzer fhem der Gruppe gpio hinzugefügt. Dieser Gruppe muss man angehören wenn man unter /sys/class/gpio die Pins steuern will. Und da mit der fhem.cfg der Benutzer fhem versucht die GPIOs zu steuern, braucht der halt Zugriffsrechte. Dafür zum root werden, die Datei editieren, dort den bestehenden "gpio"-Eintrag suchen und dahinter ein ",fhem" ohne "") dranhängen
sudo nano /etc/group
   gpio:x:997:pi,fhem      << nur ",fhem" (ohne "") anhängen!! Dann speichern und schließen
reboot

  • Ich musste die /etc/sudoers verändern. Aber nicht so wie es thomka beschrieben hatte. Bei mir hat es gereicht den Benutzer fhem genauso einzurichten wie den Benutzer pi (Danach natürlich noch einen reboot). Bei mir sieht die Datei nun u.a. so aus:
pi ALL=(ALL) NOPASSWD: ALL
fhem ALL=(ALL) NOPASSWD: ALL

  • Meine fhem.cfg-coding sieht so aus (Man beachte: Für den Python-Aufruf benötige ich kein sudo):
# 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&');;}


hellspawn0815

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:

  • Mit dem nano in meine gpio.py rein und in der ersten Zeile dies hier eintragen:
#!/usr/bin/env python

  • Nun noch die Datei ausführbar machen:
chmod +x gpio.py
  • Jetzt kann im Terminal das Script ohne den "python"-Zusatz aufgerufen werden, nämlich so:
/opt/fhem/gpio.py 37 0
/opt/fhem/gpio.py 37 1


  • Daher kann der Aufruf in der fhem.cfg nun so aussehen:
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

sascha.m

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?

Otto123

Ich denke nur das Internal STATE wird in der Ansicht nicht aktualisiert. F5 im Browser gedrückt?

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

sascha.m

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?

Otto123

#35
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 definiert.
Das devStateIcon wird vom Internal STATE gesetzt da nichts weiter definiert ist.

state -> STATE -> devStateIcon

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

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

Wernieman

@sascha:
Unabhängig davon:
Würde Dir empfehlen, als Usernamen NICHT Deine EMail zu nehmen ... das lockt Spammer an ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

sascha.m

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 definiert.
Das devStateIcon wird vom Internal STATE gesetzt 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)

Otto123

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
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

Wernieman

Naja .. wenn das Script in richtige Shebang Zeile hat, würde es auch ausgeführt werden ...
https://de.wikipedia.org/wiki/Shebang
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

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

Wernieman

Das und das FHEM es lesen kann, habe ich einfach mal vorrausgesetzt
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html