jens-maus / RaspberryMatic

:house: A feature-rich but lightweight, buildroot-based Linux operating system alternative for your CloudFree CCU3/ELV-Charly 'homematicIP CCU' IoT smarthome central. Running as a pure virtual appliance (ProxmoxVE, Home Assistant, LXC, Docker/OCI, Kubernetes/K8s, etc.) on a dedicated embedded device (RaspberryPi, etc.) or generic x86/ARM hardware.
https://raspberrymatic.de
Apache License 2.0
1.52k stars 186 forks source link

ReGaHss: CSV Export invalid mit , bzw. ; im Text #1643

Closed vowill closed 2 years ago

vowill commented 2 years ago

Describe the issue you are experiencing

(1) Wenn eine Textvariable protokolliert wird und diese ein Semikolon (;) enthält, wird das Semikolon auf der WebUI-Seite "Startseite > Status und Bedienung > Systemprotokoll" als ein normales Komma (,) angezeigt; die Information, dass es sich original um ein Semikolon handelte, geht verloren.

(2) Beim "Exportieren" in eine csv-Datei bleibt dies allerdings ein Semikolon - was dazu führt, dass in der csv-Datei die Werte nach dem Semikolon in eine neue Spalte geschrieben werden. Während üblicherweise die Einträge des Systemprotokolls nur die Spalte A in der csv-Datei belegen, belegt eine Textvariable, die n Semikolons enthält, also n+1 Spalten. Nachgelagerte Auswertungsprogramme müssen diesen Sonderfall entsprechend berücksichtigen.

Describe the behavior you expected

(1) Das Semikolon sollte sichtbar sein. (2) Generell sollte in der csv-Datei nur die Spalte A belegt sein.

Oder: Genereller Hinweis, auf Semikolons in protokollierten Textvariablen zu verzichten.

Steps to reproduce the issue

  1. Funktioniert mit jeder Textvariablen, die protokolliert wird und die ein oder mehrere Semikolons enthält.
  2. ...

What is the version this bug report is based on?

3.61.7.20211218

Which base platform are you running?

rpi3 (RaspberryPi3)

Which HomeMatic/homematicIP radio module are you using?

HM-MOD-RPI-PCB

Anything in the logs that might be useful for us?

-

Additional information

Generell ist die Option eines Exports des Systemprotokolls großartig, ermöglicht diese doch die nachgelagerte und dadurch in der Regel sehr komfortable Auswertung. Danke daher für diese Option!

MichaelN0815 commented 2 years ago

Du erinnerst Dich an https://github.com/jens-maus/RaspberryMatic/issues/1585?

jens-maus commented 2 years ago

Auch ich bin jetzt verwirrt!

@vowill sollte doch eigentlich wissen das man nicht alles haben kann. In #1585 habe ich ja eigentlich recht klar erläutert warum Semikolons nicht teil des exportierten textes sein kann (eben weil das Semikolon teil der CSV-Datenstruktur selbst ist!).

vowill commented 2 years ago

Sorry, hatte deinen letzten Post zu den Semikolons nicht parat. Die "Übersetzung" eines Semikolons in ein Komma für die Anzeige im Systemprotokoll ist dort ja explizit beschrieben; damit ist mein Punkt (1) erledigt. Für (2) wäre es dann sinnvoll, auch beim Export die Übersetzung von Semikolon in Komma drin zu lassen. Ist das eine Option?

jens-maus commented 2 years ago

Man muss hier eben zwischen WebUI Darstellung und export in CSV unterscheiden. In der WebUI ist es eben ein workaround das dort nun ein , statt eines ; dargestellt wird und damit muss man bis auf weiteres eben leben. Trotzdem erscheint es mir falsch bei einem Export in eine *.csv Datei hier auch kommata statt semikolon auszugeben weil das ja nicht dem realen wert entspricht. Deshalb möchte ich da jetzt nicht auch diesers ; -> , für den CSV export umsetzen.

Allerdings gebe ich dir recht, das auch der csv export ein Problem hat wenn ein ; bzw. ein , im eigentlich auszugebenden Text existiert. Auch gibt es andere Probleme dort, z.b. wenn multi-line daten ausgegeben werden, werden die nicht via " escapt wie das eigentlich üblich ist. Die Situation hier ist aber eine etwas andere als in der WebUI und hier gibt es zumindest theoretische Hoffnung das man das Problem gelöst bekommt das dann alle möglichen csv-tools damit ggf. klarkommen. Ich habe dazu schon erste modifikationen an der ReGaHss umgesetzt die hoffentlich dann nicht nur die Probleme mit ; und , im Text beseitigen, sondern auch die Kompatibilität zu Excel&Co erhöhen sollten. Wann das allerdings in eine zukünftige RaspberryMatic integriert wird, müsste man erst einmal noch schauen.

vowill commented 2 years ago

Okay, besten Dank für die Info. Passt für mich bestens, von meiner Seite kann der Issue daher gerne geschlossen werden. Weiterhin viel Erfolg & Gesundheit im neuen Jahr wünscht vowill