Hallo,
ich versuche gerade mir morgends das aktuelle Wetter vorlesen zu lassen.
Leider scheitere ich schon am Zusammenbau des Textes.
Ich möchte den Text im Reading tts abspeichern und Ihn dann anscließend vorlesen lassen.
Mein DOIF sieht wie folgt aus
([05:30-09:00] and ["^0_ku_li_:on"])
(
setreading $SELF tts Guten Morgen. Die Außentemperatur beträgt [wetterstation1:temperature:r0] Grad
set MyTTS tts [$SELF:tts]
)
Ich kann es so aber nicht abspeichern, es kommt die Fehlermeldung "di_morgentts DOIF: unknown expression format: r0".
Führe ich den setrading Befehl ganz normal aus, wird das Reading auch richtig gesetzt.
Hat hier jemand eine Idee was da falsch läuft?
Zitat von: micha0815 am 28 September 2018, 21:30:10
Hallo,
ich versuche gerade mir morgends das aktuelle Wetter vorlesen zu lassen.
Leider scheitere ich schon am Zusammenbau des Textes.
Ich möchte den Text im Reading tts abspeichern und Ihn dann anscließend vorlesen lassen.
Mein DOIF sieht wie folgt aus
([05:30-09:00] and ["^0_ku_li_:on"])
(
setreading $SELF tts Guten Morgen. Die Außentemperatur beträgt [wetterstation1:temperature:r0] Grad
set MyTTS tts [$SELF:tts]
)
Ich kann es so aber nicht abspeichern, es kommt die Fehlermeldung "di_morgentts DOIF: unknown expression format: r0".
Führe ich den setrading Befehl ganz normal aus, wird das Reading auch richtig gesetzt.
Hat hier jemand eine Idee was da falsch läuft?
r0 kennt DOIF nicht. Du musst in der Commandref zu DOIF schauen:
ZitatFiltern nach Ausdrücken mit Ausgabeformatierung back
Syntax: [<device>:<reading>|<internal>:d<number>|"<regex>":<output>]
d - Der Buchstabe "d" ist ein Synonym für das Filtern nach Dezimalzahlen, es entspricht intern dem regulären Ausdruck "(-?\d+(\.\d+)?)". Ebenfalls lässt sich eine Dezimalzahl auf eine bestimmte Anzahl von Nachkommastellen runden. Dazu wird an das "d" eine Ziffer angehängt. Mit der Angabe d0 wird die Zahl auf ganze Zahlen gerundet.
Super, danke für den Hinweis. Damit funktioniert es.
Ich bin nur etwas iritiert, weil bei der Hilfe von setreading steht es eben mit dem r0 für das Runden auf null Stellen. Da hab ich bei DOIF gar nicht gesucht.
Ich dachte immer das im Ausführungsteil ganz normale FHEM Befehle stehen.