FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: WumpE am 20 Februar 2017, 12:07:58

Titel: Erkennung Dimmer per Hand bedient
Beitrag von: WumpE am 20 Februar 2017, 12:07:58
Hallo Leute, ich sehe wahrscheinlich gerade den Wald vor lauter Bäume nicht. Wie erkenne ich am einfachsten ob ein Aktor (bei mir Homematic Unterputz Dimmer HM-LC-Dim1TPBU-FM) per Hand bedient wurde und keinen Schaltbefehl von FHEM (notify,at, doif) bekommen hat?

Danke und Grüße WumpE
Titel: Antw:Erkennung Dimmer per Hand bedient
Beitrag von: pataya am 20 Februar 2017, 12:47:14
Es wird ein Event getriggert und vermutlich entsprechende Readings im Device aktualisiert.
Titel: Antw:Erkennung Dimmer per Hand bedient
Beitrag von: WumpE am 20 Februar 2017, 13:07:27
jup, wenn ich was mit FHEM auslöse, erkennt man es daran das im state-reading usw immer erstmal ein set_xyz triggert, danach triggert state mit xyz nochmal. Darauf kann man gut reagieren. aber wie reagiert man auf handschaltungen? die halt nur im state mit xyz triggern? das bekommt man nicht auseinander gehalten mit einer FHEM ausgelösten aktion.
Titel: Antw:Erkennung Dimmer per Hand bedient
Beitrag von: frank am 20 Februar 2017, 13:08:38
versuche folgendes:
lass ein notify zb auf den level lauschen. wenn der sich ändert, prüfst du, ob das reading recentStaeType auf info steht. dann sollte der dimmer manuell bedient worden sein.

ich prüfe so ein paar thermostaten, ob dort manuell eine desired-temp eingestellt wurde:
.*_Climate:.*desired-temp:.* {
my $controlMode = ReadingsVal($NAME, "R-controlMode", "?");
my $recentStateType = ReadingsVal($NAME, "recentStateType", "?");
my $room = $1 if($NAME =~ m/Thermostat.(.*)_Climate/);
if($recentStateType eq "info") {
if($controlMode =~ m/central/) {
fhem("set ".$NAME." desired-temp ".$EVTPART1);
Log 1,"----- NOTIFY ----- $NAME $EVENT";
}
}
fhem("set PID20.".$room." desired ".$EVTPART1) if($room =~ m/(AZ|WZ|SZ|Bad|Kueche)/);
}
Titel: Antw:Erkennung Dimmer per Hand bedient
Beitrag von: WumpE am 20 Februar 2017, 15:30:37
Supi Frank, rescentStateType steht zwar immer auf info, aber das hilft mir weiter, genau der Timestamp ändert sich bei tastendruck. Hat sich dazu das Level geändert weiß ich ziemlich genau das die Taste gedrückt wurde.

könnte man im DOIF ja dann so abfangen [DEVICE:rescentStateType:5]

Danke dir, werde ich mal testen
Titel: Antw:Erkennung Dimmer per Hand bedient
Beitrag von: frank am 20 Februar 2017, 16:18:38
ich glaube, dass das reading recentStateType keine events generiert.
Titel: Antw:Erkennung Dimmer per Hand bedient
Beitrag von: WumpE am 20 Februar 2017, 21:32:12
Ja das klappt nicht.

Ich mache es jetzt mit nem userreading pro Aktor , welches ne Kennung von fhem befehlen beschrieben bekommt. Steht da was altes drin , weiß ich das die Aktion vom Taster kommt.

Ist halt nen ganz schönes gefrickel und man muss bei allen Aktionen dran denken das Reading beschreiben zu lassen 😕