Problem mit DOIF und Bewegungsmelder

Begonnen von hermann1514, 05 April 2017, 09:56:58

Vorheriges Thema - Nächstes Thema

hermann1514

Hallo,

ich habe einen HM-Bewegungsmelder der in unserer Küche das Licht schalten soll. Das habe ich bislang immer mit einem DOIF -> wenn Motion dann das Licht für 30 Minuten an - gemacht.

Ich möchte nun aber dass das Licht sich abschaltet wenn über einen bestimmten Zeitraum keine Bewegung erkannt wurde. Die Interval Zeit beim Bewegungsmelder habe ich auf 60sec. gesetzt.

Das DOIF dafür sieht folgendermaßen aus:

([HM_BWGM_KUECHE:state] eq "motion" and [HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on) (set eg.ku.fs.lampe_fenster off)
Attribute:
do    resetwait
wait    0,120


Nun sollte doch das Licht angehen wenn Bewegung erkannt wurde - und natürlich der Brightness Wert unter 50 ist. Das klappt auch beim erstenmal nach einer kleinen Verzögerung aber danach nicht mehr. Das Licht geht dann ja nach 120 sec. ausgehen wenn keine neue Bewegung erkannt wurde.

Danach wird zwar vom Bewegungsmelder eine Bewegung erkannt aber das Licht geht nicht an.

Ich habe noch ein weiteres DOIF welches das Tablet in der Küche schaltet. Dieses funktioniert einwandfrei.
Kann es sein dass sich die beiden DOIF's stören?

Gruß
Hermann




darkness

#1
Hey,

du müsstest doch auch das ganze mit on-for-timer lösen können.

([HM_BWGM_KUECHE] eq "motion" and [HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on-for-timer 300)

und

Do always


Gruß

Beta-User

Vielleicht eine doofe Frage, aber warum sind die beiden HM-Devices nicht direkt gepeert und dazu eine shOnTime für den Aktor auf den Bewegungsmelder-Trigger vergeben?

Soweit ich das im Kopf habe, gibt es für diese Art des peerings sogar ein template (bitte Wiki (? oder commandref) bemühen).

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

hermann1514

Zitat von: darkness am 05 April 2017, 10:24:52
Hey,

du müsstest doch auch das ganze mit on-for-timer lösen können.

([HM_BWGM_KUECHE] eq "motion" and [HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on-for-timer 300)

und

Do always


Gruß

Hi,

wird denn dann der Timer wieder zurückgesetzt wenn das DOIF mit "always" wieder neu ausgeführt wird?


hermann1514

Zitat von: Beta-User am 05 April 2017, 10:40:41
Vielleicht eine doofe Frage, aber warum sind die beiden HM-Devices nicht direkt gepeert und dazu eine shOnTime für den Aktor auf den Bewegungsmelder-Trigger vergeben?

Soweit ich das im Kopf habe, gibt es für diese Art des peerings sogar ein template (bitte Wiki (? oder commandref) bemühen).

Gruß, Beta-User

Hi,

das ist ja nur ein HM Device. Ein Bewegungsmelder der gleichzeitig die Helligkeit erkennt.


Beta-User

Zitat von: hermann1514 am 05 April 2017, 11:01:51
Hi,

das ist ja nur ein HM Device. Ein Bewegungsmelder der gleichzeitig die Helligkeit erkennt.
Ah, das Licht ist kein HM Device?

Dann klappt das mit dem peering leider nicht, sorry...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Damian

ich würde es so definieren:

([HM_BWGM_KUECHE:"motion"] and [?HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on) (set eg.ku.fs.lampe_fenster off)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hermann1514

Zitat von: Damian am 05 April 2017, 11:14:41
ich würde es so definieren:

([HM_BWGM_KUECHE:"motion"] and [?HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on) (set eg.ku.fs.lampe_fenster off)


Habe das nun einmal so eingetragen. Funktioniert auch beim ersten mal....dann wieder nicht obwohl der Bewegungsmelder motion erkennt. Auch der Timer wird nicht zurückgesetzt wenn Bewegung erkannt wird.

Noch jemand eine Idee?


Damian

Dann poste mal list von diesem Zustand vom DOIF-Modul.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

SoT2079

Zitat von: darkness am 05 April 2017, 10:24:52
Hey,

du müsstest doch auch das ganze mit on-for-timer lösen können.

([HM_BWGM_KUECHE] eq "motion" and [HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on-for-timer 300)

und

Do always


Gruß

Das funktioniet nur wenn das Gerät was er schalten will on-for-timer auch unterstützt.
Wenn ja dann wird der Timer auch neu gestartet wenn wieder eine Bewegung erkannt wird.

Wenn dein gerät das nicht unterstützt dann kannst du das auch so machen wie ich das habe:

([1OG_BW_Flur1] eq "motion")
(set 1OG_Licht_Flur on)

DOELSEIF
([1OG_BW_Flur1] eq "noMotion")
(set 1OG_Licht_Flur off)

dann brauchst du noch:
attr do always
attr wait 0:300

Standartwert vom BW müssten 240 Sekunden sein bevor er auf noMotion zurück wechselt.
Wenn du da was umgestellt hast musst du die Zeit bei wait anpassen, sonst kann das sein das dein Licht kurz aus geht und dann durch neue Bewegung wieder an.

Zitat von: Damian am 05 April 2017, 11:14:41
ich würde es so definieren:

([HM_BWGM_KUECHE:"motion"] and [?HM_BWGM_KUECHE:brightness] < 50) (set eg.ku.fs.lampe_fenster on) (set eg.ku.fs.lampe_fenster off)

sollte in der Funktion mit meinem identisch sein nur kürzer geschrieben da nur eine Abfrage.
Wenn du das von Damian nutzt sollte aber auch
attr do always
attr wait 0,300
rein

Bei dem wait attr aufpassen, ich habe zwei Abfragen dann musst du mit : trennen
Damian hat zwei set Befehle hinter einer Abfrage das trennst du mit ,