FHEM Forum

FHEM => Automatisierung => Thema gestartet von: h-man-kl am 08 Oktober 2016, 12:49:13

Titel: Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: h-man-kl am 08 Oktober 2016, 12:49:13
und wieder was neues :-)
Hallo zusammen, ich bräuchte mal wieder einen Rat, denn ich glauibe ich denke zu kompliziert um zu viele Ecken.....
Ich habe ein funktionierendes notify, das mir in Abhängigkeit der Tageszeit einen FS20 Dimmer bedient. (Langsam hochdimmen - warten - runterdimmen)
d_TreppenhausbeleuchtungEG:on-for-timer.* {

if ((Value ("FS20.Daemmerung.S2") ne "off")) {

                   if ( $hour >= 21 && $hour <= 23 ) {
                                 fhem ("set FS20.DimmerTreppenhaus.E dim25% 3; sleep 90; set FS20.DimmerTreppenhaus.E dim06% 10; sleep 10; set FS20.DimmerTreppenhaus.E off;");
                   }
   if ( $hour >= 0 && $hour <= 6 ) {
                                 fhem ("set FS20.DimmerTreppenhaus.E dim25% 3; sleep 90; set FS20.DimmerTreppenhaus.E dim06% 10; sleep 10; set FS20.DimmerTreppenhaus.E off;");
                   }
   if ( $hour >= 7 && $hour <= 20 ) {
                                 fhem ("set FS20.DimmerTreppenhaus.E dim50% 3; sleep 90; set FS20.DimmerTreppenhaus.E dim06% 10; sleep 10; set FS20.DimmerTreppenhaus.E off;");
                   }
   
         }
}


ausgelöst wird es über den dummy d_Treppenhausbeleuchtung.

Ich hatte bislang einen FS20 Bewegungsmelder, der den dummy auf on-for timer gesetzt hat und somit wurde das notify gestartet
Jetzt habe ich noch einen HM Bewegungsmelder, der ja dann ebenfalls den Dummy auf on-for-timer setzen muss.

Leider hab ich nicht rausbekommen, wie ich das ganze übersichtlicher / besser lösen kann.
in meinem Alten System kopnnte ich "einfach" ein Makro Treppenhausbeleuchtung schreiben und das konnte ich von den Sensoren oder Tastern aus einfach ansprechen. Aber hier muss ja in dem notify oder doif immer direkt der auslösende Sensor mit angegeben werden.....
Könnte ihr mir folgen?

VIELEN DANK!
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: rubbertail am 08 Oktober 2016, 13:06:40
Ich mag mich nicht durch den Code wühlen.... kannst du in wenn-dann-Sätzen beschreiben, was wann wie passieren soll?

Was meint dein vorletzter Satz "aber hier muss ja..."?
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: h-man-kl am 08 Oktober 2016, 13:27:37
Klar kann ich das anders schreiben. (Und Hier muss ja bezieht sich auf Fhem)
Wenn Bewegungsmeldern 1 on und Daemmerungssensor1 on  oder Bewegungsmeldern 2 motion und Brightness < XY dann:
-Wenn vor 21 Uhr dann auf 50% Hochdimmen 2 Min warten langsam auf 0
-Wenn zwischen 21 und 6 Uhr dann auf 25% dimmen 2 Min warten langsam auf 0

Ungefähr so.
Klappen tut das ja im Moment auch, nur finde ich das nicht besonders elegant gelöst, dass ich von jedem Sensor aus den dummy teigigere, der dann wieder das notify auslöst....

Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: h-man-kl am 24 Oktober 2016, 10:43:06
hm... :-(
Bin ich der Einuige der mit 2 Bewegunsmeldern eine Lampe schalten will, oder denke ich wieder nur zu kompliziert.
Was mir auch noch aufgefallen ist, ist die Tatsache, dass sich die Timer nicht verlängern :-( d.h. wenn ich nach 80sec die Treppe runter gehe wird der Timer nicht verlängert und ich steh im dunkeln.
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: rbothe am 24 Oktober 2016, 11:30:11
Hi, ich habe einen aehnlichen Fall, aber nur mit einem Sensor (HM), der mit bei Motion die Badezimmerspiegelbelechtung einschaltet.
Loesung: ueber ein notify des Bewegungssensors schreibe ich ein Logfile fort (date >>/tmp/badespiegel.log) und schalte den Spiegel an (set on (ohne timer)).
Via cron (habe ja richtigen Linux-Rechner) suche ich ob die Datei nicht juenger ist als 5 Minuten:
find /tmp/badespiegel.log -mmin 5 -print | grep "^/tmp/badespiegel" >/dev/null && schalte dann im fhem den Spiegel aus
(echo "set spiegelaktor off; sleep 2; quit)" | nc fhem-server 7072 # wenn ich es recht im Kopf habe

Mit 2 Sensoren sollte es genauso gehen (beidemal notify nach logfile).
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: h-man-kl am 24 Oktober 2016, 11:54:37
Hi! Danke für die Rückmeldung.
Das klingt wie ein Plan, den ich versuchen muss umzusetzen. Mal sehen ob ich das hinbekomme.

Gruß
H-Man
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: Brice am 24 Oktober 2016, 11:55:02
Zitat von: h-man-kl am 24 Oktober 2016, 10:43:06
Was mir auch noch aufgefallen ist, ist die Tatsache, dass sich die Timer nicht verlängern :-( d.h. wenn ich nach 80sec die Treppe runter gehe wird der Timer nicht verlängert und ich steh im dunkeln.

Wie denn auch, wenn sleep 90? Das System ist für 90 sec blockiert.
Titel: Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: dev0 am 24 Oktober 2016, 13:11:55
Wenn auf ein FHEM sleep ein Befehl folgt, dann blockiert dieses sleep nicht. Nur ein Perl sleep blockiert.
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: Damian am 24 Oktober 2016, 13:33:01
Zitat von: h-man-kl am 24 Oktober 2016, 10:43:06
hm... :-(
Bin ich der Einuige der mit 2 Bewegunsmeldern eine Lampe schalten will, oder denke ich wieder nur zu kompliziert.
Was mir auch noch aufgefallen ist, ist die Tatsache, dass sich die Timer nicht verlängern :-( d.h. wenn ich nach 80sec die Treppe runter gehe wird der Timer nicht verlängert und ich steh im dunkeln.

Hier findest du zwei Lösungsansätze, die die Ausschaltzeit verlängern:

https://forum.fhem.de/index.php/topic,58384.msg497837.html#msg497837

Gruß

Damian
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: h-man-kl am 24 Oktober 2016, 13:39:22
@Damian: Danke den Post hatte ich garnicht mitbekommen.
Ich muss sagen die 1. Variante mit dem doif klingt gut und erscheint mir wesentlich einfacher als das mit dem cron...

:-)
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: h-man-kl am 26 Oktober 2016, 11:36:29
sodele, ich hab das mal mit einem Melder und einfach nur einem Schalter durchgespielt.
mein doif
([HM_3E63AF] eq "motion")(set HM_396B8F on)(set HM_396B8F off)

mit denAttributen do resetwait und wait 0,360

jetzt muss ich "nur" noch sehen wie ich das mit zwei Meldern und den unterschiedlichen Zeiten hinbekomme.
Sollte doch so in etwa Klappen, oder?:
([Melder1] eq "motion" or [Melder2] eq "motion" && [21:00-23:00]) (set FS20.DimmerTreppenhaus.E dim25% 3) (set FS20.DimmerTreppenhaus.E dim0% 3)
DOELSEIF [code]([Melder1] eq "motion" or [Melder2] eq "motion" && [23:01-05:00]) (set FS20.DimmerTreppenhaus.E dim25% 3) (set FS20.DimmerTreppenhaus.E dim0% 3)
DOELSE....


Gruß
H-Man
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: waschbaerbauch am 07 Dezember 2016, 16:36:50
Ich wollte jetzt nicht noch einen eigenen Post starten, deswegen schau ich mal ob ich mich hier anhängen darf..

Im weitesten Sinne schwebt mir auch eine Art Treppenhausbeleuchtung vor, mit 2 Sensoren die den Timer erweitern sollen bei Meldung.

Durch die alten baulichen Gegebenheiten habe ich einen kleinen Vorflur. Dieser Vorflur hat keinen Lichtschalter, aber eine Lampe welche vom Flur (abgetrennt von einer Zwischentür) geschaltet wird. Da die Elektroinstallation schon recht betagt ist, aber das Erdgeschoss noch nicht mit der Sanierung an der Reihe, fehlt in der Unterputzdose der Nullleiter um einen Funkschalter zu installieren.

Ich dachte mir nun: An der Decke eine MiLight E27 WLAN Lampe einschrauben, den alten Lichtschalter im Flur auf 'ein' schalten und gegen ausschalten sichern :D

Im Vorflur habe ich im Bereich der Garderobe einen Bewegungsmelder der seine 'on' Signale zum SIGNALduino sendet. Dieser schaltet auch ziemlich zuverlässig die MiLight Deckenlampe ein und mit 'on-for-timer' dann aus. Damit die Deckenlampe auch zeitnah geschaltet wird wenn man das Haus von außen betritt würde ich dafür gerne den MAX! Tür-/Fensterkontakt (bei Türöffnung) als zweiten Trigger nutzen. Allerdings habe ich keinen Schimmer wie ich das mit FHEM umsetzen kann das man als Beispiel durch Auslösung des PIR 30 oder 60 Sekunden auf einen runter zählenden Timer addiert. Sollte ich in den Suchanfragen irgendwas übersehen (oder nicht verstanden haben) bitte nicht steinigen.

Für Vorschläge zur Ergreifung der Lösung des Szenarios wäre ich dankbar ;)
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: Thorsten Pferdekaemper am 07 Dezember 2016, 16:55:05
Hi,
wenn ich das richtig verstehe, dann könnte es so gehen: Ein notify anlagen, das bei allen Events, bei denen man das Licht anschalten will, triggert. Das notify schaltet dann das Licht ein (oder eben alle Lichter, die eingeschaltet werden sollen) und legt ein "at" an, das die Lichter nach der gewünschten Zeit wieder abschaltet.
...außerdem löscht das notify das at sozusagen bevor es das at anlegt, also:
1. Lichter einschalten
2. Das ausschalt-at löschen
3. Das ausschalt-at anlagen
Gruß,
   Thorsten
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: Beta-User am 07 Dezember 2016, 17:01:54
Zitat von: Thorsten Pferdekaemper am 07 Dezember 2016, 16:55:05und legt ein "at" an, das die Lichter nach der gewünschten Zeit wieder abschaltet.
...außerdem löscht das notify das at sozusagen bevor es das at anlegt, also
Das geht lt. commandref noch einfacher mit defmod (scheint eine Kurzform von "define or modify" zu sein).

Gruß, Beta-User
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: waschbaerbauch am 07 Dezember 2016, 17:06:10
Ja aktuell hab ich eine vermutlich nicht so schlaue Lösung am Start:

Notify: notify_Licht.Vorflur.Decke.ET
DEF: MAX.FK04:opened set MB01.Z4 on-for-timer 180

Notify: notify_Vorflur_Licht
DEF: PIR15:on set MB01.Z4 on-for-timer 180

Vorher hatte ich mal mit einem anderen Notify experimentiert:
Notify: notify_Vorflur_Timer
DEF: PIR15:on define at_Vorflur_Licht_Timer at +00:00:30 set MB01.Z4 off

Leider ist mir nicht klar wie ich es schaffe das zwei Geräte diesen einen 'at' triggern oder den Timer 'aktualisieren'
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: Beta-User am 07 Dezember 2016, 17:15:19
Untested, aber so sollte es klappen.

DEF: PIR15:on|MAX.FK04:opened demod at_Vorflur_Licht_Timer at +00:00:30 set MB01.Z4 off

Zur Erläuterung: Alternative Trigger-Events lassen sich über FHEMWEB gut über den regex-Editor anlegen (dann gibt es das Pipe-Zeichen "|"), das defmod legt das at an, wenn es nicht exisitert, oder ändert die aktuelle Definition (verändert als nur die Timerzeit).
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: waschbaerbauch am 07 Dezember 2016, 17:22:31
Danke das werde ich gleich mal ausprobieren - die Mädels sind ja grad aus dem Haus :D

PS: Ich hoffe es ist korrekt korrigiert wenn ich statt demod defmod eintrage ;)
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: Beta-User am 07 Dezember 2016, 17:28:26
Zitat von: waschbaerbauch am 07 Dezember 2016, 17:22:31
PS: Ich hoffe es ist korrekt korrigiert wenn ich statt demod defmod eintrage ;)

oh mann, schreiben will gelernt sein ::)...

Ergänzend noch: Wenn das mit dem "on-for-timer" klappt, ist das m.E. sogar besser, weil dann nicht das Risiko besteht, dass man sich das temporäre at versehentlich in die cfg schreibt....
Titel: Antw:Treppenhausbeleuchtung mit mehreren Sensoren
Beitrag von: waschbaerbauch am 07 Dezember 2016, 17:38:42
Du wolltest doch nur testen ob ich einfach copy/paste mache oder versuche zu verstehen was hier passiert ;)

PS: Ok nun hab ich noch eine Frage - kann man da auch mit einbinden das bei gleichen Bedingungen auch die 'set MB01.Z4 on' vorher abgesetzt wird?

Würde quasi ein
MAX.FK04:opened|PIR15:on { fhem ("set MB01.Z4 on"); fhem ("defmod at_Vorflur_Licht_Timer at +00:00:30 set MB01.Z4 off") }
alles vereinen?

PPS: Es scheint zu funktionieren  ;D