API Daten im Energy Dashboard anzeigen

Hi,

anbei ein paar Adaptierungen.

rest:
  - resource: http://IP-Adress/api/v1/site/state  # BEAAM API URL
    headers:
      Authorization: "Bearer sk_beaam_xxxxx" #Put your bearer token here, but do not delete Bearer at the beginning
      Content-Type: "application/json"
    method: GET
    scan_interval: 10  # Intervall für API-Aufrufe in Sekunden
    sensor:
      # Stromverbrauch (aktuelle Leistung in Watt)
      - name: "neoom_power_consumption"
        unique_id: "power_consumption"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        icon: "mdi:LightningBoltOutline"

      # Stromnetz (aktueller Netzbezug)
      - name: "neoom_power_grid_input"
        unique_id: "power_grid_input"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) * -1 if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total
        icon: "mdi:TransmissionTower"

      # Stromnetz (aktuelle Einspeisung)
      - name: "neoom_power_grid_output"
        unique_id: "power_grid_output"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first }}"
        #value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) * -1 if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) < 0 else 0 }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total
        icon: "mdi:TransmissionTower"

      # Batteriespeicher Output (aktuelle Leistung in Watt)
      - name: "neoom_storage_output"
        unique_id: "storage_output"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first }}"
        value_template: "{{ 0 if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total
        icon: "mdi:BatteryArrowDownOutline"

        # Energie entladen (Entnahme aus dem Speicher in Wh)
      - name: "neoom_energy_discharged"
        unique_id: "energy_discharged"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_DISCHARGED') | map(attribute='value') | first }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:BatteryArrowDownOutline"

      # Batteriespeicher Input (aktuelle Leistung in Watt)
      - name: "neoom_storage_input"
        unique_id: "storage_input"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first }}"
        #value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) < 0 else 0 }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total
        icon: "mdi:BatteryArrowUpOutline"

      # Energie geladen (gespeicherte Energie in Wh)
      - name: "neoom_energy_charged"
        unique_id: "energy_charged"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CHARGED') | map(attribute='value') | first }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:BatteryArrowUpOutline"

      # Energie produziert (gesamte erzeugte Energie in Wh)
      - name: "neoom_energy_produced"
        unique_id: "energy_produced"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_PRODUCED') | map(attribute='value') | first }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:SolarPowerVariant"

      # Energie verbraucht (gesamter Verbrauch in Wh)
      - name: "neoom_energy_consumed"
        unique_id: "energy_consumed"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:HomeLightningBoltOutline"

      # Energie importiert (gesamter Import aus dem Netz in Wh)
      - name: "neoom_energy_imported"
        unique_id: "energy_imported"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first | round(2) }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first) | round(2) }}"
        unit_of_measurement: "kWh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:TransmissionTowerImport"

      # Energie exportiert (gesamte Einspeisung ins Netz in Wh)
      - name: "neoom_energy_exported"
        unique_id: "energy_exported"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first * -1 }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:TransmissionTowerExport"

      # Ladezustand des Speichers in %
      - name: "neoom_state_of_charge"
        unique_id: "state_of_charge"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'STATE_OF_CHARGE') | map(attribute='value') | first }}"
        unit_of_measurement: "%"
        device_class: battery
        state_class: measurement
        icon: "mdi:BatteryHeartVariant"

      # Selbstversorgung (Selbstversorgungsrate in %)
      - name: "neoom_self_sufficiency"
        unique_id: "self_sufficiency"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'SELF_SUFFICIENCY') | map(attribute='value') | first }}"
        unit_of_measurement: "%"
        device_class: power
        state_class: measurement
        icon: "mdi:LightningBoltCircle"

      # PV Leistung aktuell (Leistung in kWh)
      - name: "neoom_power_production"
        unique_id: "power_production"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) > 0 else 0 }}"
        unit_of_measurement: "kWh"
        device_class: energy
        state_class: total
        icon: "mdi:SolarPanel"

      # Errechneter Stromverbrauch (Leistung in kWh)
      - name: "neoom_power_consumption_calc"
        unique_id: "power_consumption_calc"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION_CALC') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION_CALC') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION_CALC') | map(attribute='value') | first) }}"
        unit_of_measurement: "kWh"
        device_class: energy
        state_class: measurement
        icon: "mdi:SolarPanel"

      # Errechneter Energieverbrauch (gesamter Verbrauch in Wh)
      - name: "neoom_energy_consumed_cal"
        unique_id: "energy_consumed_calc"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED_CALC') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED_CALC') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED_CALC') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: measurement
        icon: "mdi:HomeLightningBoltOutline"
1 „Gefällt mir“

Ich hab bei mir die device_class und state_class für alle aktuellen Leistungswerte geändert in “power” und “measurement”, gemessen in Watt. Die Energiewerte sind die summierten und stetig ansteigenden Energiemengen(Wh). Die Berechnung des grid input hatte auch einen kleinen bug. Da muss der wert 0 sein bei PV Überschuss analog zum grid output.

Hi gbeck, wie schaut denn deine config momentan aus?

Hallo gbeck,

wie DexHex schreibt, würde mich auch sehr interessieren, wie deine config akt aussieht. Magst Du die evtl teilen?

Danke

Hallo zusammen,
klar doch und sorry - hatte die Rückfragen nicht mitbekommen.
So siehts bei mir aus. Funktioniert seither einwandfrei und deckt sich mit den Werten aus der NEOOM Cloud. Da ich keinen Speicher habe hab ich einige Werte auskommentiert. Danke nochmal an @Dexhex fürs teilen der Lösung!

Ein Problem hab ich noch und zwar sehe ich ab und zu mal sehr hohe Peaks bei der Solarproduktion (1.6Mio khW) das will ich mir noch anschauen ob die Werte vom BEAAM kommen oder ob das mit dem HA-Energydashboard zusammenhängt.

rest:
  - resource: http://<BEAAM-IP>/api/v1/site/state  # BEAAM API URL
    headers:
      Authorization: "Bearer sk_beaam_<your_token>" #Put your bearer token here, but do not delete Bearer at the beginning
      Content-Type: "application/json"
    method: GET
    scan_interval: 10  # Intervall für API-Aufrufe in Sekunden
    sensor:
#      # Stromverbrauch (aktuelle Leistung in Watt)
#      - name: "neoom_power_consumption"
#        unique_id: "power_consumption"
#        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION') | map(attribute='value') | first }}"
#        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) }}"
#        unit_of_measurement: "W"
#        device_class: power
#        state_class: measurement
#        icon: "mdi:LightningBoltOutline"

      # Stromnetz (aktueller Netzbezug in Watt)
      - name: "neoom_power_grid_input"
        unique_id: "power_grid_input"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) > 0 else 0 }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        icon: "mdi:TransmissionTower"

      # Stromnetz (aktuelle Einspeisung in Watt)
      - name: "neoom_power_grid_output"
        unique_id: "power_grid_output"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first }}"
        #value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) * -1 if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_GRID') | map(attribute='value') | first) < 0 else 0 }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        icon: "mdi:TransmissionTower"

#      # Batteriespeicher Output (aktuelle Leistung in Watt)
#      - name: "neoom_storage_output"
#        unique_id: "storage_output"
#        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first }}"
#        value_template: "{{ 0 if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) }}"
#        unit_of_measurement: "W"
#        device_class: power
#        state_class: measurement
#        icon: "mdi:BatteryArrowDownOutline"
#
#        # Energie entladen (Entnahme aus dem Speicher in Wh)
#      - name: "neoom_energy_discharged"
#        unique_id: "energy_discharged"
#        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_DISCHARGED') | map(attribute='value') | first }}"
#        unit_of_measurement: "Wh"
#        device_class: energy
#        state_class: total_increasing
#        icon: "mdi:BatteryArrowDownOutline"
#
#      # Batteriespeicher Input (aktuelle Leistung in Watt)
#      - name: "neoom_storage_input"
#        unique_id: "storage_input"
#        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first }}"
#        #value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) }}"
#        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_STORAGE') | map(attribute='value') | first) < 0 else 0 }}"
#        unit_of_measurement: "W"
#        device_class: power
#        state_class: measurement
#        icon: "mdi:BatteryArrowUpOutline"
#
#      # Energie geladen (gespeicherte Energie in Wh)
#      - name: "neoom_energy_charged"
#        unique_id: "energy_charged"
#        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CHARGED') | map(attribute='value') | first }}"
#        unit_of_measurement: "Wh"
#        device_class: energy
#        state_class: total_increasing
#        icon: "mdi:BatteryArrowUpOutline"

      # Energie produziert (gesamte erzeugte Energie in Wh)
      - name: "neoom_energy_produced"
        unique_id: "energy_produced"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_PRODUCED') | map(attribute='value') | first }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:SolarPowerVariant"

      # Energie verbraucht (gesamter Verbrauch in Wh)
      - name: "neoom_energy_consumed"
        unique_id: "energy_consumed"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:HomeLightningBoltOutline"

      # Energie importiert (gesamter Import aus dem Netz in Wh)
      - name: "neoom_energy_imported"
        unique_id: "energy_imported"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first | round(2) }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_IMPORTED') | map(attribute='value') | first) | round(2) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:TransmissionTowerImport"

      # Energie exportiert (gesamte Einspeisung ins Netz in Wh)
      - name: "neoom_energy_exported"
        unique_id: "energy_exported"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first * -1 }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_EXPORTED') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: total_increasing
        icon: "mdi:TransmissionTowerExport"

#      # Ladezustand des Speichers in %
#      - name: "neoom_state_of_charge"
#        unique_id: "state_of_charge"
#        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'STATE_OF_CHARGE') | map(attribute='value') | first }}"
#        unit_of_measurement: "%"
#        device_class: battery
#        state_class: measurement
#        icon: "mdi:BatteryHeartVariant"
#
      # Selbstversorgung (Selbstversorgungsrate in %)
      - name: "neoom_self_sufficiency"
        unique_id: "self_sufficiency"
        value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'SELF_SUFFICIENCY') | map(attribute='value') | first }}"
        unit_of_measurement: "%"
        device_class: power
        state_class: measurement
        icon: "mdi:LightningBoltCircle"

      # PV Leistung aktuell (Leistung in W)
      - name: "neoom_power_production"
        unique_id: "power_production"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_PRODUCTION') | map(attribute='value') | first) > 0 else 0 }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        icon: "mdi:SolarPanel"

      # Errechneter Stromverbrauch (Leistung in W)
      - name: "neoom_power_consumption_calc"
        unique_id: "power_consumption_calc"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION_CALC') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION_CALC') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'POWER_CONSUMPTION_CALC') | map(attribute='value') | first) }}"
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        icon: "mdi:SolarPanel"

      # Errechneter Energieverbrauch (gesamter Verbrauch in Wh)
      - name: "neoom_energy_consumed_cal"
        unique_id: "energy_consumed_calc"
        #value_template: "{{ value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED') | map(attribute='value') | first }}"
        value_template: "{{ (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED_CALC') | map(attribute='value') | first * -1) if (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED_CALC') | map(attribute='value') | first) < 0 else (value_json['energyFlow']['states'] | selectattr('key', 'eq', 'ENERGY_CONSUMED_CALC') | map(attribute='value') | first) }}"
        unit_of_measurement: "Wh"
        device_class: energy
        state_class: measurement
        icon: "mdi:HomeLightningBoltOutline"

So sieht es dann im Energydashboard aus:

Hey,ich bräuchte mal Eure Hilfe. Leider komme ich bei der integration
vom Beam irgendwie nicht weiter :frowning: .
Wie sehe ich, dass die rest api funktioniert? und wenn sie Funktioniert, wie richte ich die Sensoren im Energydashboard ein.
Danke…
meine Konfig von @gbeck … Danke
rest:

Hey @Schmidt.thomas83,

folgende Schritte sind erforderlich:

  1. BEAAM WAN interface mit statischer IP konfigurieren bzw MAC reservation im DHCP
  2. Erreichbarkeit des BEAAM WAN interface von HA CLI prüfen (ping)
  3. Im NEOOM Connect portal die BEAAM API aktivieren und API schlüssel erzeugen - beginnt mit sk_beaam_ … es gibt auch eine weitere NEOOM Connect API - die keys beginnen mit sk_connect - hast du da ggf den falschen erwischt?
  4. Funktion der REST API kannst du mit postman oder curl von deinem rechner checken.
  5. Config von oben entsprechend anpassen (IP + API key), in die configuration.yaml kopieren und (wie immer) HA durchstarten.
  6. Unter der Integration RESTful API prüfen dass die Entitäten angelegt wurden (10 stück bei mir) und deren Werte mit Neoom connect abgleichen
  7. Wenn das passt kann du die energy entitäten (Energiemengen kWh) im Energydashbard konfigurieren, die power entitären (Momentanleistung W) in Leistungsdashboards (z.b. Power Flow Card plus).
  8. Bei problemen sollte das ha core log hinweise geben.

Hoffe das hilft ein wenig weiter - Grüße, Gero

Moin @gbeck, vielen vielen dank für die Hilfe :slight_smile:
Pos. 1-5 ist Abgearbeitet aber mein problem ist, da in der RESTful nix hinterlegt ist. Es sind alle Möglichen sensoren drin aber nix von Neoom.
HA ist auf Proxmox installiert muss ich eventuell noch Ports freigeben??
Gruß Thomas

In HA ist im protokoll keine eintrag vorhanden.

Hi @Schmidt.thomas83, funktioniert CURL von der HA console? Damit bist du sicher dass der API key funktioniert und BEAAM erreichbar ist.

Sieht bei mir wie folgt aus:

curl --header "Content-Type: application/json" --header "Authorization: Bearer sk_beaam_<removed>" http://<IP>/api/v1/site/state
{"energyFlow":{"states":[{"dataPointId":"966c6df8-7f21-551b-89e3-c60876eea2ac","key":"SELF_SUFFICIENCY","value":0,"ts":1736997865002},{"dataPointId":"728aef34-8036-58f0-9ee1-898236606672","key":"POWER_PRODUCTION","value":0,"ts":1736997865002},{"dataPointId":"116e0cf6-1819-56b3-94a2-8daf12ce5553","key":"POWER_CONSUMPTION","value":null,"ts":1736997865002},{"dataPointId":"c3292472-2207-520f-90e8-9ac4d90a71e1","key":"POWER_GRID","value":1270,"ts":1737005850006},{"dataPointId":"a0f94ed2-949d-5f0f-8599-421ab44122ed","key":"POWER_STORAGE","value":null,"ts":1736997865002},{"dataPointId":"3e8a35ba-6265-5e80-8415-650d17f022c2","key":"ENERGY_PRODUCED","value":9632700,"ts":1736997865002},{"dataPointId":"23f7c23f-33b3-5c27-8986-37b0e68894b7","key":"ENERGY_CONSUMED","value":null,"ts":1736997865002},{"dataPointId":"df16d449-85c8-5e09-8c7a-c91d85288b03","key":"ENERGY_IMPORTED","value":2570971.3107837928,"ts":1737005850006},{"dataPointId":"2c1363b0-e204-5807-8e21-38f52e3bc103","key":"ENERGY_EXPORTED","value":7039627.967778499,"ts":1736997865002},{"dataPointId":"d11f6e52-3fdf-52af-82bd-b757b2e23b26","key":"ENERGY_CHARGED","value":null,"ts":1736997865002},{"dataPointId":"62a0e103-b382-5de9-bf79-c335af313f0b","key":"ENERGY_DISCHARGED","value":null,"ts":1736997865002},{"dataPointId":"dc0ab457-b056-51a4-b8fe-801de8ff49eb","key":"STATE_OF_CHARGE","value":null,"ts":1736997865002},{"dataPointId":"866b82f9-0b93-5c60-9173-7364e5075400","key":"POWER_CONSUMPTION_CALC","value":1270,"ts":1737005850006},{"dataPointId":"29764671-a288-5f6f-af25-792399ed9dad","key":"POWER_GRID_REMAINING","value":null,"ts":1736997865002},{"dataPointId":"65c3fc4b-89a8-5e8d-8780-e46d9191c349","key":"ENERGY_CONSUMED_CALC","value":5164043.343005294,"ts":1737005850006}]}}#  

hey @gbeck, hab das mit dem curl versuch. Habe deine config kopiert und meine IP und Token in dem Terminal in HA eingefügt aber da kommt nur : statusCode 500 message Internal server error bash usw. Hab den API schlüssel jetzt mal gelöscht und neu erstellt aber auch ohne erfolg.
Wenn ich im browser meine ip vom beaam und /api/v1/site/state eingebe, kommt die meldung message : “Unauthorized” statusCode: 401 soll das so sein?

@Schmidt.thomas83 das sieht nach einem Problem mit der API auf dem BEAAM aus. Kannst du den error teilen und den Token verpixeln?

Wie hast du den Token generiert? Ich habs so gemacht:

  1. Anmelden auf https://connect.neoom.com/
  2. Menü API-Schlüssel
  3. BEAAM API aktivieren & key generieren


@gbeck hab den Token so erstellt, wie du das gemacht hast.
Hab leider absolut keine Ahnung von “curl” :frowning:
Screenshot 2025-01-17 193107

wenn ich den schlüssel um eine Zahl ändere, ist der Fehler: statusCode 401 unautorisiert

Hallo @Schmidt.thomas83, denke das Problem ist der webserver auf dem BEAAM. Der API key wird korrekt provisioniert das hast du ja getestet. Die API selbst hat ein Problem. Ich befürchte da kann dir nur der neoom support helfen. Die hatten zuletzt bei mir emails sogar beantwortet nach dem ich mein Ticket vom September schon vergessen hatte :).