Hallo,
gibt es einen einfachen Weg ein Device zu switchen ohne den aktuellen Status vorher abzufragen?
z.B. Licht soll eingeschaltet werden wenn es aus war oder umgekehrt
Kommt auf das Device an , manche kennen toggle :)
Oder den cmdalias für toggle, wenn es toggle nicht gibt.
sh. Wiki:
define c_setex cmdalias setex .* AS set $EVTPART0:FILTER=STATE!=$EVTPART1 $EVTPART1
MfG
es ist ein Dummy device:
Internals:
NAME arbeit_Deckenlampe
NR 105
STATE off
TYPE dummy
READINGS:
2018-01-26 17:28:09 state off
Attributes:
alias Arbeit
genericDeviceType light
group Beleuchtung
homebridgeMapping On=state,cmdOn=on,cmdOff=off
room Homekit,Licht,Obergeschoss
webCmd on:off
natürlich könnte man sowas machen:
if ($value{"arbeit_Deckenlampe"} eq "off") {
fhem "set arbeit_Deckenlampe on"
} else {
fhem "set arbeit_Deckenlampe off"
ist halt nicht sehr elegant ;)
@Ralf
dazu steht im Wiki "Schaltet ein Device nur dann, wenn Status ungleich des aktuellen Status ist " - ich will aber immer schalten
Zitat von: uxtuner am 27 Januar 2018, 09:51:14
...
@Ralf
dazu steht im Wiki "Schaltet ein Device nur dann, wenn Status ungleich des aktuellen Status ist " - ich will aber immer schalten
...
Das Ding schaltet doch wie es soll, verhindert die Funklast, wenn der Status gleich ist:
Device Schaltbefehl
on off schaltet
on on macht nix
off on schaltet
off off macht nix
Wenn ein Gerät eingeschaltet ist, brauche ich es ja nicht noch einmal einschalten.
MfG
ich weiss aber den Schaltbefehl nicht!
d.h. ich weiß nicht ob ich aus oder ein schalte, deswegen will ich ja togglen
Bevor es hier noch mehr Verwirrung gibt, poste doch mal konkret ein list des Device und was damit passieren soll.
ist doch schon oben passiert (#4) ...
Dann versteh ich nicht was am toggle cmdalias falsch sein soll?
ich hab den alias wie oben angegeben gesetzt:
define c_setex cmdalias setex .* AS set $EVTPART0:FILTER=STATE!=$EVTPART1 $EVTPART1
jetzt will ich togglen:
set arbeit_Deckenlampe setex
bzw.
setex arbeit_Deckenlampe
funktioniert nicht - oder ist mein Aufruf falsch?
mit notify auf das on/off event:
set arbeit_Deckenlampe:FILTER=state!=$EVENT $EVENT
Hi,
ich habe noch nicht genau verstanden, nach was genau gesucht wird?! Ist es einfach dies?
attr arbeit_Deckenlampe useSetExtensions 1
Quelle https://fhem.de/commandref_DE.html#setExtensions
Damit bekommt der Dummy den toggle Befehl
Gruß Otto
@inoma
funktioniert leider nicht ...
Ist das dann ne Technolampe die ständig an und aus geht?
Gesendet von meinem SM-G930F mit Tapatalk
Ausgangssituation:
1Wire 8-fach Schaltaktor schaltet Licht sowohl über FHEM GUI als auch händisch über einen Standard Schalttaster im Zimmer
Damit das in FHEM funktioniert habe ich für jedes Zimmer einen Dummy definiert, z.B.:
Internals:
NAME arbeit_Deckenlampe
NR 105
STATE off
TYPE dummy
READINGS:
2018-01-28 16:58:18 state off
Attributes:
alias Arbeit
genericDeviceType light
group Beleuchtung
homebridgeMapping On=state,cmdOn=on,cmdOff=off
room Homekit,Licht,Obergeschoss
webCmd on:off
über ein entsprechendes Notify wird der Schaltvorgang ausgelöst:
Internals:
DEF Aktion_Aus:.*|arbeit_Deckenlampe:on.* set Controller set owd out 2,3,1
NAME arbeit_mySwitch_on
NR 101
NTFY_ORDER 50-arbeit_mySwitch_on
REGEXP Aktion_Aus:.*|arbeit_Deckenlampe:on.*
STATE 2018-01-28 16:58:13
TYPE notify
READINGS:
2018-01-27 15:10:15 state active
Attributes:
room Licht
bzw.:
Internals:
DEF arbeit_Deckenlampe:off.* set Controller set owd out 2,3,0
NAME arbeit_mySwitch_off
NOTIFYDEV arbeit_Deckenlampe
NR 103
NTFY_ORDER 50-arbeit_mySwitch_off
REGEXP arbeit_Deckenlampe:off.*
STATE 2018-01-28 16:58:18
TYPE notify
READINGS:
2018-01-27 15:10:15 state active
Attributes:
room Licht
Mit "set Controller set owd out 2,3,x" kann ich also das Licht über die GUI ein-/ausschalten
Wenn jemand manuell den Taster drückt, bekomme ich darüberhinaus in FHEM ein EVENT mit der Nummer des Lichtschalters
Die Herausforderung ist
a) die Nummer auszuwerten, welche Lampe gedrückt wurde (kein Problem)
b) den neuen Status auch in FHEM darzustellen - man sieht allerdings nicht im Reading ob nun an oder aus geschaltet wurde
man weiss aber, dass der Status von an => aus oder aus => an geswitcht hat