Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben

Begonnen von franky08, 17 Februar 2014, 21:47:35

Vorheriges Thema - Nächstes Thema

franky08

Hallo, ist es möglich die verbleibende Zeit von einem laufenden Timer zurückzugeben? Habe heute angefangen mit dem Text2Speech Modul zu experimentieren und möchte gerne die verbleibende Zeit eines laufenden Timers wiedergeben. Leider hab ich keinen Plan, wie ich an die Zeit komme die der Timer noch läuft.
Wenn jemand weiterhelfen kann, ich bin über jeden Tip dankbar.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Rince

Ich fürchte, dass nur Rudi dir sagen kann in welcher Variable die Laufzeit eines Timers gespeichert ist.

Ansonsten kann ich dir nur nen Workaround vorschlagen, ohne dir eine Lösung bieten zu können:

Ich nehme an, du hast einen bestimmten Timer im Auge?
Lass ihn ein Reading erzeugen wenn er losläuft. Also irgend einen Dummy auf irgend etwas setzen.

Wenn du die Laufzeit wissen willst,
lies dem TimeStamp vom Dummy aus,
sichere ihn in einer Variable,
setze den Dummy neu
lies den Zeitstempel vom Dummy neu aus
in einer anderen Variable sichern

Differenz der beiden Zeitstemoel vergleichen

Aussage glätten (na ja, Punkt durch Komma ersetzen)

Sprachausgabe


Wobei ich nicht weiß, ob es nicht einen deutlich eleganteren Weg gäbe.
Aber dieser scheint zumindest gehbar.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Paul

Willst du das regelmäßig machen? Also wie runterzählen, oder nur wenn du etwas auslöst. Z.b taste drückst?
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

franky08

Hallo, habe über 2 notifys 2 dummys den relevanten Timstamp zugewiesen, bis dahin alles schick. Jetzt möchte ich daraus gerne die verstrichene Zeit gewinnen aber irgendwie habe ich ein Brett vor dem Kopf. Ich weis, es ist eine einfache Substraktion aber irgendwie habe ich mich wahrscheinlich völlig in die falsche Richtung verrannt.
Die defines sind erstmal nur zum testen:
(Nicht lachen, ist nur zum testen und auslesen der Zeit)
define Tuer_dummy dummy
define Tuer_timer notify Schalter_Wohnungstuer:open {fhem "set Tuer_dummy ".time}
define Tuer_dummy1 dummy
define Tuer_notify1 notify Licht_Wohnungstuer:off {fhem "set Tuer_dummy1 ".time}


Wie kann ich nun {"Tuer_dummy1" - "Tuer_dummy"} machen ????

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

der-Lolo

Hm...
Schau doch mal in Loredos home Status Modul, da werden Zeiten behandelt und die Anwesenheit der Residents wird hochgezählt - vielleicht hilft dir der quelltext...
Stumpf subtrahieren wird wohl nicht funktionieren da zeit ja nicht auf Basis 100 läuft...

Rince

Welchen Wert hat den dein Dummy?
Schau doch bitte mal nach. Das sollte einfach im Moment eine ziemlich große Zahl sein.

Die Funktion time() in Perl liefert dir nämlich eigentlich die Sekunden zurück, die seit dem 1.1.1970 vergangen sind.
(Wenn das also so ist, dann scheint dein Konstrukt oben schon mal zu funktionieren)

Und damit (also mit diesen 2 Zahlen die die verstrichenen Sekunden präsentieren) kannst du die beiden Werte einfach subtrahieren, dann erhältst du halt als Differenz Sekunden.

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

franky08

@Rince
funktionieren tut das soweit, siehe Readings:
dummy
Tuer_dummy
1392801834.91185
Tuer_dummy1
1392801899.09209

Irgendwie fehlt mir ein Lösungsansatz für die Subtraktion

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

franky08

#8
Das erste Reading wird beim öffnen der Tür erzeugt und triggert ein notify auf einen on-for-timer 60, dieser schaltet für eine Minute das Flurlicht ein, das zweite Reading stammt vom Timer, habe das gestern zum experimentieren so eingerichtet, desshalb ist jetzt die Differenz natürlich immer 60 Secunden. Wenn ich das für die Substraktion in den Griff bekommen habe, soll das ganze auf den Timer für das Badlicht angewendet werden. Hintergrund ist, das das Badlicht über einen IR- Motion sensor gesteuert wird und bei Bewegung im Bad alle 20 Sec. nachtriggert. Wird kein motion Event mehr ausgelöst (Bad, keine Person mehr oder Person im Bad bewegt sich nicht :-) laüft der Timer für das Licht bis zum Ende und das Licht geht aus. Über Text2Speech soll dann sowas wie eine Warnung ausgegeben werden, dass das Licht in X-Sekunden ausgeht.
Das mit dem Badlicht funktioniert schon seit 6 Monaten problemlos und soll jetzt durch die "Warnausgabe" ergänzt werden.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Rince

Ach so,

ich löse das mit dem Badlicht etwas anders, nämlich mit 2 Watchdogs.

Die werden getriggert wenn das Badlicht an geht.
Einer von beiden macht nach 16 Minuten das Badlicht aus
Der andere gibt nach 14 Minuten eine Warnung aus, dass das Badlicht in 2 Minuten ausgeht :)

Hilft dir das weiter?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

franky08

#10
Ich sag´s doch, ich hab viel zu kompliziert gedacht, werde mir den "Wachhund" mal vornehmen.
Das Problem ist dann aber, das der Timer über motion nachgetriggert wird, das Ende des Timers also nicht bekannt ist.
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

der-Lolo

Deswegen ja watchdog - der triggert einfach bei jedem Motion wieder auf Null...
Bei jedem Motion fangen also die 14 Minuten neu an. Alle 20 Sekunden triggert bedeutet aber auch eine Menge funkelst - ist es ein HM Bewegungsmelder?

franky08

#12
Habe es jetzt, zu meiner Zufriedenheit so gelöst:

#Badlicht schalten
#
#---- Lichtsensor
define Lichtsensor1 dummy
attr Lichtsensor1 fp_Grundriss 200,485,0,
attr Lichtsensor1 fp_Grundriss2 105,545,0,
attr Lichtsensor1 room Bad
define Daemmerung notify IR_Sensor.*brightness.* {\
if(ReadingsVal("IR_Sensor","brightness","999")<=33){\
fhem "set Lichtsensor1 dunkel"};;\
if(ReadingsVal("IR_Sensor","brightness","999")>33){\
fhem "set Lichtsensor1 hell"};;\
}
#---- Badlicht steuern
define Bewegung_Bad notify IR_Sensor:motion:.on.* {\
if (Value("Lichtsensor1") eq "dunkel") {\
fhem "set Badlicht on-for-timer 600";;\
\
}}
define Badlicht_dog watchdog Badlicht:on 00:09:45 Badlicht:on set MyTTS tts "Das Badlicht geht in 10 Sekunden aus!"

Macht was es soll, 15 sec. vor Licht aus quackt MyTTS los und wenn der Text durch ist und keine motion vom MDIR mehr erkannt wird, geht das Badlicht aus.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Rince

Dass dir 15 Sekunden ausreichen?
Ich hab 120 und komm schon ins schwitzen ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

franky08

#14
Das war eine Fehlinterpretation  ;)
Der Timer läuft 600 sec. also 10 Minuten, nach 9min 45sec kommt über watchdog das noch 10 sekunden bleiben bis das Licht ausgeht. Wenn der "Bad-Benutzer" sich dann bewegt, so das motion ausgelöst wird, triggert der Timer wieder 10 Minuten nach. Ausschalten kann man das Licht, beim verlassen auch ganz normal über den Lichtschalter.

P.S. Ist schon ein lustiges Gimick und erfreut meine Familie
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1