Frage zu dummy + webCmd + on-for-timer

Begonnen von Tom Major, 02 Februar 2015, 23:22:02

Vorheriges Thema - Nächstes Thema

Tom Major

Hallo,

Ich möchte eine LED auf einem Beaglebone Black per FHEM manuell und auch per timer schalten, hier mein code:


define LED0 dummy
attr LED0 webCmd on:off
attr LED0 room Tests
define LED0_on  notify LED0:on {system('sudo /usr/share/led0on.sh&');;}
define LED0_off notify LED0:off {system('sudo /usr/share/led0off.sh&');;}
set LED0 on
define timer1 at +*00:00:30 set LED0 on-for-timer 15


Das manuelle Schalten über den Browser funktioniert. Nur die beiden letzten Zeilen gehen nicht.
Die vorletzte sollte eigentlich die LED beim FHEM Start anmachen, und mit der letzten Zeile wollte ich diese blinken lassen. Wo liegt mein Fehler?

Ausserdem erzeugt das Schalten über den Browser einen Eintrag im logfile beim system() Aufruf:
LED0_on return value: -1
Gibt es eine Möglichkeit, ohne das verbose level (3) herabzusetzen, nur für dieses LED notify den Eintrag im logfile zu unterdrücken?

Vielen Dank,
Tom
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

KernSani

Hi,

was soll der dummy denn bei on-for-timer machen? Kennt er ja nicht... Du kannst aber im notify ein weiteres at definieren, das nach 15 Sekunden wieder ausschaltet. Verbose level für das notify runter setzen könnte evtl. bei der log Meldung helfen.

Grüße,

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

Tom Major

Hallo Oli,

danke für die schnelle Antwort. Du meinst also ein on-for-timer ist prinzipiell für einen dummy nicht möglich?
Und meine Frage bezüglich des log Eintrags war ja explizit ohne das verbsoe level runterzusetzen.

Habe noch etwas im Forum gesucht und experimentiert. Mit diesem code bekomme ich das Blinken hin:

define LED0 dummy
attr LED0 setList on off
attr LED0 room Tests
define LED0_on  notify LED0:on {\
system('sudo /usr/share/led0on.sh&');;\
}
define LED0_off notify LED0:off {\
system('sudo /usr/share/led0off.sh&');;\
}
define at_LED0 at +*00:00:02 {\
if (ReadingsVal("LED0", "state", "") eq "on") { fhem("set LED0 off") } else { fhem("set LED0 on") }\
}


Das war die Hauptsache. Bliebe nur noch die Fragen
a) wie ich den Anfangszustand von LED0 setzen könnte und
b) wie ohne das verbose level (3) herabzusetzen, nur für diese LED0 das den Eintrag des system() return value im logfile unterdrücken kann?

Danke,
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker