Hauptmenü

Readingsgroup mit sprintf

Begonnen von accessburn, 01 Juni 2018, 10:24:38

Vorheriges Thema - Nächstes Thema

accessburn

Juhu,
ich versuche bei den Temperatursensoren den Trend ordentlich anzuzeigen. Bisher wird er so angezeigt: "1h: +2.2 2h: - 3h: - 6h: -"

Ich wollte das aber in je eine Spalte haben und hab mit userReadings experimentiert:
attr Temperatur_Sammlung userReadings trend {sprintf("%f",ReadingsVal($DEVICE,"statTemperatureTendency",""))}


Oben im DEF wollte ich dann statt "statTemperatureTendency" einfach "trend" eintragen.
Was mache ich denn Falsch?



UPDATE:

Bin einen Schritt weiter gekommen, sprintf war ja schon mal grundlegend falsch. split führte zum erfolg. Aber, wie splitte ich Wert 1, 2 und 3 seperat?

Internals:
   DEF        <Sensor>,<Temperatur>,<Feuchtigkeit>,<Batterie>,<Trend>,<Trend>,<Trend>
TYPE=LaCrosse:temperature,humidity,battery,statTemperatureTendency,statTemperatureTendency,statTemperatureTendency
   NAME       Temperatur_Sammlung
   NR         444
   NTFY_ORDER 50-Temperatur_Sammlung
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   CONTENT:
     LaCrosse_00 1
     LaCrosse_05 1
     LaCrosse_09 1
     LaCrosse_1A 1
     LaCrosse_1B 1
     LaCrosse_20 1
     LaCrosse_31 1
   CONTENT2:
   DEVICES:
     ARRAY(0x47e8d40)
     ARRAY(0x4a05d78)
     ARRAY(0x4695b88)
     ARRAY(0x4b2a888)
     ARRAY(0x4896e58)
     ARRAY(0x46907b8)
     ARRAY(0x4762490)
     ARRAY(0x48591c0)
   fhem:
     lastDefChange 60
     last_update 1527844506.86166
   helper:
     DEF       
     nameStyle  style="color:blue;;font-weight:bold"
     valueFormat { if($READING eq "statTemperatureTendency") { (split(" ", $VALUE))[1] } }
     valueStyle { if($READING eq "temperature" && $VALUE > 30) { 'style="color:red;;font-weight: bold"'}
elsif($READING eq "temperature" && $VALUE > 25) { 'style="color:orange;;font-weight: bold"'}
elsif($READING eq "temperature" && $VALUE > 20) { 'style="color:green"'}
elsif($READING eq "temperature" && $VALUE < 10) { 'style="color:darkblue;;font-weight: bold"'}
elsif($READING eq "temperature" && $VALUE < 5) { 'style="color:blue;;font-weight: bold"'}
else{'style="color:black"'}}
     positions:
       LaCrosse_00.battery 2:3
       LaCrosse_00.humidity 2:2
       LaCrosse_00.statTemperatureTendency 2:4,2:5,2:6
       LaCrosse_00.temperature 2:1
       LaCrosse_05.battery 3:3
       LaCrosse_05.humidity 3:2
       LaCrosse_05.statTemperatureTendency 3:4,3:5,3:6
       LaCrosse_05.temperature 3:1
       LaCrosse_09.battery 4:3
       LaCrosse_09.humidity 4:2
       LaCrosse_09.statTemperatureTendency 4:4,4:5,4:6
       LaCrosse_09.temperature 4:1
       LaCrosse_1A.battery 5:3
       LaCrosse_1A.humidity 5:2
       LaCrosse_1A.statTemperatureTendency 5:4,5:5,5:6
       LaCrosse_1A.temperature 5:1
       LaCrosse_1B.battery 6:3
       LaCrosse_1B.humidity 6:2
       LaCrosse_1B.statTemperatureTendency 6:4,6:5,6:6
       LaCrosse_1B.temperature 6:1
       LaCrosse_20.battery 7:3
       LaCrosse_20.humidity 7:2
       LaCrosse_20.statTemperatureTendency 7:4,7:5,7:6
       LaCrosse_20.temperature 7:1
       LaCrosse_31.battery 8:3
       LaCrosse_31.humidity 8:2
       LaCrosse_31.statTemperatureTendency 8:4,8:5,8:6
       LaCrosse_31.temperature 8:1
     recalc:
       undef
       ARRAY(0x4ad0e28)
       ARRAY(0x45ce0c0)
     valueIcon:
       battery.low batterie@red
       battery.ok batterie@green
       window.closed fts_window_1w@green
       window.open fts_window_1w_open@red
     valueSuffix:
       humidity    %   
       measured-temp  °C   
       temperature  °C   
     values:
       formated:
         undef
         ARRAY(0x473e218)
         ARRAY(0x47945e0)
         ARRAY(0x1fb42d0)
         ARRAY(0x49f4eb8)
         ARRAY(0x4b13330)
         ARRAY(0x4853768)
       orig:
         undef
         ARRAY(0x4876fc8)
         ARRAY(0x48926f8)
         ARRAY(0x4737210)
         ARRAY(0x4b82778)
         ARRAY(0x47f8210)
         ARRAY(0x4b87538)
       prefixsuffix:
         undef
         ARRAY(0x4b0ef78)
         ARRAY(0x4859808)
         ARRAY(0x4b92a98)
         ARRAY(0x4ba9070)
         ARRAY(0x4856440)
         ARRAY(0x230ab90)
Attributes:
   alias      Temperatur
   nameStyle  style="color:blue;;font-weight:bold"
   room       Status
   sortColumn 0
   userReadings trend {sprintf("%f",ReadingsVal($DEVICE,"statTemperatureTendency",""))}
   valueFormat { if($READING eq "statTemperatureTendency") { (split(" ", $VALUE))[1] } }
   valueIcon  {'window.closed' => 'fts_window_1w@green', 'window.open' => 'fts_window_1w_open@red','battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red'}
   valueStyle { if($READING eq "temperature" && $VALUE > 30) { 'style="color:red;;font-weight: bold"'}
elsif($READING eq "temperature" && $VALUE > 25) { 'style="color:orange;;font-weight: bold"'}
elsif($READING eq "temperature" && $VALUE > 20) { 'style="color:green"'}
elsif($READING eq "temperature" && $VALUE < 10) { 'style="color:darkblue;;font-weight: bold"'}
elsif($READING eq "temperature" && $VALUE < 5) { 'style="color:blue;;font-weight: bold"'}
else{'style="color:black"'}}
   valueSuffix { "temperature" => ' °C   ', "measured-temp" => ' °C   ' , "humidity" => ' %   '  }


Im valueFormat kann ich nur eins unterscheiden :(
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole