Poweropti / powerfox powermeter integration

That would be awesome! Creating the core integration is the last step in the whole process, since the python package is already created. Unfortunately I couldn’t find you on Discord to get in touch with you.

./Klaas

Hallo zusammen,
da ich mich hier sehr interessiert in das Thema eingelesen habe, hoffe ich nun zum einen um eure Hilfe und zum anderen möchte ich noch Details hinzufügen:

Meine Facts:
Firmware: 2.01.03
Internet Connection: Via Fritzbox Kindersicherung gesperrt (dadurch bekomme ich keine Updates)

Seit September ist Powerfox (Power42 GmbH) in einen laufenden Insolvenz Verfahren, was die langfristige Sicherung der Cloud sehr fraglich macht.
Deshalb habe ich seit heute nun auch die Lokale RPC Abfrage verwendet um Daten vom poweropti zu erhalten.

Vielen Dank an @Martek @theinl @klaasnicolaas @kitas

Der oben genannte Code für den RESTful sensor (Post #35) funktioniert super.
Einzige Bedingung: Bei der Eingabe von http:// ip-from-poweropti/rpc Muss etwas kommen wie “Not implemented” o.ä.
Der Test Abruf mit postman .com (siehe oben) funktioniert gut um dies zu prüfen.

Folgende Probleme habe ich mit meinem Abruf:

Die meiste Zeit steht mein Sensor “poweropti_local” im Log als Unbekannt und ändert diesen Wert nur kurz.
Die Variable “Result” ändert sich aber wie geplant alle 2 Sekunden. (Der Base64 Code)
Kann mir da einer Weiterhelfen?


https://drive.google.com/drive/folders/1jAuUL7ylPfVGtD_3wKrgj-HvuilSe5W8?usp=drive_link

Viele Grüße

dxdn

Update:
Der Zählerstand Bezug in kwh sowie der Zählerstand Einspeisung in kwh wird wie geplant jedes mal im Base64 Code zurückgegeben.
Die Leistung wird nur ca. einmal pro Minute ausgegeben.
Woran kann das liegen?
Ich vermute an Powerfox.

1 Like

The past weeks (and still ongoing) there has been a lot of work on the development of a core integration for Powerfox and this will be available for everyone from release 2025.1 in Home Assistant. At the moment there is only support for power and water poweropti’s, because I have not yet had an API response from the heat and gas poweropti.

Big thanks to @DeutscheMark for testing and @saxn-paule for providing response data :blue_heart:

./Klaas

1 Like

Ich nutze die Integration seit langer Zeit mit nachfolgendem Code. Die Leistung aktualisiert sich sekündlich ohne Probleme. Nur Home Assitant zeigt in der Regel an “letzte Änderung vor 5 Sekunden” - obwohl der Wert sich sekündlich ändert.

rest:
  - resource: http://**loca_IP**/rpc
    method: POST
    payload: '{"id":1,"jsonrpc":"2.0","method":"getConfig","params":{"key":"latest_data"}}'
    scan_interval: 1
    headers:
      Content-Type: application/json
    sensor:
      - name: "poweropti_local"
        json_attributes:
          - "jsonrpc"
          - "id"
          - "result"
        value_template: >
          {% set json = value_json.result | base64_decode %}
          {% set Timestmp = (json | from_json())[0].t %}
          {% set zaehlernummer = (json | from_json())[0].m %}
          {% set A_Plus = (json | from_json())[0].d[0].v %}
          {% set A_Plus_HT = (json | from_json())[0].d[1].v %}
          {% set A_Plus_NT = (json | from_json())[0].d[2].v %}
          {% set A_Minus = (json | from_json())[0].d[3].v %}
          {% set timestmp2 = (json | from_json())[1].t %}
          {% set watt = (json | from_json())[1].d[0].v %}
          {{ '{"Watt":' + (watt | string)  + ',"Timestamp":' + (Timestmp | string)  + ',"A_Plus":' + (((A_Plus | float) / 1000) | string) + ',"A_Minus":' + (((A_Minus | float) / 1000) | string) + '}' }}

template:
  - sensor:
      - name: "Strom aktuell"
        unit_of_measurement: "W"
        device_class: "power"
        state_class: "measurement"
        state: >
          {{ (states('sensor.poweropti_local')|from_json).Watt }}
      - name: "Strom Bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {{ (states('sensor.poweropti_local')|from_json).A_Plus }}
      - name: "Strom-Netz-Lieferung"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {{ (states('sensor.poweropti_local')|from_json).A_Minus }}

Das ganze funktioniert auch prima, wenn man den Powerfox nicht mehr mit deren Cloud verbunden hat. Die Neuverbindungsanfragen im Sommer habe ich einfach ignoriert, da mir der Laden auf den Geist ging.

That’s sounds great. Thanks for your efforts!
Are you using the local API or the cloud based one?

It is cloud based, local could always be added. I just don’t have poweropti myself, so I would have to test remote.

That works only with old devices with old firmware. The RPC endpoint was closed months ago and is no longer accessible.

Therefore the only possibility is the cloud based one :frowning: