Hallo Jens,
schau mal, ich glaube ich habe einen Bug gefunden im Panel. Für vocFlur <1000 ist alles OK, aber sobald vocFlur >= 1000 ist, wird die Zahl als 1 mit 3 Nachkommastellen interpretiert.
Also im Bild 1615 -> wird zu 1.615, dann wird auch der Farbkreis nicht mehr gefüllt. bei 900 ist alles OK, dann wird auch der kreis mit Orange gefuellt.
Hier das List mit den AppOptions, ich hoffe Du weisst was ich meine.
define AirQualityFlur dummy
attr AirQualityFlur appOptions { "name": "Flur", "panel": { "min":0, "max":1800, "status": ["vocFlur:1200:%n:%n:error","vocFlur:600:%n:%n.0:warning","vocFlur::%n:%n.0:success"] } }
attr AirQualityFlur comment list appOptions!= appOptions
attr AirQualityFlur devStateIcon none
attr AirQualityFlur event-on-change-reading state,vocFlur
attr AirQualityFlur group fhemapp
attr AirQualityFlur room System
attr AirQualityFlur userReadings vocFlur:.* {my $voc=ReadingsNum($name,'state',0);;my $text=$voc>1200?'schlecht - ':$voc>600?'mäßig - ':'gut - ';;return ReadingsNum($name,'state',0) . ' ppm - '.$text . ReadingsNum('RTC_Flur_Climate','measured-temp',0).'°C'}
Hallo,
ich habe mir den Quellcode mal angesehen. Normaler Weise sollte das wie gewünscht funktionieren. Deine Tempalte-Definition mit min und max passt ebenfalls.
Ich habe noch folgende Vermutung. Evtl. wird dein Reading vocFlur bereits formatiert zurückgegeben. Also wenn dein Reading bei Werten ab 1000 in FHEM folgendes anzeigt 1.000 wäre mir klar, weshalb das nicht funktioniert. Kannst du bitte mal prüfen, was genau in dem Reading in FHEM bei Werten größer 1000 angezeigt wird.
Grüße
Jens :)
Hallo Jens,
ganz komisch. Selbst wenn ich nur die Zahl 1234 im userreading zurueckgebe, also "userReadings vocFlur:.* {return 1234 }", bekomme ich den effekt. Siehe Bild und list:
Internals:
FUUID 6086ebb1-f33f-97bf-8d73-bba587c8484bdeec
NAME AirQualityFlur
NR 2832
STATE 1600
TYPE dummy
eventCount 285
READINGS:
2022-11-09 08:27:23 state 1600
2022-11-09 08:27:23 vocFlur 1234
hmccu:
Attributes:
appOptions { "name": "Flur", "panel": { "min":0, "max":1800, "status": ["vocFlur:1200:%n:%n:error","vocFlur:600:%n:%n.0:warning","vocFlur::%n:%n.0:success"] } }
comment list appOptions!= appOptions
devStateIcon none
event-on-change-reading state
group fhemapp
room System
userReadings vocFlur:.* {return 1234 }
Hallo Jens, wenn ich anstatt %n ein %i nehme, funktionierts, also in meinem Thread ganz oben dann folgende appOptions:appOptions { "name": "Flur", "panel": { "min":0, "max":1800, "status": ["vocFlur:1200:%s:%i:error","vocFlur:600:%s:%i:warning","vocFlur::%s:%i:success"] } }
Hi,
man sollte in der Statusdefinition beachten, wie die Werte formatiert werden.
Mit der Ersetzung %n wird der Wert des Reading in einen Zahlenwert je nach eingestellter Language formatiert. Für die Sprache deutsch werden Zahlenwerte mit Tausenderpunkt und Komma ausgegeben.
Beispiel:
Wert des Reading in FHEM: 1234.567
Ersetzung %n (Reading als Zahl ohne Nachkommastellen) -> 1.234
Ersetzung %n.3 (Reading als Zahl mit 3 Nachkommastellen) -> 1.234,567
Ersetzung %s (Reading als Zeichenkette wie in FHEM) -> 1234.567
Ersetzung %i1 (Reading wird um 1 inkrememtiert) -> 1235.567
Wichtig bei der Definition ist, dass der Parameter level nicht formatiert werden darf. Also bei level solltest du mit %s (statt %i) arbeiten. Siehe hierzu auch die Dokumentation (Ersetzungsmöglichkeiten)
Beste Grüße
Jens :)
Hi Jens,
danke, das haben wir (also Du) ja dann geloest! - bei mir steht language auf Englisch.
Schon wieder was gelernt.
Beste Gruesse!