Hallo,
ich weiß nicht, ob das ein Problem vom genutzten echodevice Modul oder vom FHEM Hauptmodul etc. ist.
Folgendes Problem habe ich seit Kurzen und es hat aber mal sauber seit Ewigkeiten funktioniert und weiß nicht mehr weiter, wie ich das Problem lösen kann.
Ich lasse mir einige Stati und Werte von Alexa auf Anforderung ansagen.
Beim Kühlschrank habe ich nun das plötzlich Problem, das "set ECHO..... speak -17 Grad" aus einem NOTIFY oder MyUtils heraus nicht mehr die negativen Temperaturwerte ansagt, sondern das Minus einfach ignoriert.
Das ging aber mal alles ohne Probleme.
Auszug von dem Code in der MyUtils bzw. vom Test Notify mit einem Dummy.
{my $freezer = ReadingsVal('Samsung',"freezer_temperature","0") ; fhem("set ECHO_.......... speak Freezer Temperatur $freezer Grad.")}
Der ReadingsVal und auch die Variable $freezer beinhaltet den Wert -17.
Das habe ich mehrfach gecheckt in FHEM Kommandozeile usw.
Der Echo sagt aber immer nur 17 Grad. Gefühlt macht er aber auch eine kleine Pause vor der 17. Klingt ein wenig komisch, als ob er kurz stocken würde.
Gehe ich in FHEM direkt auf das Echodevice und sage: "set ECHO_.......... speak -17"
Dann sagt er aber -17.
Nur aus der Variable heraus nicht.
Was ist da los mit meinem FHEM und warum?
Wo kommt das her?
Hoffe auf eure Hinweise und Tips.
Hi,
klingt nach Problem mit der Zeichenkodierung.
Nimm doch mal eine "echte" Zahl, also ReadingsNum() anstatt einem String mit ReadingsVal()
Gruß Otto
ZitatGehe ich in FHEM direkt auf das Echodevice und sage: "set ECHO_.......... speak -17"
Dann sagt er aber -17.
Nur aus der Variable heraus nicht.
Hallo,
es liegt nicht an der Variablen. Mit "set ECHO_.......... speak -17 Grad" wird auch das Minus geschluckt.
Es hat irgendwie damit zu tun das man das Grad mit angibt. Egal ob man es ausschreibt oder ° angibt.
Warum auch immer!?
Zitat von: Otto123 am 27 Juli 2025, 14:27:37Hi,
klingt nach Problem mit der Zeichenkodierung.
Nimm doch mal eine "echte" Zahl, also ReadingsNum() anstatt einem String mit ReadingsVal()
Gruß Otto
Beides schon probiert, mit ReadingsVal und ReadingsNum gleiches Ergebnis.
Alle Minus Werte werden als positive angesagt.
Habe es mit einem Dummy und NOTIFY zum Testen konfiguriert.
Er stockt immer ganz kurz bei den negativen Werten, bei positiven redet er flüssig weiter.
Setze dann im Dummy mal positive und negative Werte und lass auf Echo ausgeben.
In meinem speziellen NOTIFY sagt der Echo dann "Temperatur MINUS 17" und die Zahl vom Dummy Grad. Aber nicht mit Minus.
Kann das jemand so nachstellen und bestätigen?
define act_on_TestAlexaDummy notify TestAlexaDummy:.* {my $freezer = ReadingsNum('TestAlexaDummy',"state","0") ;; {fhem("set ECHO_************ speak Temperatur -17 und $freezer Grad")}}
# CFGFN
# DEF TestAlexaDummy:.* {my $freezer = ReadingsNum('TestAlexaDummy',"state","0") ; {fhem("set ECHO_************ speak Temperatur -17 und $freezer Grad")}}
# FUUID 68860d6b-f33f-d0ce-33b8-507c0c04ddc59380
# NAME act_on_TestAlexaDummy
# NOTIFYDEV TestAlexaDummy
# NR 18580
# NTFY_ORDER 50-act_on_TestAlexaDummy
# REGEXP TestAlexaDummy:.*
# STATE 2025-07-27 14:30:53
# TRIGGERTIME 1753619453.76948
# TYPE notify
# eventCount 14
# READINGS:
# 2025-07-27 14:30:22 state active
# 2025-07-27 14:30:53 triggeredByDev TestAlexaDummy
# 2025-07-27 14:30:53 triggeredByEvent -20
Zitat von: TomLee am 27 Juli 2025, 14:28:26ZitatGehe ich in FHEM direkt auf das Echodevice und sage: "set ECHO_.......... speak -17"
Dann sagt er aber -17.
Nur aus der Variable heraus nicht.
Hallo,
es liegt nicht an der Variablen. Mit "set ECHO_.......... speak -17 Grad" wird auch das Minus geschluckt.
Es hat irgendwie damit zu tun das man das Grad mit angibt. Egal ob man es ausschreibt oder ° angibt.
Warum auch immer!?
Bei mir nicht.
Direkt aus dem Echjo Device heraus, sagt er bei mir negative Werte mit Minus an.
Egal ob nur -17 oder -17 Grad oder -17 irgendwas dahinter
ZitatKann das jemand so nachstellen und bestätigen?
So stell ich das in der Kommandozeile nach:
{my $freezer = -17;; fhem("set OG_Echo_Wohnzimmer speak Temperatur -17 und $freezer Grad")}
ergibt:
ZitatTemperatur -17 und 17 Grad
{my $freezer = -17;; fhem("set OG_Echo_Wohnzimmer speak Temperatur -17 und $freezer")}
ergibt:
ZitatTemperatur -17 und -17
{my $freezer = -17;; fhem("set OG_Echo_Wohnzimmer speak Temperatur -17 und $freezer ohm")}
ergibt:
ZitatTemperatur -17 und -17 ohm
Bei mir klappts mit allem dahinter, nur nicht mit Grad oder °.
edit:
Doch nicht. Mit bspw. Megawatt ;D klappts bei mir auch nicht, seltsam:
{my $freezer = -17;; fhem("set OG_Echo_Wohnzimmer speak Temperatur -17 und $freezer MW")}
ergibt:
ZitatTemperatur -17 und 17 Megawatt
Stimmt eben auch nochmal mit verschiedenen Einheiten getestet.
Das ist ein Problem mit Einheiten hinter dem negativen Temperaturwert.
Ohm und Euro geht z.B.
Watt, Sekunden, Stunden, km, Meter geht NICHT mehr.
Dann ist das kein Problem von FHEM oder einem Modul, da im Log mit Verbose 5 zu sehen ist, dass die -17 Grad im HTTPS Speak-Aufruf an Amazon geschickt wird.
Da fummelt Amazon Echo dran rum und interpretiert den negativen Wert als unplausibel oder so etwas.
Da ja total dämlich.
Eine Idee für einen Workaround?
EDIT:
Habe jetzt erst einmal im Speak Befehl das Wort "Grad" in "-Grad" geändert, so geht es erstmal wieder und ohne kurze Gedenkpause vor Grad oder so.
Schon echt komisch.
ZitatEine Idee für einen Workaround?
{my $freezer = -17;; fhem("set OG_Echo_Wohnzimmer speak Temperatur -17 und $freezer kraad")}
Zitat von: TomLee am 27 Juli 2025, 19:27:14ZitatEine Idee für einen Workaround?
{my $freezer = -17;; fhem("set OG_Echo_Wohnzimmer speak Temperatur -17 und $freezer kraad")}
Grahd geht auch :))