Bewegungsmelder bedingte Lichtschaltung

Begonnen von Soc, 25 August 2015, 16:04:19

Vorheriges Thema - Nächstes Thema

Soc

Hallo Zusammen,

ich habe eine Frage zu meinen Bewegungsmelder HM-SEC-MDIR-2 und den Schaltaktor HM-ES-PMSw1-Pl.

Ich schalte 4 Lampen mit einer Taste (toggle) an den Taster (HM-PB-6-WM55).
eine der vier Lampen steht im Treppenhaus und soll via Bewegungsmelder Nachts angehen. Dieses soll aber nur dann geschehen, wenn die Lampe nicht an ist (geschaltet über Taster).

Nun meine Definitionen zu den Bewegungsmelder:
Notify wenn Bewegung erkannt:
define BewegungsmelderOnGalerie notify Bewegungsmelder:motion set Licht_Galerie_Empore_Sw on; set Status_LED16_01_Led_10 led red

watchDog zum ausschalten:
define watchdogBewegungsmelder watchdog Bewegungsmelder:motion 00:00:30 SAME set Licht_Galerie_Empore_Sw off;; setstate watchdogBewegungsmelder defined; set Status_LED16_01_Led_10 led green

Das Einschalten sowie Ausschalten funktioniert soweit, aber das ausschalten geht natürlich auch wenn über Taster die 4 Lampen eingeschaltet wurden. Sprich: Die Lampe geht aus obwohl sie anbleiben soll.

Hat jemand einen Tipp wie ich das steuern kann?

danke und Gruß

Soc

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

frank

warum peerst du deine homematic devices nicht direkt?
schaltet der HM-ES-PMSw1-Pl die lampe?
und wie stellst du dir die nachterkennung vor?
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

justme1968

das geht in dem du dir beim einschalten per bewegungsmeldern zusätzlich in einem reading merkst das per dadurch eingeschaltet wurde. im watchdog prüfst du das reading und tust nichts wenn es vorhanden ist. beim ausschalten löschst du dieses reading dann wieder.

aber: deine beiden notifys gehen mehr oder weniger zufällig nur deshalb weil der watchdog alphabetisch nach dem notify kommt.

wenn du im notify ein on-for-timer verwendest kannst du auf den watchdog komplett verzichten und im notify den status und das timedOn reading prüfen um festzustellen ob von hand eingeschaltet wurde. das geht elegant per FILTER= im set. siehe devspec in der commandref.

das mit dem watchdog ist nur dann sinnvoll wenn die die anzahl der funk kommandos einschränken willst. dann musst du aber im set on den aktuellen zustand und das merken reading prüfen. auch wieder mit FILTER=

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Soc

Ich hatte das mit den on-for-timer auch schon ausprobiert gehabt, bin dann aber wieder davon abgekommen weil ich dann das Problem habe, dass das Licht zwar nach x Sekunden ausgeht, aber bei erneuter Bewegung direkt danach nicht mehr angeht (R-minLimit auf 60).
Im blödesten Fall ist dann 1 Minute dunkel im Schacht.

Der watchDog schaltet das Licht erst garnicht aus wenn noch Bewegung da ist.
(Wenn ich die Doku richtig verstanden habe. Wenigstens funktioniert es so.)

Das mit den Zufall (Namensgebung) habe ich nicht ganz verstanden. Wie meinst Du das?

Gruß

Soc

justme1968

du musst die zeit des on-for-timer von der melde Intervall abhängig machen. bei 60 sekunden melden ist z.b. 130 oder 190 sekunden on-for-timer praktikabel.

das passiert dir beim watchdog aber ganz genau so wenn die zeiten nicht zusammen passen.

die events werden im großen und ganzen alphabetisch verteilt. wenn du nicht aufpasst und den aktuellen zustand berücksichtigst spielt die auslösereihenfolge eine rolle.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Soc

Ups, da stelle ich doch einige Lücken beim Grundverständnis von fhem fest.

Ich werde mir jetzt mal die command ref reinziehen, in der Hoffnung das ich anschliessend das Grundprinzip verstanden habe und nicht ständig Fragezeichen auftauchen wenn ich hier im Forum vermeintlich einfache Fragen stelle.  :)

Ganz alleine durch die paar Antworten auf meine Frage sind bei mir x weitere Fragen entstanden, deren Antworten ich erstmal in der command ref suchen werde.  :)

I come back....

Gruß

Soc

Soc

#7
So, nun habe ich ein wenig mehr Wissen über die Funktionen von fhem gelesen (und hoffentlich auch verstanden  :D ) und bin nun auf folgende Lösung gekommen:

Background:
Im Flur zur ersten Etage ist eine Lampe welche nur bei Bewegung, für die Dauer von 70 Sekunden, angehen soll.
Sollte während der 70 Sekunden weiterhin eine Bewegung erkannt werden, dann wird das ausschalten erneut um 70 Sekunden verschoben.

Dieses ist aber nur bei Dunkelheit erforderlich.

Sonnenauf- und Untergangszeiten:
define Bewegungsmelder_Sonnenaufgang at *{sunrise(0)} setBewegungsmelder_Activate off
define Bewegungsmelder_Sonnenuntergang at *{sunset(0)} setBewegungsmelder_Activate on


Meines Erachten ist mein erster Versuch, die Steuerung über die Helligkeitserkennung des Bewegungsmelder zu regeln, nicht gut genug.
Die Erkennung der Helligkeit im Bewegungsmelder ist recht träge und deshalb habe ich mich für Sonnenauf- und untergang enschieden.

Schalter für Aktivierung des Bewegungsmelder:
define Bewegungsmelder_Activate dummy
define Bewegungsmelder_Switch_dummy dummy


DOIFs:
define Bewegungsmelder_Switch DOIF ([Bewegungsmelder:?motion] and [Bewegungsmelder_Activate] eq "on") (set Bewegungsmelder_Switch_dummy on, set Bewegungsmelder_Switch_dummy off)
attr Bewegungsmelder_Switch do always
define Bewegungsmelder_Licht_An_Aus DOIF ([Bewegungsmelder_Switch_dummy] eq "on" and [Bewegungsmelder_Activate] eq "on") (set Licht_Galerie_Empore_Sw on) DOELSE (set Licht_Galerie_Empore_Sw off)
attr Bewegungsmelder_Licht_An_Aus wait 0:70


Das ist sicherlich nicht optimal (könnte mir vorstellen das die eine oder andere Definition zu viel ist und man es in weniger commands zusammenfassen kann, aber es funktioniert so wenigstens...

Verbesserungsvorschläge erwüscht !!!

Gruß

Soc

UPDATE: Hatte sunrise und sunset verdreht gehabt...  ;D
UPDATE2: Der Wert minInterval im Bewegungsmelder steht auf default (60)