EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

Für Geräte von froggit
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#1

Beitrag von olicat »

Moin!

Weil ich selbst immer wieder Schwierigkeiten habe, den ursprünglichen Beitrag zu finden, hier nochmal ein separater Thread zum EWCSVmerge.
Außerdem gibt es nun eine erste Version mit direkter WSWin-Unterstützung. Zusätzlich wird auch der kommende WN35-Sensor für Blattfeuchte unterstützt.
Für Fragen, Fehler- oder Problemmeldungen dazu ist dies hier der geeignete Ort.

Gruß, Oliver

EWCSVmerge
===========

Vorwort
----------
Die Konsole HP2551C von Ecowitt kann sämtliche Daten aller Sensoren in CSV-Files auf einer optionalen SD-Karte abspeichern.
Diese Dateien können per SD-Karte dann auf anderen Rechnern verarbeitet werden.
Leider speichert die Konsole die Daten nicht in einer Datei, sondern in mehrere verschiedene:

YYYYMM?.CSV = enthält Standardsensorik (vermutlich der Ursprung) - monatlich
YYYYCHn?.CSV = enthält Extra-Temp/Hum-Sensordaten für Kanal n - fortlaufend (war vermutlich schon immer als separate Dateien gedacht) - jährlich, aber pro Sensor eine Datei
YYYYMMSensor-?.CSV = enthält Zusatzsensoren ohne Extra-Temp/Hum inkl. aller neuen Sensoren (kam mit moderneren Sensoren dazu - wird wohl nicht weiter erweitert) - monatlich
YYYYMMSensor1-?.CSV = enthält weitere Zusatzsensoren (kam im Zuge der WN35-Veröffentlichung - vermutlich mit v1.7.1 der Firmware - hinzu - wird vermutlich fortlaufend erweitert) - monatlich
YYYYSM1?.CSV = enthält Bodenfeuchtesensor Kanal 1 - fortlaufend (vermutlich obsolet) - jährlich

Dies erschwert die Verarbeitung ungemein.

EWCSVmerge sammelt diese Daten ein und verknüpft sie in eine Einzeldatei. Somit stehen in EINER Datei sämtliche Daten zur Weiterverarbeitung (etwa per X-CSV in WSWin) zur Verfügung.
Auch wenn per Excel irgendwelche Auswertungen getätigt werden oder die Daten in eine Datenbank eingelesen werden sollen, macht sich dies mit einer Einzeldatei deutlich besser.

Arbeitsweise
---------------
Die hier beschriebenen Schritte werden durch EWCSVmerge automatisch vorgenommen und dienen hier nur zur Erklärung der Arbeitsweise des Programms.

1. Schritt jeweils zusammenkopieren, dabei unnötige Headerzeilen entfernen
YYYYMM?.CSV --> default.csv
YYYYCHn?.CSV --> extraCHn.csv
YYYYMMSensor-?.CSV --> special.csv
YYYYMMSensor1-?.CSV --> special1.csv

EWCSVmerge setzt eine "2" als ersten Zeichen der Namen der Eingangsdateien voraus.

2. Zusammenführen
zeilenweise default.csv durchgehen
Daten der extraCH?.csv hinzufügen, dabei fehlende Dateien/Sensoren mit "--" bzw. "" (Parameter -empty) eintragen
anfügen von special.csv
anfügen von special1.csv

Die zusammenkopierten Dateien default.csv, extraCHn.csv, special.csv sowie special1.csv werden mit im Ausgabeverzeichnis abgelegt.
Zur Weiterverarbeitung empfiehlt sich jedoch die Datei, die mit im outdir benannt wurde oder (wenn nicht vorgegeben) dem Schema YYMMDDhhmmss-EWCSVmerge.csv entspricht. Dabei handelt es sich um die finale Ausgabedatei.
Wird die Option -wswin angegeben, erfolgt parallel dazu die Ausgabe einer weiteren CSV-Datei im speziellen WSWin-Format, das ohne X-CSV direkt in WSWin importiert werden kann.
Der Dateiname ist identisch zum übergebenen Dateinamen, außer das diese Datei mit "WSWin-" beginnt. Wurde kein Name als Parameter übergeben, erfolgt die Ausgabe im out-Verzeichnis als YYMMDDHHMMSS-WSWinImport.csv.

Ablauf
--------
Als Nutzer kopiert man den Inhalt der SD-Karte in ein beliebiges Verzeichnis (etwa C:\WSWin\Import\) und startet dann eine Batchdatei, die so aussehen könnte:
@echo off
ewcsvmerge.exe c:\wswin\import\ c:\wswin\export\SDKarte-1.csv -csv -wswin -empty

Nach Start dieser Batchdatei (oder dem nauellen Start mit obigen Parametern) sollten im Exportverzeichnis c:\wswin\export\ verschiedene Dateien erzeugt worden sein:

default.csv enthält alle Werte der Standard-CSV der Wetterstation (WH65, WH40, WS80, WS68, WH32)
extraCH1.csv Werte des Zusatzsensors WH31 Kanal 1
[...] je nach Anzahl der vorhandenen WH31 Zusatzsensoren weitere Dateien extraCH2,3,4,5,6,7,8.csv]
special.csv Werte der Erweiterungssensoren WH57, WH45, WH51, WH55, WH41/WH43, WN34
special1.csv Werte weiterer Erweiterungssensoren WN35 1..8
SDKarte-1.csv das komplette Excel-kompatible CSV mit allen Werten aller obigen Dateien
WSWin-SDKarte-1.csv die WSWin-Datei zum Import in WSWin mit allen Sensoren, die WSWin unterstützt

Download
-----------
Die jeweils aktuelle Version von EWCSVmerge kann hier bezogen werden.

Aufruf
--------
Es handelt sich bei EWCSVmerge um ein Konsolenprogramm für Windows, um in Batchdateien automatisch zu arbeiten.
Es gibt keine Bedienoberfläche aber ein paar Parameter, die dem Programm übergeben werden können.

Dem Programm muss zumindest das Eingangsverzeichnis (indir) in dem die von der SD-Karte stammenden CSV-Dateien liegen, als Parameter übergeben werden.
Als zweiter Parameter wird ein Ausgabeverzeichnis (outdir) bzw. der Name der Ausgabedatei inklusive des Ausgabepfades akzeptiert.
Aus Sicherheits- wie auch aus Performance-Gründen empfehle ich dringend, die Ausgabe nicht auf die SD-Karte erfolgen zu lassen.
Über das Flag -csv werden die Ausgabezeilen dahingehend verändert, das sämtliche Kommas durch ein Semikolon sowie alle Punkte durch ein Komma ersetzt werden.
Diese Art des CSV kann zumindest die deutschsprachige Version von Excel ohne Rückfragen korrekt verarbeiten.
Mit -empty werden alle Felder, die von der Wetterstation mit "--" als leer deklariert werden, in "" umbenannt.
Der Schalter -debug gibt ein paar zusätzliche Informationen zu Problemen bei der Verarbeitung aus.
Alle Parameter müssen mit einem Leerzeichen getrennt werden.

Usage: EWCSVmerge.exe indir [outdir] [-wswin -csv -empty -debug]

[-wswin] = create a optional WSWin-CSV
[-csv] = output to Excel/CSV with separator ";" and , as point
[-empty] = use "" instead of "--" (empty value)
[-debug] = show extended debug information

If outdir is not specified, the output is saved in the start directory.
If outdir does not exist, it will be created.
You may specify a file name with outdir to define the output file. If a WSWin
file is also generated, it is given the same name, but preceded by "WSWin-".

Die aktuelle Wetterstationsfirmware hat ein paar Eigenheiten, die von EWCSVmerge umschifft werden müssen.
So sind teilweise Zeilen mit identischer Zeit enthalten. EWCSVmerge überspringt eine Zeile, wenn deren Zeitstempel identisch zum vorhergehenden ist.
Derartige Zeilen werden als Fehler klassifiziert und in der Debug-Ausgabe auch mit Zeilennummern der jeweiligen Dateien ausgegeben.
Weiterhin kann es (aus mir unklaren Gründen) Lücken in den Zusatzdateien geben.
EWCSVmerge nimmt die default.csv als Master und versucht zu den dort enthaltenen Zeiten passende Zeilen in den anderen Dateien zu finden.
Auch hier erfolgt ggf. eine Fehlerausschrift.

Excel-Import
---------------
Die von der Wetterstation kommenden CSV-Files sind zumindest mit dem deutschen Excel nicht per Doppelklick einfach zu öffnen. Denn das setzt das Semikolon als Separator und ein Komma als Dezimalpunkt voraus.
Mit dem Parameter -csv kann eine Excel-kompatible CSV-Datei erzeugt werden, die die Spaltenaufteilung automatisch vornimmt.

WSWin-Import
-----------------
Für das Einlesen der normalen CSV EWCSVmerge.csv sind im WSWin ein paar Handgriffe nötig - die Erstellung einer eigenen X-CSV. Die Erzeugung einer solchen Datei ist sehr gut in einem Video von Werner Neudeck erklärt: https://www.pc-wetterstation.de/filme/x ... tellen.mp4
Einfacher ist das Einlesen der WSWin-Import-Datei, die über den Parameter -wswin erzeugt wird, da die Zuordnung der SensorIDs zu den Spalten im CSV bereits intern hinterlegt ist.
Auch die Konvertierung der u.U. von der Wetterstation in falscher Einheit gelieferten Werte (mph, m/s, knot, ft/s, bft, °F, in, inHg, mmHg, lux, fc) in das für WSWin erforderliche metrische System erfolgt automatisch.
Die Erstellung einer X-CSV kann somit entfallen.

Die von EWCSVmerge erzeugte Dateien für WSWin mit den Indexen in der ersten Zeile (bei Start von EWCSVmerge mit dem Parameter -wswin) sind für die Dateiüberwachung bestimmt. Dabei wird WSWin derart konfiguriert, das es in Intervallen oder beim Start nach Dateien in einem konfigurierten Verzeichnis sucht und diese ggf. automatisch einliest.
Alternativ lässt sich diese Datei auch über die Import-Funktion von WSWin einzulesen, wenn der Dateiname einer bestimmten Form entspricht:

Der Name der CSV muss EXPmm_jj.csv entsprechen, wobei mm der Monat und jj das Jahr ist, mit denen die im CSV enthaltenen Daten beginnen (!). Wird diese Dateinamenvorgabe nicht eingehalten, verweigert WSWin den Import mit der Fehlermeldung "ungültige Import-Datei".

Ein Import auf diesem Wege ist auch über mehrere Monate oder Jahre möglich - einzig der Dateiname muss der oben erläuterten Namensgebung entsprechen.

Beispiel:
Die im CSV enthaltenen Daten beginnen am 18.12.2019. Somit muss der Dateiname für diese Datei zwingend EXP12_19.csv heißen.

Zusätzlich sollte als Typ der Wetterstation im WSWin die Davis Pro eingestellt sein.

Hinweis
---------
Ich übernehme keine Garantie für die Funktionsfähigkeit des Programms für den gewünschten Zweck.
Die Nutzung erfolgt auf eigene Gefahr.
Das Programm EWCSVmerge.exe ist in der vorliegenden Form kostenlos und darf frei genutzt und verteilt werden.

Support
---------
Im Wetterstationsforum gibt es einen Support-Thread für Fragen und Probleme zu/mit diesem Programm:
viewtopic.php?f=21&t=417
Im englischsprachigen WXForum werde ich in Kürze einen Supportthread starten.

known issues
----------------
Sonderzeichen (UTF-8) in der Headerzeile werden ggf. im Excel falsch dargestellt. Das ist unschön aber sollte die Funktionalität nicht groß stören.
Mit v0.5 und dem zusätzlichn Parameter -ansi sollten die Sonderzeichen korrekt konvertiert werden.

Changelog
------------
v0.6 23.08.21
- bei WSWin-Erzeugung werden Werte für Blattfeuchte (WN35) von 0..99 nach 0..15 umgerechnet

v0.5 29.05.21
- Punkte im Header werden nicht mehr nach Komma konvertiert
- Parameter -ansi hinzugefügt: Konvertierung von UTF-8 nach ANSI für bessere Excel-Kompatibilität
- Parameter -ascii hinzugefügt: Konvertierung von UTF-8 nach ASCII für andere Zwecke

v0.4 22.05.21
- cross-compile kompatibel - EWCSVmerge ist nun auch fuer Linux/386 und armhf (Raspi) verfügbar und enthalten
- Dateisystemunabhängig - die korrekte Reihenfolge beim Zusammenkopieren wird nun nicht mehr dem vorhandenen Dateisystem überlassen
- Umrechnung von in nach mm bei den Regenwerten nachgebessert
- kleinere Fehlerbehebungen und Optimierungen

v0.3 20.05.21
- eingehende fehlerhafte Uhrzeiten abfangen
- automatische Konvertierung der Einheiten für WSWin-Import-CSV
- Dezimalpunkt für WSWin-CSV nun ein Komma zur besseren Excel-Kompatibilität
- Demo-Daten hinzugefügt, englische Beschreibung

v0.2 18.05.21
- Unterstützung des WN35 (sensor1-?,csv) sowie erste Implementierung der WSWin-File-Erzeugung

v0.1 14.04.21
- initial
Zuletzt geändert von olicat am 23 Nov 2021, 10:54, insgesamt 8-mal geändert.
Benutzeravatar
wneudeck
Offline
Beiträge: 903
Registriert: 27 Nov 2020, 23:23
Wohnort: Donauwörth
Hat sich bedankt: 2 mal
Danksagung erhalten: 73 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#2

Beitrag von wneudeck »

Hallo Oliver,
ich habe mir erlaubt, das Thema oben anzupinnen, da ich den Inhalt für interessant und wichtig halte. Damit dürfte es dann auch leichter gefunden werden.
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#3

Beitrag von olicat »

Hi!

Von EWCSVmerge gibt es nun die v0.3.
Neu ist die automatische Umrechnung der Eingangsdaten fuer eine bessere Kompatibilitaet der WSWin-CSV - egal in welchen Einheiten die fuer WSWin interessanten Daten vorliegen - sie werden so umgewandelt, das WSWin diese korrekt verarbeiten kann.
And a first version of an English-language manual is included.
Komplettes Changelog siehe erster Beitrag.

Oliver
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#4

Beitrag von olicat »

Hi!

Auch fuer mich ein ueberraschendes Update auf v0.4 - Changelog siehe erster Beitrag.
EWCSVmerge ist nun auch unter Linux nutzbar.

Frohe Pfingsten!

Oliver
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#5

Beitrag von olicat »

Moin!

Es gibt v0.5 von EWCSVmerge. Changelog siehe erster Beitrag.

Schoenes Wochenende!

Oliver
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#6

Beitrag von olicat »

Hi!

Fuer Nutzer, die auch Blattfeuchtesensoren (WN35) im Einsatz haben wird es demnaechst ein Update von EWCSVmerge geben, das die im Ursprungs-CSV vorliegenden Blattfeuchtewerte im Wertebereich 0..99 (Ecowitt-Format) bei Konvertierung nach WSWin (Aufruf mit Parameter -wswin) auf den WSWin-kompatiblen Bereich 0..15 (Davis) umrechnet.

Bei Interesse an einem Beta-Test bitte melden - ich warte noch auf die Lieferung meines WN35 ...

Zur Erinnerung:
EWCSVmerge fasst die einzelnen auf der microSD-Karte liegenden CSVs einer HP2551C/HP1000-Konsole in EIN CSV zusammen und generiert auf Wunsch auch eine in WSWin direkt einlesbare Datei. Siehe 1. Beitrag.

Gruss, Oliver
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#7

Beitrag von olicat »

Moin,

die v0.6 von EWCSVmerge ist nun freigegeben. Aenderungen siehe Changelog.

Oliver
plutzi
Offline
Beiträge: 11
Registriert: 02 Aug 2021, 16:37

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#8

Beitrag von plutzi »

Hallo,
ich wollte, entsprechend dieser Anleitung, meine dnt WiFi-Wetterstation WeatherScreen PRO mit WsWin verbinden.

Als Webserver habe ich XAMPP installiert.
Leider finde ich die genannte Datei ecowitt.zip nicht in meinem User-Bereich. (Anhang)

Kann mir jemand helfen diese Datei zu finden und wie müsste ich dann weiter verfahren?

Danke für die Tipps und das Verstehen-Helfen.
Dateianhänge
User.jpg
User.jpg (235.39 KiB) 6599 mal betrachtet
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 412 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#9

Beitrag von olicat »

Sorry,

aber da bist Du hier auf dem falschen Pferd bzw. im falschen Thread. EWCSVmerge konvertiert die (bereits vorhandenen) CSV-Files von der SD-Karte einer HP2551C. Ein Webserver ist dafür nicht erforderlich. Vermutlich meinst Du diese oder jene Anleitung?

Oliver
Benutzeravatar
LE-Wetter
Offline
Beiträge: 1261
Registriert: 27 Nov 2020, 19:58
Wohnort: Leipzig
Hat sich bedankt: 37 mal
Danksagung erhalten: 96 mal
Kontaktdaten:

Re: EWCSVmerge - Zusammenführen der CSV-Dateien von der HP2551C/HP1000SE Pro für WSWin und Excel etc.

#10

Beitrag von LE-Wetter »

@ plutzi

Du brauchst kein XAMPP für Wswin, du brauchst eine X-CSV und vielleicht ist sie schon vorhanden, hattest du meinen Post übersehen? viewtopic.php?f=45&t=623&sid=5664336ecd ... 5976#p5975
Liebe Grüße von LE-Wetter

WS 888, Mete-On1 und WD4000 und
alte Barometer, Blitzortung, Radioaktivität
https://www.leipzig-wetter.de
www.regionalwetter-sa.de
www.wetternetz-sachsen.de
https://wetterhistorie-leipzig.de
Antworten