UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[TIPP] Experimentelles importieren einer Timeseries über den WG-Importüber

Diskussionen über Zeitserien, Logging und Auswertung mit Grafana
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS, CometVisu, Grafana, Edomi oder eine andere Software beteiligt ist, dann auch immer deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

Experimentelles importieren einer Timeseries über den WG-Importüber

#1

Beitrag von Robosoc »

Folgende Anleitung dient dem Import und Anlegen von neuen, einheitslosen Zeitreihen (es werden Zahlen-Werte in Verbdinung mit Zeitstemplen angelegt).

ACHTUNG
Ich beschreibe hier, was bei mir in einem TWS950 V1.6 funktioniert hat. Beim Austesten des korrekten XML-Codes ist es mir 2x passiert, dass ich meinen TWS mit einer neu anglegten Timeseries lamgelegt habe und ich musste den vorherigen Zustand mit einer Sicherungsdatei wiederherstellen. Deshalb : Unmittelbar vor dem Ausprobieren unbedingt eine Sicherung des TWS durchführen, auch wenn die hier gezeigte Lösung bei mir am Ende mehrfach funktioniert hat und seit 2-3 Wochen keine Probleme erzeugt hat.

Hier wird eine vorhandene Funktion des Wiregate-Importer für einen Zweck "missbraucht", für den diese nicht geschaffen wurde. Insofern gibt es dazu auch keine Unterstützung seites ElabNet und die Durchführung geschieht vollständig auf eigenes Risiko. Kern des Ganzen ist der PLUGIN-RRD-Import des Wiregate Abschnittes im TWS, bei dem ein User RRD-Dateien, die im Wiregate erzeugt wurden, übernehmen kann.

Man legt sich eine XML-Datei mit folgendem Text an (in einem Texteditor wie Note oder Note++.
Mir ist dabei völlig klar, dass einige der Zeilen vermutlich nicht nur überflüssig und inhaltlich eigentlich falsch sind, aber so hat es bei mir geklappt und ich habe nicht weiter versucht den Code zu kürzen, nachdem es geklappt hat. Denn als ich einige der hier unnötig erscheinenden Zeilen mal weggelassen hatte, wurden fehlerhafte Timeseries erzeugt, die in der TWS GUE mit einem roten Ausrufezeichen versehen waren und und die den TWS vollständig lahmgelegt haben. Vielleicht ergänzt später ja Jemand noch eine kürzere Vorlage.

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
<!-- Round Robin Database Dump -->
<rrd>	
	<version> 0003 </version>
	<step> 60 </step> <!-- Seconds -->
	<ds>
		<name> value </name>
		<type> GAUGE </type>
		<minimal_heartbeat> 1 </minimal_heartbeat>
		<min> 2.3400000000e+04 </min>
		<max> 2.3400000000e+04 </max>
	</ds>
<!-- Round Robin Archives -->	
<rra>
		<cf> AVERAGE </cf>
		<pdp_per_row> 1 </pdp_per_row> <!-- 60 seconds -->
		<params>
		<xff> 2.0000000000e+04 </xff>
		</params>
		<database>
			<!--  / 1427846400 --> <row><v> 9.0000000000e-01 </v></row>
		</database>
	</rra>
</rrd>
Inhaltlich beim Importieren kommt es meines Erachtens nur auf den Abschnitt "database" an (vielleicht bewirken die anderen auch irgendetwas beim Import, aber zumindest nichts, was mir später bei dr Nutzung meiner Timeseries Probleme gemacht hat).

Nun erzeugt man sich z.B. mit Excel für jeden Eintrag den man in seiner neuen Timeseries haben möchte eine Zeile

Code: Alles auswählen

			<!--  / 1427846400 --> <row><v> 9.0000000000e-01 </v></row>
wobei die vordere 10 stellige Zahl ein Unix-Zeitode ist und die hintere Zahl der Wert in Exponential-Schreibweise.
Ich habe hier penibel genau darauf geachtet, dass alle meine Zahlen exakt die gleiche Anzahl von Stellen hatte!!!
10 stelliger Unix-Zeitcode und die e Zahl mit 10 Stellen zwischen dem Punkt und dem e.
Ob das für den Import wichtig ist, weiß ich nicht, aber so hat es funktioniert.

Diese Zeilen kopiert man sich nun in die XML Datei in den Bereich "database" und ersetzt damit auch den einen oben bereits einthaltenen Eintrag.
Achtung, beim herauskopieren aus Excel entstehen je nach Excelformatierung eventuell Anführungszeichen...diese sollte man im Editor in der XML Datei dann löschen, zum Beispiel durch markieren des Bereiches "database" und dann Suchen-Ersetzen-Funktion - aber Achtung...Die Anführungszeichen in den anderen Abschnitten (siehe erste Zwei Zeilen) müssen erhalten bleiben.

Nachträglicher Edit aufgrund des Hinweises von Ives in Post #2:
Nun braucht man ein Programm, dass .gz Dateien erzeugen kann, ich nutze z.B. 7-Zip.

Bei 7-Zip: In Windows 10 Explorer kann man jetzt mit der rechten Maustaste eine gz-Datei erzeugen:
Screenshot 2021-03-02 073501.jpg
Screenshot 2021-03-02 073720.jpg
Standardmässig wird der Name oben mit einem .xml vor dem Ende .gz vorgeschlagen. Das .xml habe ich stets gelöscht, weil ich befürchtet habe, dass zwei Punkte im Dateinamen ein Problem beim Import sein könnten.

Die erzeugten .gz Dateien habe ich auf einen ansonsten leeren USB-Stick in ein leeres Verzeichnis
WireGateExport/RRD/

Diesen USB Stick in den TWS stecken und dann 1-wire -> Import WG Server -> Haken bei Importieren "Plugin" RRD's in Zeitreihen -> START
Warten :confusion-waiting:
Erledigt :handgestures-thumbupright:

Wichtig, die Dateinamen müssen eindeutig sein, die Zeitreihen nehmen den Namen mit! Verwendet Ihr einen Dateinamen, der schon einmal verwendet wurde, werden die Daten meines Erachtens in die bestehende Zeitreihe integriert. Ob das eine nutzbare Funktion ist und was z.B. bei Daten mit gleichen Zeitstempeln passiert, habe ich nicht getestet. Wenn ich Daten noch einmal neu eingespielt habe, habe ich die vorher erzeugen Zeitreihen immer gelöscht.

Bei Bedarf kann abschliessend noch im Objekt Manager eine Wert (z.B. eine KNX-Wert) mit der Zeitreihe verknüpfen.

Viel Spaß.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Robosoc am Mi Mär 03, 2021 8:42 pm, insgesamt 5-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Benutzeravatar

starwarsfan
Reactions:
Beiträge: 1152
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 744 Mal
Danksagung erhalten: 923 Mal

#2

Beitrag von starwarsfan »

Hi
Robosoc hat geschrieben: Di Mär 02, 2021 7:47 am Folge Anleitung dient dem Import und Anlegen von neuen Zeitreihen
Interessant...
Robosoc hat geschrieben: Di Mär 02, 2021 7:47 am In Windows 10 Explorer kann man jetzt mit der rechten Maustaste eine gz-Datei erzeugen:
Das geht aber nur, wenn man ein Tool wie 7zip installiert hat. ;)
Kind regards,
Yves

- TWS 2500 ID:159 (VPN offen, Reboot nach Rücksprache) - PBM ID:401 - TWS 3500 ID:618 (VPN offen, Reboot nach Rücksprache) - ControlPro - ProxMox - Edomi (LXC / Docker) - ... -

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#3

Beitrag von Robosoc »

starwarsfan hat geschrieben: Di Mär 02, 2021 8:24 am Das geht aber nur, wenn man ein Tool wie 7zip installiert hat. ;)
Danke für den Hinweis, arbeite ich oben ein...ich habe mich garnicht mehr daran erinnert, dass ich das je installiert habe.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

Ergänzend hier noch eine hilfreiche Formel für Excel, die einem das Anlegen der Datenzeilen erleichtert. Man sich in Zelle C2 kopiert, wenn in A1 ein Unixzeitstempel und in B2 ein Wert in irgendeinem Zahlenformat liegt:

Code: Alles auswählen

=VERKETTEN("			<!--  / ";LINKS(A2;10);" --> <row><v> ";LINKS(LINKS(TEXT(B2;"0,0000000000E+00");1)&"."&RECHTS(TEXT(B2;"0,0000000000E+00");14);12);"e";RECHTS(LINKS(TEXT(B2;"0,0000000000E+00");1)&"."&RECHTS(TEXT(B2;"0,0000000000E+00");14);3);" </v></row>")
Zuletzt geändert von Robosoc am Di Mär 02, 2021 9:33 am, insgesamt 2-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7633 Mal
Kontaktdaten:

#5

Beitrag von StefanW »

Danke Sven für Deine Mühe,

ich fürchte, ich muss dazu noch eine Anmerkung machen:

Offizielle Anmerkung von ElabNET

Dies ist keine offizielle Anleitung und auch kein von uns geprüftes oder damit auch kein empfohlenes Verfahren für einen Datenimport.

Es ist nicht ausgeschlossen, dass diese Vorgehensweise mit späteren Updates oder Upgrades zu Problemen führen kann.


Stefan
Zuletzt geändert von StefanW am Di Mär 02, 2021 9:44 am, insgesamt 3-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Antworten

Zurück zu „Zeitserien, Logging & Grafana“