FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: franky08 am 17 Februar 2014, 21:47:35

Titel: Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 17 Februar 2014, 21:47:35
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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 18 Februar 2014, 00:41:51
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.
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Paul am 18 Februar 2014, 01:00:06
Willst du das regelmäßig machen? Also wie runterzählen, oder nur wenn du etwas auslöst. Z.b taste drückst?
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 18 Februar 2014, 22:47:19
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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: der-Lolo am 18 Februar 2014, 23:31:13
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...
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 19 Februar 2014, 10:25:48
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.

Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 19 Februar 2014, 10:38:52
@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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 19 Februar 2014, 10:53:50
War die Türe etwa 1 Minute auf?
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 19 Februar 2014, 11:06:34
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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 19 Februar 2014, 11:15:19
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?
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 19 Februar 2014, 11:23:52
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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: der-Lolo am 19 Februar 2014, 19:18:54
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?
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 19 Februar 2014, 19:28:44
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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 19 Februar 2014, 19:50:45
Dass dir 15 Sekunden ausreichen?
Ich hab 120 und komm schon ins schwitzen ;)
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 19 Februar 2014, 19:55:29
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
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 19 Februar 2014, 20:10:12
Ja ja, das war mir schon klar :)
Aber stimmt, ich muss rauslaufen um den Lichtschalter wieder zu drücken, du brauchst nur das Zappeln anfangen ;)

Das man den Lichtschalter händisch ausschalten kann ist richtig.

Wenn du meine Erfahrung wissen willst:
Früher (vor dem Eingriff mit fhem) dachte ich immer, meine Kinder lassen dauernd das Licht an.
Als es dann per fhem abgedreht wurde, ertappte ich mich manchmal dabei, das auch ich den Schalter nicht betätigte

Mittlerweile macht es keiner mehr von Hand aus.  ::)
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: franky08 am 19 Februar 2014, 20:55:21
Und hier wurde vom Jungen bemängelt, dass wenn er stundenlang auf der Keramik sitzt, das Licht plötzlich ausgeht  ;D
Desshalb jetzt mit Warnung ???
Titel: Antw:Verbleibende Zeit von laufendem Timer mit Text2Speech ausgeben
Beitrag von: Rince am 19 Februar 2014, 21:15:55
Hm,
ob der Tipp, dass er sich mehr bewegen soll auf der Schüssel, pädagogisch wertvoll ist, kann ich nicht sagen.  8)

Aber wenn es dich tröstet:
Was meinst was meine Mädels in der Wanne dann für ein G'schrei machen, wenn das Licht ausgeht :)