[Gelöst] Problem mit readingsGroup und ValueStyle bei ESPEasy Device

Begonnen von Jogi, 16 November 2017, 16:31:17

Vorheriges Thema - Nächstes Thema

Jogi

Hallo zusammen,
ich habe über ESPEasy einen Ultraschallsensor angebunden, der den Wasserstand meines Sickerschachts überwacht.
Alles wunderbar.

Nun habe ich meinen ersten Versuch mit ReadingsGroup machen wollen um den Wert -je nach Wasserstand- farblich anzeigen zu lassen.
Aber leider mache ich irgendetwas falsch und bekomme es nicht hin.
So sieht mein Versuch aus:
#
define Wasserstand_Sickergrube readingsGroup Sickergrube
attr Wasserstand_Sickergrube notime 1
attr Wasserstand_Sickergrube room 93.Keller
attr Wasserstand_Sickergrube valueStyle { if($READING eq "Sickergrube:Distance" && $VALUE > 27) { 'style="color:red"'}elsif($READING eq "Sickergrube:Distance" && $VALUE < 24) { 'style="color:orange"'}else{'style="color:green"'} }
#

Leider funktioniert das nicht und die Farbe ändert sich nicht.

Der Ultraschallsensor ist so angelegt:
define Sickergrube ESPEasy 192.168.178.187 80 espBridge ESP_Modul_Keller_Wasserstand_Schacht
attr Sickergrube IODev espBridge
attr Sickergrube Interval 300
attr Sickergrube event-on-change-reading state,presence,Distance
attr Sickergrube group Status
attr Sickergrube icon sani_domestic_waterworks
attr Sickergrube presenceCheck 1
attr Sickergrube readingSwitchText 1
attr Sickergrube room 93.Keller,4.Technik,ESPEasy
attr Sickergrube setState 3


Hier auch noch ein List vom Sensor:
Internals:
   CHANGED
   DEF        192.168.178.187 80 espBridge ESP_Modul_Keller_Wasserstand_Schacht
   ESP_BUILD  147
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 9
   HOST       192.168.178.187
   IDENT      ESP_Modul_Keller_Wasserstand_Schacht
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     354
   NAME       Sickergrube
   NOTIFYDEV  global
   NR         1227
   NTFY_ORDER 50-Sickergrube
   PORT       80
   STATE      Dis: 29
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.33
   espBridge_MSGCNT 354
   espBridge_TIME 2017-11-16 16:27:59
   READINGS:
     2017-11-16 16:27:59   Distance        29
     2017-11-16 16:25:16   presence        present
     2017-11-16 16:27:59   state           Dis: 29
   helper:
     fpc        1510840775
     pm:
       Encode     1
       JSON       1
     received:
       Distance   1510846079
Attributes:
   IODev      espBridge
   Interval   300
   event-on-change-reading state,presence,Distance
   group      Status
   icon       sani_domestic_waterworks
   presenceCheck 1
   readingSwitchText 1
   room       93.Keller,4.Technik,ESPEasy
   setState   3


Und auch noch ein List der readingsGroup:
Internals:
   DEF        Sickergrube
   NAME       Wasserstand_Sickergrube
   NR         1282
   NTFY_ORDER 50-Wasserstand_Sickergrube
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   CONTENT:
     Sickergrube 1
   CONTENT2:
   DEVICES:
     ARRAY(0x1b4cea0)
   fhem:
     lastDefChange 284
     last_update 1510845967.70491
   helper:
     DEF
     valueStyle { if($READING eq "Sickergrube:Distance" && $VALUE > 27) { 'style="color:red"'}elsif($READING eq "Sickergrube:Distance" && $VALUE < 24) { 'style="color:orange"'}else{'style="color:green"'} }
     positions:
       Sickergrube.Distance 1:1
       Sickergrube.presence 1:2
       Sickergrube.state 1:3
     values:
       formated:
         undef
         ARRAY(0x1c575d8)
         ARRAY(0x15b2b48)
         ARRAY(0x25b9ee8)
       orig:
         undef
         ARRAY(0x1a2dd80)
         ARRAY(0x2614380)
         ARRAY(0x172f270)
       prefixsuffix:
         undef
         ARRAY(0x1d81090)
         ARRAY(0x25ba740)
         ARRAY(0x217afb8)
Attributes:
   notime     1
   room       93.Keller
   valueStyle { if($READING eq "Sickergrube:Distance" && $VALUE > 27) { 'style="color:red"'}elsif($READING eq "Sickergrube:Distance" && $VALUE < 24) { 'style="color:orange"'}else{'style="color:green"'} }


Wie schon beschrieben, es ist mein erster Versuch mit einer readingsGroup und auch mit ValueStyle.
Daher kann es sein, dass ich mich duselig anstelle.
Ein Tipp wäre super.

Vielen Dank,
Jogi

Jogi

Manchmal muss man nur genug basteln und experimentieren, dann kommt man selbst darauf.

Ich habe es jetzt so gelöst und es funktioniert:
attr Wasserstand_Sickergrube valueStyle { if($DEVICE eq "Sickergrube" && $VALUE < 26) { 'style="color:red;;font-weight:bold;;text-align:right;;font-size:20px"'}elsif(($DEVICE eq "Sickergrube" && $VALUE > 26) && ($DEVICE eq "Sickergrube" && $VALUE < 34)) { 'style="color:orange;;font-weight:bold;;text-align:right;;font-size:20px"'}elsif($DEVICE eq "Sickergrube" && $VALUE > 34) { 'style="color:green"'}else { 'style="color:black;;text-align:right"'} }
#


Jogi