Erkennung Dimmer per Hand bedient

Begonnen von WumpE, 20 Februar 2017, 12:07:58

Vorheriges Thema - Nächstes Thema

WumpE

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
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

pataya

Es wird ein Event getriggert und vermutlich entsprechende Readings im Device aktualisiert.

WumpE

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.
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

frank

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)/);
}
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

WumpE

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
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

frank

ich glaube, dass das reading recentStateType keine events generiert.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

WumpE

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 😕
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9