readingsGroup mit myUtils-Darstellung => Aktualisierung?

Begonnen von Bastel-Frank, 27 Mai 2020, 15:13:11

Vorheriges Thema - Nächstes Thema

Bastel-Frank

Hallo zusammen,

ich habe eine RG erstellt, bei der einzelnen Readings durch myUtils-Aufrufe abgefragt bzw. zusammengestellt werden. Ich habe nun das Problem, dass diese "my-Utils-Readings" logischerweise nicht automatisch aktualisiert werden, wenn sich ändern.

Kann ich von außen (z.B. durch einen Trigger) die Aktualisierung der RG anstoßen?

Viele Grüße
Frank

MadMax-FHEM

Eine ReadingsGroup ist (in erster Linie) eine OPTISCHE Zusammenstellung von Readings aus unterschiedlichen Devices.

Die Werte (und damit die RG) aktualisiert sich, wenn ein Reading sich ändert -> Event.

Normalerweise reagiert man eben auf die "Original-Events" und NICHT auf irgendwas in einer ReadingsGroup...

Was machst du denn in der myUtils bzw. was willst du generell erreichen!?

Maximal nimmt man myUtils bei ReadingsGroup um:

- optisch zu beeinflussen: z.B. valueFormat, also das Aussehen einzelner Werte in der RG zu beeinflussen

- Befehle auslösen durch klicken auf etwaig vorhandene Icons


Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Bastel-Frank

Zitat von: MadMax-FHEM am 27 Mai 2020, 17:23:25
Maximal nimmt man myUtils bei ReadingsGroup um:

- optisch zu beeinflussen: z.B. valueFormat, also das Aussehen einzelner Werte in der RG zu beeinflussen

- Befehle auslösen durch klicken auf etwaig vorhandene Icons

Ja genau, dies ist mein Ziel. Wenn es mit den RG nicht funktionieren sollte, dass man die Darstellung (automatisch) updaten kann ... gibt es eine andere Möglichkeit, eine flexible Übersicht mit Formatierungen und Icons zu erstellen?

MadMax-FHEM

#3
Zitat von: Bastel-Frank am 28 Mai 2020, 08:24:40
Ja genau, dies ist mein Ziel. Wenn es mit den RG nicht funktionieren sollte, dass man die Darstellung (automatisch) updaten kann ... gibt es eine andere Möglichkeit, eine flexible Übersicht mit Formatierungen und Icons zu erstellen?

Hä!?

Also noch mal:

die ReadingsGroup bzw. die "Elemente" darin (es sind ja "nur" Readings" von verschiedenen Devices "schön zusammen") werden aktualisiert wenn immer sich eben der Wert eines in der ReadingsGroup eingebundenen Readings ändert!

Ganz automatisch OHNE dass man dafür irgendwas aktualisieren müsste!

Optische Anpassungen bzw. Icons etc. gehen mit den üblichen "Verdächtigen", z.B. eben valueStyle, valueFormat, valueIcon...

D.h. das Attribut setzen und dort die gewünschte Formatierung "einprogrammieren".
Das kann direkt geschehen oder in eine Sub ausgelagert werden...

Vielleicht meinst du ja das!?

Hier mal ein einfaches Beispiel (wobei im Wiki https://wiki.fhem.de/wiki/ReadingsGroup einige sind):


defmod rgAirPressureQuality readingsGroup <Messpunkt>,<Wert> NAME=httpmodLuftdruck:Luftdruck NAME=myCO2.*:CO2
attr rgAirPressureQuality alias Übersicht Luft
attr rgAirPressureQuality mapping $ALIAS
attr rgAirPressureQuality nolinks 1
attr rgAirPressureQuality notime 1
attr rgAirPressureQuality room Overview Ambient,Overview
attr rgAirPressureQuality sortby 03
attr rgAirPressureQuality valueFormat { Luftdruck => "%i hPa" }
attr rgAirPressureQuality valueStyle {my_SetAirPressureQualityValueStyle($DEVICE, $READING)}


EDIT: mit dieser ReadingsGroup werden eben die Readings CO2 aus allen Devices die mit myCO2 anfangen in einer Tabelle angezeigt (also myCO2_1 myCO2_2, ...). Wenn immer sich der Wert CO2 in einem dieser Devices ändert, dann ändert sich AUTOMATISCH die Anzeige in der RG! Und für bestimmte Schwellwerte will ich halt eine andere Farbe (valueStyle). Zusätzlich wird noch aus dem Device httpmodLuftdruck der Luftdruck angezeigt und da möchte ich gerne eine Einheit hPa haben (valueFormat)...


sub my_SetAirPressureQualityValueStyle($$)
{
  my ($Device, $Reading)  = @_;
  my $StyleString = "style=\"color:black;text-align:right\"";
  my $ActValue = 0;

  if($Reading eq "CO2")
  {
    $ActValue = ReadingsNum($Device, $Reading, 0);
    if($ActValue <= 800)
    {
      $StyleString = "style=\"color:green;text-align:right\"";
    }
    elsif($ActValue <= 1200)
    {
      $StyleString = "style=\"color:orange;text-align:right\"";
    }
    else
    {
      $StyleString = "style=\"color:red;text-align:right\"";
    }
  }

  return $StyleString;
}


EDIT: hier die sub für die Farbe je nach Wert. Mit valueIcon kann man auch verschiedene Icons "setzen". Geht ähnlich, es wird halt dann ein Icon "zurückgegeben" statt eine Text-Formatierung... Und es geht noch viel mehr. Siehe Wiki...

Je nachdem was du beeinflussen willst halt valueStyle, valueIcon, ...

Das Attribut wird "aufgerufen" bzw. das was dort "hinterlegt" ist (kann wie du siehst auch eine Sub sein), wenn immer sich ein Reading ändert.
Damit kannst du dann eben das "Aussehen" beeinflussen.


Wenn du Aktionen auslösen willst, wenn sich in der RG etwas ändert ist das der FALSCHE Weg!
Dazu solltest/musst du schon die "Original-Events" nutzen, die ja auch zur Änderung der RG führen!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

Vielleicht stellst du mal Code hier ein, so ist das recht abstrakt...

Und aktualisiert wird (afaik per longpoll) immer nur das Element/Reading, das sich ändert, nicht immer alles.

Wenn du eine Aktualisierung haben willst, könnte ein refresh der Seite im Browser helfen, das kann man ggf. auch per javascript automatisieren. Ob man das wollen sollte, ist eine andere Frage (s.o.: im Moment ist mir das zu abstrakt).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files