[Gelöst]Shell Befehl in DOIF Ausführungsteil

Begonnen von boesemani, 05 Juni 2017, 00:02:44

Vorheriges Thema - Nächstes Thema

boesemani

Ich möchte, sobald der Wert für eine Variable gesetzt (hier der Dummy POE_tinker) ist, das ein Shell Befehl ausgeführt wird, der ein POE-Port meines Switches hochschaltet. Der Shellbefehl alleine funktioniert in fhem auch. Nur in meinem DOIF scheint ein Problem zu sein, was ich nicht erkennen kann.

#define POE_Tinker_ein DOIF ([POE_tinker] eq "on") {system('snmpset -v2c -c private 192.168.179.100 1.3.6.1.2.1.105.1.1.1.3.1.3 i 1&');;()}
So nimmt fhem den Befehl gar nicht an

#define POE_Tinker_ein DOIF ([POE_tinker] eq "on") ({system('snmpset -v2c -c private 192.168.179.100 1.3.6.1.2.1.105.1.1.1.3.1.3 i 1&');;()})
So passiert nichts.
Jemand ne Idee?

amenomade

Bei mir funktionieren beide (allerdings mit system('ls &') als Befehl).
Was bedeutet
ZitatSo nimmt fhem den Befehl gar nicht an
? Was ist die Fehlermeldung?


EDIT: ein list vom DOIF wäre auch hilfreich.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KernSani

Idee Nr.1: code immer in code tags (das # oben im Editor), macht das Ganze lesbarer.
Idee Nr.2: Subject ändern in "Shell Befehl in DOIF Ausführungsteil)
Idee Nr.3: Was meinst du mit "So nimmt fhem den Befehl garnicht an"? Am besten postest du relevante Log-Einträge (wenn vorhanden) oder ein list des DOIF.
Idee Nr.4: system liefert vermutlich -1 zurück, was von DOIF als Fehler interpretiert wird... Probier das mal mit backticks (`)




RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

amenomade

ZitatIdee Nr.4: system liefert vermutlich -1 zurück, was von DOIF als Fehler interpretiert wird

Deswegen das ";;()" am Ende ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ellert


boesemani

Hallo Zusammen,
die vielen Hinweise konnte ich gerade verarbeiten. Vielen Dank für die Vorschläge.
Der Hinweis "SHELL-Befehle (diese müssen von doppelten Anführungszeichen "" eingeschlossen werden) " war sehr wertvoll, aber auch, das man Systembefehle lediglich in " " setzt.
Zu guter Letzt klammert das DOIF auch noch in () ein, so dass folgender, funktionierender Befehl resultiert:

#define POE_Tinker_aus DOIF ([POE_tinker] eq "off") ("snmpset -v2c -c private 192.168.179.100 1.3.6.1.2.1.105.1.1.1.3.1.3 i 2&")

Vielen Dank an alle Mitwirkende. Das hat im Feeling echt was gebracht.

KernSani

:-) Das nächste Mal dann noch Code in codetags und bitte beim ersten Post noch [Gelöst] vorne ans Subject dran
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Bitte Threads nicht schließen, dann haben andere User noch die Möglichkeit Folgefragen zu stellen...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...