***Gelöst*** devStateIcon Farbe je nach Wert 150l - 1750l

Begonnen von Tueftler1983, 11 Juni 2020, 22:15:24

Vorheriges Thema - Nächstes Thema

Tueftler1983

Hallo,
Habe einen Regenwassertank diesen überwache ich mit Ultraschall.
Bekomme über die Umrechnung im Userreading die Liter angezeigt 0 bis 1750l jetzt würde ich gerne das devStateIcon  im Farbverlauf Rot-Orange-Grün anzeigen lassen.

Habe gedacht könnte die Definition so machen.....

attr ESPEasy_ESP_8_Tank_US devStateIcon >=1750:Zisterne@00C000
<=150:Zisterne@FF0000
>150:Zisterne@FF2D00
>=250:Zisterne@FF6A00
>=500:Zisterne@FF9300
>=750:Zisterne@FFD600
>=1000:Zisterne@FFFF00
>=1250:Zisterne@80FF00
>=1500:Zisterne@20FF00

Leider geht es so nicht.
Kann mir jemand helfen???

Tueftler1983

Nächster Ansatz jedoch denke ich das ich da das Problem habe da mir das Userreading Liter mit Komma stellen ausgegeben wird.....


(0[0-9]|15[0-0]):Zisterne@FF0000
(15[1-9]|24[0-9]):Zisterne@FF2D00
(25[0-9]|50[0-0]):Zisterne@FF6A00
(50[1-9]|74[0-9]):Zisterne@FF9300
(75[1-9]|100[0-0]):Zisterne@FFD600
(100[1-9]|124[0-9]):Zisterne@FFFF00
(125[1-9]|150[0-0]):Zisterne@80FF00
(150[1-9]|174[0-9]):Zisterne@20FF00
(175[1-9]|200[0-0]):Zisterne@00C000

Damian

Alternativ kannst du über devStateIcon nicht nur die Farbe stufenlos, sondern sogar den Wasserstand anzeigen lassen:

devStateIcon {ui_Table::cylinder("",0,1700,"l",90,undef,100,0,ReadingsVal("$name","state",0),ReadingsVal("$name","state",0)/17*1.2,undef)}

Im Anhang die Darstellung verschiedener Füllstände :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

So habe das Reading "Liter" angepasst ohne Kommastellen.
Doch leider funktioniert meine Methode immer noch nicht.

Wo liegt mein Fehler????

Tueftler1983

Hey Damian, leider bringt auch deine Variante
{ui_Table::cylinder("",0,1700,"l",90,undef,100,0,ReadingsVal("$name","Liter",0),ReadingsVal("$name","Liter",0)/17*1.2,undef)}
Bei mir keine anzeige

Damian

Zitat von: Tueftler1983 am 11 Juni 2020, 23:08:09
Hey Damian, leider bringt auch deine Variante
{ui_Table::cylinder("",0,1700,"l",90,undef,100,0,ReadingsVal("$name","Liter",0),ReadingsVal("$name","Liter",0)/17*1.2,undef)}
Bei mir keine anzeige

Die cylinder-Funktion steckt im DOIF-Modul, die Version des Moduls sollte nicht allzu alt sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Das heißt?
Mein Fhem habe ich gestern erst aktualisiert.
Also wie muss ich vorgehen damit ich deine Version nutzen kann?

Damian

Zitat von: Tueftler1983 am 11 Juni 2020, 23:44:29
Das heißt?
Mein Fhem habe ich gestern erst aktualisiert.
Also wie muss ich vorgehen damit ich deine Version nutzen kann?

Dann probiere erst mal eine Definition mit einem Dummy:

defmod d_zisterne dummy
attr d_zisterne devStateIcon {ui_Table::cylinder("Zisterne",0,1700,"l",90,undef,100,0,ReadingsVal("$name","state",0),ReadingsVal("$name","state",0)/17*1.2,undef)}
setstate d_zisterne 1700
setstate d_zisterne 2020-06-11 22:42:57 state 1700
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Habe Grade nochmal ein shutdown restart gemacht.... Hatte ich wohl vergessen.

Jetzt läuft deine Version!!

Würde nur gerne meine sich zum laufen bekommen... Rein zum Verständnis

Aber vielen fcnk

Damian

Zitat von: Tueftler1983 am 11 Juni 2020, 23:52:17
Habe Grade nochmal ein shutdown restart gemacht.... Hatte ich wohl vergessen.

Jetzt läuft deine Version!!

Würde nur gerne meine sich zum laufen bekommen... Rein zum Verständnis

Aber vielen fcnk

Ich benutze devStateIcon nur in Verbindung mit Perl, hier eine Alternative mit dem Zisterne-Icon:

defmod d_zisterne dummy
attr d_zisterne devStateIcon {FW_makeImage("Zisterne\@".DOIF_hsv(ReadingsVal("$name","state",0),0,1700,0,120,100,100))}
attr d_zisterne room test10
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Danke funktioniert auch, aber deins ist 1000 Mal Eleganter. Gefällt mir echt super!!


Vielen lieben dank nochmal.

Müller

Ich habe für eine Batterie folgende Attribute bei devstateicon

100:measure_battery_100@green 9[1-9]:measure_battery_100@green 8[1-9]:measure_battery_75@green 7[1-9]:measure_battery_75@green 6[1-9]:measure_battery_50@green 5[1-9]:measure_battery_50@green 4[1-9]:measure_battery_50@green 3[1-9]:measure_battery_25@green 2[1-9]:measure_battery_25@green 1[1-9]:measure_battery_25@red [1-9]:measure_battery_0@red
FHEM auf Raspberry, 433mHz & Zigbee für Rollläden, Gartenbewässerung, Beleuchtung, Fußbodenheizung

Damian

#12
Zitat von: Tueftler1983 am 12 Juni 2020, 00:31:19
Danke funktioniert auch, aber deins ist 1000 Mal Eleganter. Gefällt mir echt super!!


Vielen lieben dank nochmal.

Wenn es dir gefällt, dann schau mal, was noch alles geht:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#3d-Balkendarstellung_mehrerer_Zahlenwerten_mit_Hilfe_der_universellen_SVG-Funktion_cylinder

oder auch andere Darstellungen:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#SVG-uiTable-Funktionen

Und all das funktioniert auch mit devStateIcon ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Hallo Damian
Habe da Grade ein kleines Problem,
Wollte deine Methode auch gerne benutzen um den Tankinhalt vom Auto anzuzeigen, aber ich möchte das sowohl Liter als auch in % angezeigt wird.
Blicke leider durch die Syntax der Definition nicht ganz durch.

Kannst du mir helfen??

Damian

Zitat von: Tueftler1983 am 04 Juli 2021, 23:47:38
Hallo Damian
Habe da Grade ein kleines Problem,
Wollte deine Methode auch gerne benutzen um den Tankinhalt vom Auto anzuzeigen, aber ich möchte das sowohl Liter als auch in % angezeigt wird.
Blicke leider durch die Syntax der Definition nicht ganz durch.

Kannst du mir helfen??

Ggf. kannst du den prozentuellen Anteil in der Beschriftung unterbringen, z. B:

cylinder("Zisterne",0,100,"Liter",undef,100,undef,0,[Zisterne:inhalt],200,"Wasserstand ".[Zisterne:Anteil]." %")

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF