Wie Stromverbrauch in InfluxDB erfassen

Ich hole mir die Verbrauchsdaten vom Zähler
per MQTT und möchte die einzelnen Werte in InfluxDB speichern.
Ich zerlege per Node-Red die MQTT Nachricht in die einzelnen Werte:

Verbrauch Tarif 1
Verbrauch Tarif 2
Gesamtverbrauch
Einspeisung Summe

und schreibe nun diese so in die InfluxDB.
Diese unterscheidet ja nur nach Measurement
und das ist ja immer kWh.
Also schreibt sie alle Werte in ein Measurement.

Wie gehe ich am besten vor, damit mir die Werte
nach den jeweiligen Topics getrennt gespeichert werden?

Oder ist meine Vorgehensweise völlig falsch?

Kannst Du mal die Sensoren einzeln hier posten?
Bei mir werden Sensoren immer auch mit folgenden Werten in die influxDB geschrieben:

  • source
  • domain
  • entity_id
  • measurement
  • friendly_name

und meine Erwartung wäre, dass sich Deine Sensoren zumindest bei entity_id und friendly_name unterscheiden.

Somit sollte jeder Sensor eindeutig in der influxDB erkennbar und sich von allen anderen Werten unterscheiden.
Viel Erfolg
Claudius

1 „Gefällt mir“

Ich habe hierfür keine Sensoren angelegt, sondern schreibe die Werte, wie oben beschrieben, direkt in die DB:


Die Sensoren nehme ich zur Anzeige in HA:

  sensor:
     # Stromzähler EG

      - name: "Verbrauch Summe EG"
        unique_id: "verbrauch_summe_eg"
        unit_of_measurement: 'kWh'
         device_class: "energy"
         state_class: "total_increasing"
         state: >-
             {{ float(states('sensor.smr_data_verbrauch_summe')) | round(2) }}

Ist das vielleicht mein Fehler?

Sorry, dann bin ich raus.
Mit NodeRed kenne ich mich nicht aus.
Bei mir geht alles über Sensoren, die ich dann auch in HA anzeigen lassen kann im EnergyDashboard und dann im Setup für die influxDB entscheide welche in die influxDB geschrieben werden.

Warum Du Daten direkt in die influxDB schreibst und nicht in HA als Sensoren anlegst und dann einen Weg in die influxDB hast, aktuell hast du ja 2 Wege HA und Deine direkte NodeRed-Verbindung für MQTT, verstehe ich nicht.

Mein Weg wäre…
Alle Liefersysteme liefern ihre Daten in HA. HA legt die Daten in seiner DB ab und, falls gewünscht, in die influxDB.

Viel Erfolg
Claudius

Kannst du mir kurz erklären, wie du die Sensorenwerte in die DB bekommst?

Dazu muss ich wissen wie du die influxDB an HA angebunden hast.

Als HA-Plugin oder als externe influxDB.

Ich habe hier Proxmox laufen und HA in einer VM und influxDb 2.x in einer eigenen LXC virtualisiert.

Das Setup für das PlugIn (= inluxDB 1,x) und für die Version influxDB 2.x (externe DB ist leider etwas unterschiedlich.

Bei influxDB 2.x kann ich helfen. Mit dem PlugIn kenne ich mich nicht aus, aber da können Dir sicherlich andere hier im Forum helfen.

Ich habe die Influx-DB als HA-Plugin installiert.
Das Ganze läuft bei mir auf einem Raspi.

Ich weiss nicht wie gut und tief Du in den Konfiguration von HA drin bist. Ich versuche es mal zu erklären.

in der configuration.yaml habe ich recht weit oben, direkt unter der Zeile recorder, folgende Zeile stehen

influxdb: !include influxdb.yaml #27.04.2023 aktiviert

dann habe ich eine Datei angelegt, die influxdb.yaml heisst und in ihr steht folgendes drin.
Achtung: das gilt für die influxDB 2.x. Für die 1.X musst du Dir die korrekten Einstellungen hier aus dem Forum besorgen

#Config für die influxDB
api_version: 2
ssl: false
host: !secret influxdb_ipaddress
port: 8086
token: !secret influxdb_token
organization: !secret influxdb_organization
bucket: homeassistant
tags:
  source: HA
tags_attributes:
  - friendly_name
default_measurement: units
include: !include influxdb_include.yaml

soweit ich weiss sind folgende Zeilen, eventuell auch mehr, identisch.

bucket: homeassistant
tags:
  source: HA
tags_attributes:
  - friendly_name
default_measurement: units
include: !include influxdb_include.yaml

wobei Du

#Config für die influxDB

bucket: homeassistant #muss an Dein influxDb Setup angepasst sein
tags:
  source: HA #kannst Du vergeben wie du willst. Unter der Source werden dann die Daten in InfluxDB abgelegt
tags_attributes:
  - friendly_name
default_measurement: units #das kannst du auch definieren. Habe hier schon anderes gesehen
include: !include influxdb_include.yaml

Dann habe ich eine weitere Datei angelegt influxdb_include.yaml. Wie du siehst teile ich meine yaml-Dateien gerne in mehrere für mich übersichtlichere Dateien auf.
In dieser Datei befinden sich dann alle Sensoren, die in meine influxDB geschrieben werden sollen. Somit ist das hier nur ein kurzer Auszug. Momentan habe ich glaube ca. 150 Sensoren/Werte, die in die influxDB geschrieben werden.

Das ist am Ende dann so die kleinteiligste Einstellung darüber welche Daten in die influxDB sollen. Auf die Nutzung von exclude oder ganzen Zonen, die ich nicht in der influxDB haben möchte habe ich durch eine reine Positivliste verzichten können und ich habe dadurch auch erreicht, dass neue Sensoren NICHT in die influxDB geschrieben werden, da ich bei Tests oft einmal Sensoren anlege und danach wieder umbenenne oder lösche würde der ganze Müll für immer in der influxDB stehen bleiben.
Aber ACHTUNG: Wird ein neuer Sensor hinzugefügt zu HA, dann darf auch nicht vergessen den ins influxDB-Setup mit aufzunehmen.

entities:
  - input_number.korrekturwertsolarproduktion
  - input_number.strompreis
  - input_number.strompreis_in_cent_kwh
  - input_number.strompreiseinspeisung
  - input_number.strompreiseinspeisung_in_cent_kwh
  - sensor.ahoy_p_ac
  - sensor.ahoy_p_ac_total
  - sensor.ahoy_p_dc
  - sensor.ahoy_p_dc_1
  - sensor.ahoy_p_dc_2
  - sensor.ahoy_temperatur
  - sensor.ahoy_yieldday
  - sensor.ahoy_yieldday_1
  - sensor.ahoy_yieldday_2
  - sensor.ahoy_yieldtotal
  - sensor.ahoy_yieldtotal_1
  - sensor.ahoy_yieldtotal_2
  - sensor.buero_energy
  - sensor.buero_power

Viel Erfolg
Claudius

Schau dir das Video an, wie die InfluxDB und Grafana angewandt werden.

Langzeitdaten & Analyse in Home Assistant mit Grafana & InfluxDB - Community / simon42 Blog - simon42 Community

Offensichtlich hab ich da von Anfang an den Fehler gemacht,
selbst eigene DBs, z.B. “Strom, Solar…”, anzulegen.

Das war wohl überflüssig, da diese wohl
bereits in der DB “home_assistant”
gespeichert werden, sobald eine Entität angelegt ist.

Da muß ich mir erst mal überlegen, wie ich weiter vorgehe.
Ich denke, ich werde die von mir angelegten DBs einfach löschen.

Erstmal danke für Eure Hilfe.

2 „Gefällt mir“