Hauptmenü

persönliche Zeitansage

Begonnen von kde-mgm, 21 Februar 2015, 13:05:25

Vorheriges Thema - Nächstes Thema

kde-mgm

Hallo zusammen,

ich habe mir das TTS Modul installiert und wollte eine persönliche Zeitansage gestalten (zwischen 08:00 bis 20:00).
Doch leider find ich es persönlich un-schick, für jede halbe Stunde solch eine Anweisung zu schreiben

-- z.B.

# xyz
define xyz at *08:30 set MyTTS tts Guten Morgen. Es ist jetzt 08:30 Uhr. attr xyz room !Zeit, !Voice
# abc
define abc at *09:00 set MyTTS tts Guten Morgen. Es ist jetzt 09:00 Uhr. attr xyz room !Zeit, !Voice
USW...


Hat jemand eine Idee wie ich das eleganter steuern kann?

LG, Jessica

SSSleep


kde-mgm

Hi SSSleep,

Leider nein...
in meinem Fall geht es ja darum, zu jeder halben Stunde auch die entsprechende Uhrzeit anzusagen.


Hat jemand eine Idee?

LG, Jessica

marvin78


SSSleep

Ja, das war nur der zyklische Aufruf.
Du könntest aber doch versuchen die zu "sprechende Uhrzeit" durch eine Variable zu ersetzen. Fhem hat bestimmt einen Kommando um die localtime zurück zu geben.

SSSleep

Hast du es?

Ich dachte so etwa:
{'Es ist jetzt '.$hour.':'.$min. ' Uhr.'}

kde-mgm

Hi SSSleep,

danke für deine ausführliche Erklärung.
Jetzt habe ich es verstanden. Da das einzige Veränderliche die Uhrzeit ist, packen wir diese in eine Variable --> ok! Verstanden.

Ich werde mir mal die vorgeschlagenen perl specials anschauen und ggf heute umsetzen.

LG, Jessica

SSSleep

Kopiere doch die Codezeile von oben in deine Fhem-Kommandozeile.

kde-mgm

Hi SSSleep,

ok.
habe ich gemacht = funktioniert (Der Satz und die Uhrzeit wird angezeigt).

Gebe ich jedoch set MyTTS tts {'Es ist jetzt '.$hour.':'.$min. ' Uhr.'} aus, spricht er die Variablen als "Dollar" und "min" aus..  :-)
Was kann ich hier tun?

LG, Jessica

SSSleep

das Modul erkennt wohl kein Perl-Code!?

Kennst Du diese Seite: http://www.fhemwiki.de/wiki/Wetter_vorlesen_lassen

...vielleicht kannst Du direkt die Funktion speak() verwenden. der at-Befehl erkennt ja Perl-Code.

kde-mgm

Hi SSSleep,

erstmal Danke für deine sehr unterstützende Hilfe.

Ich habe den von Dir angegebenen Link verfolgt. Da ich (noch) kein Entwickler bin, werde ich wohl noch einige Zeit benötigen um die Seite/den Code zu verstehen und für meine Zwecke einzusetzen :-)


LG, Jessica

SSSleep

...bin auch kein Entwickler  ::)...deswegen kann ich dir auch keinen fertigen Codschnipsel geben. :-[

aber ich würde es mal in diese Richtung versuchen


define xyz at *+0:30 {speak("Es ist jetzt ".$hour. ":". $min. " Uhr" ,0)}
attr xyz alignTime 00:30


vielleicht auch erstmal nur mit:


{speak("Test" ,0)}


Die geschweiften Klammer teilen Fhem wohl mit, dass es sich dabei um PERL code handelt.

SSSleep

..entschuldige, das war falsch...die Funktion speak() taucht ja im Wiki unten wieder auf.

...das hier ist es wohl:
define xyz at *+0:30 {fhem("set MyTTS"." tts "."Es ist jetzt ".$hour. ":". $min. " Uhr")}

kde-mgm

Hi SSSleep,

Lieben Dank!
Ich habe ein wenig getestet und festgestellt, dass Wohl das Modul tts einen Fehler haben muss. Hintergrund: Manchmal werden die Zeiten richtig interpretiert, und manchmal fehlerhaft (Doppelpunkt wird als "zu" interpretiert. Ab und wird das Wort "template" ausgesprochen.. --> also sehr merkwürdig).
Ich werde diese Infos mal im Modul-Forum posten.

LG, Jessica

nesges

fhem("set MyTTS tts Es ist jetzt $hour Uhr $min")