Neues Modul readingsGroup

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

Vorheriges Thema - Nächstes Thema

justme1968

mach mal bitte ein screen shot wie die readingsGroup auschaut wenn sie angezeigt wird.

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

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

justme1968

anbei eine neue version der readingsGroup zum testen:

es gibt ein neues attribut valueIcon. damit kann der value eines readings auf ein icon gemappt werden das dann statt des texts angezeigt wird.

jeder reading wert wird auf ein gleichnamiges icon gemapped:attr <device> valueIcon $VALUE
nur state wird als icon dargestellt. alle anderen readings bleiben wie sie sind:attr <device> valueIcon {state => '%VALUE'}
es wird für state das jeweilige devStateIcon des devices angezeigt. inklusive anklickbarkeit:attr <device> valueIcon {state => '%devStateIcon'}
gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

und noch eine erweiterung:

die readings die angezeigt werden sollen können alternativ auch mit komma getrennt werden. dann werden mehrere readings auf einer einzigen zeile angezeigt.

hier ein beispiel das die verbrauchswerte aller PCA301 steckdosen in einer übersicht anzeigt. werte über 100 watt werden rot eingefärbt. die icons sind anklickbar:
define Verbrauch readingsGroup TYPE=PCA301:state,power,consumption
attr Verbrauch mapping %Alias
attr Verbrauch nameStyle style="font-weight:bold"
attr Verbrauch style style="font-size:20px"
attr Verbrauch valueFormat {power => "%.1f W", consumption => "%.2f kWh"}
attr Verbrauch valueIcon { state => '%devStateIcon' }
attr Verbrauch valueStyle {($READING eq "power" && $VALUE > 100)?'style="color:red"':'style="color:green"'}


(siehe Anhang / see attachement)


@elektrolurch: ich muss noch einbauen das man auch hier readings komplett ausblenden kann.

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

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

Elektrolurch

Hallo  Andre,

absolute Klasse undgleich auch mit einem hilfreichen Beispiel, dann tut man sich am Anfang etwas leichter. Dann kann ich ja meinen Code wieder umstellen....! Wenn jetzt mehrere Readings in einer Zeile gehen!!!!
Mal sehen, ob ich das in den nächsten Tagen hinbekomme.
Mir ist fhem wegen dem PRESENCE-Modul abgestüzt und danach kamen die Fehler wg. dem undefinierten Wert in readingsGroup nicht mehr wieder. Strange. Werde das noch beobachten.

Elektrolurch
configDB und Windows befreite Zone!

Elektrolurch

Hallo Andre,

bin erst heute dazu gekommen, per update die neue Version von readingsGroup einzuspielen. Ergebnis:
Das Ausblenden von Werten über "valueFormat" per undef funktoniert nicht mehr.
Alle meine readingsGroup zeigen jetzt wieder alle Geräte an.
Bspw. die Definition von:
{($VALUE =~m/on.*/)?"ein seit ".KonvertiereZeit(ReadingsTimestamp("$DEVICE","state","???")):undef()}
Zeigt auch alle FS20 mit dem state "off" an, obwohl diese eigentlich per eventmapping auf /off:aus/ gesetzt wurden.

Was muss ich anpassen?

Gruß Elektrolurch
configDB und Windows befreite Zone!

justme1968

mein fehler.

du musst nichts anpassen. ab morgen sollte es wieder gehen.

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

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

Elektrolurch

Hallo Andre,

mir ist da noch was aufgefallen:

Küche Lampe 2 über Arbeitsplatte
off

Alle Lampen sind da bei mir mit attr eventmap auf ein - aus gemappt.
Wird das eventmapping ev. von readingsGroup ignoriert?
Und vielleicht hast Du da noch einen Tip für mich:
Ich habe fhts im Einsatz. Standardmässig zeigen die zwei Werte an:
einmal die aktuelle Temperatur und zweitens die "desired-temp" als Klappmenü.
Über das stateFormat habe ich die Anzeige der aktuellen Temperatur verändert und "eingedeutscht".
Mir gelingt es jedoch nicht, "desired-temp" durch "Soll-Temp." zu ersetzen, obwohl ich /desired-temp:Soll-Temp/ im eventmap definiert habe.  Was muss ich tun, damit das an der GUI als Soll.-Temp. + Klappmenü angezeigt wird?

Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

readingsGroup arbeitet mit readings. eventmap mappt zwischen state und STATE. d.h. es wird nicht ignoriert sondern eventmap betrifft eine ganz andere stelle mit der readingsGroup nichts zu tun hat. wenn du die werte der dargestellten readings ändern möchtest musst du das über valueFormat selber machen.

ich kann aber mal schauen ob mal vielleicht ein zusätzliches value mapping einbaut.


wie oben gesagt: eventMap mappt nur zwischen state (dem reading state) und STATE (das was im web frontend als status oder icon angezeigt wird. du kannst die namen der readings die ein device verwendet nicht ändern. wenn es nur um einen read only wert geht kannt du ein zusätzliches userReading anlegen das dann deinen deutschen namen hat. wenn der wert auch setzbar sein soll kannst du da vielleicht ein notify dran hängen und dann den eigentilichen wert ändern. ist zwar etwas von hinten durchs knie müsste aber gehen.

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

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

Elektrolurch

Hallo Andre,
Zitat:
du kannst die namen der readings die ein device verwendet nicht ändern. wenn es nur um einen read only wert geht kannt du ein zusätzliches userReading anlegen das dann deinen deutschen namen hat. wenn der wert auch setzbar sein soll kannst du da vielleicht ein notify dran hängen und dann den eigentilichen wert ändern. ist zwar etwas von hinten durchs knie müsste aber gehen.


..bringt leider auch nichts, da das Klappmenü mit "desired-temp" nicht auszublenden ist, dann hätte ich zwei Menüs. Ich habe sowas schon befürchtet, da ich irgendwo on-the-fly einen Beitrag gesehen hatte, wo jemand das fht-Modul "einfranzösischen" wollte. Ein echter Patriot.
Werde da wohl weiterhin mit "desired-temp" auf der Gui leben müssen. Nicht so schön...

Elektrolurch
configDB und Windows befreite Zone!

Elektrolurch

Hallo Andre,

nach dem Update ist alles wieder ok. Jetzt habe ich mal valuIcon ausprobiert. Klappt. Aber wie das immer so ist... der Appetit kommt beim Essen.
Ich habe mir eine Gruppe gebaut, die alle Lampen anzeigt, die noch eingeschaltet sind. Dabei habe ich den Zeitpunkt des Einschaltens in das valueFormat (einschl. udef für die ausgeschalteten Lampen) gepackt.
Leider hat man jetzt nur die Alternative zwischen Ikon oder Text. Mir würde es gefallen, wenn das so möglich wäre:
Icon (mit Link zum Schalten) und dahinter den Text, bzw. (eingesch. seit...=.
Könnte man da nicht ev. noch ein Steuerparameter beim valueIcon (z.B. "+" einbauen, wenn das Reading auch ausgegeben werden soll?
Wäre super und danke.
Du hast da wirklich ein tolles Modul gebaut...

Elektrolurch
configDB und Windows befreite Zone!

cwagner

Guten Tag,

über readingsGroup habe ich mich richtig gefreut - hatte schon immer Bedarf danach, konnte ihn aber nicht so richtig formulieren. Ich benutze es jetzt gleich mehrfach. Dabei fiel mir auf, dass ich bei einem Start von FHEM regelmäßig dieses beiden Fehlerzeilen erhalte:

# ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HER                           E $/ at ./FHEM/33_readingsGroup.pm line 104, <$fh> line 392.
^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE                            $/ at ./FHEM/33_readingsGroup.pm line 104.


Herzliche Grüße

Chritian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

justme1968

du hast irgendwo in deinen readingsGroup definitionen zwei mit falscher regex. vor dem * fehlt da ziemlich sicher ein punkt.

zeig doch mal die definitionen.

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

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

cwagner

Hallo Andre,

du hattest natürlich recht, da habe ich nicht ordentlich gearbeitet und hätte vor meinen Posting ersteinmal selbst meine Definitionen prüfen sollen.

wieder was gelernt - weiter gutes Gelingen mit Deinem Modul...

Grüße

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Elektrolurch

Hallo Andre,

jetzt habe ich doch so ziemlich alles in den Übersichten ausgereizt, was man mit Deinem Modul so machen kann.
Dabei bin ich auf zwei Grenzen gestoßen:
1. Hat man mehrere Readings in einer Zeile (Superfeature) und verwendet für Valueformat die Form reading => Ausdruck, so kann Ausdruck wohl nur ein sprinft - Formatierungsausdruck sein. Perl-Code (z.B. zum Umrechnung der Zeitinformation) geht wohl da leider nicht.
2. Ich bin bei den Übersichten auf folgendes, kleines Problem gestoßen:
Ziel war es jene Lampen/Stromverbraucher anzuzeigen, die noch eingeschaltet sind. Dabei sollte ein Ikon für das Schalten vorhanden sein und die Uhrzeit, seit dem der Verbraucher auf "ein" ging.
attr Alle_Lampen_im_Haus valueFormat {($VALUE =~m/on.*/)?"</td><td>ein seit ".KonvertiereZeit(ReadingsTimestamp("$DEVICE","state","???")):undef()}
Wenn ich jetzt das Ikon dazu nehme mit
ValueIkon {state => '%devStateIcon'}
Dann wird der Text (so stehts ja auch in der CommandRef) nicht mehr angezeigt.
Da es bei den zusätzlichen Informationen zumeist um Zeitangaben handelt, die formatiert werden müssten, wäre nun die Lösung:

timestampFormat analog zu valueFormat, wenn notime = 0 gesetzt ist.
Gerade in Übersichten sind ja die zusätzlichen Zeitinformationen von großem Interesse.
Ließe sich so eine Erweiterung noch mit einbringen?

Gruß
Elektrolurch


configDB und Windows befreite Zone!

justme1968

ich bin gerade dabei eine erweiterung einzubauen bei der man mit '<Text>' einen festen text und mit '<{Perl-Code}>' eine beliebige perl routine in die komma liste mit einbauen kann. auch an einem formatTimestamp bastle ich garade noch.

damit lässt sich im prinzip beides erschlagen. ich habe aber noch probleme den timestamp im longpoll auch zu aktualisieren.

vielleicht kann ich das auch noch mit spaltenüberschriften und einrücken verbinden. ich bin noch am probieren...

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

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