Treppenhausbeleuchtung mit mehreren Sensoren

Begonnen von h-man-kl, 08 Oktober 2016, 12:49:13

Vorheriges Thema - Nächstes Thema

h-man-kl

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!
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

rubbertail

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..."?
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

h-man-kl

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....

RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

h-man-kl

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.
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

rbothe

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).
FHEM 5.6 auf 2 Linux-Servern als Highavailability Heartbeat- Cluster
1xCUNO
2x HMLAN via 1x VCCU redundant angebunden
Ansonst: wie erstelle ich eine Signatur? Gibt es eine Inventory Funktion im FHEM?

h-man-kl

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
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

Brice

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.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

dev0

#7
Wenn auf ein FHEM sleep ein Befehl folgt, dann blockiert dieses sleep nicht. Nur ein Perl sleep blockiert.

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

h-man-kl

@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...

:-)
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

h-man-kl

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
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

waschbaerbauch

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 ;)

Thorsten Pferdekaemper

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
FUIP

Beta-User

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
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

waschbaerbauch

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'