Hallo
ich habe eine ReadingsGroup für Temperaturen erstellt welche alle Devices nach einem Reading "temperature" durchsucht:
Leider haben die Fibaro Türsensoren eine Einheit hinter dem Reading "C" und diese erscheinen in der Übersicht:
Temperaturübersicht
Nebeneingang:temperature 12.4 C
Haupteingang:temperature 15.0 C
Kuche_Motion_Temp:temperature 20.03
Office_Motion_Temp:temperature 18.44
Ich wollte die Readingsgroup farblich in Abhängigkeit vom Temperaturwert darstellen usw. Wie kann ich das Reading Modifizieren, das ich nur die Zahl erhalte?
Es geht spezifisch um das Reading temperature, denn der Device State zeigt open/closed an und somit kann ich stateformat nicht nutzen. Erzeuge ich ein dummy reading,
habe ich dann die Temperatur doppelt in der Gruppe.. Mehr faellt mir leider nicht ein. ein ReadingsGroup finde ich super, weil sich diese bei weiteren Geräten dynamisch
erweitert.
Danke.
Hi,
das geht mit
my $Reg = ReadingsVal("AHT", "actuator","")."";
$Reg=(substr($Reg, 0, (length($Reg)-1)));
fhem ("set AHV actuator $Reg");
ist aus einer FS20 Steuerung
gruss
ReadingsNum
hi,
ja habe ich auch grade gelesen,
aber noch nicht probiert....
(hab es grade mal bei dem FS20 probiert, bisher keine Fehlermeldung)
gruss
Der Einfachheit halber ein userReading verwenden, dass mit ReadingsNum die Einheit entfernt und das in der readingsGroup verwenden.
wie im anderen thread geschrieben: $NUM statt $VALUE verwenden.
Hi
hier der die definition der Readingsgroup. Ich verwende bisher kein ReadingsVal oder Num:
define rg_temps readingsGroup .*:temperature
attr rg_temps alias Temperaturübersicht
attr rg_temps group Klima
attr rg_temps icon temp_temperature
attr rg_temps notime 1
attr rg_temps room Allgemein
Definiere ich ein Userreading dann wir doch für das gleiche Gerät das Reading temperature und das userReading angezeigt? Außerdem muss ich bei jedem neuen gerät das manuel hinzufügen.
Das könnte klappen (ungetestet).
attr rg_temps valueFormat {return $NUM if ($VALUE =~ /C$/)}
Gruß
Dan
danke für die Hilfe. Ich habe auch nochmal im Wiki gelesen und in der definition der Readingsgroup folgendes Eingetragen.
Es klappt die "C" des Readings werden rausgenommen und nun kann ich je nach temperatur auch die Werte farblich markieren.
Zur Hilfe für andere nochmal definition:
define rg_temps readingsGroup .*:temperature
attr rg_temps alias Temperaturübersicht
attr rg_temps group Klima
attr rg_temps icon temp_temperature
attr rg_temps mapping %ALIAS
attr rg_temps nostate 1
attr rg_temps notime 1
attr rg_temps room Allgemein
attr rg_temps valueFormat { temperature => '%1.f'}
attr rg_temps valueStyle { if($READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}elsif($READING eq "temperature" && $VALUE > 25) { 'style="color:yellow"'}elsif($READING eq "temperature" && $VALUE > 20) { 'style="color:green"'}elsif($READING eq "temperature" && $VALUE < 10) { 'style="color:darkblue"'}elsif($READING eq "temperature" && $VALUE < 5) { 'style="color:blue"'}else{'style="color:orange"'}}
und man kann es auch gestalten
sie bild