Liebe Fhem-Gemeinde,
ich habe ein kleines Phenomen, deren Ursache ich kenne aber nicht die Lösung:
Mein DOIF: ([ESPEasy_SZ4_280:Temperature] lt [Zieltemp_SZ]) (set F8_FL_H8_SZ on) DOELSE (set F8_FL_H8_SZ off)
deutsch: Der Chip im Schlafzimmer SZ4 misst die Temperatur und vergleicht sie mit dem dummy Zieltemp_SZ. Wenn Schlafzimmertemp "lt", also kleiner als Zieltemp, dann Heizung (Relais F8_...) an, wenn nicht dann aus.
Soweit klar.
Jetzt die Readings:
- Zieltemp_SZ: 10.0
- ESPEasy_SZ4_280_Temperature: 4.9
Für mich ganz klar: bitte Heizung an, für Fhem ganz klar: Heizung aus.
Die Ursache
--------------
Stelle ich testweise die Zieltemp auf 9.5 dann springt die Heizung an, was mir dann sagt, dass Fhem nicht die numerischen Werte vergleicht, sondern offensichtlich die Textwerte
Die Zahl 10 beginnt mit einer "1" und die gemessene Temperatur beginnt mit einer 4. Daher schaltet Fhem nix ein. Bei dem 9.5-Test sieht das anders aus.
Die Zahl 9.5 beginnt mit 9 und 4 ist kleiner als 9, also Heizung an.
Das Problem
---------------
Wie kann ich nun Fhem sagen, dass er die "numerischen" Werte nehmen soll?
Huch... habe mal testweise ein "<" statt ein "lt" verwendet und siehe da, es funktoniert. Sollte es nur daran gehangen haben?
alt vergleicht die Zeichenketten, nicht die Zahlwerte. Damit ist 1 kleiner als 4, egal, was danach folgt.
< oder > vergleicht die Zahlwerte.
Also ja, das war die Lösung.
Bitte im ersten Beitrag die Überschrift anpassen auf gelöst.