Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Bereich rings rum zum Thema Yaml und seine Tücken.


Antworten
Jim_OS

Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Jim_OS »

Im Einsatz ist ein MOSZB-140 BWM von Develco. Dieser ist per MQTT eingebunden und misst u.a. auch die Temperatur (sensor.bwm_01_temperature).

state_class: measurement
battery_low: false
illuminance: 29904
illuminance_lux: 978
linkquality: 105
occupancy: false
tamper: false
temperature: 22.37
unit_of_measurement: °C
device_class: temperature
friendly_name: BWM_01_temperature

Der Sensor gibt die Temperatur mit 2 Stellen nach dem Komma aus, was Google Home leider als Uhrzeit interpretiert und somit statt 22,37 Grad sagt das es 22 Uhr 37 Minuten ist. :lol: Also muss ich die Nachkommastelle auf 1 reduzieren. BTW: Fragt mich jetzt bloß nicht warum Google einen Temperatursensor als Uhrzeit interpretiert. :roll:

Da mich die zweite Nachkommastelle bei Grad grundsätzlich nicht interessiert möchte ich das der BWM nur noch eine einstellige Nachkommazahl liefert. Es gibt ja unterschiedliche Ansätze wo und wie ich die Nachkommastelle ändern könnte. Wie z.B.:

{{ states('sensor.bwm_01_temperature') | float | round (1) }}

Oder auch

value_template: "{{ value | float | round (1) }}"

Edit: Oder ggf. auch so

Code: Alles auswählen

sensor:
  platform: template
    sensors:
      rounded_temperature:
        friendly_name: "Temperatur BWM Nachkommastellen"
        unit_of_measurement: "°C"
        value_template: " {{ states('sensor.bwm_01_temperature') | float | round(1) }}"

Aber kann ich das auch hierüber machen und wenn ja wie?

Entwickler_Zustände.png

Oder müsste ich dafür extra einen neuen Sensor erstellen? Also etwas in der Art:

Code: Alles auswählen

sensor:
- platform: mqtt
      name: "BWM Temperatur"
      device_class: temperature
      state_class: measurement
      unit_of_measurement: "°C"
      value_template: "{{ value | float  | round (1) }}"


Nachtrag
: Die Lösung die schon mal funktioniert ist die:

Code: Alles auswählen

sensor:
  - platform: template
    sensors:
      rounded_temperature:
        friendly_name: "Temperatur BWM Nachkommastellen"
        unit_of_measurement: "°C"
        value_template: " {{ states('sensor.bwm_01_temperature') | float | round(1) }}"

Sofern es noch einen Ansatz gibt den Nachkommawert über die Entwicklerwerkzeuge - Zustände bei dem BWM selber zu machen dann immer her damit. :)

VG Jim

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

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Osorkon »

Wenn Du den ursprünglichen Wert manipulieren willst, sei nur die Anzahl der Nachkommastellen, kommst Du um einen Template Sensor nicht rum. Den Orginal Sensor kannst Du ja dann einfach ausblenden.

Was ich nur nicht verstehe, warum Du die MQTT Platform verwenden willst?! Oder was das mit MQTT zu tun haben soll?!

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Jim_OS

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Jim_OS »

OK danke. Zu Deiner Frage: Weil ich von Anfang an schon MQTT u.a. auch für Zigbee2MQTT nutze. Somit laufen auch alle meine Zigbee Geräte - wie eben auch der MOSZB-140 BWM - darüber. :)

BTW: Die Änderung auf eine Nachkommastelle hat zwar funktioniert, aber jetzt weiß Google Home mit dem Wert gar nichts mehr anzufangen. Die Antwort auf die Frage nach der Temperatur lautet jetzt: "Die aktuelle Temperatur beträgt anon Grad." :roll: Wobei "anon" wohl anonymous bedeuten wird. Aber das ist ein Problem von Google Home und nicht von HA.

Nur noch einmal zur Sicherheit: Der Code sollte so doch stimmen, oder?

Code: Alles auswählen

sensor:
  - platform: template
    sensors:
      rounded_temperature:
        friendly_name: "Temperatur BWM Nachkommastellen"
        unit_of_measurement: "°C"
        device_class: temperature
        value_template: " {{ states('Temperatur_BWM_Flur') | float | round(1) }}"

Oder habe ich da ggf. etwas vergegssen und darum kommt bei Google jetzt dieses "anon"?

Bei HA selber passt die Anzeige und es wwird nur noch eine Nachkommastelle angezeigt.

Anzeige_Temperatur_BWM_Flur.png

und der alte Sensor zeigt weiterhin brav seine zwei Nachkommastellen an

Temp_Flur_alt.png

VG Jim

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

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Osorkon »

Sieht erstmal gut aus. Wobei ich Dir empfehlen würde die Template Integration zu verwenden und nicht die Platform Template der Sensor Integration.

Bei Google kann ich Die leider nicht weiter helfen.
Vielleicht muss der in Google noch als Temperatur Sensor klasifiziert werden?

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Jim_OS

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Jim_OS »

Manchmal sitzt der "Fehler" auch vor dem PC. :lol:

Ich habe den Fehler gefunden. :D Ich hatte statt dem Sensor sensor.rounded_temperature den falschen Sensornamen "Temperatur_BWM_Flur" eingetragen. Klar das dann kein Wert gefunden werde konnte. :oops: Jetzt funktioniert es wie es soll! 8-)

OK es ist jetzt Zeit für eine Pause ....


Nachtrag:
Was genau Du mit die Template Integration zu verwenden und nicht die Platform Template der Sensor Integration meinst weiß ich im Moment zwar noch nicht so genau, aber mir schwirrt im Moment eh der Kopf. Vielleicht verstehe ich es ja später nach einer Pause. :lol:

VG Jim

Jim_OS

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Jim_OS »

Moin Osorkon,

auch nach einer längeren Pause :) verstehe ich leider immer noch nicht was Du mit dem ...und nicht die Platform Template der Sensor Integration genau meinst. :oops:

Ich habe bisher noch noch viel mit Templates gearbeitet. Die die ich erstellt habe betreffen eigentlich alle das Thema Energy Sensoren, also Shelly, Tasmota, PV, usw. Diese habe ich alle, wie jetzt auch den MOSZB-140 BWM Sensor, nach dem gleichen Muster erstellt, also z.B. den Verbrauch von allen Tasmota Steckdosen zusammenfassen:

Code: Alles auswählen

  - platform: template
    sensors:
      verbrauch_total:
        friendly_name: 'Verbrauch total'
        unit_of_measurement: "W"
        value_template: >-
        ....

und dann unter sensor: in der configuration.yaml eingetragen. Was könnte/sollte/müsste man dann da anders machen? Du hast hier in div. Beiträgen ja schon viel zu Template geschrieben und falls Du das hier schon einmal erklärt hast kann es das jetzt leider nicht finden. :oops: Könntest Du mir bitte den Link nennen, sofern Du das hier schon mal erklärt hast, oder mir erklären was ich anders/besser machen könnte/sollte? Danke. :)

VG Jim

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

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Osorkon »

Jim_OS hat geschrieben: Sa 23. Jul 2022, 12:20

auch nach einer längeren Pause verstehe ich leider immer noch nicht was Du mit dem ...und nicht die Platform Template der Sensor Integration genau meinst.

Integration Sensor, Plattform Template, ist die veraltetet Form, die die du noch verwendest.
Sie wird zwar noch unterstützt, die Frage ist nur wie langen. -> Legacy Sensor configuration format -> This format still works but is no longer recommended

Die neue Form ist die Template Integration, die vorzugsweise verwendet werden soll.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Jim_OS

Re: Kommastellen eines Temperatursensors (MQTT) dauerhaft ändern?

Beitrag von Jim_OS »

Ah ok jetzt weiß ich was mit/in alter und neuer Form gemeint ist. :)

VG Jim

Antworten