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
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