Wallbox Hardy Barth auslesen (API JSON)

Hallo @Ha-Ge

herzlichen Willkommen hier in der Community.

Um bewerten zu können, wo der Fehler liegt, müsste man deinen Eintrag in der Configuration.yaml sehen.

Schau Dir mal den Kommentar an:

Nimm das in die configuration.yaml. Die Seriennummer brauchst du eigentlich nicht. ( Zeile 3 ist das Ergebnis, das über die API abgerufen werden kann.)

Dann sollten nach einem Neustart die Sensoren da sein.

Hallo Michael,
erstmal lieben Dank für deine schnelle Antwort
genau was du anmerkst, habe ich alles gemacht, aber leider funktioniert es nicht:
grafik
Ich bekomme immer diese Meldung, wenn ich einen der Senoren in meiner Übersicht anklicke:
grafik
Irgenwas stimmt noch nicht

Hallo, das bedeutet aber lediglich, dass du die jeweiligen Entiäten nicht bearbeiten kannst. Geh mal auf Entwicklerwerkzeuge und Zustände. Da müssten die Entitäten samt Werte vorhanden sein.
Die kannst du dann verwenden.

Hallo,
da sieht es bei mir so aus:


:frowning:

Bekommst Du Werte aus der API vom ECB1 über den Browser?

Abruf über:
http://ecb1.local/api/v1/meters/1

Der Link funktioniert bei mir leider nicht “Seite nich gefunden”
Wenn ich die IP-Adresse statt “ecb1.local” eingebe, kommt das hier im Browser an:


Ich denke das sind die Daten die ich brauche oder?
Aber auch mit dieser IP-Adresse in der configuration.yaml funktioniert es leider nicht.

Hallo, das erklärt alles…

Du hast kein eCB1 verbaut sondern eine WB von Hardy Barth mit der Salia-Platine.

Probiere mal das hier:

## Abruf der API-Werte Salia - Hardy Barth Wallbox   
rest:
  - resource: "http://169.254.12.53/api/"
    sensor:
      - name: "Wallbox Power gesamt"
        value_template: "{{ ((value_json['secc']['port0']['metering']['power']['active_total']['actual'] | float) /10) | round(0) }}"
        unit_of_measurement: "W"
      - name: "Wallbox Ampere l1"
        value_template: "{{ ((value_json['secc']['port0']['metering']['current']['ac']['l1']['actual'] | float) /1000) | round(1) }}"
        unit_of_measurement: "A"
      - name: "Wallbox Ampere l2"
        value_template: "{{ ((value_json['secc']['port0']['metering']['current']['ac']['l2']['actual'] | float) /1000) | round(1) }}"
        unit_of_measurement: "A"
      - name: "Wallbox Ampere l3"
        value_template: "{{ ((value_json['secc']['port0']['metering']['current']['ac']['l3']['actual'] | float) /1000) | round(1) }}"
        unit_of_measurement: "A"
      - name: "Phase Ladung Wallbox"
        value_template: "{{ value_json['secc']['port0']['salia']['phase_switching']['actual'] }}"
        unit_of_measurement: "Ph"
      - name: "Wallbox Zähler gesamt"
        value_template: "{{ ((value_json['secc']['port0']['metering']['energy']['active_total']['actual'] | float) /1000) | round(1) }}"
        unit_of_measurement: "kWh"   
      - name: "Wallbox Ladestatus Carport"
        value_template: "{{ value_json['secc']['port0']['cp']['state'] }}"  

Hallo, Asche auf mein Haupt, ich wusste nicht, das die Info “Salia” wichtig ist.
Mir wird jetzt unter “RESTful-Entitäten” folgendes angezeigt:


Und mir wird tatsächlich der Gesamtverbrauch der Box angezeigt:

Jetzt mal eine blöde Frage: Warum funktioniert das mit der IP-Adresse aus deinem Yaml Eintrag?
Hat die Box ein eigenes Netzwerk?
wie gesagt, ich habe sehr wenig Ahnung von IT!
Eine bitte hätte ich noch, was muss ich noch tun, um die Entitäten in der Übersicht als Zählerstand und im Energie-Dashboard als Verbrauch darstellen zu können?
Dann wäre zunächst mal glücklich :slight_smile:

Hallo,
ich bin zwar auch kein IT-Experte, versuche es aber kurz zu erklären…

Die WB erreichst Du über die (interne) IP in Deinem Netzwerk (192.168.178.57)
Zusätzlich hat die WB eine sog. “Fall-Back-IP” (169.254.12.53) – darüber ist die Box im eigenen Netzwerk immer erreichbar.

Mit folgendem Code kannst Du Dir eine Karte erstellen:

type: entities
entities:
  - type: custom:multiple-entity-row
    entity: sensor.wallbox_power_gesamt
    name: Leistung aktuell
    secondary_info: last-changed
    state_header: Leistung Gesamt
    entities:
      - entity: sensor.phase_ladung_wallbox
        name: Phasen aktuell
  - type: custom:multiple-entity-row
    entity: sensor.wallbox_zahler_gesamt
    name: Zähler gesamt
    state_header: Gesamt
  - type: section
  - type: custom:multiple-entity-row
    entity: sensor.wallbox_energie_tag
    name: Geladene Energie
    secondary_info: last-changed
    state_header: heute
    entities:
      - entity: input_number.wallbox_energie_letzter_monat
        name: Vormonat
      - entity: sensor.wallbox_energie_monat
        name: lfd. Monat
      - entity: input_number.wallbox_energie_letzter_tag
        name: gestern
  - type: section
  - type: custom:multiple-entity-row
    entity: sensor.wallbox_ampere_l3
    name: Stromstärke
    state_header: Phase 3
    entities:
      - entity: sensor.wallbox_ampere_l1
        name: Phase 1
      - entity: sensor.wallbox_ampere_l2
        name: Phase2
  - type: custom:multiple-entity-row
    entity: sensor.wallbox_ladestatus_carport
    name: Ladestatus WB
    state_header: Status
    entities:
      - entity: sensor.wallbox_ladestatus_klarname
        name: Status
  - type: section
state_color: true
title: Wallbox

Die Werte zur geladenen Energie habe ich über Helfer gelöst.

Ins Energie-Dashboard kommen die Werte über:
Einstellungen / Dashboards / Energie
Dort bei Einzelgeräte auf “Gerät hinzufügen” klicken und den Sensor “Wallbox Zähler gesamt” einfügen. Den Rest mach das System selbst.

Dir ein gesegnetes Weihnachtsfest

Hallo Michael,
ich hoffe du hatest auch ein paar schöne Feiertage :slight_smile:
Wo muss ich denn den Code eintragen?
Wenn ich das in der YAML mache und ich HA neu starten möchte, kommt das dabei raus:


Ich hoffe ich geh dir nicht komplett auf die Nerven mit meinen Anfängerfragen

Hallo,

für mich sieht es so aus als hättest du versucht den code in deine configuration.yaml einzufügen. Der von @Michael96 gepostet code ist aber für ein Dashboard.

Ich habe aber dank dieses Themas auch geschaft meine Hardy Barth cPH2 mit Salia Platine einzubinden.
Vielen Dank euch allen hier.
Ich reiße nur kurz an was ich im Moment per Dashboard sehe / welche Aktionen ich machen kann:
Alle (von mir) erwüschten sensoren wie Z.B. die Ampere Zahl, die Stromaufnahme, RFID Key usw.
Die Ampere Zahl / Ladeleistung lässt sich einstellen.
Start und stopp des Ladevorgangs.

Über die RFID Kennung zeichne ich auf welches Fahrzeug wieviel Verbraucht, ähnlich dem export auf der Wallbox Seite.

Falls jemand an Code interessiert ist, gerne bescheid sagen.

1 „Gefällt mir“

Hallo quad,
ich habe mal versucht den Code in einer neuen Karte zu hinterlegen und da kommt folgendes (nur ein Ausschnitt) bei raus:
grafik
Irgendwas mache ich immer noch falsch :frowning:

Hallo,

die Karte basiert auf der Vorlage „Multiple Entity row“, die musst du dir erst noch über den HACS (Home Assistant Community Store) installieren. Zusätzlich ist im Code noch mindestens ein Helper hinterlegt, wenn du den nicht hast, kannst du den erstmal rauswerfen.

Grüße
Thomas

Hallo Rookie,
hat sehr gut geklappt wie man sieht:
grafik
Wenn ich jetzt noch wüsste wie ich den Helfer erstellen muss, wäre es für mich erstmal vollkommen ausreichend.

Hallo Ha-Ge,

Den kannst du wie folgt erstellen:
Unter Einstellungen, Geräte und Services, Helfer einen Helfer vom Typ Utility Meter mit dem o.g. Namen und als Input den Sensor wallbox_zaehler_gesamt verwenden. Die kannst einstellen, dass der Wert täglich auf Null gesetzt wird, dann hast du den täglichen Verbrauch. Das gleiche kannst du für die anderen Perioden machen, wie du möchtest.
Es gibt noch zusätzlich die Entität wallbox_ladestatus_klarname, da wird wohl mit Hilfe eines weiteren Helpers der Status ausgegeben, da kann ich dir aber nicht weiterhelfen, dass müsste Michael sagen können.

Grüße
Thomas

Hallo Ha-Ge,

schön, dass es bei Dir nun klappt.
HA ist echt ein super System. Da findest Du Dich immer mehr zurecht. Viel haben mir die Videos von Simon 42 geholfen.

Die Helfer habe ich analog zu folgender Vorlage erstellt:

Gleiches gilt für die Klarnamen:

Zum Klarnamen meiner WB:

Ich habe einige Einträge außerhalb der configuration.yaml ausgelagert
(vgl. configuration.yaml | Gerald's WIKI)

neuen Ordner im File editor anlegen und darin eine Datei namens “wallbox_ladestatus.yaml” anlegen. Da hinein folgenden Code:

- platform: template
  sensors:
    wallbox_ladestatus_klarname:
      friendly_name: "Ladestatus Wallbox Klarname"
      value_template: >
        {% set status = (states('sensor.wallbox_ladestatus_carport')) %}
        {% if status ==  "A" -%}
          Standby
        {%- elif status ==  "B" -%}
          Fzg. angeschlossen
        {%- elif status ==  "C" -%}
          Laden
        {%- elif status ==  "D" -%}
          Ladung mit Lüftung
        {%- elif status ==  "E" -%}
          kein Strom
        {%- elif status ==  "F" -%}
          Fehler
        {%- endif %}

#A = Standby
#B = Vehicle detected (Fahrzeug wurde erkannt, keine Ladung) 
#C = Ready (Ladung findet statt)
#D = With ventilation (Ladung mit Lüftung zugeschaltet)
#E = No power (Kein Strom)
#F = Error (Fehlerzustand)

In der configuration.yaml habe ich als Verweis auf die ausgelagerte Datei folgenden Eintrag:

sensor: !include_dir_merge_list include_sensors/

Ein Dank an Stelle nochmal an Gerald Amrhein, da habe ich mir auch viele nützliche Codes und Infos geholt.

Hallo @Michael96,

ich bin auch grad dabei mein Wallbox einzubinden.
Ich habe eine Salia und eine eCB1. Aktuell versuche ich es mi der eCB1.
Die API-Werte sehe ich bei mir nur unter diesem Link: http://ecb1.lan/api/v1/meters/ (Ohne /1).
Mit deinem Link kommt die Meldung “Meter noch found”
image

In beiden Fällen kommen leider keine Werte an. Der Sensor bleibt auf “unkown”

Meine Configuration.yaml:

rest:
  - resource: "http://ecb1.lan/api/v1/meters/"
    sensor:
      - name: "aktuelle Leistung +/-"
        value_template: "{{ value_json['meter']['data']['lgwb'] }}"
        unit_of_measurement: "W"
      - name: "aktuelle Leistung +"
        value_template: "{{ value_json['meter']['data']['1-0:1.4.0'] }}"
        unit_of_measurement: "W"
      - name: "ecb1 Active energy+ Zähler Arbeit/Energie"
        value_template: "{{ value_json['meter']['data']['1-0:1.8.0'] | round(1) }}"
        unit_of_measurement: "kWh"

Update:
Mit dem o.g. Code für die Salia kann ich deren Werte abfragen. Die eCB1 ist bei mir so konfiguriert, dass ich dort keine Steuerung etc. vornehmen kann. Somit sind meine relevanten Daten, die der Salia.

Kurios ist allerdings, dass ich die Werte der eCB1 dennoch nicht in HA parsen kann. Mit der Funktion des Geräts sollte es ja eigentlich nciht zusammenhängen, oder?

Danke schonmal und viele Grüße
Markus

Hallo @Markus1,
den eCB1 gibt es in zwei Varianten:

  • als Messpunkt (Smartmeter, nach dem Stromzähler)
  • zur PV-Steuerung

Du hast ihn also als Messpunkt. Die Salia-Platine übernimmt die Steuerung der WB und greift hierzu den konfigurierten Messpunkt (bei Dir der eCB1, bei mir ein Eastron-Zähler) mit ab. Die Messpunktwerte kannst Du dann über die Salia abrufen…

Das passt schon soweit.

VG Michael

Hallo Michael,
jetzt wird es langsam etwas verwirrend für einen alten Mann mit 61 :slight_smile:
Klar ist, ich möchte ja erst mal nur deine schöne Karte für die Wallbox bei mir erstellen.
Was ja auch soweit funktioniert bis auf den fehlenden Sensor:
grafik
Was muss ich genau machen um diesen Sensor genauso wie bei dir zu erstellen?
Ich habe einen neuen Ordner im HA erstellt, braucht der einen genauen Namen?
grafik
Und den Eintrag in der Yaml habe ich auch erstellt:
grafik
Davon wird es leider auch nicht besser :frowning:
Wäre schön, wenn du es mir genau erklären könntest.
Und ich schaue mir auch nochmal bestimmt alle Videos von Simon 42 dazu an, versprochen :slight_smile:

Hallo @Ha-Ge

der Sensor, der in deiner Karte fehlt ist aber der Tageszähler…
Wie das geht hat ja @HARookie schon geschrieben.
Erstelle einen Verbrauchszähler, Zyklus der Rückstellung täglich:

Zum Thema Klarname Ladestatus.
Wichtig ist, dass der Ordner den Namen “include_sensors” besitzt; Sorry, das hatte ich nicht mit erwähnt. Alle Dateien in diesem Ordner werden dann mit ausgelesen…

Den Eintrag in der confiuration.yaml ohne Einrückung und Bindestrich am Anfang:

Das wird schon, alles Gut! Gut Ding will Weile haben…
Allen einen guten Rutsch und auf ein gesundes 2025