Eltako ZGW16WL-IP with API

Hi, I got the ZGW16WL-IP and would like to add this to Home Assistant.

This device is connected to DSZ15DZMOD via Modbus
the MQTT is used by my energy provider, so I can’t use it - as only one mqtt connection can be set.

This device is advertised with a REST API / Open API
Is there an easy way to be able to get the energy data?

This is the API documentation: ELTAKO ZGW16-IP OpenAPI Documentation | ELTAKO ZGW16-IP OpenAPI

Would be great if I could use the API to integrate the meter data :slight_smile:
Thanks

I played a bit according the documentation.
After a First POST with the Login I got the AccessToken.
Then I could start a GET and received some data:

{
  "device" : {
    "manufacturer" : "Eltako",
    "lastSeen" : "",
    "deviceType" : "DSZ15DZMOD",
    "friendlyId" : "",
    "busAddress" : 1,
    "functions" : [
      {
        "value" : 226.22999999999999,
        "key" : "Voltage of L1 to N",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : "Volt"
      },
      {
        "value" : 222.31,
        "key" : "Voltage of L2 to N",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "Volt"
      },
      {
        "value" : 232.61000000000001,
        "key" : "Voltage of L3 to N",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "Volt"
      },
      {
        "value" : 1.76,
        "key" : "L1 Current",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "A"
      },
      {
        "value" : 2.4900000000000002,
        "key" : "L2 Current",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "A"
      },
      {
        "value" : 1.1000000000000001,
        "key" : "L3 Current",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "A"
      },
      {
        "value" : 233,
        "key" : "L1 active power",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "Watt"
      },
      {
        "value" : 466,
        "key" : "L2 active power",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "Watt"
      },
      {
        "value" : 141,
        "key" : "L3 active power",
        "timestamp" : "2026-02-04T18:35:41+0100",
        "unit" : "Watt"
      },
      {
        "value" : 0.58299999999999996,
        "key" : "L1 power factor",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : ""
      },
      {
        "value" : 1,
        "key" : "L2 power factor",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : ""
      },
      {
        "value" : 0.54800000000000004,
        "key" : "L3 power factor",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : ""
      },
      {
        "value" : 841,
        "key" : "Total active power",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : "Watt"
      },
      {
        "value" : 0.69399999999999995,
        "key" : "Total power factor",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : ""
      },
      {
        "value" : 12.66,
        "key" : "Total imported active energy",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : "kWh"
      },
      {
        "value" : 1.0900000000000001,
        "key" : "Total exported active energy",
        "timestamp" : "2026-02-04T18:35:40+0100",
        "unit" : "kWh"
      }
    ],
    "firstSeen" : "",
    "forwardOnMqtt" : false
  }
}

I searched a bit but accordinf the documentation I can’t use it like the - if I see it correct?
According the documentation, the access Token is only 15min valid - then a new login / token is needed.

Do I need an integration for this? Or is there an integration available?

Thanks :smile: