Mqtt Anfängerproblem, yasdi2mqtt

Hallo,
Ich habe gerade eine Software installiert (yasdi2mqtt) welche über RS485 meine beiden SMA Wechselrichter ausliest und an den MQTT Broker übergibt. Das funktioniert auch. In einem MQTT Explorer sehe ich, dass alle paar Sekunden neue Werte dort ankommen. Nun ist mir aber nicht klar wie ich die Daten in Homeassistant anlege um sie anzuzeigen?
Man kann ja in MQTT Geräte konfigurieren oder in der configuration.yaml Sensoren definieren. Habe jetzt schon einige Versiche gemacht, komme aber nicht weiter.
Wer kann mir auf die Sprünge helfen? So sieht der Eintrag im mqtt Explorer aus:


  "sn": 2000906260,
  "time": 1746291861,
  "values": {
    "Upv-Ist": 255,
    "Upv-Soll": 256,
    "Iac-Ist": 3.8950001850025728,
    "Uac": 234.5000034943223,
    "Fac": 50.039998881518841,
    "Pac": 913,
    "Zac": 0.44800002127885818,
    "Riso": 3000,
    "Ipv": 3.7740001792553812,
    "E-Total": 66849.3181751721,
    "h-Total": 65463.7228884896,
    "h-On": 68218.860188314138,
    "Netz-Ein": 22710,
    "Seriennummer": 2000906260,
    "Status": "Mpp",
    "Phase": "-------",
    "Fehler": "-------"
  }
}

Ich möchte z.B. Upv-Ist als sensor anlegen.
Das habe ich in der configuration.yaml mal ausprobiert, liefert aber keine Werte:

mqtt:
  sensor:
    - name: "Spannung"
      state_topic: "solar/inverter/2000906260"
      unit_of_measurement: "V"
      value_template: "{{ value_json.Upv-Ist }}"

Probiere es mal so:

mqtt:
  sensor:
    - name: "Spannung"
      state_topic: "solar/inverter/2000906260"
      unit_of_measurement: "V"
      value_template: '{{ value_json.values["Upv-Ist"] }}'

Kann für den JSON Path nur solche tools empfehlen wenn man sich noch nicht auskennt:

Musst dabei bei der YAML nur aufpassen mit den unterschiedliche ' " das du das was du vor und hinter dem Template nicht im Template verwendest.

LG
Tobi

Hallo Tobi,
Danke für deine Antwort. Leider funktioniert es nicht. Ich komme an die sn und time ran, aber nicht an die Inhalte unter „values“
Irgendwie muss man diesen verschachtelten json noch auflösen, nur wie???
Grüße Peter

Versuche es mal so

  sensor:
    - name: "Spannungr"
      state_topic: "solar/inverter/2000906260/"
      unit_of_measurement: "V"
      value_template: "{{ value_json['Upv-Ist'] }}"

Beim state_topic bin ich mir jetzt nicht sicher, da der obere Part in deinem Auszug vom MQTT-Explorer fehlt.

mqtt:
  sensor:
    - name: Spannung
      state_topic: "solar/inverter/2000906260"
      unit_of_measurement: V
      value_template: "{{ value_json.values['Upv-Ist'] }}"
      state_class: measurement
      device_class: voltage

müsste eigentlich richtig sein, habe es jetzt nochmal um die richtige state_class und device_class erweitert.

Der state_topic sollte ja richtig sein:

Sonnst fällt mir auch grad nichts weiter ein.

Danke für die Antworten. Letztendlich hat das hier geklappt:

value_template: '{{ value_json["values"]["Upv-Ist"] }}'

habe ich irgendwo in der Hilfe gefunden.

aber jetzt noch weitere Fragen:
Riso ist der Isolationswiderstad in Ohm (nehme ich mal an). Wie kann ich homeassistant sagen, dass es die Einheit Ohm ist und die device class Widerstand? Das gibt es ja standardmäßig nicht.
device_class: voltage
unit_of_measurement: V

Und dann geht es weiter mit dem Status, Phase und Fehler, hier kommt ja Text an. Und ich kann gar nicht sagen, ob das eine enumeration ist oder was da überhaupt im Fehlerfall kommt. Hat da jemand einen Hinweis? Gibt es eine deviceclass Text?
Grüße Peter

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Nein, hier alle device_class für Sensoren.

Ist aber auch nur Optional kann man also weg lassen.

1 „Gefällt mir“