Varta Storage in HA integrieren

Ja, schaut gut aus, auch die Sensoren “sensor.varta_input_power” bzw. “sensor.varta_output_power” gibt es, aber irgendwie keine Summen. Da steht immer der gleiche Wert wie in der “sensor.mb_varta_active_power”.

Hab jetzt alles nochmals geprüft, anschließend den gesamten HA neu gestartet. Kann aber immer noch keinen VARTA Speicjher finden. So sieht es aktuell aus. hab ich was falsch verstanden?

  - platform: google_translate
  
# automation: !include automations.yaml
modbus: !include modbus.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

# Varta input/output
template:
  - sensor:
      - name: "Varta Input Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) >= 0 %}
          {% set varta_in = states('sensor.mb_varta_active_power') | float(0) %}
          {% else %}
          {% set varta_in = 0 %}
          {% endif %}
          {{ varta_in }}

  - sensor:
      - name: "Varta Output Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) <= 0 %}
          {% set varta_out = states('sensor.mb_varta_active_power') | float(0) *-1 %}
          {% else %}
          {% set varta_out = 0 %}
          {% endif %}
          {{ varta_out }}

  - platform: integration
    source: sensor.varta_input_power
    name: varta_input_kwh
    unit_prefix: k
    round: 2

  - platform: integration
    source: sensor.varta_output_power
    name: varta_output_kwh
    unit_prefix: k
    round: 2

Ich habe bei mir einfach das Gefühl, dass ich in der configuration.yaml mit den Einrückungen und was unter was stehen muss aufgrund meiner Unwissenheit einfach was falsch ist.

Weil logisch versteh ich das schon was Du machst, auch bei dem mit dem Status, aber irgendwie hat [quote=“Telemanni, post:26, topic:842”]
sensor.varta_input_power
[/quote] und auch output keinen Wert.

Ich habe mal den Varta relevanten Teil aus der configuration.yaml oben ergänzt. Schaut mal ob es mit der Reihenfolge/ Einrücken ein Problem gibt.

Ich blick nicht mehr durch. Kann keine Änderungen finden. Sind jetz soooo viele configs. Bin ratlos und freu mich auf Deine Hilfe

Frag nicht, nach einiger Zeit kommen jetzt doch Werte, ich versuche doch das Script in seiner Logik zu verstehen. Verzeih mir wenn ich weiter frage obwohl es funktioniert, aber das wie für die Zukunft und andere Projekte will ich verstehen.

template:
  - sensor:
      - name: "Varta Input Power" (hier wird ein Sensorname definiert)
        unit_of_measurement: "W" (die Einheit)
        state_class: measurement (es ist eine Messklasse)
        device_class: power (im Bereich Energie)
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) >= 0 %} (Du fragst das Register ab ist der Wertgrößer oder gleich 0) dann....
          {% set varta_in = states('sensor.mb_varta_active_power') | float(0) %} (setzt Du in die Variable varta_in (wo kommt die her?) diesen Wert. (Warum wird das ganze in eine Fließkommazahl umgewandelt?)
          {% else %}
          {% set varta_in = 0 %} (ansonsten setze den Wert auf 0% - wieder diese Variable)
          {% endif %}
          {{ varta_in }}  (Was macht das hier?)

  - sensor:
      - name: "Varta Output Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) <= 0 %}   (das ganz gleich wenn der Wert kleiner 0 ist)
          {% set varta_out = states('sensor.mb_varta_active_power') | float(0) *-1 %} (mit dem Unterschied das Ganze mal -1 zu nehmen um einen positiven Wert zu bekommen und das in die Variable varta_out zu schreiben (woher kommt diese? - auch die Frage wenn jetzt der Abfragewert tatsächlich 0 ist, treffen ja Beide Bedingungen zu, ist das Absicht?)
          {% else %}
          {% set varta_out = 0 %}
          {% endif %}
          {{ varta_out }}

  - platform: integration
    source: sensor.varta_input_power
    name: varta_input_kwh
    unit_prefix: k
    round: 2
(So, hier wird das ganze ja anscheinend mit dieser Riemann Integration der Wert in kWh umgerechnet. Woher weiß das System welche Integration? Und noch die viel größere Frage, oben heißt der Sensor "Varta Input Power", jetzt plötzlich klein geschrieben und mit Strichen dazwischen...)

  - platform: integration
    source: sensor.varta_output_power
    name: varta_output_kwh
    unit_prefix: k
    round: 2
(Das ganz Gleiche für Output - ok, wenn ich das eine kapier, dann das auch.)

Wäre cool wenn Du etwas Schulung machen würdest. :slight_smile:

:crayon:by HarryP: Codezeilen formatiert (bitte über </> einbinden)

Da bist Du ja ein Stück weiter als ich. Bei mir kommen keine Werte. Wo werden denn Deine Werte dargestellt?

…und bei der Schulung schließ ich mich an :grinning:

Unter Einstellungen → Geräte & Dienste und dort unter den Entitäten suchst Du nach Varta. Da solltest Du auf jeden Fall schon einmal die Sensoren sehen, egal ob mit oder ohne Wert. Diese kamen aber mir von Anfang an, sobald das mit Modbus eingerichtet war. Einzelne Werte kann vielleicht Dein Speicher nicht - vergleich mal ([hier])? Die IP-Adresse Deines Speichers hast Du angepasst? Die IP-Adresse - da dynamisch - hast Du im DHCP Server fest reserviert, damit diese sich nicht ändert? Erst dann würde ich weiter machen mit dem oberen Teil. Gehen wir Schritt für Schritt vor.

Hallo Zusammen,

bin grade dabei mein Varta Neo Pulse per Modbus in HA zu integrieren.
Ich habe mich an eueren Konfigurationen entlanggehnagelt. Ich habe eine modbus.yaml angelegt. Doch bei mir erscheinen Fehler vielleicht könnt ihr mir ja weiterhelfen. Anbei Sende ich euch alles zu. Der erste Screenshot ist wenn ich die Config Prüfe dann kommen warnings. Dann packe och noch meine Modbus mit dabei und die Config.yaml
Bin um jeden Tipp dankabr.
Beste Grüße

:crayon:by HarryP: Codezeilen als Hardcopy sind wenig hilfreich, bitte über </> einfügen:

tippe oder füge den Code hier ein

Hallo Lucas, ich hab soooo lange versucht und hab es aufgegeben.
Vielleicht gibt es eine Lösung, dann würde ich auch nochmal anfangen.

Hi mittlerweile Empfange ich Daten aus dem Speicher die mir in HA angeziegt werden

Das hört sich ja gut an. Magst Du denn verraten was Du noch geändert hast?

# Loads default set of integrations. Do not remove.
 default_config:


# Load frontend themes from the themes folder
 frontend:
  themes: !include_dir_merge_named themes

 automations: !include automations.yaml
 scripts: !include scripts.yaml
 scenes: !include scenes.yaml
#modbus: !include modbus.yaml

# Modbus Varta pulse neo
 modbus:
  - name: "mb_varta"
    type: tcp
    host: 192.168.178.218 # replace with your ip of the your varta
    port: 502
    delay: 1
    timeout: 3
    retries: 3
    retry_on_empty: true
    message_wait_milliseconds: 250
    sensors:
### EMS Software Version - not for Varta link
    - name: mb_varta_EMS
      slave: 1
      address: 1000
      count: 17
      data_type: string
      precision: 0
      scale: 1
### ENS Software Version - not for Varta link
    - name: mb_varta_ENS
      slave: 1
      address: 1017
      count: 17
      data_type: string
      precision: 0
      scale: 1
### Software Version - not for Varta link
    #- name: mb_varta_software
     # slave: 1
      #address: 1034
      #count: 17
      #data_type: string
      #precision: 0
      #scale: 1
### Table version
    - name: mb_varta_table_version
      slave: 1
      address: 1051
      data_type: uint16
      precision: 0
      scale: 1
### timestamp -- not working
    #- name: mb_varta_timestamp
     # slave: 1
      #address: 1052
      #count: 2
      #data_type: uint32
      #swap: word
      #precision: 0
      #scale: 1
### Serial Number
    - name: mb_varta_serial
      slave: 1
      address: 1054
      count: 10
      data_type: string
      precision: 0
      scale: 1
### Number of Battery Modules installed
    - name: mb_varta_installed_batteries
      slave: 1
      address: 1064
      data_type: uint16
      precision: 0
      scale: 1
### State
    - name: mb_varta_state
      slave: 1
      address: 1065
      data_type: uint16
      precision: 0
      scale: 1
      unit_of_measurement: "State"
### Active Power - positive:charge / negative: discharge
    - name: mb_varta_active_power
      slave: 1
      address: 1066
      data_type: int16
      precision: 0
      scale: 1
      device_class: power
      unit_of_measurement: "W"
### Apparent Power - positive:charge / negative: discharge
    - name: mb_varta_apparent_power
      slave: 1
      address: 1067
      data_type: int16
      precision: 0
      scale: 1
      device_class: apparent_power
      unit_of_measurement: "VA"
### State of Charge
    - name: mb_varta_SOC
      slave: 1
      address: 1068
      data_type: uint16
      precision: 0
      scale: 1
      device_class: battery
      unit_of_measurement: "%"
### energy counter AC->DC - not sure if correct
    #- name: mb_varta_ACDC
     # slave: 1
      #address: 1069
      #count: 2
      #data_type: uint32
      #swap: word
      #precision: 0
      #scale: 1
      #device_class: energy
      #unit_of_measurement: "Wh"
      #state_class: total_increasing
### Installed capacity
    - name: mb_varta_capacity
      slave: 1
      address: 1071
      data_type: uint16
      precision: 0
      scale: 10
      device_class: energy
      unit_of_measurement: "Wh"
### Grid Power
    - name: mb_varta_grid_power
      slave: 1
      address: 1078
      data_type: int16
      precision: 0
      scale: 1
      device_class: power
      unit_of_measurement: "W"
      
 sensor:
  - platform: template
    sensors:
      mb_varta_status:
        friendly_name: "Varta Pulse Neo Status"
        value_template: >-
          {% set mapper =  {
              '0' : 'Busy',
              '1' : 'Run',
              '2' : 'Charge',
              '3' : 'Discharge',
              '4' : 'Standby',
              '5' : 'Error',
              '6' : 'Service',
              '7' : 'Islanding' } %}
          {% set state =  states.sensor.mb_varta_state.state %}
          {{ mapper[state] if state in mapper else 'Unknown' }}
      
# Varta input/output
 template:
  - sensor:
      - name: "Varta Input Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) >= 0 %}
          {% set varta_in = states('sensor.mb_varta_active_power') | float(0) %}
          {% else %}
          {% set varta_in = 0 %}
          {% endif %}
          {{ varta_in }}

  - sensor:
      - name: "Varta Output Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) <= 0 %}
          {% set varta_out = states('sensor.mb_varta_active_power') | float(0) *-1 %}
          {% else %}
          {% set varta_out = 0 %}
          {% endif %}
          {{ varta_out }}

  - platform: integration
    source: sensor.varta_input_power
    name: varta_input_kwh
    unit_prefix: k
    round: 2

  - platform: integration
    source: sensor.varta_output_power
    name: varta_output_kwh
    unit_prefix: k
    round: 2

Da beigefügte Code steht in meiner configuartion.yaml

:crayon:by HarryP: Codezeilen formatiert (bitte immer über </> einfügen)

Hallo, wie komme ich zu diesem Sensorwert?

sensor.mb_varta_discharging_energy

Hallo Mx4,

das ist bei mir in der modus.yaml definiert:

### Entladeenergie
      - name: mb_varta_discharging_energy
        slave: 255
        address: 1086
        data_type: uint16
        device_class: energy
        unit_of_measurement: "Wh"

Bei mir hat die Integration mit einer Kombination der Vorschläge von oben über “modus.yaml” und dann der Einschluss davon über die “configuration.yaml” funktioniert. Es werden alle Daten der VARTA-Batterie angezeigt und lassen sich auch nachvollziehen /-prüfen.
Ich poste die Kombination hier mal. Vielleicht hilft das dem ein oder anderen, da man das dann nicht über einige Post zusammen suchen und ausprobieren muss.

modbus.yaml - Achtung: IP-Adresse der Batterie noch eintragen!

### Varta Integration
 - name: mb_varta
   type: tcp
   host: IP-Adresse der Batterie
   port: 502
   delay: 1
   timeout: 3
   message_wait_milliseconds: 1000
   sensors:
### EMS Software Version - not for Varta link
      - name: mb_varta_EMS
        slave: 255
        address: 1000
        count: 17
        data_type: string
### ENS Software Version - not for Varta link
      - name: mb_varta_ENS
        slave: 255
        address: 1017
        count: 17
        data_type: string
### Software Version - not for Varta link
      - name: mb_varta_software
        slave: 255
        address: 1034
        count: 17
        data_type: string
### Table version
      - name: mb_varta_table_version
        slave: 255
        address: 1051
        data_type: uint16
### timestamp
      - name: mb_varta_timestamp_lower
        slave: 255
        address: 1052
        data_type: uint16
### timestamp
      - name: mb_varta_timestamp_higher
        slave: 255
        address: 1053
        data_type: uint16
### Serial Number
      - name: mb_varta_serial
        slave: 255
        address: 1054
        count: 10
        data_type: string
### Number of Battery Modules installed
      - name: mb_varta_installed_batteries
        slave: 255
        address: 1064
        data_type: uint16
### State
      - name: mb_varta_state
        slave: 255
        address: 1065
        data_type: uint16
        unit_of_measurement: "State"
### Active Power - positive:charge / negative: discharge
      - name: mb_varta_active_power
        slave: 255
        address: 1066
        data_type: int16
        device_class: power
        unit_of_measurement: "W"
### Apparent Power - positive:charge / negative: discharge
      - name: mb_varta_apparent_power
        slave: 255
        address: 1067
        data_type: int16
        device_class: apparent_power
        unit_of_measurement: "VA"
### State of Charge
      - name: mb_varta_SOC
        slave: 255
        address: 1068
        data_type: uint16
        device_class: battery
        unit_of_measurement: "%"
### Energy Counter lower word
      - name: mb_varta_energy_low
        slave: 255
        address: 1069
        data_type: uint16
        state_class: total_increasing
        device_class: energy
        unit_of_measurement: "Wh"
### Energy Counter higher word
      - name: mb_varta_energy_high
        slave: 255
        address: 1070
        data_type: uint16
        state_class: total_increasing
        device_class: energy
        unit_of_measurement: "Wh"
### Installed capacity
      - name: mb_varta_capacity
        slave: 255
        address: 1071
        data_type: uint16
        scale: 10
        device_class: energy
        unit_of_measurement: "Wh"
### Grid Power
      - name: mb_varta_grid_power
        slave: 255
        address: 1078
        data_type: int16
        device_class: power
        unit_of_measurement: "W"
### Ladeenergie
      - name: mb_varta_charging_energy
        slave: 255
        address: 1085
        data_type: uint16
        device_class: energy
        unit_of_measurement: "Wh"
### Entladeenergie
      - name: mb_varta_discharging_energy
        slave: 255
        address: 1086
        data_type: uint16
        device_class: energy
        unit_of_measurement: "Wh"

configuration.yaml - Teil für VARTA

modbus: !include modbus.yaml


# Varta input/output
template:
  - sensor:
      - name: "Varta Input Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) >= 0 %}
          {% set varta_in = states('sensor.mb_varta_active_power') | float(0) %}
          {% else %}
          {% set varta_in = 0 %}
          {% endif %}
          {{ varta_in }}

  - sensor:
      - name: "Varta Output Power"
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% if states('sensor.mb_varta_active_power') | float(0) <= 0 %}
          {% set varta_out = states('sensor.mb_varta_active_power') | float(0) *-1 %}
          {% else %}
          {% set varta_out = 0 %}
          {% endif %}
          {{ varta_out }}

  - sensor:
      - name: "Varta Energy"
        unique_id: "mb_varta_energy_total"
        device_class: energy
        state_class: total_increasing
        unit_of_measurement: "KWh"
        state: >
          {{ (((float(states('sensor.mb_varta_energy_high'))) * 65536) +(float(states('sensor.mb_varta_energy_low')))) / 1000 | round (0) }}

     # Varta Discharging Time KWh
  - sensor:
      - name: "Varta Discharging Time"
        unique_id: "mb_varta_discharging_time"
        device_class: duration
        state_class: measurement
        unit_of_measurement: "h"
        state: >
          {{ ((float(states('sensor.mb_varta_discharging_energy'))) / 1000) / ((float(states('sensor.mb_varta_active_power'))) / 1000 * -1) }}

      # Varta Charging Time KWh
      - name: "Varta Charging Time"
        unique_id: "mb_varta_charging_time"
        device_class: duration
        state_class: measurement
        unit_of_measurement: "h"
        state: >
          {{ ((float(states('sensor.mb_varta_charging_energy'))) / 1000) / ((float(states('sensor.mb_varta_active_power'))) / 1000) }}

sensor:
  - platform: template
    sensors:
      mb_varta_status:
        friendly_name: "Varta Status"
        value_template: >-
          {% set mapper =  {
              '0' : 'Busy',
              '1' : 'Run',
              '2' : 'Charge',
              '3' : 'Discharge',
              '4' : 'Standby',
              '5' : 'Error',
              '6' : 'Service',
              '7' : 'Islanding' } %}
          {% set state =  states.sensor.mb_varta_state.state %}
          {{ mapper[state] if state in mapper else 'unknown' }}

  - platform: integration
    source: sensor.varta_input_power
    name: varta_input_kwh
    unit_prefix: k
    round: 2

  - platform: integration
    source: sensor.varta_output_power
    name: varta_output_kwh
    unit_prefix: k
    round: 2

Lediglich Input und Output aus der Batterie werden nicht wirklich korrekt ermittelt. Im Monat Mai habe ich 341 kWh Batterieenergie verbraucht, aber nur 269 kWh eingespeichert. Batteriegröße aber nur ca. 6 kWh.

Jemand eine Idee woran das liegen könnte?

:crayon:by HarryP: Zusammenführung Doppelpost (bitte „bearbeiten“ Funktion nutzen)

Danke, mein Varta element backup Speicher stellt leider keine discharging energy zur Verfügung wie ich feststellen musste:

https://library.loxone.com/detail/varta-energy-storage-77/overview

Vielen Dank, es hat tatsächlich funktioniert! Im Energie Dashboard ist der VARTA Speicher.
Da wird angezeigt was rein und raus geladen wird. Kann man auch den Füllstand der Batterieen anzeigen?

Sehr gut!
Den Füllstand der Batterien lasse ich mir im Dashboard über die Entität “mb_VARTA_SOC” anzeigen.

Fast alle Werte sind bei mir plausibel bzw. lassen sich mit der VARTA-App abgleichen. Lediglich der Input und Output passt sind so richtig. Der Output ist in Summe höher als der Input und das über einen Monat kumuliert über 70 kWh. Ich kann an der Ermittlung / Umrechnung aber auch keinen Fehler erkennen. Vielleicht findest Du noch was…

Pima, hab ich so gemacht, klappt gut. DANKE