#erledigt# Formatierung rG

Begonnen von Helmi55, 25 Januar 2022, 13:25:05

Vorheriges Thema - Nächstes Thema

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

OdfFhem

@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 ...

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Helmi55

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

System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

OdfFhem

@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 ...

Helmi55

servus

leider nein....

{ 'statEmeter_0_kWhDay' => 'Tag', 'statEmeter_0_kWhMonth' => 'Monat', 'statEmeter_0_kWhYear' => 'Jahr' }

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

OdfFhem

@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 ...

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

OdfFhem

@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 ...

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

OdfFhem

@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","")}>

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

OdfFhem

@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

Helmi55

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
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/