Neues Modul readingsGroup

Begonnen von Niko, 24 August 2013, 11:59:11

Vorheriges Thema - Nächstes Thema

Motivierte linke Hände

#1170
Hallo!

Ich habe hier ein Problem mit über Spalten verschobenen Icons, das nur in der Raumansicht auftritt, nicht jedoch in der Detailansicht der readingsGroup. Ich würde das gerne beheben (alle Werte immer in der richtigen Spalte, weiß aber nicht, wie.

Im Detail:

Ich habe hier zur Übersicht der Räume eine Übersicht per readingsGroup erstellt. Das funktioniert auch eigentlich sehr gut, mit einem "Problem": Nicht alle abgefragten Heizungsthermostate haben immer ein battery-reading (zum Problem siehe diesen Thread hier im Forum http://forum.fhem.de/index.php/topic,26861.0.html). Daher bleiben dann die entsprechenden (mit Batterie-Icon befüllten) Felder in der Readingsgroup leer, das ist ok. Links neben dem Batteriefeld ist der actuator (Ventilstellung), rechts daben die Luftfeuchtigkeitsanzeige (nur ganz unten benutzt, also auch oft leer).

Wenn nun das Batteriefeld und die Luftfeuchtigkeit leer sind, wird die Ventilstellung nicht in der richtigen Spalte angezeigt, sondern in der Mitte der 3 leeren Spalten.

1. Wie kann ich das zentrieren über mehrere leere Spalten verhindern?
2. Warum stimmt die Anzeige (nur Zentrieren innerhalb der jeweiligen Spalten), wenn ich mir die Details der readingsGroup anzeigen lasse? Nur die initiale Anzeige im Raum, dem die readingsGroup zugeordnet ist, ist verschoben. Klicke ich dort auf den Namen der readingsGroup, um die Details anzuzeigen, passt alles. (s. beiliegende Screenshots).

list der readingsgroup:

Internals:
   DEF        <%sani_heating>,<%sani_heating_temp>,<%sani_heating_manual>,<%hc_wht_regler>,<%batterie>,<%humidity> channel_01=.*_Weather:measured-temp,desired-temp@{$DEVICE."_Clima"},actuator,battery Sens_Keller:temperature,<&nbsp>,<&nbsp>,battery,humidity Sens_Vorrat:temperature,<&nbsp>,<&nbsp>,battery,humidity Sens_Garage:temperature,<&nbsp>,<&nbsp>,battery,humidity
   NAME       rg_Hzg_All
   NR         281
   NTFY_ORDER 50-rg_Hzg_All
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Hzg_AusgTerrasse 1
     Hzg_Bad    1
     Hzg_Buero  1
     Hzg_Eingang 1
     Hzg_Flur   1
     Hzg_Gaestebad 1
     Hzg_Gaestezimmer 1
     Hzg_Julius 1
     Hzg_Keller 1
     Hzg_Kueche 1
     Hzg_OG_links 1
     Hzg_OG_rechts 1
     Hzg_Schlafzimmer 1
     Hzg_WC     1
     Hzg_Waschkueche 1
     Hzg_Wohnzimmer1 1
     Hzg_Wohnzimmer2 1
     Hzg_Wohnzimmer3 1
     Sens_Garage 1
     Sens_Keller 1
     Sens_Vorrat 1
   Content2:
     Hzg_AusgTerrasse_Clima 1
     Hzg_Bad_Clima 1
     Hzg_Buero_Clima 1
     Hzg_Eingang_Clima 1
     Hzg_Flur_Clima 1
     Hzg_Gaestebad_Clima 1
     Hzg_Gaestezimmer_Clima 1
     Hzg_Julius_Clima 1
     Hzg_Keller_Clima 1
     Hzg_Kueche_Clima 1
     Hzg_OG_links_Clima 1
     Hzg_OG_rechts_Clima 1
     Hzg_Schlafzimmer_Clima 1
     Hzg_WC_Clima 1
     Hzg_Waschkueche_Clima 1
     Hzg_Wohnzimmer1_Clima 1
     Hzg_Wohnzimmer2_Clima 1
     Hzg_Wohnzimmer3_Clima 1
   DEVICES:
     ARRAY(0x5b4c430)
     ARRAY(0x4a92b40)
     ARRAY(0x5311490)
     ARRAY(0x58c7ac8)
     ARRAY(0x52bf3a0)
     ARRAY(0x5708d18)
     ARRAY(0x45e96e0)
     ARRAY(0x58baf28)
     ARRAY(0x503be50)
     ARRAY(0x58d3858)
     ARRAY(0x597dc88)
     ARRAY(0x4af75f0)
     ARRAY(0x5226a48)
     ARRAY(0x512a448)
     ARRAY(0x5b41a00)
     ARRAY(0x5b41940)
     ARRAY(0x5284c08)
     ARRAY(0x58b5cb0)
     ARRAY(0x5b288b8)
     ARRAY(0x52c9720)
     ARRAY(0x5b233b8)
     ARRAY(0x5127db0)
   DEVICES2:
     ARRAY(0x5b4c430)
     ARRAY(0x4a92b40)
     ARRAY(0x5311490)
     ARRAY(0x58c7ac8)
     ARRAY(0x52bf3a0)
     ARRAY(0x5708d18)
     ARRAY(0x45e96e0)
     ARRAY(0x58baf28)
     ARRAY(0x503be50)
     ARRAY(0x58d3858)
     ARRAY(0x597dc88)
     ARRAY(0x4af75f0)
     ARRAY(0x5226a48)
     ARRAY(0x512a448)
     ARRAY(0x5b41a00)
     ARRAY(0x5b41940)
     ARRAY(0x5284c08)
     ARRAY(0x58b5cb0)
     ARRAY(0x5b288b8)
     ARRAY(0x52c9720)
     ARRAY(0x5b233b8)
     ARRAY(0x5127db0)
     ARRAY(0x524cb70)
     ARRAY(0x58b4558)
     ARRAY(0x52c5c38)
     ARRAY(0x2ffd9f0)
     ARRAY(0x5b29020)
     ARRAY(0x58baf40)
     ARRAY(0x5281c90)
     ARRAY(0x531d160)
     ARRAY(0x58c1860)
     ARRAY(0x4ab16d8)
     ARRAY(0x5981780)
     ARRAY(0x4f4c8c0)
     ARRAY(0x5b4f808)
     ARRAY(0x52ce9f0)
     ARRAY(0x5b2c7b8)
     ARRAY(0x58c5408)
     ARRAY(0x4f41688)
     ARRAY(0x5280438)
   Fhem:
     lastDefChange 99
     last_update 1423410452.56938
   Helper:
     DEF
     nameStyle  style="font-weight:bold;text-align:center"
     valueStyle {if ($READING eq "measured-temp" && $VALUE < 20) {'style="color:blue;text-align:right"'} elsif ($READING eq "measured-temp" && $VALUE > 25) {'style="color:red;text-align:right"'} elsif ($READING eq "measured-temp" && $VALUE >= 20) {'style="text-align:right"'} elsif ($READING eq "humidity") {'style="text-align:center"'} elsif ($READING eq "actuator") {'style="text-align:center"'} elsif ($READING eq "temperature" && $VALUE < 20) {'style="color:blue;text-align:right"'} elsif ($READING eq "temperature" && $VALUE > 25) {'style="color:red;text-align:right"'} elsif ($READING eq "temperature" && $VALUE >= 20) {'style="text-align:right"'} elsif ($READING eq "desired-temp" && $VALUE < 20) {'style="color:blue;text-align:right"'} elsif ($READING eq "desired-temp" && $VALUE > 25) {'style="color:red;text-align:right"'} elsif ($READING eq "desired-temp" && $VALUE >= 20) {'style="text-align:right"'} }
     Commands:
       desired-temp desired-temp:
     Mapping:
       Hzg_AusgTerrasse Flur bei Terrasse
       Hzg_Bad    Badezimmer
       Hzg_Buero  Büro
       Hzg_Eingang Windfang
       Hzg_Flur   Flur im Keller
       Hzg_Gaestebad Gästebad
       Hzg_Gaestezimmer Gästezimmer
       Hzg_Julius Julius' Zimmer
       Hzg_Keller Ehemaliges Büro
       Hzg_Kueche Küche
       Hzg_OG_links OG, Fensterfront
       Hzg_OG_rechts OG, Schreibtisch
       Hzg_Schlafzimmer Schlafzimmer
       Hzg_WC     WC
       Hzg_Waschkueche Waschküche
       Hzg_Wohnzimmer1 Wohnzimmer
       Hzg_Wohnzimmer2
       Hzg_Wohnzimmer3
       Sens_Garage Garage
       Sens_Keller Ehemaliges Büro
       Sens_Vorrat Vorratskeller
     Valueformat:
       actuator   %.0f%%
       desired-temp %.1f°C
       humidity   %.0f%%
       measured-temp %.1f°C
       temperature %.1f°C
     Valueicon:
       battery.low measure_battery_50@red
       battery.ok measure_battery_100@green
Attributes:
   alias      Heizungsuebersicht
   commands   {'desired-temp' => 'desired-temp:'}
   group      Heizung
   mapping    {Hzg_AusgTerrasse=>"Flur bei Terrasse",Hzg_Bad=>"Badezimmer",Hzg_Buero=>"Büro",Hzg_Eingang=>"Windfang",Hzg_Flur=>"Flur im Keller",Hzg_Gaestebad=>"Gästebad",Hzg_Gaestezimmer=>"Gästezimmer",Hzg_Julius=>"Julius' Zimmer",Hzg_Keller=>"Ehemaliges Büro",Hzg_Kueche=>"Küche",Hzg_Schlafzimmer=>"Schlafzimmer",Hzg_WC=>"WC",Hzg_Waschkueche=>"Waschküche",Hzg_Wohnzimmer1=>"Wohnzimmer",Hzg_Wohnzimmer2=>" ",Hzg_Wohnzimmer3=>" ",Sens_Keller=>"Ehemaliges Büro",Sens_Vorrat=>"Vorratskeller",Sens_Garage=>"Garage",Hzg_OG_rechts=>"OG, Schreibtisch",Hzg_OG_links=>"OG, Fensterfront" }
   nameStyle  style="font-weight:bold;text-align:center"
   room       Heizung
   valueFormat {'measured-temp' => "%.1f°C", 'desired-temp' => "%.1f°C", 'actuator' =>"%.0f%%", 'temperature' => "%.1f°C", 'humidity' => "%.0f%%" }
   valueIcon  {'battery.ok' => 'measure_battery_100@green', 'battery.low' => 'measure_battery_50@red'}
   valueStyle {if ($READING eq "measured-temp" && $VALUE < 20) {'style="color:blue;text-align:right"'} elsif ($READING eq "measured-temp" && $VALUE > 25) {'style="color:red;text-align:right"'} elsif ($READING eq "measured-temp" && $VALUE >= 20) {'style="text-align:right"'} elsif ($READING eq "humidity") {'style="text-align:center"'} elsif ($READING eq "actuator") {'style="text-align:center"'} elsif ($READING eq "temperature" && $VALUE < 20) {'style="color:blue;text-align:right"'} elsif ($READING eq "temperature" && $VALUE > 25) {'style="color:red;text-align:right"'} elsif ($READING eq "temperature" && $VALUE >= 20) {'style="text-align:right"'} elsif ($READING eq "desired-temp" && $VALUE < 20) {'style="color:blue;text-align:right"'} elsif ($READING eq "desired-temp" && $VALUE > 25) {'style="color:red;text-align:right"'} elsif ($READING eq "desired-temp" && $VALUE >= 20) {'style="text-align:right"'} }
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

justme1968

die screenshots fehlen...

über valueColumn kannst du fest legen in welcher spalte ein wert steht soll falls vorher readings fehlen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Motivierte linke Hände

Danke für die schnelle Antwort. Screenshots habe ich oben ergänzt, vor allem auch, weil ich mit valuecolumn nicht erfolgreich war. Ich habe ergänzt:

attr rg_Hzg_All valueColumn { actuator => 3 }

Die Darstellung sieht nach wie vor aus, wie auf den Screenshots eingefügt. Es scheint, dass die leeren columns gegen Ende wegfallen und dann der Befehl zur Zentrierung über die gesamte restliche Tabellenbreite wirkt, weswegen die actuator-Einstellung sich dann genau in der Batterie-Spalte wiederfindet. Ahnungslose Ehefrauen verteilen daraufhin sofort Kommandos zum Batteriewechsel.  ;D
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

der-Lolo

lol

- der Trick ist solche Seiten vor den ahnungslosen Ehefrauen zu verstecken...

;-)

Motivierte linke Hände

 8)

Was auch klappt: In der alten Definition (s.o.) war für den Thermostat-Teil in der readingsgroup für die letzte Spalte gar kein Reading angegeben (humidity gibt es bei den Thermostaten nicht, und da es am Ende war, hatte ich da auch nichts weiter angegeben). Das scheint bei Nichtvorhandensein des battery-Readings dazu zu führen, dass actuator als letztes Reading sich - nicht in der Detailansicht der readingsgroup, aber in der "normalen" Darstellung - über die restliche Breite der Tabelle erstreckt.

Wenn ich dementsprechend dann in der Definition bei den Thermostaten am Ende für humidity noch ein <&nbsp> anhänge, stimmt die Ansicht der readingsgroup nicht nur in der Detailansicht, sondern auch in der normalen Ansicht.

Internals:
   DEF        <%sani_heating>,<%sani_heating_temp>,<%sani_heating_manual>,<%hc_wht_regler>,<%batterie>,<%humidity> channel_01=.*_Weather:measured-temp,desired-temp@{$DEVICE."_Clima"},actuator,battery,<&nbsp> Sens_Keller:temperature,<&nbsp>,<&nbsp>,battery,humidity Sens_Vorrat:temperature,<&nbsp>,<&nbsp>,battery,humidity Sens_Garage:temperature,<&nbsp>,<&nbsp>,battery,humidity


Ja, ich freue mich auch über meine Spezialprobleme.  ;D

Einen schönen Abend allerseits!
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

idi

Hallo ich habe folgendes Problem:

Bin noch ziemlicher Anfänger.
Und zwar schaff ich es nicht, verschiedene Devices, in einer Zeile hintereinander dar zu stellen.

im Anhang eine Idee wie es etwa ausschauen sollte.

Besten Dank


Motivierte linke Hände

@idi: Und was hast Du bisher versucht, was kam raus?
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

idi

Bisher bin ich leider nur zu folgendem Punkt gekommen:

define Verteiler_Temperatur1 readingsGroup <%sani_heating>,<Temp>,<Status> Bad_Rl:temperature, Status_Bad:state, Wz_Rl_98m:temperature, Status_Wohnzimmer:state
attr Verteiler_Temperatur1 notime 1
attr Verteiler_Temperatur1 room Heizungsverteiler

Besten Dank für die Hilfe !

Motivierte linke Hände

Wenn Du Readings aus unterschiedlichen Devices in einer Zeile anzeigen möchtest, schau Dir mal diesen Wiki-Eintrag an: http://www.fhemwiki.de/wiki/ReadingsGroup#Readings_aus_zus.C3.A4tzlichen_Devices
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

idi

Besten Dank !

Jetzt hat's geklappt.

define Verteiler_Temperatur1 readingsGroup <%sani_heating>,<Temp>,<>,<Status> \
Vorlauf:<Vorlauf>,temperature, \
Bad_Rl:<Bad&nbsp;;Rücklauf>,temperature,<>,state@Status_Bad, \
Wz_Rl_98m:<Wohnzimmer&nbsp;;Rücklauf1>,temperature,<>,state@Status_Wohnzimmer, \
Wz_Rl_64m:<Wohnzimmer&nbsp;;Rücklauf2>,temperature,<>,state@Status_Wohnzimmer


Schöne Grüße

karl0123

Zitat von: justme1968 am 05 Februar 2015, 12:48:17
das ist inzwischen (fast) repariert. siehe hier: http://forum.fhem.de/index.php/topic,33226.msg256778.html#msg256778.

gruss
  andre

Das hier ist im Übrigen nicht repariert. Mit der Version von heute ist das immernoch genau so. Es hat sich am Verhalten nichts geändert (und ja, bei mir wird alles korrekt geladen, den Cache habe ich geleert). Auch dass Codemirror im DEF Feld so nicht mehr brauchbar ist, ist sehr ärgerlich. Könnte man das wieder raus machen, bis es wirklich funktioniert???

Elektrolurch

Hallo Andre,

zwei Fragen:
1. Ich würde gerne ein und dieselbe readingsGroup auf mehreren Seiten darstellen, aber dann abhängig von der Seite (Raum) den Inhalt unterschiedlich gestalten.
Beispiel:
define Thermostat_rg readingsGroup .._Thermostat:measured-temp,desired-temp,...


.. steht für ein Kürzel für die Räume, in denen sich Thermostate befinden.
Jetzt möchte ich dann so was machen:

attr Thermostat_rg valueFormat {IsRoom("$DEVICE","$VALUE",...?)}

sub IsRoom($$$)
{
my ($d,$v,$current_room) = @_;


liefert den VALUE zurück, wenn $DEVICE  die Kennung für den Raum ($current_room) hat, in der gerade die readingsGroup angezeigt wird, ansonsten return undef.

Gibt es eine Variable oder könte man diese als $ oder % - Variable verfügbar machen ($CURRENT_ROOM),  mit der man abfragen kann, in welchem Raum die rg gerade angezeigt wird?
(attr rg room geht ja nicht, da es immer die gleiche Liste von Räumen ausgibt, in der die rg ausgegeben wird und nicht die aktuelle Darstellung repräsentiert).

2. Das ist schnell beantwortet, habe es noch nicht selbst ausprobiert, mit Ikonen tue ich mich ja nicht gerade leicht:
Können valuePrefix und valueSuffix auch Ikonen ausgeben? (Mit %IkconName)
Geht auch sowas:
...valuePrefix {'rd1' => '{perlcode}', ...'rdn' => '{perlcode...}'}

und das hier?
...commands {'rd1' => '{perlcode}', ...'rdn' => '{perlcode...}'}


Elektrolurch



configDB und Windows befreite Zone!

Newbee

Hallo zusammen,

habe folgenden Eintrag erstellt.

define Thermostat readingsGroup <%sani_heating>,<Ventil>,<Soll>,<Ist>,<MaxV>,<GID>,<Mode>,<Batterie> TYPE=CUL_HM:FILTER=subType=thermostat:ValvePosition,desired-temp,measured-temp,R-valveMaxPos,groupid,mode,battery

Und bekomme dieses Ergebniss , argh.....!

Vielen Dank vorab.

Gruß Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

justme1968

@karl0123: bei mir geht codemirror. sowohl in der DEF als auch bei den attributen. siehst du irgendwelche meldungen in der javascript konsole? du kannst per widgetOverride attribut alle textField-long widgets auf textField setzen und hast erst mal das alte verhalten ohne popup dialog.


@Elektrolurch:

an den gerade angezeigten raum kommst du per $FW_webArgs{room}. ich schaue mal ob man das noch etwas eleganter machen kann.

valuePrefix und valueSuffix können nur text sein keine icons.

perl code geht so wie in deinem beispiel in beiden fällen.


gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968