[Solved] Integrate SmartMeter (EWE ELMO / Benera Beefriends)

Hello everyone,

My photovoltaic system has recently been in operation. Now that I have successfully integrated the inverter, I would like to integrate my SmartMeter from EWE into HomeAssistant.

I’ve been trying desperately for days now and to be honest you’re my last solution.

The topic itself I have already described in another forum

It is probably a [BSED NanoBeemesPro v2.1 SmartMeter.]
The connection to the app has of course been working for me for years.

And before the question comes. There are other measuring options, such as the “Volksähler”, but I’m specifically concerned with the EWE system or the SmartMeter.

I can also access the web interface of the SmartMeter via the IP address ( htt p://IPaddress ). However, I am only offered the possibility to change the WLAN.

I then have access to the current data via htt p://IPadresse/data

JSON (data.json)
{
    "meterId": "ZählerID",
    "deviceId": "GeräteID",
    "msgType": "EMETER_OBIS_V2",
    "measurements": [{
            "timestamp": "2023-03-21T11:52:02Z",
            "values": {
                "1-119:7.1.0*2": "08 00 FF 01 72 62 01 65 ",
                "1-0:16.7.0*255": -12.670000076293945,
                "1-0:2.8.0*255": 80.014396667480469,
                "1-0:1.8.0*255": 22538.830078125,
                "1-0:96.1.0*255": "Zählernummer",
                "1-0:96.50.1*1": "XXXXX"
            }
        }
    ]
}

In addition, I can display more information via htt p://IPadresse/reported

JSON(reported.json)
{
    "system": {
        "enabled": true,
        "ntpServer": "pool.ntp.org",
        "actualTime": "2023-03-22T10:18:04Z",
        "lastTimeSync": "2023-03-22T00:56:17Z",
        "lastOnboarding": "2022-12-30T12:15:49Z",
        "vendor": "BSED GmbH",
        "type": "nanoBeemesPro",
        "deviceId": "deviceId",
        "fwVersion": "1.0.032",
        "hwVersion": "2.1",
        "boot": {
            "last": "2023-03-22T00:55:54Z",
            "lastUnscheduled": "2023-03-20T14:22:38Z",
            "reason": "SW_RESET",
            "nextScheduled": "2023-03-22T23:31:42Z"
        },
        "wlan": {
            "staActive": true,
            "apActive": false,
            "apSsid": "Sensor_SSID",
            "apPasswd": "Apppassword",
            "staRssi": -36,
            "staIP": "IPAdresse",
            "staUseDhcp": false,
            "lastReconnect": "2023-03-22T00:56:17Z",
            "reconnectCnt": 1
        },
        "iothub": {
            "lastReconnect": "2023-03-22T00:56:20Z",
            "reconnectCnt": 2
        },
        "updateState": "NONE"
    },
    "interval": {
        "transport": 0,
        "update": 900,
        "sample": 0
    },
    "meter": {
        "id": "SmartMeterID",
        "manufacturer": "",
        "pin": "PIN",
        "factor": 1,
        "interval": 2,
        "sequence": "",
        "receivingValues": true,
        "extendedValues": true,
        "irState": "OK",
        "pinState": "PINNED",
        "uartmode": "9600 8N1",
        "protocol": "SML",
        "receivedObis": ["1-0:96.50.1*1", "1-0:96.1.0*255", "1-0:1.8.0*255", "1-0:2.8.0*255", "1-0:16.7.0*255"]
    },
    "obis": []
}

The data point “1-0:16.7.0255" is the current consumption, which can also go negative when feeding in (kwh)
The data point: "1-0:2.8.0
255” is what I fed in as a whole
The data point: “1-0:1.8.0*255” is the current counter reading

I received the following information from my energy provider EWE:



IKE + BSED
Http GET method on endpointt http://<ip-adresse-des-sensors>/data
Response:{
  "deviceId": "EBEN0000000000",
  "measurements": [
    {
      "timestamp": "2022-09-19T13:39:16Z",
      "values": {
        "<obis-code-with-double-value>": 0.0,
        "<obis-code-with-string-value>": ""
      }
    }
  ],
  "meterId": "1XXX0000000000",
  "msgType": "EMETER_OBIS_V2"
}
Example call via shell with curl curl http://192.168.4.1/data
Additional info: New data is available every 2 seconds

As far as I understand it now, I have to integrate the whole thing into HA via Curl.

Accordingly, it should look like this in configuration.yaml:

#BSED NanoBeemesPro v2.1 SmartMeter
rest:
  - resource: http://192.XXX.XXX.XXX/data/
    method: GET
    headers:
      Content-Type: application/json
    scan_interval: 2
    sensor:
        #Aktueller Stromverbrauch
      - name: smartmeter_current_consumption
        value_template: '{{ value_json["1-0:16.7.0*255"] }}'
        unit_of_measurement: kW
        device_class: power

However, I get no value displayed. I assume very strongly that I’m on the right path, but I probably didn’t “think” it through to the end.

Maybe someone can help :slight_smile:

Home Assistant runs on my Synology RS1221+ as a Docker instance. However, this is only as marginal information.

I hope I summarized everything that is needed. Please forgive me, I’m just getting used to HomeAssistant and I’m trying to solve a lot on my own, but I don’t seem to be making any progress here.

After a little reading, I figured it out myself

  - platform: rest
    # SmartMeter Aktueller Verbrauch
    name: Energieverbrauch
    resource: http://<IP-Adress>/data
    scan_interval: 2
    json_attributes_path: "$.measurements[0].values"
    json_attributes:
    - 1-0:16.7.0*255
    value_template: "{{ value_json.current_consumption }}"
    unit_of_measurement: Wh
    device_class: energy

24-03-_2023_17-04-38

Maybe someone can help me to get the attribute in the diagram

Hallo,

hast Du eine Lösung gefunden? Würde ebenfalls gerne meinen ELMO in HA einbinden…

vielen Dank und viele Grüße

Hallo, ich habe bei mir folgende Eintragungen zu ELMO vorgenommen:

rest:
    resource: http://192.168.178.66/data
    scan_interval: 10
    sensor:
      - name: 'ELMO'
        value_template: "{{ value_json.value }}"
        json_attributes_path: "$.measurements[0].values"
        json_attributes:
          - 1-0:1.8.0*255
          - 1-0:2.8.0*255
          - 1-0:16.7.0*255
          - 1-0:36.7.0*255
          - 1-0:56.7.0*255
          - 1-0:76.7.0*255

template:
  - sensor:
    - name: "ELMO Leistung"
      unit_of_measurement: "W"
      device_class: "power"
      state_class: "measurement"
      state: >
          {{ state_attr('sensor.elmo', '1-0:16.7.0*255')}}
    - name: "ELMO Verbrauch"
      unit_of_measurement: "kWh"
      device_class: "power"
      state_class: "measurement"
      state: >
          {{ state_attr('sensor.elmo', '1-0:1.8.0*255')}}
    - name: "ELMO Einspeisung"
      unit_of_measurement: "kWh"
      device_class: "power"
      state_class: "measurement"
      state: >
          {{ state_attr('sensor.elmo', '1-0:2.8.0*255')}}
    - name: "ELMO P1 Leistung"
      unit_of_measurement: "W"
      device_class: "power"
      state_class: "measurement"
      state: >
          {{ state_attr('sensor.elmo', '1-0:36.7.0*255')}}
    - name: "ELMO P2 Leistung"
      unit_of_measurement: "W"
      device_class: "power"
      state_class: "measurement"
      state: >
          {{ state_attr('sensor.elmo', '1-0:56.7.0*255')}}
    - name: "ELMO P3 Leistung"
      unit_of_measurement: "W"
      device_class: "power"
      state_class: "measurement"
      state: >
          {{ state_attr('sensor.elmo', '1-0:76.7.0*255')}}

Damit sehe ich dann folgendes:

Ich fand auch ganz interessant zu sehen, was auf den einzelnen Phasen so los ist.

Vielleicht hilft das ja.

2 Likes

Ich habe es so gelöst. Ich wollte nur den aktuellen Stromververbrauch:

#BSED NanoBeemesPro v2.1 SmartMeter
sensor:
  - platform: rest
    # SmartMeter Aktueller Verbrauch
    name: smartmeter
    resource: http://192.168.0.88/data
    scan_interval: 2
    headers:
      Content-Type: application/json
    json_attributes_path: "$.measurements[0].values"
    json_attributes:
    #Aktueller Stromverbrauch
    - 1-0:16.7.0*255
    value_template: "{{ state_attr('sensor.smartmeter', '1-0:16.7.0*255')}}"
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing