Homematic Lichtschalter mit zeitsteuerung

Begonnen von Skenik, 02 November 2016, 22:48:25

Vorheriges Thema - Nächstes Thema

Skenik

Hallo
Ich Habe FHEM auf Raspberry pi3 installiert und bediene erfolgreich ein "Homemetic Funk-Schaltaktor 1-fach"
Würde aber gerne es so einstellen das zwischen 0.00 Uhr und 6.00 Uhr das licht 15 Minuten  nach dem einschalten automatisch ausgeht.
Habe leider bis jetzt nichts gefunden.

Otto123

Hi,

dann baust Du ein DOIF zwischen 0 und 6 und reagierst in der Art  <Aktor>.on sleep 900; set $NAME off

Ich habe ein notify mit folgender DEF SW81_._Tor.*:on sleep 1; set $NAME off
Das bewirkt, dass jeder Tastendruck des SW81_._Tor nur eine Sekunde dauert.

Vielleicht hilft das als Idee  8)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

budy

Eigentlich verstehen alle Homematic Schalt-Aktoren die Option on-for-timer... also so etwas in der Art:

set HM_Aktor on-for-timer 900

Wie du das mit der Zeit löst, dafür gibt es auch diverse Möglichkeiten. Man könnte ein Dummy nehmen und dort einen Status mitführen, der angibt, ob es zwischen 00:00 und 06:00 Uhr ist und dann in einem DOIF if einem Notify mit IF prüfen, ob der gesetzt ist.

Wenn du mal den Homematic Aktor mit einem Schalter direkt peeren möchtest, oder den eingebauten Schalter verwenden möchtest, dann wird's ein wenig komplizierter, denn dann musst du die Interna des Aktors entsprechend anpassen. Genaueres dazu steht im HM-Einsteiger Guide.

Gruß,
Stephan
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

Otto123

Zitat von: Skenik am 02 November 2016, 22:48:25
... das licht 15 Minuten  nach dem einschalten automatisch ausgeht.
Ich hatte mich von dieser Aussage leiten lassen, also so in der Art: egal von wo und egal welcher Schalter einer bestimmten "Gruppe" geschaltet wird, er soll nach 15 min ausgehen. Dafür finde ich meinen Ansatz verblüffend einfach  8)
Ansonsten hat buddy natürlich völlig Recht  ;)

Mein notify könnte man mit dem attr disabledforintervals auch noch absolut simpel in der Zeit von 6:00 bis 0:00 Uhr deaktivieren. Beispiel:
Ich habe drei Lichtschalter Licht1 Licht2 und Licht3 define n_AusNach15min notify Licht.*:on sleep 900; set $NAME off
attr n_AusNach15min disabledForIntervals 06:00-00:00

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Franz Tenbrock

Frage in dieser Richtung
Ich möchte das der Schaltbefehl verzögert ausgeführt wird und dann aber auch zeitverzögert die Lampe auch noch ausschaltet.
Tastendruck -> Wartezeit 3 Minuten dann Lampe an -> nach 3 weiteren Minuten Lampe aus.

sicher nicht so trivial ?
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Otto123

Zitat von: Franz Tenbrock am 03 November 2016, 11:40:19
Frage in dieser Richtung
Ich möchte das der Schaltbefehl verzögert ausgeführt wird und dann aber auch zeitverzögert die Lampe auch noch ausschaltet.
Tastendruck -> Wartezeit 3 Minuten dann Lampe an -> nach 3 weiteren Minuten Lampe aus.

sicher nicht so trivial ?
Zumindest nicht spontan trivial für mich  :) Da müsste man in jedem Fall ja nicht beim Aktor sondern beim Taster/Sensor ansetzen - obwohl das dann ja in einer Konfiguration des Aktors mündet. Aber mein Ansatz fragt einfach den Aktor ab und reagiert.

Da müsste man in die Register der HM Aktoren schauen
shOnDly
shOnTime
shOnTimeMode

Ob es damit geht kann ich spontan nicht sagen. Aber klingt danach: OnDly auf 180 setzen, OnTime auf 180 und OnTimeMode auf relativ?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

Zitat von: Franz Tenbrock am 03 November 2016, 11:40:19
Frage in dieser Richtung
Ich möchte das der Schaltbefehl verzögert ausgeführt wird und dann aber auch zeitverzögert die Lampe auch noch ausschaltet.
Tastendruck -> Wartezeit 3 Minuten dann Lampe an -> nach 3 weiteren Minuten Lampe aus.

sicher nicht so trivial ?

doch, z. b. mit DOIF:

define di DOIF ([taster:"on"]) (set lampe on) (set lampe off)

attr di wait 180,180
attr di do always


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Franz Tenbrock

für meinen Anwendungsfall funktioniert es leider nicht,
möchte das hier aber nicht kapern und bitten mir an anderer Stelle zu helfen...

https://forum.fhem.de/index.php/topic,57791.msg509573.html#msg509573

vielleicht ja auch interessant

Es geht um die automatische Belüftung einer Toilette, ein leidiges Thema wenn kein Ventilator gewünscht ist.
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

budy

Zitat von: Franz Tenbrock am 03 November 2016, 11:40:19
Frage in dieser Richtung
Ich möchte das der Schaltbefehl verzögert ausgeführt wird und dann aber auch zeitverzögert die Lampe auch noch ausschaltet.
Tastendruck -> Wartezeit 3 Minuten dann Lampe an -> nach 3 weiteren Minuten Lampe aus.

sicher nicht so trivial ?

Wa? Ist doch eierleicht, würden meine Kids sagen... Der erste Schaltbefehl konfiguriert ein at welches erst in 180s zündet und dann einfach den HM Aktor für 180s aktiviert. Und wenn man es besonders sauber haben will, dann konfiguriert man ein temporäres at, dann gibt's auch nicht immer den Hinweis, dass was zu sichern ist... im  FHEM.

Gruß,
Stephan
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

Franz Tenbrock

mit dem doif sehr elegant
finde ich zumindest
und sehr variabel
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Skenik

Hallo
Vielen Dank für schnelle antworten und gute Ratschläge. Da ich echtes Neuling bin fehlt es mir noch schwer die richtige befähle zu schreiben.
Wen ich es richtig verstanden habe soll ich ein Define anlegen der etwa so aussehen muss:
define n_AusNach15min notify LICHT.*:on sleep 900; set $LICHT off
"LICHT" ist die bezeichnung für mein lichtschalter.900 sind die sekunden
Und ein attriebut was die zeitfenster festlegt, eta so:
attr n_AusNach15min disabledForIntervals 06:00-00:00

Das alles im eingabe fenster auf der hauptseite

Danke im vorraus

budy

Ähh... wie jetzt? ;) Ich denke, es wäre gut, wenn du nochmal ganz präzise formulierst, was du genau willst und welche Komponenten es gibt. Soweit ich das verstanden hatte, wolltest du:


  • nur Aktion  ausführen während 00:00 und 06:00
  • eine "Vorlaufzeit" von 180s hat, bevor die eigentliche Aktion ausgeführt wird
  • einen HM Aktor für 180s einschaltet

Punkt 1 hat Otto ja schon durch "disableForIntervall" gelöst. Punk 3 ist ebenfalls gelöst, da HM Aktoren ein "on-for-timer" beherrschen. Fehlt nur noch Punkt 2...

Es sollte also folgendes Kommando in der Eingabezeile von FEHM das Problem lösen, vorrausgesetzt der Schalter heißt S1 und die Lampe heißt L1:

define nachtLicht notify S1:.* sleep 180; set L1 on-for-timer 180

wobei es da natürlich auch auf das Event ankommt, welches das Ereignis auslöst. Ich bin hier auch mal stumpf von einem HM-Device ausgegangen, welches in so einem Fall entweder S1:Short.* oder S1:Long.* senden würde...

Gruß,
Stephan
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

Skenik

Hallo
Ich habe einen unterputzschalter ''LICHT'' der eine deckenhalterung einschaltet. Ich hätte gerne das wenn das Licht zwischen 0 Uhr und 6 Uhr eingeschaltet wird dann geht er automatisch nach 15 Minuten aus.
Wie ich schon sagte da ich keine Erfahrung mit programmieren habe Brauche ich ein Rat wie genau das befähl geschrieben wird

budy

Ahh... verstehe... du hast einen Unterputz-Aktor von HM so wie diesen: HM-LC-Sw1PBU-FM, korrekt?

Dann hättest du ein kleines Problem, da die Taster immer intern mit dem Aktor direkt gepeert sind.
Das kann man zwar aufheben, aber das dürfte dich als Anfänger - ehrlichgesagt - überfordern und das ist in so einem System keine gute Basis. Außerdem soll doch dann der Schalter bestimmt zu normalen Zeiten auch die Lampe normal schalten, oder?

Das würde bedeuten, dass man über ein at um 00:00 den ganzen Aktor umprogrammieren müsste, damit die "Standard"-Aktion ein on-for-timer auslöst. Das müsste dann um 06:00 Uhr wieder rückgängig gemacht werden.


Gruß,
Stephan

Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

Otto123

Hallo Stephan,

habe ich so nicht verstanden, er hat einfach einen Lichtschalter und er will daraus zeitabhängig einen Treppenhausautomaten machen.

Aber wenn er nicht weiß wie und wo man Befehle eingibt, dann wird es schwierig.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz