Werte MQTT übernehmen

Alles Rund um das Thema MQTT und Home Assistant


Antworten
Benutzeravatar
Markus
Beiträge: 437
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 21 times
Been thanked: 8 times

Werte MQTT übernehmen

Beitrag von Markus »

Im MQTT Explorer hab ich z.B folgende Einträge
Topic: ebusd5/21576/heatpump.hours

Value

Code: Alles auswählen

{
     "0": {"name": "group", "value": 81},
     "1": {"name": "value", "value": 1},
     "2": {"name": "type", "value": "1d"},
     "3": {"name": "unit", "value": 0},
     "4": {"name": "max", "value": 0.2},
     "5": {"name": "", "value": "36"},
     "6": {"name": "hours", "value": 3525
     }
}
     

Hätte mir dazu einen MQTT Sensor angelegt mit:

Code: Alles auswählen

  - name: "WP_hours"
    state_topic: "ebusd5/21576/heatpump.hours"
    value_template: "{{ value| regex_findall_index(find='.*;(.*)',index=0,ignorecase=False) | int  }}"
    unit_of_measurement: "h"

Unter States hab ich allerdings nur "unkown"....was könnte hier falsch sein?

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Werte MQTT übernehmen

Beitrag von Osorkon »

Bin was das Thema MQTT so gut wie blank.

Mit EBUSD Integration kommst Du weiter, oder?
Aber sicher schon versucht, sonst würdest Du ja nicht den Weg über MQTT gehen.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Werte MQTT übernehmen

Beitrag von Osorkon »

Wie gesagt, bin kein MQTT Experte.
Du willst doch das Attribut 6 auslesen, also in Deinem Bsp.: "value": 3525, richtig?

Dann müsste meiner Meinung nach, das value_template so lauten:

Code: Alles auswählen

value_template: "{{ value_json['6'].value | int(0) }}"

Zumindest, wenn ich den template Editor verwende in Verbindung mit Deiner json

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 437
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 21 times
Been thanked: 8 times

Re: Werte MQTT übernehmen

Beitrag von Markus »

Danke, die EBUSD Integration läuft bei mir nicht (warum auch immer nicht), sehr wohl aber das ebusd Addondas die Werte via MQTT überträgt.

Mittels Template bekomm ich den Wert aber nicht raus:

Code: Alles auswählen

value_template: "{{ value_json['6'].value | int(0) }}"

Fehlermeldung

Code: Alles auswählen

UndefinedError: 'value_json' is undefined
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Werte MQTT übernehmen

Beitrag von Osorkon »

Code: Alles auswählen

{% set value_json = {
     "0": {"name": "group", "value": 81},
     "1": {"name": "value", "value": 1},
     "2": {"name": "type", "value": "1d"},
     "3": {"name": "unit", "value": 0},
     "4": {"name": "max", "value": 0.2},
     "5": {"name": "", "value": "36"},
     "6": {"name": "hours", "value": 3525}
  } %}
{{ value_json['6'].value | int(0)}}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Werte MQTT übernehmen

Beitrag von Osorkon »

Hallo @Markus habe mal meinen MQTT Broker mit Deiner Json gefüttert.
Auf dem Topic test/test

Dieser MQTT Sensor funktioniert zumindest bei mir richtig

Auszug aus der mqtt.yaml

Code: Alles auswählen

sensor:
  - name: 'Test WP Hours'
    state_topic: 'test/test'
    value_template: |
      {{ value_json['6'].value | int(0)}}
    unit_of_measurement: 'h'
    state_class: 'measurement'
    unique_id: e99f1140-083c-11ee-a640-919d866941ac
MQTT_Sensor.png
MQTT_Sensor.png (11.23 KiB) 300 mal betrachtet

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 437
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 21 times
Been thanked: 8 times

Re: Werte MQTT übernehmen

Beitrag von Markus »

hmm, das Template funktioniert einfach nicht..

Code: Alles auswählen

sensor:
  - name: 'Test WP Hours'
    state_topic: 'ebusd5/21576/heatpump.hours'
    value_template: |
      {{ value_json['6'].value | int(0)}}
    unit_of_measurement: 'h'
    state_class: 'measurement'
    unique_id: e99f1140-083c-11ee-a640-919d866941a

Fehler:

Code: Alles auswählen

UndefinedError: 'value_json' is undefined

ABER ich hab jetzt unter States sehr viele Sensoren wie zB auch

Code: Alles auswählen

sensor.ebusd5_21576_heatpump_hours_hours
state_class: total_increasing
unit_of_measurement: h
friendly_name: ebusd5 21576 heatpump.hours hours

Jetzt muss ich nur noch rausfinden wie ich die Wärmepumpe starten kann...

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Werte MQTT übernehmen

Beitrag von Osorkon »

Markus hat geschrieben: So 11. Jun 2023, 20:29

hmm, das Template funktioniert einfach nicht..

Wo hast Du den Sensor eingetragen? In der mqtt.yaml? Da gehört er nämlich hin.

Der Fehler klingt, als ob Du den Sensor z.B. in der template.yaml eingetragen hast?!

Markus hat geschrieben: So 11. Jun 2023, 20:29

ABER ich hab jetzt unter States sehr viele Sensoren wie zB auch

Das heisst, Home Assistant hat die Sensoren über MQTT Auto Discovery selbst gefunden.

Um was Steuer zu können brauchst Du einen switch oder ein input select oder desgleichen. Schaue mal bei deinen Entitäten ob Du das was findest.
Über einen Sensor kannst Du ja nur werte empfangen, aber nichts steuern.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Markus
Beiträge: 437
Registriert: Fr 23. Jul 2021, 09:03
2
Wohnort: Österreich
Has thanked: 21 times
Been thanked: 8 times

Re: Werte MQTT übernehmen

Beitrag von Markus »

hmm, hab ihn "nur" im Template Editor eingetragen....

Antworten