EKD-Solar Anlage an mit FHEM auslesen

Begonnen von bombardi, 05 Januar 2026, 12:55:58

Vorheriges Thema - Nächstes Thema

bombardi

Ich habe eine Solaranlage von EKD-Solar installiert bekommen.
Nun möchte ich lokal auf meine erzeugten Daten zugreifen.
Eine Unterstützung seitens EKD-Solar findet nicht statt, es wird auf deren APP verwiesen.
Was ich inzwischen ermittelt habe ist, dass eine Kommunikation per MODBUS TCP stattfindet.
Daher meine Frage, wie kann ich in FHEM ein Device einrichten, welches mit dem Teilnehmer an IP 192.168.2.100
kommuniziert, die MODBUS Unit ID ist 247 und der MODBUS Port des Gerätes ist 502 ?
Welche zusätzlichen Informationen brauche ich um an die konkreten Daten zu kommen ?
Wenn ich versuche per HTTP zuzugreifen auf die REST-API werde ich auf eine Loginseite umgeleitet, wenn ich das im Brower mache kann ich nacj dem erfolgreichen Login
die REST-API daten durchsuchen, mit HTTPMOD ist mir das noch nicht gelungen, da ich das Login nicht schaffe nachzubilden.

pejonp

@bombardi

schau mal hier

https://github.com/pejonp/FHEM---SolarEdge

ist zwar für SolarEdge dort werden aber auch Modbus-Register abgefragt.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Wolfi0912

Zitat von: bombardi am 05 Januar 2026, 12:55:58Ich habe eine Solaranlage von EKD-Solar installiert bekommen.
Nun möchte ich lokal auf meine erzeugten Daten zugreifen.
Eine Unterstützung seitens EKD-Solar findet nicht statt, es wird auf deren APP verwiesen.
Was ich inzwischen ermittelt habe ist, dass eine Kommunikation per MODBUS TCP stattfindet.
Daher meine Frage, wie kann ich in FHEM ein Device einrichten, welches mit dem Teilnehmer an IP 192.168.2.100
kommuniziert, die MODBUS Unit ID ist 247 und der MODBUS Port des Gerätes ist 502 ?
Welche zusätzlichen Informationen brauche ich um an die konkreten Daten zu kommen ?
Wenn ich versuche per HTTP zuzugreifen auf die REST-API werde ich auf eine Loginseite umgeleitet, wenn ich das im Brower mache kann ich nacj dem erfolgreichen Login
die REST-API daten durchsuchen, mit HTTPMOD ist mir das noch nicht gelungen, da ich das Login nicht schaffe nachzubilden.

hi melde dich mal hab da was für dich

bombardi

Lass uns doch alle an deinem Wissen teilhaben

pejonp

Was für ein Wechselrichter ist verbaut: Genaue Bezeichnung, dann kann man auch nach der Modbus-Beschreibung suchen.

Wenn der Sunspec Modbus als Grundlage genommen wird könnte man mit dem SolarEDge Modul probieren. ggf . noch die Start-Register anpassen.

pejonp
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Wolfi0912

Hallo zusammen
anbei meine funktionierende Yamlconfig:

modbus:
  - name: Solar Anlage
    type: tcp
    host: deine IP Adresse vom Speicher
    port: 502

    sensors:
      - name: PV1 Spannung
        unique_id: ampere_pv1_voltage
        device_address: 3
        address: 517
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: V
        device_class: Voltage
        state_class: measurement
        scale: 0.1
        scan_interval: 10

      - name: PV1 Strom
        unique_id: ampere_pv1_current
        device_address: 3
        address: 518
        input_type: input
        data_type: int16
        precision: 2
        unit_of_measurement: A
        device_class: Current
        state_class: measurement
        scale: 0.01
        scan_interval: 10

      - name: PV1 Leistung
        unique_id: ampere_pv1_power
        device_address: 3
        address: 519
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: PV2 Spannung
        unique_id: ampere_pv2_voltage
        device_address: 3
        address: 520
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: V
        device_class: Voltage
        state_class: measurement
        scale: 0.1
        scan_interval: 10

      - name: PV2 Strom
        unique_id: ampere_pv2_current
        device_address: 3
        address: 521
        input_type: input
        data_type: int16
        precision: 2
        unit_of_measurement: A
        device_class: Current
        state_class: measurement
        scale: 0.01
        scan_interval: 10

      - name: PV2 Leistung
        unique_id: ampere_pv2_power
        device_address: 3
        address: 522
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: Batterie Level
        unique_id: ampere_battery_level
        device_address: 3
        address: 1339
        input_type: input
        data_type: uint16
        precision: 1
        unit_of_measurement: "%"
        device_class: battery
        state_class: measurement
        scale: 1
        scan_interval: 60

      - name: Batterie Aktueller Status
        unique_id: ampere_battery_running_state
        device_address: 3
        address: 1340
        input_type: input
        data_type: uint16
        precision: 0
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: Batterie Spannung
        unique_id: ampere_battery_voltage
        device_address: 3
        address: 531
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: V
        device_class: Voltage
        state_class: measurement
        scale: 0.1
        scan_interval: 10

      - name: Batterie Strom
        unique_id: ampere_battery_current
        device_address: 3
        address: 532
        input_type: input
        data_type: int16
        precision: 2
        unit_of_measurement: A
        state_class: measurement
        device_class: Current
        scale: 0.01
        scan_interval: 10

      - name: Batterie Leistung
        unique_id: ampere_battery_power
        device_address: 3
        address: 535
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: Batterie Temperatur
        unique_id: ampere_battery_temperature
        device_address: 3
        address: 1344
        input_type: input
        data_type: uint16
        precision: 1
        unit_of_measurement: °C
        device_class: Temperature
        scale: 0.1
        scan_interval: 60

      - name: Gesamtleistung
        unique_id: total_active_power
        device_address: 3
        address: 1348
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: L1 Leistung
        unique_id: l1_active_power
        device_address: 3
        address: 1349
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: L2 Leistung
        unique_id: l2_active_power
        device_address: 3
        address: 1350
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: L3 Leistung
        unique_id: l3_active_power
        device_address: 3
        address: 1351
        input_type: input
        data_type: int16
        precision: 0
        unit_of_measurement: W
        device_class: power
        state_class: measurement
        scale: 1
        scan_interval: 10

      - name: Tages Solarerzeugung
        unique_id: ampere_daily_pv_generation
        device_address: 3
        address: 16576
        input_type: input
        data_type: uint16
        precision: 2
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        scale: 0.01
        scan_interval: 600

      - name: Monats Solarerzeugung
        unique_id: ampere_monthly_pv_generation
        device_address: 3
        address: 16577
        input_type: input
        data_type: uint32
        precision: 2
        unit_of_measurement: kWh
        device_class: energy
        state_class: total
        scale: 0.01
        scan_interval: 600

      - name: Jahres Solarerzeugung
        unique_id: ampere_year_pv_generation
        device_address: 3
        address: 16579
        input_type: input
        data_type: uint32
        precision: 2
        unit_of_measurement: kWh
        device_class: energy
        state_class: total
        scale: 0.01
        scan_interval: 600

      - name: Gesamt Solarerzeugung
        unique_id: ampere_total_pv_generation
        device_address: 3
        address: 16581
        input_type: input
        data_type: uint32
        precision: 2
        unit_of_measurement: kWh
        device_class: energy
        state_class: total
        scale: 0.01
        scan_interval: 600

      - name: BMS Software Version
        unique_id: ampere_bms_software_version
        device_address: 3
        address: 33061
        input_type: input
        data_type: int16
        precision: 0
        scale: 0.01
        scan_interval: 600

      - name: BMS Hardware Version
        unique_id: ampere_bms_hardware_version
        device_address: 3
        address: 33062
        input_type: input
        data_type: int16
        precision: 0
        scale: 0.01
        scan_interval: 600

      - name: Batterie Cluster
        unique_id: ampere_battery_cluster
        device_address: 3
        address: 33063
        input_type: input
        data_type: string
        count: 6
        scan_interval: 600

      - name: Wechselrichter Modell
        unique_id: ampere_inverter_model
        device_address: 3
        address: 33280
        input_type: input
        data_type: string
        count: 7
        scan_interval: 600

      - name: Wechselrichter SN
        unique_id: ampere_inverter_sn
        device_address: 3
        address: 36611
        input_type: input
        data_type: string
        count: 9
        scan_interval: 600
       
template:
  - sensor:
      - name: Wechselrichter Leistung
        unique_id: ampere_inverter_power
        unit_of_measurement: W
        device_class: power
        state_class: 'measurement'
        availability: >-
          {{
          not is_state('sensor.pv1_power', 'unavailable')
          and not is_state('sensor.pv2_power', 'unavailable')
          }}
        state: "{{ (states('sensor.pv1_power') | int + states('sensor.pv2_power') | int ) | int }}"

  - sensor:
      - name: "Aufladen der Batterie"
        unit_of_measurement: W
        device_class: power
        state: "{{ max(0, 0 - states('sensor.battery_power') | float(default=0)) }}"
      - name: "Entladen der Batterie"
        unit_of_measurement: W
        device_class: power
        state: "{{ max(0, states('sensor.battery_power') | float(default=0)) }}"
        state_class: 'measurement'
# ---------------------------------------------------------------------------- vom Versorger
      - name: "Netzbezug"
        unit_of_measurement: 'W'
        unique_id: "netzbezug"
        device_class: power
        state: "{{ max(0, states('sensor.stromzahler_mt681_power_cur') | float(default=0)) }}"
        state_class: 'measurement'
# ---------------------------------------------------------------------------- an Versorger
      - name: "Netzeinspeisung"
        unit_of_measurement: 'W'
        unique_id: "netzeinspeisung"
        device_class: power
        state: "{{ max(0, 0 - states('sensor.stromzahler_mt681_power_cur') | float(default=0)) }}"
        state_class: 'measurement'
       
# Gesamterzeugung Solaranlage
      - name: PV Gesamterzeugung
        unique_id: "PV Gesamterzeugung"
        unit_of_measurement: 'Wh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
           {{ ((float(states('sensor.pv1_power'))) + (float(states('sensor.pv2_power')))) | round(3) }}
   
      - name: Hausverbrauch
        unique_id: "Hausverbrauch"
        unit_of_measurement: 'Wh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
           {{ ((float(states('sensor.pv_gesamterzeugung'))) - (float(states('sensor.netzeinspeisung')))) | round(3) }}

Eine zweite Möglichkeit ist:diese probiere ich gerade aus und es werden bei mir 391 entitäten angezeigt

die Integraton: SAJ H2 Modbus in Homeassistant
Zuerst bitte die Modbus Integration in HA einfügen

Viel Spaß