readingsGroup - Tabelle rutscht nach links bei nicht vorhandenen readings

Begonnen von iamandy, 18 Juni 2016, 12:38:52

Vorheriges Thema - Nächstes Thema

iamandy

Hallo  :)

Ich komme nicht weiter und kann das Wiki nicht richtig interpretieren...

Ich habe eine readingsGroup für Temperaturen und Luftfeuchte. Manche Sensoren haben aber nur Temperatur, aber keine Luftfeuchte readings. Wenn ich jetzt noch den Timestamp in die Tabelle einblende, dann rutschen die Time Werte bei den Sensoren ohne Luftfeuchte um eine Spalte nach links...

Gibt es so etwas wie ein Attribut wie "wenn das reading nicht vorhanden, oder leer ist, dann setze ein Bindestrich in die Tabelle"? Am liebst wäre mir wenn dann auch gleich das "%h" das ich sonst in diese Spalte hinter den Wert schreibe in diesem Fall nicht erscheinen würde, sonst stände da ja "- %h", womit ich aber noch gut leben könnte.

define Temp.rg readingsGroup <Raum>,<Temp>,<Hum>,<Last Update> \
TYPE=LaCrosse:temperature,humidity,<{ReadingsTimestamp($DEVICE,"temperature","")}>
attr Temp.rg alias Temperaturen
attr Temp.rg sortDevices 1
attr Temp.rg style class="block wide rgDevices"
attr Temp.rg valueFormat { 'temperature' => "%0.1f &deg;;C",'humidity' => "%.0f %%h" }

marvin78

Die Doku sagt, was man tun muss (bitte Doku immer lesen):
Zitat

       
  • If regex starts with a '!' the display of the value will be forced even if no reading with this name is available.

iamandy

Danke für den Tipp und die Belehrung!

Der Tipp war allerdings viel mehr wert, denn ich schrieb ja schon das ich die Doku gelesen, aber nicht verstanden habe. Auch den Tipp musste ich ein paar mal lesen, bis ich wusste was gemeint ist...  :-X

marvin78


justme1968

und wenn du den nicht vorhanden wert auch nicht anzeigen willst kannst du valueColumn verwenden um die spalten zu konfigurieren.

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

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

iamandy

Zitat von: justme1968 am 18 Juni 2016, 13:45:37
und wenn du den nicht vorhanden wert auch nicht anzeigen willst kannst du valueColumn verwenden um die spalten zu konfigurieren.

gruss
  andre


Das ist genau das was ich gesucht habe, aber ich bekomme es nicht mit dem <{ReadingsTimestamp($DEVICE,"temperature","")}> hin.

attr Temp.rg valueColumn { <{ReadingsTimestamp($DEVICE,"temperature","")}> => 3 }

und bestimmt 10 andere Varianten habe ich ausprobiert...

justme1968

das <...> ist kein reading und lässt sich nicht über die mappings beeinflussen.

wenn die reihenfolge es her gibt konfiguriere die spalte direkt links davon, wenn das nicht geht nimm statt <...> besser !timestamp und im valueFormat ...,timestamp => '{ReadingsTimestamp($DEVICE,"temperature","")',...

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

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

iamandy

Zitat von: justme1968 am 18 Juni 2016, 18:25:51
das <...> ist kein reading und lässt sich nicht über die mappings beeinflussen.

wenn die reihenfolge es her gibt konfiguriere die spalte direkt links davon, wenn das nicht geht nimm statt <...> besser !timestamp und im valueFormat ...,timestamp => '{ReadingsTimestamp($DEVICE,"temperature","")',...

gruss
  andre

Vielen Dank!

Ich kann die Spalte links davon nicht nehmen, weil diese ja diese ist die manchmal leer ist. So habe ich heute einiges gelernt, denn dein Tipp funktioniert super! Ich verstehe zwar nicht ganz warum das Ausrufezeichen vor dem timestamp stehen muss, aber das liegt vermutlich daher das timestamp kein echtes reading ist. Jedenfalls wäre ich ohne Deine Hilfe niemals auf die Lösung gekommen. Danke also noch mal!

Und wer ein ähnliches Problem hat, hier meine nun funktionierende Konfig:
define Temp.rg readingsGroup <Raum>,<Temp>,<Hum>,<Last Update> \
TYPE=LaCrosse:temperature,humidity,!timestamp
attr Temp.rg alias Temperaturen
attr Temp.rg sortDevices 1
attr Temp.rg style class="block wide rgDevices"
attr Temp.rg valueColumn { timestamp => 3 }
attr Temp.rg valueFormat { 'temperature' => "%0.1f &deg;;C",'humidity' => "%.0f %%h",'timestamp' => '{ReadingsTimestamp($DEVICE,"temperature","")}' }

justme1968

genau. mit dem ! flag wird ein reading auch dann berücksichtigt wenn es überhaupt nicht vorhanden ist.

damit kann man im einfachsten fall alles machen was mit <...> auch geht, aber eben noch viel mehr da es als 'normales' reading angesehen wird bei dem dann auch mappings greifen.

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

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

NewbieNew

Danke für die Lösung. Probiere sie gleich aus. Danke auch für die Fragestellung, ich hatte noch keine Lust, mir die Watschen dafür abzuholen.

Gesendet von meinem XELIO10_PLUS_3G mit Tapatalk