readingsgroup Verständnissfragen :(

Begonnen von eldrik, 16 November 2013, 08:46:00

Vorheriges Thema - Nächstes Thema

fhainz

Ich hab öfters das perfmon Modul aktiviert und auch alle readingsGroups in einer cfg damit ich sie leicht ausblenden kann. Wenn ich die readingsGroups.cfg aktiviert hab, also Standard betrieb, dann hab ich sehr sehr viele einträge. Wenn ich sie auskommentiere hab ich gefühlt einige weniger ;)

Aber mein System laggt generell sehr. Warum auch immer. Ich muss ich Urlaub mal meine cfg nach Problemen durchforsten und meine FileLogs optimieren. Ich hoffe das bringt was.

Grüße

justme1968

such mal hier im forum nach apptime.pm

das ist ein modul vom homematic martin. das mach performance messungen auf modul bzw device ebene. das ist eine möglichkeit rauszufinden ob es an bestimmten devices liegt.

ansonsten kannst du readingsgroups auch mit disable deaktivieren. das hilft vielleicht auch beim testen.

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

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

fhainz


justme1968

ach ja: noch etwas... vielleicht kannst du die beiden beispiele von oben mit einem screenshot ins wiki auf die readingsGroups seite stellen.

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

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

fhainz


fhainz

Schaff ich es irgendwie zwei readings miteinander zu vergleichen und dann eine entsprechende farbe zu setzten?

Genauer gesagt will ich Soll Temperatur einfärben. Wenn Soll > Ist -> rot, Soll < Ist -> grün

Meine bisherige valueStyle sieht so aus:
attr wzTemperaturenRG valueStyle { if($DEVICE eq "Aussen" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}elsif($DEVICE eq "Aussen" && $READING eq "temperature" && $VALUE > 20) { 'style="color:orange"'}elsif($DEVICE eq "Aussen" && $READING eq "temperature" && $VALUE < 5) { 'style="color:blue"'}elsif($DEVICE eq "Wohnzimmer" && $READING eq "temperature" && $VALUE > 23) { 'style="color:red"'}elsif($DEVICE eq "Wohnzimmer" && $READING eq "temperature" && $VALUE > 21) { 'style="color:orange"'}elsif($DEVICE eq "Wohnzimmer" && $READING eq "temperature" && $VALUE < 20) { 'style="color:blue"'}elsif($DEVICE eq "Kasten_E_Geraete" && $READING eq "temperature" && $VALUE > 30) { 'style="color:red"'}elsif($DEVICE eq "Kasten_E_Geraete" && $READING eq "temperature" && $VALUE > 28) { 'style="color:orange"'}elsif($READING eq "humidity" && $VALUE > 65) { 'style="color:red"'}elsif($READING eq "humidity" && $VALUE > 60) { 'style="color:orange"'}elsif($DEVICE eq "wzHeizung" && $READING eq "desired" && $VALUE eq "12"){ 'style="color:blue"'}else{'style="color:green"'} }


Anbei noch ein Screenshot.

Jemand eine Idee?


Grüße

justme1968

ja das geht natürlich :) aber nicht direkt.

wenn es dir reicht das es beim seitenaufbau stimmt ist es ganz einfach. einfach mit valueformat einfärben. das problem ist das es per longpoll nicht zuverlässig aktualisiert wird weil der trigger nur am reading selber hängt und nicht am zweiten mit dem er in beziehung steht.

du kannst es mit <{...}> lösen wenn du es als von beiden readings abhängig kennzeichnest. dann stimmt die aktualisierung aber das einfärben muss man von hand machen und passendes html generieren. am besten über eine ausgelagerte kleine routine.

wenn du nur eines der beiden readings anzeigen willst ist eine lösung beide direkt nebeneinander anzuzeigen per valueFormat immer das erste anzuzeigen und per valueStyle jeweils das andere auszublenden.

das einfachste ist aber ein user reading im device anzulegen das z.b eine min() differenz berechnung macht und per event-on-change ein event erzeugt. damit hast du ein reading das aktualisiert wird wenn sich eines der beiden abhängigen ändert. also den richtigen trigger für longpoll, dieses reading kannst du dann in die readingsGroup zu packen aber mit valueFormat statt dessen den wert anzeigen um den es dir geht.

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

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

fhainz

#37
OK das klingt kompliziert :D

Ich hab mir jetzt ein userReading erstellt. Aktualisiert sich auch selbst.
SollGrIst { (ReadingsVal("wzHeizung","desired","") > ReadingsVal("wzHeizung","measured",""))?"1":"0"; }


Was ich noch nicht verstehe

Zitataber mit valueFormat statt dessen den wert anzeigen um den es dir geht

Wie mach ich das?

Meine valueFormat sieht so aus:
attr wzTemperaturenRG valueFormat {temperature => "%.1f °C", humidity =>"%.1f %%", desired => "%.1f °C", measured => "%.1f °C", dewpoint => "%.1f °C", actuation => "%i %%" }

Grüße

justme1968

du musst die version von valueFormat verwenden die den konkreten string zurück gibt den du anzeigen möchtest. etwas in der art:{if($READING eq 'temperature') { return "%.1f &deg;C"} elsif( $READING eq ...} elsif($READING eq 'SollGrIst') {return (ReadingsVal("wzHeizung","desired","") }}

am besten steckst du alles in eine kleine sub in 99myUtils.pm

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

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

fhainz

ok alles klar.

muss ich der sub irgendwas an variablen übergeben? Oder einfach name()?

Grüße

justme1968

am besten übergibst du $DEVICE und $READING. halt das was du hinterher brauchst.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

fhainz

DANKE!!!

Das war jetzt DIE Idee. Endlich bin ich die ewig langen Zeilen los....

Hab die Farbzuweisung jetzt ausgelagert und klappt. Das andere Versuch ich jetzt dann. Wird aber sicher klappt.

Danke nochmal für die Hilfe! Jetzt ist mir einiges klarer ;)


Grüße

Kineas

Hallo,

erstmal danke für die vielen Tipps. Super Forum !

Ich den Code von fhainz bezüglich der readingsGroup der ENIGMA2 Daten umgesetzt.
Das funktioniert auch super.
Wenn man jetzt eine ganze Zeile nur für ein reading frei gibt orientiert sich das reading an den columns.
Speziell geht es hier um die eventdescription, die bei manchen Sendern recht viele Informationen liefert.
Besteht die Möglichkeit, für readings die gesamte Zeile zu nutzen ?

Hier ein Bild :
(http://s1.directupload.net/images/140105/i59b5o5j.jpg)

justme1968

versuch mal die angehängte version mit attr <device> valueColumns { eventdescription => 'colspan="4"'}

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

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

Kineas

Perfekt !!

Funktioniert wie gewünscht.
Big Thx

Gruß
Kineas