Anker Solix 4 mit Homeassistant steuern

Hi zusammen,
ich habe seit ein paar Wochen erfolgreich die Anker Solix 4 in Betrieb und hatte anfangs einige Probleme mit der Ansteuerung bzw. der Auswertung.

Im Netz habe ich einen Shelly 3EM Pro, hier hatte ich ewig vergebens mit dem Support versucht das zum laufen zu bekommen. Unter Geräte liefert dieser sauber und zu jeder Zeit Werte, jedoch im Dashboard ist immer nur 0 Watt zu sehen. Nach den üblichen Verdächtigen (Wlan, Firmwarestand usw.) meinte der Support es würde an der schlechten Verbindung des Wlan liegen. Daraufhin habe ich auf Modbus TCP gestellt und über HACS die Anker Solix Official Integration eingerichtet.

Seit einigen Tagen lasse ich die Automations YAML zwischen Gemini und Claude optimieren und bin bisher sehr sehr Zufrieden!

Hat dieses Setup noch jemand im Einsatz?

Der Shelly 3EM Pro kann Modbus? Mit welcher Firmware?

Hallo @Der-Eine, warum willst Du denn unbedingt die Steuerung übernehmen? Lass das doch Anker einfach machen! Du siehts ja letztlich am Shelly genau das, was Du sehen möchtest: praktisch NULL Netzbezug. Ich habe die SB4 - allerdings mit dem Anker SmartMeter - auch in Betrieb, seitdem sie zu haben ist. Da ich vorher die SB2 hatte, habe ich neben dem Anker SmartMeter auch den Shelly 3EM Pro im Schaltkasten und aus noch früheren Zeiten den Poweropti, der nichts berechnet, sondern den tatsächlichen Zählerstand ausliest - also die Werte, die dann auch für die Stromrechnung hergenommen werden.

Zeige doch gerne mal, was Du YAML-mässig gebaut hast, da mir bei der nun offiziellen Anker HA Integration doch durchaus im Vergleich zur alten HACS Version einiges an Sensoren abgeht (beispielsweise Solarpanel-Performance).

Anbei mal ein Screenshot meines alten Dashboards mit der SB 2 und den schönen Darstellungsoptionen für das Thema Solar und Strom:

Modbus wird nur bei der Anker Solix eingestellt. Verwaltet wird es dann über HomeAssistant

Und den shelly verknüpft du direkt mit der Anker somit übernimmt die Anker die Steuerung für “0 Einspeisung” usw.
So betreibe ich meine Anker 2

Nein der Shelly ist in HomeAssistant und die Solix auch. Ich poste gleich mal die Yaml, vielleicht ist das dann etwas ersichtlicher.

Hey, das ist ja mein Problem, der Shelly wird erfolgreich eingebunden, aber wenn ich alles von Anker steuern lassen möchte, dann bekomme ich immer die Meldung “Zaehlerproblem erkannt” und in diesem Moment springt es automatisch in den benutzerdefinierten Modus.

Aber bisher kann ich nicht klagen (bis auf das eine oder andere hin und her springen zu Tagesanbruch bzw. Abends) Aber mit genügend Geduld und der KI finde ich das Ergebnis ganz akzeptabel.

alias: Solarbank Leistungsfluss & Netzleistung Regelung
description: Vollautomatische Nulleinspeisung
triggers:
  - trigger: time_pattern
    seconds: /15
    id: regelung
  - trigger: state
    entity_id: >-
      select.garten_anker_solix_solarbank_4_e5000_pro_betriebsmodus_gerat_lauft_im_drittanbieter_steuermodus
    id: modus_falsch
  - trigger: homeassistant
    event: start
    id: ha_start
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: ha_start
        sequence:
          - action: input_datetime.set_datetime
            target:
              entity_id: input_datetime.benachrichtigung_verzogerung_neustart
            data:
              datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
          - stop: HA-Start abgefangen.
  - choose:
      - conditions:
          - condition: trigger
            id: modus_falsch
          - condition: template
            value_template: >-
              {{ trigger.to_state.state not in ['third_party_control',
              'unknown', 'unavailable'] }}
          - condition: template
            value_template: >-
              {% set last_start =
              states('input_datetime.benachrichtigung_verzogerung_neustart') %}
              {{ last_start in ['unknown', 'unavailable'] or
                 (now().timestamp() - (last_start | as_timestamp(0))) > 300 }}
        sequence:
          - action: notify.mobile_app_handy
            data:
              title: ⚠️ Solarbank Warnung
              message: >-
                Der Drittanbieter-Steuermodus wurde verlassen (aktuell: "{{
                trigger.to_state.state }}").
          - stop: Drittanbieter-Modus inaktiv.
  - condition: state
    entity_id: >-
      select.garten_anker_solix_solarbank_4_e5000_pro_betriebsmodus_gerat_lauft_im_drittanbieter_steuermodus
    state: third_party_control
  - variables:
      grid: >-
        {{
        states('sensor.keller_shelly_3em_pro_01_verteilerschrank_netzleistung_geglattet')
        | float(0) }}
      aktuell: >-
        {{
        states('number.garten_anker_solix_solarbank_4_e5000_pro_netzleistung') |
        float(0) }}
      modus: >-
        {{
        states('select.garten_anker_solix_solarbank_4_e5000_pro_leistungsfluss')
        }}
      soc: >-
        {{ states('sensor.garten_anker_solix_solarbank_4_e5000_pro_soc') |
        float(0) }}
      is_daylight: "{{ is_state('sun.sun', 'above_horizon') }}"
      max_charge: >-
        {{
        state_attr('number.garten_anker_solix_solarbank_4_e5000_pro_netzleistung',
        'max_charge_power') | float(2300) }}
      max_discharge: >-
        {{
        state_attr('number.garten_anker_solix_solarbank_4_e5000_pro_netzleistung',
        'max_discharge_power') | float(1000) }}
      mindestabstand_wechsel: 30
      max_step: 500
      sekunden_seit_wechsel: >-
        {{ now().timestamp() -
        (states('input_datetime.solarbank_letzter_moduswechsel') |
        as_timestamp(0)) }}
      netto_hausbedarf: |-
        {% if modus == 'discharge' %}
          {{ grid + aktuell }}
        {% else %}
          {{ grid }}
        {% endif %}
      soll_laden: |-
        {{ is_daylight and soc < 99 and
            ((modus == 'charge' and grid < -50) or (modus != 'charge' and netto_hausbedarf < -100)) }}
      lade_zielwert_roh: "{{ [grid | abs, max_charge] | min | round(0) }}"
      lade_zielwert: >-
        {{ [ [lade_zielwert_roh, aktuell - max_step] | max, aktuell + max_step ]
        | min | max(0) }}
      entlade_berechnet_roh: "{{ [[ netto_hausbedarf, 0 ] | max, max_discharge] | min | round(0) }}"
      entlade_zielwert: |-
        {% if grid | abs < 40 and modus == 'discharge' %}
          {{ aktuell }}
        {% else %}
          {{ [ [entlade_berechnet_roh, aktuell - max_step] | max, aktuell + max_step ] | min | max(0) }}
        {% endif %}
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ soc <= 5 }}"
        sequence:
          - condition: template
            value_template: "{{ aktuell != 0 }}"
          - action: number.set_value
            target:
              entity_id: number.garten_anker_solix_solarbank_4_e5000_pro_netzleistung
            data:
              value: 0
      - conditions:
          - condition: template
            value_template: "{{ soll_laden }}"
        sequence:
          - if:
              - condition: template
                value_template: "{{ modus != 'charge' }}"
            then:
              - if:
                  - condition: template
                    value_template: "{{ sekunden_seit_wechsel < mindestabstand_wechsel }}"
                then:
                  - stop: Moduswechsel zu 'charge' durch Mindestabstand blockiert.
              - action: select.select_option
                target:
                  entity_id: >-
                    select.garten_anker_solix_solarbank_4_e5000_pro_leistungsfluss
                data:
                  option: charge
              - action: input_datetime.set_datetime
                target:
                  entity_id: input_datetime.solarbank_letzter_moduswechsel
                data:
                  datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
              - delay:
                  seconds: 3
          - condition: template
            value_template: "{{ (lade_zielwert - aktuell) | abs >= 70 or modus != 'charge' }}"
          - action: number.set_value
            target:
              entity_id: number.garten_anker_solix_solarbank_4_e5000_pro_netzleistung
            data:
              value: "{{ lade_zielwert }}"
      - conditions:
          - condition: template
            value_template: "{{ soc > 5 }}"
        sequence:
          - if:
              - condition: template
                value_template: "{{ modus != 'discharge' }}"
            then:
              - if:
                  - condition: template
                    value_template: "{{ sekunden_seit_wechsel < mindestabstand_wechsel }}"
                then:
                  - stop: >-
                      Moduswechsel zu 'discharge' durch Mindestabstand
                      blockiert.
              - action: select.select_option
                target:
                  entity_id: >-
                    select.garten_anker_solix_solarbank_4_e5000_pro_leistungsfluss
                data:
                  option: discharge
              - action: input_datetime.set_datetime
                target:
                  entity_id: input_datetime.solarbank_letzter_moduswechsel
                data:
                  datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
              - delay:
                  seconds: 3
          - condition: template
            value_template: >-
              {{ (entlade_zielwert - aktuell) | abs >= 70 or modus !=
              'discharge' }}
          - action: number.set_value
            target:
              entity_id: number.garten_anker_solix_solarbank_4_e5000_pro_netzleistung
            data:
              value: "{{ entlade_zielwert }}"
mode: single
max_exceeded: silent

Dann kominiziert der shelly nicht korrekt mit der Anker .
Diese meldung hatte ich auch schon. (Bei Netz ausfall)
Shelly und Anker neu starten.
Firmware und App aktuell halten.

Alle schon probiert. Den AP testweise näher ran gebracht. Dann über Range Extender über einen anderen Shelly getestet. Firmware Update Shelly und Anker. Aber nichts brachte den Erfolg.

Finde es aber mittlerweile gar nicht mehr so schlimm.

Die steuerung
Anker shelly sollte nach meiner meinung schon funktionieren auch ohne HA das ist für mich sehr wichtig!
Du hast vermutlich Probleme mit den unterschiedlichen Wlan’s habe ich mal gelsen.

Gruss

Es gibt keine Unterschiedlichen Netzwerke. Beide Geräte sind in einem Vlan und es gab die letzten 4 Jahre mit dem Shelly keine Probleme. Drum verstehe ich das nicht ganz.

“Die Kommunikation zwischen Anker SOLIX Solarbank und dem Smart Meter erfordert zwingend, dass sich beide Geräte im identischen lokalen WLAN-Netzwerk befinden. Eine Trennung auf verschiedene WLAN-Networks (auch bei gleicher SSID, aber unterschiedlichen BSSIDs/Mesh-Nodes) führt zu einem sofortigen Kommunikationsabbruch und Fehlermeldungen wie Fehler 32 (Zähleranomalie) oder Fehler 35 (Zähleranschlussfehler)”

auch unterschiedlichen AP s

Puh. das könnte dann schon die Ursache sein. Der Shelly ist im Keller und der Wechselrichter in der Gartenhütte… Anders auch nicht zu lösen.

Autsch, ok, da wirst Du auch mit dem Anker SmartMeter nichts gewinnen. Hast Du keine Möglichkeit, Dir ein Mesh-Netzwerk bis zum Gartenhaus aufzubauen? Das geht heutzutage sehr gut. Ich hatte bisher einen eero IM Zählerkasten, der die Verbindung vom Keller bis unters Dach - immerhin drei solide Etagen - hergestellt hat. Wie bekommst Du den Strom vom Gartenhaus ins Haus? Ist da nicht noch Platz für ein langes LAN-Kabel?

1 „Gefällt mir“

Mein Shelly habe ich am Switch im Keller per LAN und an diesem Switch einen Fritz AP !

Leider hat meine Anker Solix 2 keinen LAN Anschluss.
Hat die Neue Solix 4 LAN?

Gruss

Na ein Meshnetzwerk habe ich schon am laufen, dass sollte nicht das Problem sein. Ich hatte es aber so gelesen, es ginge nur wenn die Geräte am “gleichen AP” verbunden sind.

Ein Mesh Netzwerk bildet ein Netzwerk - beispielsweise so, dass Dein Shelly und Deine Solarbank 4 in eben diesem gemeinsamen Netzwerk sind - unabhängig davon, wo die Geräte stehen. Sag mir doch mal, wie viele Meter in etwa zwischen den beiden Standorten Shelly und Gartenhaus sind?

Ich persönlich nutze seit vielen Jahren schon die eeros von Amazon. Davon hatte ich, wie bereits erwähnt, einen im Keller IM Schaltschrank drinnen, der mit einem LAN-Kabel am Shelly 3EM Pro verbunden war und unterm Dach, wo meine Solarbänke stehen, ist auch ein eero. Dazwischen habe ich noch welche im Haus verteilt. Das funktioniert einfach und zuverlässig, es ist eben ein einziges Netzwerk. Mit den Fritz-Dingern habe ich persönlich leider nirgendwo gute Erfahrungen gemacht. Das kann aber auch an meiner Einstellung gegenüber den Dingern gelegen haben :wink: