Hauptmenü

[solved] Sleeptimer

Begonnen von dominik, 19 Juli 2015, 17:36:24

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: dominik am 19 Juli 2015, 23:17:50
@Damian
Hab ich es richtig verstanden, dass der Timer verlängert wird? Also wenn dort 300 steht (5 Minuten) und ich 2x Timer drücke, dann erhalte ich einen Timer von 10 Minuten?
Weil in deinem Post lese ich es eher so, als ob der Timer nochmals mit 0 beginnt und wieder 5 Minuten läuft.

ja, hier wird ab dem wiederholten Tastendruck um 5 Minuten verlängert. Ein Doppelklick lässt sich mit dem Attribut waitsame realisieren, siehe Commandref zu DOIF.

Gruß

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

Puschel74

Sogar noch eins drauf gesetzt und noch besser gemacht  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

dominik

Hab mir mal die commandref dazu durchgelesen, aber so wie ich das verstehe, kann ich damit nicht wirklich verlängern, sondern nur den timer wieder auf 0 setzen.

Ich möchte nämlich, dass wenn ich 1x timer drücke nach 10 Minuten die Lampe aus geht. 2x timer drücken => 20 Minuten, 3x => 30 Minuten, usw.

Ich werde jetzt mal dein neues Modul installieren und es ausprobieren ;)
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Damian

Zitat von: dominik am 19 Juli 2015, 23:47:12
Hab mir mal die commandref dazu durchgelesen, aber so wie ich das verstehe, kann ich damit nicht wirklich verlängern, sondern nur den timer wieder auf 0 setzen.

Ich möchte nämlich, dass wenn ich 1x timer drücke nach 10 Minuten die Lampe aus geht. 2x timer drücken => 20 Minuten, 3x => 30 Minuten, usw.

Ich werde jetzt mal dein neues Modul installieren und es ausprobieren ;)

Bei x-mal drücken musst du auch jeweils Zeitspannen programmieren, wann weiter gezählt wird und wann nicht. Dann sollte dein System auch performant genug sein und sich keine Zeitpausen gönnen, sonst kommst du beim Zählen durcheinander.

Gruß

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

dominik

Ich habe jetzt mal meinen Code belassen, denn damit funktioniert es ja :)
Mich stört nur, dass wenn ich "timer" drücke, die Lampe gleich "timer" als state übernimmt und sich damit kurz ausschaltet. Kann man ein webCmd an einem Device auch absetzen ohne dass sich das webCmd gleich als state hinterlegt?

Hab mal testweise einen dummy Schalter gebaut und dort die "timer" Funktionalität integriert. Da funktioniert es dann prima, da die Lampe nicht auf "timer" gesetzt wird sondern immer schön auf on oder off bleibt.

Wie handhabt ihr das generell im Webinterface? Erstellt ihr dummy Schalter im WebIf oder schaltet ihr direkt an den Devices? Was ist da die Empfehlung? Nachdem ich keine Hardware Schalter habe, steuer ich zur Zeit alles über das WebIf bzw. lasse die Devices zeitgesteuert agieren.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Hab meine Lösung auf der ersten Seite angepasst. Nun läuft der Sleeptimer einwandfrei und lässt sich auch sehr leicht auf weitere Geräte erweitern.

Btw, nutzt ihr eigentlich viel Perl Code oder eher mehr fhem.conf Befehle? Mache gerade die Erfahrung, dass ich viel besser zurecht komme, wenn ich die Befehle wie notify gleich auf Perl Code umleite und dort dann mit entsprechenden Funktionen arbeiten. Hat auch den Charm, dass ich dort die Funktionen wiederverwenden kann. Ist das auch Best Practice?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik