From cb850b14f6898222773984a42b3ee513c58bcd37 Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Wed, 1 Nov 2023 20:46:57 +0100 Subject: [PATCH 1/3] influxdb plugin: fix code-blocks in docu --- influxdb/user_doc.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/influxdb/user_doc.rst b/influxdb/user_doc.rst index 79a218c0a..c35eeb9a9 100644 --- a/influxdb/user_doc.rst +++ b/influxdb/user_doc.rst @@ -58,7 +58,7 @@ items.yaml Logging in eine Messung namens ``root.some_item``, Standard-Tags und Tags/Felder wie in plugin.yaml angegeben -.. code:: yaml +.. code-block:: yaml root: some_item: @@ -67,7 +67,7 @@ Tags/Felder wie in plugin.yaml angegeben Wenn ``keyword`` in der plugin.yaml auf ``sqlite`` gesetzt wird, kann dies auch als Ersatz für sqlite verwendet werden. -.. code:: yaml +.. code-block:: yaml root: some_item: @@ -77,7 +77,7 @@ als Ersatz für sqlite verwendet werden. Tag ``room`` und Standard-Tags (einschließlich ``item: root.dining_temp``) und Tags/Felder wie in plugin.yaml angegeben -.. code:: yaml +.. code-block:: yaml root: dining_temp: From a9553a8ac61ae08e675f5b00f94ac184a5674389 Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Wed, 1 Nov 2023 20:48:02 +0100 Subject: [PATCH 2/3] influxdb plugin: include database conversion script in docu. --- influxdb/user_doc.rst | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/influxdb/user_doc.rst b/influxdb/user_doc.rst index c35eeb9a9..964dd3e83 100644 --- a/influxdb/user_doc.rst +++ b/influxdb/user_doc.rst @@ -118,6 +118,61 @@ Insbesondere diese: - `Vermeiden Sie die Kodierung von Daten in Messnamen `_ - Vermeiden Sie mehr als eine Information in einem Tag `_ +Daten aus dem Database Plugin transferieren +=========================================== + +1. Pandas und influxdb_client Module für Python installieren +2. CSV-Dump aus dem Webinterface des Datenbank-Plugins herunterladen +3. Anpassen der Zugriffsparameter im unten stehenden Skript +4. Anpassen des Pfads zur CVS-Datei +5. Ausführen des Skripts +6. Abhängig von der Größe der Datenbank ist Geduld gefragt. + + +.. code-block:: python + + from influxdb_client import InfluxDBClient + from influxdb_client.client.write_api import SYNCHRONOUS + import pandas as pd + + + # ---------------------------------------------- + ip = "localhost" + port = 8086 + token = "******************" + org = "smarthomeng" + bucket = "shng" + value_field = "value" + str_value_field = "str_value" + + csvfile = "smarthomeng_dump.csv" + # ---------------------------------------------- + + + client = InfluxDBClient(url=f"http://{ip}:{port}", token=token, org=org) + write_api = client.write_api(write_options=SYNCHRONOUS) + + df = pd.read_csv(csvfile, sep=';', header=0) + df = df.reset_index() + + num_rows = len(df.index) + last_progress_percent = -1 + + for index, row in df.iterrows(): + progress_percent = int((index/num_rows)*100) + if last_progress_percent != progress_percent: + print(f"{progress_percent}%") + last_progress_percent = progress_percent + + p = {'measurement': row['item_name'], 'time': int(row['time']) * 1000000, + 'tags': {'item': row['item_name']}, + 'fields': {value_field: row['val_num'], str_value_field: row['val_str']} + } + write_api.write(bucket=bucket, record=p) + + client.close() + + Web Interface ============= From eb736b58cc5c8c4b035b49bc260b0e1e23bbcf8f Mon Sep 17 00:00:00 2001 From: Onkel Andy Date: Thu, 2 Nov 2023 21:16:43 +0100 Subject: [PATCH 3/3] influxdb plugin: add info on conversion script that it was tested for influxdb2. --- influxdb/user_doc.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/influxdb/user_doc.rst b/influxdb/user_doc.rst index 964dd3e83..e065e3350 100644 --- a/influxdb/user_doc.rst +++ b/influxdb/user_doc.rst @@ -121,6 +121,8 @@ Insbesondere diese: Daten aus dem Database Plugin transferieren =========================================== +Diese Anleitung wurde unter influxdb2 getestet und muss eventuell für influxdb1 adaptiert werden. + 1. Pandas und influxdb_client Module für Python installieren 2. CSV-Dump aus dem Webinterface des Datenbank-Plugins herunterladen 3. Anpassen der Zugriffsparameter im unten stehenden Skript