Hallo,
ich habe für meinen Floorplan 3 Dummys definiert um mein FritzDect An/Aus zu schalten und im 3 Dummy den Status auszugeben.
Allerdings wird der dritte dummy(Status) nicht immer aktualisiert, vorallem nicht wenn ich die FritzDect z.b. nicht über fhem sondern über die FritzBox direkt schalte.
Wenn ich den An bzw. Aus Dummy betätige wird der Status aktualisiert.
Bastel da jetzt schon ein paar Tage dran rum, allerdings ohne erfolg, hoffe hier kann mir einer helfen.
Die Buttons heissen
ZitatDectOff DectOn Status_Dect
, es gibt ein notify, welches beim klicken auf den DectOn Button den FritzDect_Wohnzimmerschrank on schaltet
Internals:
DEF DectOn:An set FritzDect_Wohnzimmerschrank on
NAME DectOn_nt
NOTIFYDEV DectOn
NR 176
NTFY_ORDER 50-DectOn_nt
REGEXP DectOn:An
STATE active
TYPE notify
Attributes:
Ein notify welches beim drücken des DectOff, den FritzDect_Wohnzimmerschrank off setzt
Internals:
DEF DectOff:Aus set FritzDect_Wohnzimmerschrank off
NAME DectOn_nt1
NR 177
NTFY_ORDER 50-DectOn_nt1
REGEXP DectOff:Aus
STATE active
TYPE notify
Attributes:
und ein drittes notify welches den Status Dummy schaltet:
Internals:
DEF (DectOn.*|DectOff.*) {
if ($EVENT eq "An") {
fhem("set Status_Dect An");
}
else {
fhem("set Status_Dect Aus");
} }
NAME Status_Dect_nt
NR 184
NTFY_ORDER 50-Status_Dect_nt
REGEXP (DectOn.*|DectOff.*)
STATE active
TYPE notify
Attributes:
Wo mache ich den Fehler?
Danke
Keiner eine idee?
Wenn z.b. ein anderes notify den FritzDect_Wohnzimmerschrank schaltet, wird der Status der Dummys nicht aktualisiert, was kann ich dagegen tun?
Danke
Hi Tommy,
hast du denn schon mal probiert statt DEF (DectOn.*|DectOff.*) {
mal DEF (FritzDect_Wohnzimmerschrank) {
zu verwenden? Dann bekommst du dein Notify zumindest immer getriggert, wenn etwas mit "FritzDect_Wohnzimmerschrank" passiert. Das aktive Abfragen der Box auf ihren Zustand ist noch mal ne andere Sache. Suche mal im Forum oder Wiki nach "Fritzbox- API"! Darin gibt es ein Script für DECT on/off. Das fragt beim Umschalten ab, ob der Status wirklich geändert wurde. Das kann man auch als Abfrage zyklisch verwenden um zu erkennen, ob jemand an der Box direkt umgeschaltet hat.
Gruß
Frank
Hi,
habs mit (FritzDect_Wohnzimmerschrank)
versucht, dann wird der Status Dummy immer auf Aus gesetzt, egal wie ich den FritzDect_Wohnzimmerschrank schalte...... Also das funktioniert noch nicht richtig.
Ich suche jetzt mal nach der Fritzbox-Api, danke für den Tip
Hi,
habs leider immer noch nicht hinbekommen, hat noch einer eine idee wieso der Status Dummy nicht richtig aktualisiert wird und was ich dagegen tun kann!?
Danke
Zitat von: Tommy82 am 30 März 2015, 20:53:38
Hi,
habs leider immer noch nicht hinbekommen, hat noch einer eine idee wieso der Status Dummy nicht richtig aktualisiert wird und was ich dagegen tun kann!?
Danke
Wie sehen die Attribute der Dummys aus?
setList ?
eventMap?
...
So sieht der Status Button aus:
Internals:
NAME Status_Dect
NR 179
STATE Aus
TYPE dummy
Readings:
2015-03-30 22:22:19 state Aus
Attributes:
devStateIcon An:Status_An:An Aus:Status_Aus:Aus
fp_Fritz 308,195,0,
fp_Wohnzimmer 306,1443,0,
Hallo Tommy82
fiedel's Vorschlag müsste eigentlich funktionieren (eq "on" beachten):
DEF (FritzDect_Wohnzimmerschrank) {
if ($EVENT eq "on") {
fhem("set Status_Dect An");
} else {
fhem("set Status_Dect Aus");
}
}
Zitat
... vorallem nicht wenn ich die FritzDect z.b. nicht über fhem sondern über die FritzBox direkt schalte.
Wenn der Zustand nicht von FHEM geändert wird, brauchst Du einen zusätzlichen Eingang oder eine Abfrage der FritzBox. Das kann ich aber nicht testen.
Gruss
flurin
Hi, das scheint zu funktionieren, werd das mal etwas Testen, erstmal Danke
EDIT
Zu früh gefreut, nach einigen Sekunden schaltet der Status Dummy immer auf Aus, obwohl das Device an ist und auch auf on steht
Zitat von: Tommy82 am 01 April 2015, 21:57:23
Hi, das scheint zu funktionieren, werd das mal etwas Testen, erstmal Danke
EDIT
Zu früh gefreut, nach einigen Sekunden schaltet der Status Dummy immer auf Aus, obwohl das Device an ist und auch auf on steht
Versuchs mal so:
DEF FritzDect_Wohnzimmerschrank {
my $var = Value("FritzDect_Wohnzimmerschrank");
if ($var eq "on") {
fhem("set Status_Dect An");
} else {
fhem("set Status_Dect Aus");
}
}
Jetzt scheint es zu klappen, vielen Dank
Zitat von: Tommy82 am 02 April 2015, 21:33:08
Jetzt scheint es zu klappen, vielen Dank
OK, jetzt kann man noch optimieren aber das ist Geschmackssache:
DEF FritzDect_Wohnzimmerschrank {my $var = Value("FritzDect_Wohnzimmerschrank") =~ "on" ? "An":"Aus";fhem("set Status_Dect $var")}