Autor Thema: [gelöst]readingsGroup valueStyle zwei Werte vergleichen  (Gelesen 1395 mal)

Offline Commander

  • Jr. Member
  • **
  • Beiträge: 62
[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« am: 02 Oktober 2017, 11:05:22 »
Hallo
ich habe eine readingGroup die auch soweit ganz gut funktioniert.
Folgender valueStyle zeigt mir auch die Werte rot an wenn sie über 100 sind.
{($READING eq "current_period" && $VALUE > 100)?'style="color:red"':'style="color:green"'}
Jetzt möchte ich aber den Wert mit previous_period vergleichen und wenn dieser überschritten ist rot anzeigen lassen.

Dies geht so jedenfalls nicht
{($READING eq "current_period" && $VALUE > "previous_period" )?'style="color:red"':'style="color:green"'}
Hat jemand vielleicht ein Tipp für mich?

Vielen Dank
« Letzte Änderung: 02 Oktober 2017, 12:10:23 von Commander »
FHEM5.6 auf Intel NUC NUC5PPYH
HM-CFG-USB-2 / HMLAN
CUL 433 CUL 868 / WMBus_T (Techem) JeeLink
MAX! Cube,Logitech Harmony Hub,Philips Hue

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 383
Antw:readingsGroup valueStyle zwei Werte vergleichen
« Antwort #1 am: 02 Oktober 2017, 11:32:28 »
...Dies geht so jedenfalls nicht
{($READING eq "current_period" && $VALUE > "previous_period" )?'style="color:red"':'style="color:green"'}
Hat jemand vielleicht ein Tipp für mich?
Versuche mal den Vergleichswert mit ReadingsVal() abzufragen:
{($READING eq "current_period" && $VALUE > ReadingsVal("previous_period",$DEVICE,""} )?'style="color:red"':'style="color:green"'}
EDIT: Achtung ReadingsVal Parameter vertauscht, siehe unten
« Letzte Änderung: 02 Oktober 2017, 13:55:03 von supernova1963 »
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 18.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, MQTT + espBridge + TASMOTA_DEVICE, HMCCU, Nmap, ...

Offline Commander

  • Jr. Member
  • **
  • Beiträge: 62
Antw:readingsGroup valueStyle zwei Werte vergleichen
« Antwort #2 am: 02 Oktober 2017, 11:40:50 »
ergibt leider folgende Meldung:
syntax error at (eval 49686) line 1, at EOF
Unmatched right curly bracket at (eval 49686) line 1, at end of line
syntax error at (eval 49686) line 1, near "}}"

{($READING eq "current_period" && $VALUE > ReadingsVal("previous_period",$DEVICE,""} )?'style="color:red"':'style="color:green"'}
Warum auf einmal $DEVICE und nicht mehr $VALUE ?
FHEM5.6 auf Intel NUC NUC5PPYH
HM-CFG-USB-2 / HMLAN
CUL 433 CUL 868 / WMBus_T (Techem) JeeLink
MAX! Cube,Logitech Harmony Hub,Philips Hue

Offline Commander

  • Jr. Member
  • **
  • Beiträge: 62
Antw:readingsGroup valueStyle zwei Werte vergleichen
« Antwort #3 am: 02 Oktober 2017, 12:09:27 »
Super  ;) habs hinbekommen mit

{($READING eq ("current_period") && $VALUE > ReadingsNum($DEVICE, "previous_period",undef))?'style="color:red"':'style="color:green"'}
Vielen Herzlichen Dank
FHEM5.6 auf Intel NUC NUC5PPYH
HM-CFG-USB-2 / HMLAN
CUL 433 CUL 868 / WMBus_T (Techem) JeeLink
MAX! Cube,Logitech Harmony Hub,Philips Hue

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 383
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #4 am: 02 Oktober 2017, 13:52:20 »
Sorry, ich hatte die Parameter vertauscht.

Gernot
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 18.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, MQTT + espBridge + TASMOTA_DEVICE, HMCCU, Nmap, ...

Offline Michl1003!

  • Full Member
  • ***
  • Beiträge: 117
  • Ich bastel gern
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #5 am: 19 Februar 2019, 17:44:12 »
hallo,
darf ich mich da mal anhängen...
ich hab auch ein Problem mit dem valueStyle im readingsgroup....

ich versuche verzweifelt einen wert aus der readingsgroup mit einem Wert eines Dummies (nicht in der readingsgroup definition) zu vergleichen...
geht so etwas?

in der readingsgroup def steht: MYSENSOR_190:,<°C>,temperature,<RLF>,humidity
und ich möchte ihn mit dem state von Kids vergleichen und wenn gleich dann soll mysensor grün sein..

habe das versucht...

{ if($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE > $DEVICE eq "Kids" && $READING eq "state" && $VALUE ) { 'style="color:red"'} und mit
{ if($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE > Kids.state ) { 'style="color:red"'} und mit diversen anderen variationen versucht, aber bin immer kläglich gescheitert...

kann ich werte aus readingsgroup mit werten ausserhalb dieser readingsgroup überhaupt vergleichen???


1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 383
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #6 am: 20 Februar 2019, 05:01:46 »
Versuche es mal mit:

ReadingsVal("<beliebiges fhem device>","<readings des fhem devices>","<Ausgabe, wenn nicht ermittelbar>")oder
ReadingsNum("<beliebiges fhem device>","<readings des fhem devices>","<Ausgabe, wenn nicht ermittelbar>")Z.B.:{ if($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE > ReadingsVal("Kids","state","" ) { 'style="color:red"'}
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 18.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, MQTT + espBridge + TASMOTA_DEVICE, HMCCU, Nmap, ...

Offline Michl1003!

  • Full Member
  • ***
  • Beiträge: 117
  • Ich bastel gern
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #7 am: 22 Februar 2019, 06:03:14 »
danke supernova1963 für die rasche Antwort, bin leider erst jetzt zum testen gekommen,
die ersten beiden varianten funktionieren gar nicht... da ist alles in einer farbe...
die dritte variante scheint einigermassen zu funktionieren...aber die nachfolgenden werte sind alle in einer farbe...
siehe screenshot...

ich habe die änderung erst beim ersten sensor angewandt.....


hier mein code
{ if(($DEVICE  eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE) > (ReadingsVal("Kids","state",""))) { 'style="color:red"'}
elsif(($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE) == (ReadingsVal("Kids","state",""))) { 'style="color:green"'}
elsif(($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE) < (ReadingsVal("Kids","state",""))) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_190" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realhum") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE >= 21 && $VALUE <= 23) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperature1" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperature1" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperatur1e" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperature1" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE < 20) { 'style="color:RGB(238,207,161)"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE >= 18) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE < 18) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "humidity") { 'style="color:lightblue"'}}


hast du vielleicht noch eine idee?
1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

Offline OdfFhem

  • Full Member
  • ***
  • Beiträge: 296
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #8 am: 22 Februar 2019, 06:36:01 »
Bei diesen Bedingungsteilen in den ersten 3 Zeilen scheinen die Klammern nicht zielführend ...
&& $VALUE) > (ReadingsVal

Offline Michl1003!

  • Full Member
  • ***
  • Beiträge: 117
  • Ich bastel gern
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #9 am: 22 Februar 2019, 07:04:15 »
so gehts... sehr gut! Danke dir...

{ if($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE > (ReadingsVal("Kids","state",""))) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE == (ReadingsVal("Kids","state",""))) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE < (ReadingsVal("Kids","state",""))) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_190" && $READING eq "temperature" && $VALUE < 10) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_190" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realtemp" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_101" && $READING eq "realhum") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE > ReadingsVal("Schlafzimmer","state","")) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE == ReadingsVal("Schlafzimmer","state","")) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE < ReadingsVal("Schlafzimmer","state","")) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "temperature" && $VALUE < 10) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_130" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE > ReadingsVal("Kueche","state","")) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE == ReadingsVal("Kueche","state","")) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE < ReadingsVal("Kueche","state","")) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_160" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_180" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperature1" && $VALUE > ReadingsVal("Bad","state","")) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperature1" && $VALUE == ReadingsVal("Bad","state","")) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperatur1e" && $VALUE < ReadingsVal("Bad","state","")) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "temperature1" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_150" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE > ReadingsVal("Wohnzimmer","state","")) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE == ReadingsVal("Wohnzimmer","state","")) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE < ReadingsVal("Wohnzimmer","state","")) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_120" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE > ReadingsVal("Zimmer","state","")) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE == ReadingsVal("Zimmer","state","")) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE < ReadingsVal("Zimmer","state","")) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "temperature" && $VALUE < 5) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_170" && $READING eq "humidity") { 'style="color:lightblue"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE > ReadingsVal("Wohnzimmer","state","")) { 'style="color:red"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE == ReadingsVal("Wohnzimmer","state","")) { 'style="color:green"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE < ReadingsVal("Wohnzimmer","state","")) { 'style="color:orange"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE < 10) { 'style="color:RGB(238,207,161)"'}
elsif($DEVICE eq "WW3" && $READING eq "temperature" && $VALUE < 0) { 'style="color:blue"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE >= 22 && $VALUE <= 24) { 'style="color:green"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE >= 18) { 'style="color:orange"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "temperature" && $VALUE < 18) { 'style="color:lightblue"'}
elsif($DEVICE eq "MYSENSOR_70" && $READING eq "humidity") { 'style="color:lightblue"'}}
1x PI 2B+ FHEM - Heizung
1x Pi 3b+ - FHEM - Haussteuerung
1x Pi 3 - MagicMirror
2x Pi B - Musicbox

Offline supernova1963

  • Full Member
  • ***
  • Beiträge: 383
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #10 am: 22 Februar 2019, 17:18:54 »
...
die ersten beiden varianten funktionieren gar nicht... da ist alles in einer farbe...
die dritte variante scheint einigermassen zu funktionieren...

Die ersten "Varianten" waren als Syntax für den ReadingsVal und ReadingsNum gemeint.

Du hast ja eine Lösung gefunden.
Bitte achte bei Problemen darauf, dass ReadingsVal einen String zurückgibt und ReadingsNum eine Zahl.
Da du ReadingsVal verwendest und einen Zahlenvergleich machst, kann es hier zu Problemen kommen, wenn nicht ausschliesslich ein Zahlenwert zurückgegeben wird. 

Gernot
Fhemserver: Mac Mini - Parallels Desktop mit Ubuntu Server 18.04,
Module: Harmony, fakeRoku, FBAHA, Fritzbox, MQTT + espBridge + TASMOTA_DEVICE, HMCCU, Nmap, ...

Offline eisman

  • Full Member
  • ***
  • Beiträge: 247
Antw:[gelöst]readingsGroup valueStyle zwei Werte vergleichen
« Antwort #11 am: 22 Februar 2019, 19:43:15 »
hi,

es geht auch mit sub....
sub s_humidity($) {
 my ($T1) = @_;
 if   ($T1 < 30)                     { return 'style="font-weight:bold; color:springgreen;"'}
 elsif($T1 >= 30 and $T1 < 50)       { return 'style="font-weight:bold; color:deepskyblue;"'}
 elsif($T1 >= 50 and $T1 < 70)       { return 'style="font-weight:bold; color:dodgerblue;"' }
 else                                { return 'style="font-weight:bold; color:blue;"'       }
}

sub s_temperature($) {
 my ($T1) = @_;
 if   ($T1 <   0)                    { return 'style="font-weight:bold; color:darkslateblue;"'}
 elsif($T1 >=  0 and $T1 < 10)       { return 'style="font-weight:bold; color:dodgerblue;"'   }
 elsif($T1 >= 10 and $T1 < 18)       { return 'style="font-weight:bold; color:deepskyblue;"'  }
 elsif($T1 >= 18 and $T1 < 25)       { return 'style="font-weight:bold; color:springgreen;"'  }
 else                                { return 'style="font-weight:bold; color:red;"'          }
}

Aufruf

valueStyle
{if($READING eq "temperature") {s_temperature($VALUE)}
elsif($READING eq "temperature_avg_day") {s_temperature($VALUE)}
elsif($READING eq "humidity") {s_humidity($VALUE)}}

und für ICON


sub FEIcon($) {
 my ($Nr) = @_; my $Icon = ''; my $Farbe = "";
 if   ($Nr eq "closedclosed") { $Icon="fts_window_2w";               $Farbe = "springgreen" }
 elsif($Nr eq "openclosed")   { $Icon="fts_window_2w_open_l";        $Farbe = "red"         }
 elsif($Nr eq "closedopen")   { $Icon="fts_window_2w_open_r";        $Farbe = "red"         }
 elsif($Nr eq "openopen")     { $Icon="fts_window_2w_open_lr";       $Farbe = "red"         }
 elsif($Nr eq "tiltedtilted") { $Icon="fts_window_2w_tilt_lr";       $Farbe = "yellow"      }
 elsif($Nr eq "closedtilted") { $Icon="fts_window_2w_tilt";          $Farbe = "yellow"      }
 elsif($Nr eq "tiltedclosed") { $Icon="fts_window_2w_tilt_l";        $Farbe = "yellow"      }
 elsif($Nr eq "opentilted")   { $Icon="fts_window_2w_open_l_tilt_r"; $Farbe = "red"         }
 elsif($Nr eq "tiltedopen")   { $Icon="fts_window_2w_tilt_l_open_r"; $Farbe = "red"         }
#Log(1,"Fenster: $Nr $Icon $Farbe");
 return $Nr . ":" . $Icon . "\@" . $Farbe;
}



devStateIcon  { FEIcon(ReadingsVal("FE_0100","state",0))}

grus
« Letzte Änderung: 22 Februar 2019, 20:00:49 von eisman »
1x FHEM Debian, Homematic / 1x FHEM Debian, FS20 / 1X FHEM Raspberry ,i2c,onewire,gpio
1x MQTT auf Windows 2012 Hyper-V-Server / 5x ESP8266(ESPeasy,ESPlink) mit 7"HMI
1x FHEM Windows / 1x Arduino Mega mit Configurable Firmata 2.06V

 

decade-submarginal