LoRa-Stomzähler via TTN auslesen

Da sich mein Stromzähler im Keller nicht ans WLAN anschließen lässt, nutze ich das iOKE868 Smart Metering Kit. Es ist per LoRaWAN an The Things NETWORK angebunden, welches ich in mein Home Assistant eingebunden habe.

Jetzt habe ich eine Entität, die wechselnd den Verbrauch und die Einspeisung eines Balkonkraftwerks ausgibt. Mir stellt sich die Frage, wie ich diese wechselnde Werte einem Verbrauchs- bzw. einem Einspeisesensor zuordne.

So sieht die Ausgabe im json-Format aus.

Für den Verbrauch

{
  "OBIS_IDs": [
    {
      "GroupMask": 252,
      "OBIS_ID": "1_0_1_8_0_255",
      "Scaler": -1,
      "rawValue": 101501104,
      "unit": "Wh",
      "value": 10150110.4
    }
  ],
  "general_info": {}
}

und für die Einspeisung

{
  "OBIS_IDs": [
    {
      "GroupMask": 252,
      "OBIS_ID": "1_0_2_8_0_255",
      "Scaler": -1,
      "rawValue": 24176,
      "unit": "Wh",
      "value": 24176.6
    }
  ],
  "general_info": {}
}

Die Werte sind anhand der OBIS_IDs zu unterscheiden. Wie kann ich das je nach OBIS_ID unterschiedlichen Sensoren zuordnen?

Vielen Dank für eure Hilfe!

wirklich nur eine Entität?

Hat der Sensor denn irgendwelche Attribute womit man das vielleicht unterscheiden könnte?
Die siehst du in den Entwicklerwerkzeugen → Zustände

Wo hast du die JSON her?
vielleicht könnte man damit was machen.

Aber ne richtige Idee habe ich auch noch nicht.

LG
Tobi

Genau genommen habe ich ein Device mit einer Sensor-Entity. Das Format dee Entity liegt in json vor. Die Dartstllung dieses Formats stammt von TTN wegen der besseren Lesbarkeit. In Home Assistant wird der State des Sensors so dargestellt:

[{‘GroupMask’: 252, ‘OBIS_ID’: ‘1_0_2_8_0_255’, ‘Scaler’: -1, ‘rawValue’: 24598, ‘unit’: ‘Wh’, ‘value’: 2459.8}]

Das Attribut zur Unterscheidung ist “OBIS_ID”

Ich glaube, ich habe es gelöst. Ich habe mir zwei Template Sensoren erstellt, die den String extrahieren. Diese musste ich dann noch durch 10 dividieren um an die Nachkommastellen zu kommen.

# Strombezug
- name: "Strombezug"
  unique_id: "strombezug"
  unit_of_measurement: "Wh"
  device_class: energy
  state_class: total_increasing
  state: >
    {% if '1_0_1_8_0_255' in states('sensor.ioke868_obis_ids') %}
      {{ states('sensor.ioke868_obis_ids')[74:83]|float(0) / 10}}
    {% endif %}

# Stromeinspeisung
- name: "Stromeinspeisung"
  unique_id: "stromeinspeisung"
  unit_of_measurement: "Wh"
  device_class: energy
  state_class: total_increasing
  state: >
    {% if '1_0_2_8_0_255' in states('sensor.ioke868_obis_ids') %}
      {{ states('sensor.ioke868_obis_ids')[74:79]|float(0) / 10}}
    {% endif %}