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 °;C",'humidity' => "%.0f %%h" }
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.
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
Dabei steht dort klar, was es tut.
und wenn du den nicht vorhanden wert auch nicht anzeigen willst kannst du valueColumn verwenden um die spalten zu konfigurieren.
gruss
andre
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...
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
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 °;C",'humidity' => "%.0f %%h",'timestamp' => '{ReadingsTimestamp($DEVICE,"temperature","")}' }
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
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