Ich habe mir einen dummy Schalter erstellt der eine Ubiquiti Steckodsenleiste mit dem in FHEM vorhandenen Modul gezielt ansteuern soll. Das einzelne ansteuern der Ports ist kein Problem und funktioniert, auch die Readings kommen wie sie sollen.
Nun habe ich also einen DOIF erstellt der von der 6er Leiste 3 Steckdosen aktivieren/deaktivieren soll, je nachdem ob ein oder ausgeschaltet wird.
([BKU:state] eq "on")
(set az.verteilerdose_Out5 on, set az.verteilerdose_Out4 on, set az.verteilerdose_Out3 on)
DOELSE
(set az.verteilerdose_Out5 off, set az.verteilerdose_Out3 off, set az.verteilerdose_Out4 off)
Er führt jeweils nur den 1. Befehl für Steckdose 5 aus, die restlichen ignoriert er. Das interpretiere ich so, dass der dummy Schalter funktioniert und den DOIF auslöst. wait Timer habe ich keine definiert, wenn ich die Befehle einzeln einfüge funktionieren sie ebenfalls.
Alternativ hatte ich auch schon folgendes probiert:
([BKU:state] eq "on")
(set az.verteilerdose_Out5 on)
(set az.verteilerdose_Out4 on)
(set az.verteilerdose_Out3 on)
DOELSE
(set az.verteilerdose_Out5 off)
(set az.verteilerdose_Out3 off)
(set az.verteilerdose_Out4 off)
Wo ist mein Denkfehler ?
hm, erstmal keine Denkfehler gefunden.
Habe es bei mir mit dummys nachgestellt und es werden alle 3 Befehle ausgeführt, auch im DOELSE-Fall.
Vielleicht hilft ein list von deinem DOIF weiter.
Die Version vom DOIF ist aktuell ?
Ein Versionscheck zeigt zumindest keine verfügbaren Updates an, ich habe auch ähnliche Konstellationen aktiv die funktionieren.
98_DOIF.pm 12215 2016-09-26 21:02:49Z damian-s
Internals:
CFGFN
DEF ([BKU:state] eq "on")
(set az.verteilerdose_Out5 on, set az.verteilerdose_Out4 on, set az.verteilerdose_Out3 on)
DOELSE
(set az.verteilerdose_Out5 off, set az.verteilerdose_Out3 off, set az.verteilerdose_Out4 off)
NAME az.bku.status.DOIF
NR 85399
NTFY_ORDER 50-az.bku.status.DOIF
STATE cmd_2
TYPE DOIF
Readings:
2016-11-09 22:41:41 Device BKU
2016-11-09 22:41:41 cmd 2
2016-11-09 22:41:41 cmd_event BKU
2016-11-09 22:41:41 cmd_nr 2
2016-11-09 22:41:41 e_BKU_state off
2016-11-09 22:41:41 state cmd_2
Condition:
0 ReadingValDoIf($hash,'BKU','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "on"
Devices:
0 BKU
all BKU
Do:
0:
0 set az.verteilerdose_Out5 on, set az.verteilerdose_Out4 on, set az.verteilerdose_Out3 on
1:
0 set az.verteilerdose_Out5 off, set az.verteilerdose_Out3 off, set az.verteilerdose_Out4 off
Helper:
event off
globalinit 1
last_timer 0
sleeptimer -1
timerdev BKU
timerevent off
triggerDev BKU
timerevents:
off
timereventsState:
state: off
triggerEvents:
off
triggerEventsState:
state: off
Internals:
Itimer:
Readings:
0 BKU:state
all BKU:state
Regexp:
0:
All:
State:
Trigger:
Attributes:
room Arbeitszimmer
funktioniert ein
{set az.verteilerdose_Out5 on; set az.verteilerdose_Out4 on; set az.verteilerdose_Out3 on}
in der FHEM Kommandozeile?
Gruß Otto
ZitatEr führt jeweils nur den 1. Befehl für Steckdose 5 aus, die restlichen ignoriert er.
Wie hast Du festgestellt, dass der 2. und 3. Befehl nicht ausgeführt wird?
Ich habe
set az.verteilerdose_Out1 on; set az.verteilerdose_Out4 on; set az.verteilerdose_Out3 on
ausgeführt, gleiches Ergebnis. Er führt das 1. Kommando aus, die restlichen nicht mehr.
Vllt ungünstig meinerseits formuliert, die Befehle werden nicht erfolgreich ausgeführt.
Also eher keim Problem mit DOIF sondern eher mit dem UbiquitiMP Modul ?
Wenn ich die Befehle einzeln nacheinander absende geht es.
Mit dem "wait" Attribut von DOIF mag es offensichtlich auch nicht.
Hier der Auszug aus dem Logfile für das Ausführen auf der FHEM Kommandozeile:
2016-11-10 19:21:24 UbiquitiMP az.verteilerdose Out1 on
2016-11-10 19:21:24 UbiquitiOut az.verteilerdose_Out1 on
2016-11-10 19:21:24 UbiquitiMP az.verteilerdose Out4 on
2016-11-10 19:21:24 UbiquitiOut az.verteilerdose_Out4 on
2016-11-10 19:21:24 UbiquitiMP az.verteilerdose Out3 on
2016-11-10 19:21:24 UbiquitiOut az.verteilerdose_Out3 on
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 on
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 eState: E:0 P:0 I:0 U:0 i:0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 power: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 voltage: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 current: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 pf: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 month: 435
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 lock: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 enabled: 1
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out1 energy: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 off
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 eState: E:0 P:0 I:0 U:0 i:0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 power: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 voltage: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 current: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 pf: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 month: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 lock: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 enabled: 1
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out2 energy: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 off
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 eState: E:0 P:0 I:0 U:0 i:0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 power: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 voltage: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 current: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 pf: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 month: 121
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 lock: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 enabled: 1
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out3 energy: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 off
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 eState: E:0 P:0 I:0 U:0 i:0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 power: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 voltage: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 current: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 pf: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 month: 10
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 lock: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 enabled: 1
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out4 energy: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 off
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 eState: E:0 P:0 I:0 U:0 i:0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 power: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 voltage: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 current: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 pf: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 month: 3
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 lock: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 enabled: 1
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out5 energy: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 off
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 eState: E:0 P:0 I:0 U:0 i:0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 power: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 voltage: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 current: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 pf: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 month: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 lock: 0
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 enabled: 1
2016-11-10 19:21:26 UbiquitiOut az.verteilerdose_Out6 energy: 0
2016-11-10 19:21:26 UbiquitiMP az.verteilerdose all_current: 0.00
2016-11-10 19:21:26 UbiquitiMP az.verteilerdose all_power: 0.00
2016-11-10 19:21:26 UbiquitiMP az.verteilerdose all_month: 0.57
2016-11-10 19:21:26 UbiquitiMP az.verteilerdose all_prevmonth: 0.00
2016-11-10 19:21:26 UbiquitiMP az.verteilerdose all_energy: 0.00
2016-11-10 19:21:26 UbiquitiMP az.verteilerdose on off off off off off
Das geht so nicht. Das liegt aber an der UbiquitiMP.
Entweder bildest Du Gruppen im Hauptdevice der UbiquitiMP.
Oder du setzt beim DoIF jeden set Befehl in () und dann wait mit ,
Ups fast vergessen. Mindest delay sollte so bei 6s liegen, also zwischen jeden Schaltvorgang auf der UbiquitiMP.
Ich habe eben mit 3 Sekunden rumgespielt und den Timeout über das Ubiquiti auf 2 Sekunden gesetzt nachdem ich in der Referenz
Zitattimeout -> Wartezeit in Sekunden bevor eine Abfrage mit einer Fehlermeldung abgebrochen wird (Default ist 5 Sekunden)
Werte unter zwei Sekunden werden vom Modul nicht angenommen !
gelesen habe.
Jetzt funktioniert es zuverlässig.
Oh, eben gelesen das CoolTux das gerade geschrieben hat. Gruppen habe ich mit Absicht nicht gebildet da ich das Problem habe, dass wenn ich alle Dosen auf ein mal einschalte in 10% der Fälle die Sicherung rausfliegt, darum nacheinander.
Meine Konfig sieht nun so aus:
([BKU:state] eq "on")
(set az.verteilerdose_Out4 on force)
(set az.verteilerdose_Out1 on force)
(set az.verteilerdose_Out3 on force)
DOELSE
(set az.verteilerdose_Out4 off force)
(set az.verteilerdose_Out1 off force)
(set az.verteilerdose_Out3 off force)
Mit diesen Timerwerten:
wait 0,3,3:0,3,3
Empfiehlst du auch nach der Umstellung des Timeoutwertes über die Steckdose insgesamt auf 2 Sekunden trotzdem den 6 Sekunden Delay oder geht das so zuverlässig ?
Da musst Du mal schauen wie sich das in Deiner Umgebung verhält. Ich hatte das Problem in einer Structure und habe da mich erfolgreich auf 6s delay ran getastet.
4 Sekunden klappt auch nicht zuverlässig, mit 6 schon. Dann mache ich das so.
Habt alle vielen Dank und Sorry das ich erst in die falsche Richtung gefragt habe.