Hallo liebe Leute,
ich brauche bitte eure Hilfe bei der Formatierung.
Ich habe die Erträge meiner miniPV Anlage in einer rG zusammengefasst nur schaffe ich die Formatierung nicht
Die Werte Tag, Monat und Jahr € sollten jeweils in der selben Reihe neben den kWh stehen.
Die Überschrift habe ich ja geschafft nur leider die Werte nicht
Hier ein RAW von der rG
defmod rg_PVErtrag_neu readingsGroup <>,<kWh>,<€>,<Datum>,<Zeit>\
.*:statEmeter_0_kWhDay, .*:Ertrag_Tag, <>\
.*:statEmeter_0_kWhMonth, .*:Ertrag_Monat, <>\
.*:statEmeter_0_kWhYear, .*:Ertrag_Jahr,
attr rg_PVErtrag_neu mapping { 'statEmeter_0_kWhDay' => 'Tag', 'Ertrag_Tag' => 'Tag €', 'statEmeter_0_kWhMonth' => 'Monat', 'Ertrag_Monat' => 'Monat €', 'statEmeter_0_kWhYear' => 'Jahr', 'Ertrag_Jahr' => 'Jahr €'}
und noch ein Bild wie es jetzt aussieht
Kann mir bitte jemand unter die Arme greifen - Danke
Gruß
Helmut
@Helmi55
Ungefähr so, dann stehen die Tag-Angaben in einer Zeile:
.*:statEmeter_0_kWhDay,Ertrag_Tag, <>\
Kann natürlich nur klappen, wenn beide Readings aus einem FHEM-Device stammen ...
attr valueColumn
Danke @OdfFhem
so hat es geklappt
defmod rg_PVErtrag_neu readingsGroup <>,<kWh>,<€>\
.*:statEmeter_0_kWhDay,Ertrag_Tag, <>\
.*:statEmeter_0_kWhMonth,Ertrag_Monat, <>\
.*:statEmeter_0_kWhYear,Ertrag_Jahr,
attr rg_PVErtrag_neu mapping { 'statEmeter_0_kWhDay,Ertrag_Tag' => 'Tag', 'statEmeter_0_kWhMonth,Ertrag_Monat' => 'Monat', 'statEmeter_0_kWhYear,Ertrag_Jahr' => 'Jahr'}
attr rg_PVErtrag_neu room PVAnlage
Nur jetzt schmeisst es mich mit dem Mapping
Hast du dafür bitte auch noch eine Tip
Sänks
Helmut
@Helmi55
Im linken Teil des Mappings steht normalerweise ein Readingname, rechts der neue Text.
Vermutlich brauchst Du fürs Mapping sowieso nur den Readingnamen des ersten Feldes einer Zeile ...
servus
leider nein....
{ 'statEmeter_0_kWhDay' => 'Tag', 'statEmeter_0_kWhMonth' => 'Monat', 'statEmeter_0_kWhYear' => 'Jahr' }
Gruß
Helmut
@Helmi55
Vermutlich funktioniert es in etwa so bei Dir:
defmod rg_PVErtrag_neu readingsGroup <>,<kWh>,<€>\
.*:IRGENDEINreading1,statEmeter_0_kWhDay,Ertrag_Tag\
.*:IRGENDEINreading2,statEmeter_0_kWhMonth,Ertrag_Monat\
.*:IRGENDEINreading3,statEmeter_0_kWhYear,Ertrag_Jahr
attr rg_PVErtrag_neu nonames 1
attr rg_PVErtrag_neu room PVAnlage
attr rg_PVErtrag_neu valueFormat {\
if ($READING eq "IRGENDEINreading1") {\
return 'Tag';;\
} elsif ($READING eq "IRGENDEINreading2") {\
return 'Monat';;\
} elsif ($READING eq "IRGENDEINreading3") {\
return 'Jahr';;\
} else {\
return $VALUE;;\
}\
}
IRGENDEINreading1,IRGENDEINreading2,IRGENDEINreading3 musst Du durch irgendein "uninteressantes" Reading aus dem betroffenen FHEM-Device ersetzen; dessen Wert wird dann durch Tag,Monat oder Jahr übersetzt ...
Guten Morgen,
Wau Danke so funktioniert es.
D.h. da ich statEmeter und Ertrag schon verwende, kann rG das für die Zeilen nicht mehr auflösen?
Danke für deine Zeit und Mühe
PS: gibts noch ein attr "Sonne" damit der Ertrag besser wird ;D ;D ;D
LG
Helmut
Hallo guten Abend
eine Frage habe ich noch - für Datum und Zeit dachte ich ist das attr "notime" zuständig.
Das ist aber nicht gesetzt - warum wird dann kein Datum und Zeit mehr angezeigt?
Nice ehe und Danke
Helmut
@Helmi55
Timestamp wird nur bei einspaltiger Ausgabe autom. ausgegeben und nur dann hat notime eine Bedeutung.
Bei mehrspaltiger Ausgabe wird es schwierig, einen Timestamp auszugeben;
man kann aber selbst eine solche Spalte hinzufügen ...
Servus habe da jetzt im Forum danach gesucht und bin auf diesen Ansatz gekommen, aber leider NEIN
Es zerreißt mit nur die Formatierung!
defmod rg_PVErtrag_neu readingsGroup <>,<kWh>,<€>,<Zeit>\
.*:fs_free,statEmeter_0_kWhDay,Ertrag_Tag,<{readingsTimestamp($DEVICE,"statEmeter_0_kWhDay","")}@reading>\
.*:fs_size,statEmeter_0_kWhMonth,Ertrag_Monat,<{readingsTimestamp($DEVICE,"statEmeter_0_kWhMonth","")}@reading>\
.*:fw_ver,statEmeter_0_kWhYear,Ertrag_Jahr,<{readingsTimestamp($DEVICE,"statEmeter_0_kWhYear","")}@reading>\
attr rg_PVErtrag_neu alias Ernte PV Anlage kWh und €
attr rg_PVErtrag_neu nonames 1
attr rg_PVErtrag_neu room PVAnlage
attr rg_PVErtrag_neu valueFormat {\
if ($READING eq "fs_free") {\
return 'Tag';;\
} elsif ($READING eq "fs_size") {\
return 'Monat';;\
} elsif ($READING eq "fw_ver") {\
return 'Jahr';;\
} else {\
return $VALUE;;\
}\
}
Danke
Helmut
@Helmi55
Ist readingsTimestamp eine eigene Routine ?
In FHEM schreibt man diese normalerweise ReadingsTimestamp ...
Da man kein Reading ersetzt, sollte @reading entfallen ...
<{readingsTimestamp($DEVICE,"statEmeter_0_kWhYear","")}@reading>
müsste vermutlich eher so aussehen
<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhYear","")}>
Wau - Danke - du bist SPITZE
Danke für deine Geduld.
Meine letzte Frage - dann bist mich in diesem Thema los ;D ;D ;D
Warum hab ich mir die Formatierung zerschossen
defmod rg_PVErtrag_neu readingsGroup <>,<kWh>,<€>,<Zeit>\
.*:fs_free,statEmeter_0_kWhDay,Ertrag_Tag,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhDay","")}>\
.*:fs_size,statEmeter_0_kWhMonth,Ertrag_Monat,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhMonth","")}>\
.*:fw_ver,statEmeter_0_kWhYear,Ertrag_Jahr,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhYear","")}>\
attr rg_PVErtrag_neu alias Ernte PV Anlage kWh und €
attr rg_PVErtrag_neu nonames 1
attr rg_PVErtrag_neu room PVAnlage
attr rg_PVErtrag_neu valueFormat {\
if ($READING eq "fs_free") {\
return 'Tag';;\
} elsif ($READING eq "fs_size") {\
return 'Monat';;\
} elsif ($READING eq "fw_ver") {\
return 'Jahr';;\
} else {\
return $VALUE;;\
}\
}
Schönen Abend
Helmut
@Helmi55
Ich vermute, dass wegen der zusätzlichen Spalte jedes durch .* qualifizierte FHEM-Device dargestellt wird.
Wenn Du also den ReadingsTimestamp-Rückfallwert von "" auf "unbekannt" setzt, würde dieser oft zu sehen sein.
Wenn Du das Attribut nonames löschst oder auf 0 setzt, würden die Namen der qualifizierten FHEM-Devices sichtbar.
Im Zweifel sollte .* "entschärft" werden:
... falls nur ein Device betroffen ist, durch dessen Name
... falls mehrere betroffen sind, eine der vielen Möglichkeiten lt. readingsGroup-Doku
Guten Morgen,
Danke für deine Zeit. Das ist für mich schon etwas zu hoch.
Da muss ich ohne Zeitangabe auskommen. Hauptsache ich habe jetzt eine schöne Übersicht.
Im Wiki habe ich auch nichts zu meinem Beispiel gefunden - oder nicht verstanden :-[
Schönen Tag
Helmut
@Helmi55
In Deinem Fall kommen wahrscheinlich alle Readings aus einem Device
... nach einem Screenshot weiter oben wohl MQTT2_shellyem_<MAC>
Du müsstest also
.*:fs_free,statEmeter_0_kWhDay,Ertrag_Tag,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhDay","")}>\
.*:fs_size,statEmeter_0_kWhMonth,Ertrag_Monat,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhMonth","")}>\
.*:fw_ver,statEmeter_0_kWhYear,Ertrag_Jahr,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhYear","")}>\
ändern in
MQTT2_shellyem_.*:fs_free,statEmeter_0_kWhDay,Ertrag_Tag,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhDay","")}>\
MQTT2_shellyem_.*:fs_size,statEmeter_0_kWhMonth,Ertrag_Monat,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhMonth","")}>\
MQTT2_shellyem_.*:fw_ver,statEmeter_0_kWhYear,Ertrag_Jahr,<{ReadingsTimestamp($DEVICE,"statEmeter_0_kWhYear","")}>\
Dann sollten alle/die meisten Leerzeilen verschwinden ... hoffentlich, da ungetestet ...
Vielen herzlichen Dank für deine Geduld und Zeit.
Genau so wie ich es wollte. Das hätte ich nie hinbekommen.
Aber ich glaube, ich verstehe es jetzt.
Jetzt kommt es endlich auf gelöst.
Schönen Tag noch
Helmut