[gelöst]Wie rufe ich aus einer Sub (in 99_myUtils.pm) ein (Bash)-Programm auf?

Begonnen von tklein, 03 März 2017, 22:22:20

Vorheriges Thema - Nächstes Thema

CoolTux

Oder so. Das wäre dann Aufruf in Perl. Durch das & am Ende wird der Scriptaufruf als Hintergrundprozess deklariert und blockiert somit FHEM nicht.

Danke Danke für den anderen Weg.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Zitat von: CoolTux am 04 März 2017, 11:30:10
Oder so. Das wäre dann Aufruf in Perl. Durch das & am Ende wird der Scriptaufruf als Hintergrundprozess deklariert und blockiert somit FHEM nicht.

Danke Danke für den anderen Weg.

Genau und gerne! 8)

Mit dem & hat allerdings den Nachteil dass man auch keine Rückmeldung mehr vom aufgerufenen Skript bekommt.
Dazu müsste man das dann alles bekanntlich in einen BlockingCall stecken.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

automatisierer

Zitat von: DeeSPe am 04 März 2017, 11:35:35
Mit dem & hat allerdings den Nachteil dass man auch keine Rückmeldung mehr vom aufgerufenen Skript bekommt.
Dazu müsste man das dann alles bekanntlich in einen BlockingCall stecken.

ist das denn bei Funktions-Aufrufen aus der myUtils auch so? dachte die wären eh nonBlocking.

tklein

`/opt/fhem/FhemUtils/ir_send.sh &`;

die Zeile wird bei mir gar nicht ausgeführt
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Geht das in der FHEM Eingabezeile?
{`/opt/fhem/FhemUtils/ir_send.sh &`}

Berechtigungen? sudo?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Zitat von: automatisierer am 04 März 2017, 12:10:30
ist das denn bei Funktions-Aufrufen aus der myUtils auch so? dachte die wären eh nonBlocking.

Wenn die Funktionen was Blockierendes aufrufen, dann blockiert FHEM halt auch.
In welchem Modul die Funktionen stehen spielt dabei keine Rolle.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tklein

{`/opt/fhem/FhemUtils/ir_send.sh &`}

--> nichts im Log via Befehlszeile


{`sudo /opt/fhem/FhemUtils/ir_send.sh &`}

Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Resprektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben


{system('sudo /opt/fhem/FHEM/FhemUtils/ir_send.sh&');;}
--> Ausgabe von -1 jedoch kein Schaltvorgang
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Hat "/opt/fhem/FHEM/FhemUtils/ir_send.sh" Berechtigung von User fhem ausgeführt zu werden?
Ist innerhalb von "/opt/fhem/FHEM/FhemUtils/ir_send.sh" irgendetwas was "sudo" benötigt?
Wie und wo hast Du"/opt/fhem/FHEM/FhemUtils/ir_send.sh" schon einmal ausgeführt so dass es funktioniert hat?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tklein


Hat "/opt/fhem/FHEM/FhemUtils/ir_send.sh" Berechtigung von User fhem ausgeführt zu werden?
--> -rwxr-xr-x  1 root root      59 Mär  4 12:51 ir_send.sh

Ist innerhalb von "/opt/fhem/FHEM/FhemUtils/ir_send.sh" irgendetwas was "sudo" benötigt?
-->
#!/bin/sh
codesend 345425
irsend SEND_ONCE Denon KEY_POWER


Wie und wo hast Du"/opt/fhem/FHEM/FhemUtils/ir_send.sh" schon einmal ausgeführt so dass es funktioniert hat?
--> auf der Konsole mit dem User Pi
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Zitat von: tklein am 04 März 2017, 13:46:03
Wie und wo hast Du"/opt/fhem/FHEM/FhemUtils/ir_send.sh" schon einmal ausgeführt so dass es funktioniert hat?
--> auf der Konsole mit dem User Pi

Das wo ist damit beantwortet, aber nicht das wie! :o
Mit "sh /opt/fhem/FHEM/FhemUtils/ir_send.sh" oder "sudo /opt/fhem/FHEM/FhemUtils/ir_send.sh" oder "./opt/fhem/FHEM/FhemUtils/ir_send.sh"?
Haben codesend und irsend Berechtigungen von User fhem ausgeführt zu werden?
Evtl. ist es auch hilfreich die Pfade zu codesend und irsend mit anzugeben.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

tklein

ja, die Pfade werde ich mal mitgeben.

jetzt bekomme ich beim codesendbefehl: wiringPiSetup: Unable to open /dev/mem or /dev/gpiomem: Permission denied.
  Try running with sudo?

irsend klappt jetzt mit dem Skript via fhem.

Sorry für die nicht vollständige Antwort:

sh /opt/fhem/FhemUtils/ir_send.sh
--> klappt
sudo /opt/fhem/FhemUtils/ir_send.sh
--> klappt
./opt/fhem/FhemUtils/ir_send.sh
--> klappt nicht: -bash: ./opt/fhem/FhemUtils/ir_send.sh: Datei oder Verzeichnis nicht gefunden


FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

DeeSPe

Probier mal ob es reicht den User fhem mit in die Gruppe gpio zu stecken.
Wenn das nicht reicht musst Du wohl für User fhem sudo Rechte auf codesend vergeben.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tklein

dem kann ich mich nur anschliessen!!
"sudo adduser fhem gpio" hat ausgereicht. Jetzt klappt das mit dem vollständigen schalten :-)
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2