Hallo Leute,
ich bin etwas am verzweifeln. Ich hoffe ihr könnt mir helfen.
fhem.cfg:
define test dummy
attr test room TEST
attr test setList on off
define foo notify test { system("echo \"Hallo\" ");; }
Wenn ich nun den Dummy schalte, erscheint folgendes im Log: foo return value: -1
Habe auch schon mit den ';' gespielt, aber immer das gleiche Ergebnis, dabei dachte ich, dass 'echo' ist noch eine einfache Übung.
Wollte ich doch eigentlich 'system("sudo /usr/sbin/i2cset -y 1 0x23 0x01")' absetzen...
hoffe ihr könnte mir helfen
Grüße
Owel
Hallo Owel,
system() liefert nicht den exit code zurück. Siehe hier http://www.perlhowto.com/executing_external_commands (http://www.perlhowto.com/executing_external_commands)
Du solltest backtics verwenden. Hab mich vor einiger Zeit auch damit rumgeschlagen.
ciao walter
Ah ok, danke dir,
jedenfalls funktioniert das system("sudo /usr/sbin/i2cset -y 1 0x23 0x01") aber trotzdem nicht.
kann ich das irgendwie debuggen?
Wenn ich das system("sudo /usr/sbin/i2cset -y 1 0x23 0x01") aber in ein "normales" perl skript einbaue, dann funktioniert das. Also wird wohl in der fhem syntax n Fehler sein. ???
läuft dein 'normales' perl script als gleicher benutzer mit den gleichen rechten wie fhem?
du kannst die ausgabe des sudo in ein file umleiten und da nachschauen.
gruss
andre
Hallo,
http://forum.fhem.de/index.php/topic,11957.msg71086.html#msg71086 (http://forum.fhem.de/index.php/topic,11957.msg71086.html#msg71086)
Ich habs ja auch geschafft den I2C über FHEM abzufragen ;)
Ich les mir jetzt aber nicht den gesamten Beitrag durch - ich kann nur sagen:
Bei mir klappt es einwandfrei
Grüße
Puschel, dein Beitrag hilft mir natürlich weiter.
Meinen nicht lesen, und dann einfach deinen Verlinken. Hab mir aber die Mühe gemacht den zu lesen, leider hat der mal gar nichts mit meinem Problem zu tun...
naja ich bin mal am weiter Probieren...
Hallo,
ZitatMeinen nicht lesen, und dann einfach deinen Verlinken.
Ich meinte eigentlich das ich "meinen" Beitrag nicht ganz durchgelesen habe.
Tut mir leid wenn du das falsch verstanden hast.
Ich hätt "meinen" aber besser mal durchgelesen.
Nachdem ich das in "deinem" Beitrag gesehen hatte
ZitatWollte ich doch eigentlich 'system("sudo /usr/sbin/i2cset -y 1 0x23 0x01")' absetzen...
bin ich davon ausgegangen das du einem I2C-Device über den RasPi-I2C etwas mitteilen möchtest.
Zitatleider hat der mal gar nichts mit meinem Problem zu tun...
Der "falsche" verlinkte Beitrag nicht aber der vielleicht
http://forum.fhem.de/index.php/topic,12328.msg80950.html#msg80950 (http://forum.fhem.de/index.php/topic,12328.msg80950.html#msg80950)
Es kann aber sein das ich wieder falsch liege - tut mir leid ich will dich nicht ärgern.
Zitatnaja ich bin mal am weiter Probieren...
Na dann.
Grüße
Hey kein Problem,
nur manchmal geht es in diesem Fourm doch etwas harsch zu. Da war ich nun ebenso :)
also ein 'sudo -u fhem perl foo.pl' funktioniert.
In foo.pl steht:
system("echo \"Hallo\" ");
system("sudo /usr/sbin/i2cset -y 1 0x23 0x01");
also glaube ich nicht dass es am user oder sudo rechte liegt.
Was kann es noch sein?
Grüße
Owel
ES TUT!
ich hab mal fhem zu sudoers hinzugefügt, und meine cfg sieht jetzt so aus
define test dummy
attr test room TEST
attr test setList on off
define foo notify test {`sudo i2cset -y 1 0x23 0x01`}
keine Ahnung was da jetzt anders ist, aber es tut. Klasse!