Hauptmenü

Darstellung von readingsGroup?

Begonnen von grappa24, 21 September 2023, 10:09:51

Vorheriges Thema - Nächstes Thema

grappa24

taste mich so langsam vor, vermute für eine FHEM-readingsGroup gibt es keine (elegante) Darstellungsmöglichkeit?
Gruß, Dieter
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

jemu75

Hallo Dieter,

ich habe mich nie intensiver mit readingsGroup beschäftigt. Hast du eine konkrete Vorstellung, was du in FHEMapp darstellen möchtest. Du kannst gern auch mal einen Screenshot aus deinem FHEM schicken. Dann kann ich Dir eine Empfehlung geben.

Grüße
Jens  :)

grappa24

Danke Jens,

hier mal ein Beispiel für eine readingsGroup.

Damit können Readings (verschiedener Devices) in einer Tabelle zusammengefasst werden, wobei mit verschiedenen Attributen formatiert und gestaltet werden kann:
- mit mapping so etwas wie Alias einführen
- mit valueFormat Zahlenwerte formatieren
- mit valueStyle bedingt formatieren
- mit valueIcon Icons einfügen
- ...

Mit solchen readingsGroup/Tabellen lassen sich dann Dashboards gestalten.

Möglicherweise lässt sich das mit FHEMapp z.B. mit list templates und "connected" devices realisieren; dazu müsste ich aber wahrscheinlich jeweils von vorne beginnen.

Der "Wunsch/Traum" wäre sicher, so eine ReadingGroup einfach 1:1 zu übernehmen  ;D


define ThermoHygro readingsGroup\
netatmo_M03_00_00_07_d2_74:temp_cal,humi_cal,air_q\
HMS100TF_feac:temp_cal,humi_cal\
netatmo_D70_ee_50_04_82_be:temp_cal,humi_cal,air_q \
netatmo_M03_00_00_07_d0_f2:temp_cal,humi_cal,air_q\
MQTT2_airq1:temperature_1,humidity_1,air_q\
netatmo_M02_00_00_1b_18_2a:temperature,humidity \
HMS100T_9f90:temperature,"undef",temp_cal@HMS100TF_83dc

attr ThermoHygro mapping {'netatmo_M02_00_00_1b_18_2a' => 'Aussen',  'HMS100TF_feac' => 'Duschbad ',  'HMS100T_9f90' => 'Schrank/Keller', 'MQTT2_airq1' => 'Wohnzimmer'}

attr ThermoHygro style style="width:320px;;font-size:18px;;border-style:solid;;border-width:1px"

attr ThermoHygro valueFormat { temperature => " ; ;%.1f&nbsp&degC", temp_cal => " ; ;%.1f&nbsp&degC", temperature_1 => " ; ;%.1f&nbsp&degC",  humidity => " ; ;%.1f ;%%", humi_cal => " ; ;%.1f ;%%", humidity_1 => " ; ;%.1f ;%%"}
attr ThermoHygro valueIcon {'air_q.good' => '10px-kreis-gruen', 'air_q.bad' => '10px-kreis-gelb', 'air_q.critical' => '10px-kreis-rot'}

attr ThermoHygro valueStyle { if ($READING =~ m/humi/ && $VALUE >= 60) { 'style="color:red"'} elsif ($READING =~ m/humi/ && $VALUE < 40) { 'style="color:blue"'} elsif ($READING =~ m/temp/ && $VALUE > 24) { 'style="color:red"'} elsif ($READING =~ m/temp/ && $VALUE < 6) { 'style="color:blue"'}  else {'style="color:green"' }}

#   DEF        netatmo_M03_00_00_07_d2_74:temp_cal,humi_cal,air_q
#HMS100TF_feac:temp_cal,humi_cal
#netatmo_D70_ee_50_04_82_be:temp_cal,humi_cal,air_q
#netatmo_M03_00_00_07_d0_f2:temp_cal,humi_cal,air_q
#MQTT2_airq1:temperature_1,humidity_1,air_q
#netatmo_M02_00_00_1b_18_2a:temperature,humidity
#HMS100T_9f90:temperature,"undef",temp_cal@HMS100TF_83dc
#   FUUID      5c44b2eb-f33f-4e46-e8b0-05ae6a2371a1b64e
#   NAME       ThermoHygro
#   NR         216
#   NTFY_ORDER 50-ThermoHygro
#   STATE      Initialized
#   TYPE       readingsGroup
#   changed    0
#   mayBeVisible 1
#   CONTENT:
#     HMS100TF_feac 1
#     HMS100T_9f90 1
#     MQTT2_airq1 1
#     netatmo_D70_ee_50_04_82_be 1
#     netatmo_M02_00_00_1b_18_2a 1
#     netatmo_M03_00_00_07_d0_f2 1
#     netatmo_M03_00_00_07_d2_74 1
#   CONTENT2:
#     HMS100TF_83dc 1
#   DEVICES:
#     ARRAY(0x62c63e0)
#     ARRAY(0x638ff20)
#     ARRAY(0x6529f60)
#     ARRAY(0x63d68a8)
#     ARRAY(0x610e728)
#     ARRAY(0x6556d90)
#     ARRAY(0x6320a58)
#   DEVICES2:
#     ARRAY(0x62c63e0)
#     ARRAY(0x638ff20)
#     ARRAY(0x6529f60)
#     ARRAY(0x63d68a8)
#     ARRAY(0x610e728)
#     ARRAY(0x6556d90)
#     ARRAY(0x6320a58)
#     ARRAY(0x637f220)
#   fhem:
#     lastDefChange 4
#     last_update 1695391508.5568
#   helper:
#     DEF       
#     valueStyle { if ($READING =~ m/humi/ && $VALUE >= 60) { 'style="color:red"'} elsif ($READING =~ m/humi/ && $VALUE < 40) { 'style="color:blue"'} elsif ($READING =~ m/temp/ && $VALUE > 24) { 'style="color:red"'} elsif ($READING =~ m/temp/ && $VALUE < 6) { 'style="color:blue"'}  else {'style="color:green"' }}
#     mapping:
#       HMS100TF_feac Duschbad
#       HMS100T_9f90 Schrank/Keller
#       MQTT2_airq1 Wohnzimmer
#       netatmo_M02_00_00_1b_18_2a Aussen
#     positions:
#       HMS100TF_83dc.temp_cal 7:2
#       HMS100TF_feac.humi_cal 2:2
#       HMS100TF_feac.temp_cal 2:1
#       HMS100T_9f90.temperature 7:1
#       MQTT2_airq1.air_q 5:3
#       MQTT2_airq1.humidity_1 5:2
#       MQTT2_airq1.temperature_1 5:1
#       netatmo_D70_ee_50_04_82_be.air_q 3:3
#       netatmo_D70_ee_50_04_82_be.humi_cal 3:2
#       netatmo_D70_ee_50_04_82_be.temp_cal 3:1
#       netatmo_M02_00_00_1b_18_2a.humidity 6:2
#       netatmo_M02_00_00_1b_18_2a.temperature 6:1
#       netatmo_M03_00_00_07_d0_f2.air_q 4:3
#       netatmo_M03_00_00_07_d0_f2.humi_cal 4:2
#       netatmo_M03_00_00_07_d0_f2.temp_cal 4:1
#       netatmo_M03_00_00_07_d2_74.air_q 1:3
#       netatmo_M03_00_00_07_d2_74.humi_cal 1:2
#       netatmo_M03_00_00_07_d2_74.temp_cal 1:1
#     recalc:
#       undef
#       ARRAY(0x65647c0)
#       ARRAY(0x647e7b0)
#     valueFormat:
#       humi_cal   &nbsp;&nbsp;%.1f&nbsp;%%
#       humidity   &nbsp;&nbsp;%.1f&nbsp;%%
#       humidity_1 &nbsp;&nbsp;%.1f&nbsp;%%
#       temp_cal   &nbsp;&nbsp;%.1f&nbsp&degC
#       temperature &nbsp;&nbsp;%.1f&nbsp&degC
#       temperature_1 &nbsp;&nbsp;%.1f&nbsp&degC
#     valueIcon:
#       air_q.bad  10px-kreis-gelb
#       air_q.critical 10px-kreis-rot
#       air_q.good 10px-kreis-gruen
#     values:
#       formated:
#         undef
#         ARRAY(0x635cbd8)
#         ARRAY(0x653c798)
#         ARRAY(0x62577a0)
#       orig:
#         undef
#         ARRAY(0x651ead0)
#         ARRAY(0x672d670)
#         ARRAY(0x6237af0)
#       prefixsuffix:
#         undef
#         ARRAY(0x6172458)
#         ARRAY(0x65936b0)
#         ARRAY(0x621cf80)
#

FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

grappa24

Ich hab jetzt mal meine readingsGroup "ThermoHygro" in FHEMapp umgesetzt; dazu hab ich das list-template verwendet und connected devices benutzt, um die verschiedenen Thermometer-Devices (netatmo, HMS, MQTT2-Geräte) in die Liste zu bekommen.

Was mir jetzt noch fehlt:
Darstellung der readings air_q (good|bad|critical) durch Icons?
Einfärben der Meßwerte nach bestimmten Kriterien (rot wenn T>24°C etc.)

{
"template":"list",
        "connected":{
             "Dachstudio":"netatmo_M03_00_00_07_d2_74",
             "Duschbad":"HMS100TF_feac",
             "Dieter":"netatmo_D70_ee_50_04_82_be",
             "Schlafzimmer":"netatmo_M03_00_00_07_d0_f2",
             "Wohnzimmer":"MQTT2_airq1",
             "Aussen":"netatmo_M02_00_00_1b_18_2a",
             "Keller":"HMS100TF_83dc",
             "Schrank":"HMS100T_9f90"
        },
        "home":false,
        "dashboard":true,
        "sortby": 1,
      "setup": {
                "expanded": true,
"iconSet": [
{ <to-do> },
{ <to-do> }
],
"listItems": [
          {
                                "class1": "col-5 text-center",
"text1": ["Connected.Dachstudio.Readings.temp_cal.Value::Dachstudio:text"],
                                "text12": ["Connected.Dachstudio.Readings.air_q.Value::%s:text"],
                                "class2": "col-3 text-right",
          "text2": ["Connected.Dachstudio.Readings.temp_cal.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Dachstudio.Readings.humi_cal.Value::%n.1 %:text"],
                                "divider": true
                        },
                        {
                                "class1": "col-5 text-center",
"text1": ["Connected.Duschbad.Readings.temp_cal.Value::Duschbad:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Duschbad.Readings.temp_cal.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Duschbad.Readings.humi_cal.Value::%n.1 %:text"],
                                "divider": true
                        },
                {
                                "class1": "col-5 text-center",
"text1": ["Connected.Dieter.Readings.temp_cal.Value::Dieter:text"],
                                "text12": ["Connected.Dieter.Readings.air_q.Value::%s:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Dieter.Readings.temp_cal.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Dieter.Readings.humi_cal.Value::%n.1 %:text"],
                                "divider": true
                        },
                        {
                                "class1": "col-5 text-center",
"text1": ["Connected.Schlafzimmer.Readings.temp_cal.Value::Schlafzimmer:text"],
                                "text12": ["Connected.Schlafzimmer.Readings.air_q.Value::%s:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Schlafzimmer.Readings.temp_cal.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Schlafzimmer.Readings.humi_cal.Value::%n.1 %:text"],
                                "divider": true
       },                 
                       {
                                "class1": "col-5 text-center",
"text1": ["Connected.Wohnzimmer.Readings.temperature_1.Value::Wohnzimmer:text"],
                                "text12": ["Connected.Wohnzimmer.Readings.air_q.Value::%s:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Wohnzimmer.Readings.temperature_1.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Wohnzimmer.Readings.humidity_1.Value::%n.1 %:text"],
                                "divider": true
                        },
                        {
                                "class1": "col-5 text-center",
"text1": ["Connected.Keller.Readings.temp_cal.Value::Keller:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Keller.Readings.temp_cal.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Keller.Readings.humi_cal.Value::%n.1 %:text"],
                                "divider":true
                         },
                         {
                                "class1": "col-5 text-center",
"text1": ["Connected.Aussen.Readings.temperature.Value::Aussen:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Aussen.Readings.temperature.Value::%n.1 °C:text"],
                                "class3": "col-3 text-left",
"text3": ["Connected.Aussen.Readings.humidity.Value::%n.1 %:text"],
                                "divider":true
                         },
                         {
                                "class1": "col-5 text-center",
"text1": ["Connected.Schrank.Readings.temperature.Value::Energieschrank:text"],
                                "class2": "col-3 text-right",
"text2": ["Connected.Schrank.Readings.temperature.Value::%n.1 °C:text"]
                         }
      ],
"info": {
"left1": ["Connected.Wohnzimmer.Readings.temperature_1.Value:::mdi-home-thermometer-outline"],
                        "left2": ["Connected.Wohnzimmer.Readings.temperature_1.Value:::mdi-water-percent"],
"mid1": [""],
"right2": [""]
}
}
}
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

grappa24

#4
Zitat von: grappa24 am 27 September 2023, 11:09:56Was mir jetzt noch fehlt:
Darstellung der readings air_q (good|bad|critical) durch Icons?
mittlerweile gelöst:
{ "val": "^good$", "icon": "mdi-quality-high" },
{ "val": "^bad$", "icon": "mdi-quality-medium" },
{ "val": "^critical$", "icon": "mdi-quality-low" }
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...