FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Maxl am 03 Januar 2015, 18:02:24

Titel: Command Button Linux Script ausführen
Beitrag von: Maxl am 03 Januar 2015, 18:02:24
Hallo,

ich möchte mir einen Button ein Linux-File ausführen, aber leider mache ich irgendetwas falsch.
Ich hätte es so versucht in die fhem.cfg einzutragen; die Files werden aber irgendwie nicht ausgeführt. Fehler bekomme ich keine.

define EMA dummy
attr EMA room Experiment
attr EMA eventMap /on:Activ/off:Inactiv/
attr EMA webCmd on:off

define Dummy_Schalten notify EMA:webCmd.* {\
if ("%" eq "on"){ fhem `/opt/fhem/./rr_start`;;\
}else{ fhem `/opt/fhem/./rr_stop`;;\
}}

attr Dummy_Schalten room Experiment

in den Files steht:

>> rr_start.bat
sudo /etc/init.d/./rocraild start

bzw.

>> rr_stop.bat
sudo /etc/init.d/./rocraild stop

hätte es auch mit direktem Aufruf versucht --> system(sudo /etc/init.d/./rocraild stop);; geht ebenfalls nicht, die Rechte in diesem Verzeichnis sind für alle freigegeben

Kann mir jemand weiterhelfen?

Gruß
maha04
Titel: Antw:Command Button Linux Script ausführen
Beitrag von: Puschel74 am 03 Januar 2015, 18:16:37
Hallo,

versuch statt dem
EMA:webCmd
das
EMA:on.*
Und lass die Finger von der fhem.cfg  ;)

Versuch mal das im DEF deines notify:
EMA:on.* {
if ($EVENT eq "on"){
  fhem `/opt/fhem/./rr_start`;
}
else {
  fhem `/opt/fhem/./rr_stop`;
}
}

Das $EVENT eq "on" kannst du dir auch sparen da das notify nur auf on hört.

Grüße
Titel: Antw:Command Button Linux Script ausführen
Beitrag von: Maxl am 03 Januar 2015, 20:00:58
Hallo,

nun abgeändert:

define Dummy_Schalten notify EMA:on.* {\
if ("%"){ system(sudo /etc/init.d/./rocraild start);;\
}else{ system(sudo /etc/init.d/./rocraild stop);;\
}}


es kommt kein Fehler, nur die scripts welche gestartet werden sollen werden trotzdem nicht ausgeführt.

Was soll heißen
ZitatUnd lass die Finger von der fhem.cfg  ;)

Gruß

Titel: Antw:Command Button Linux Script ausführen
Beitrag von: der-Lolo am 03 Januar 2015, 20:02:49
stimmen die Rechte?
Titel: Antw:Command Button Linux Script ausführen
Beitrag von: Maxl am 03 Januar 2015, 21:07:34
Hallo,

es funktioniert zum Teil mit

define Dummy_Schalten notify EMA:on.* { if("%" eq "on"){ fhem `/etc/init.d/./rocraild start`;; } else { fhem `/etc/init.d/./rocraild stop`;; } }
attr Dummy_Schalten room Experiment


oder auch so

define Dummy_Schalten notify (EMA:on.*|EMA:off.*) {if ("%") {system("/etc/init.d/./rocraild start");;} else {system("/etc/init.d/./rocraild stop");;} }


ich bekomme nur die Fehlermeldung im log-File

2015.01.03 21:05:29 3: Starting Rocrail (> /opt/rocrail/nohup.out)
: Unknown command Starting, try help.
2015.01.03 21:05:29 3: Dummy_Schalten return value: Unknown command Starting, try help.

bzw.

2015.01.03 21:20:57 3: Dummy_Schalten return value: -1

wenn ich wieder auf AUS schalte passiert leider aber nichts

Grüße