Sensor ohne Nachkommastellen darstellen, ohne zu Runden!

Moin liebe Community,

ich hätte da wieder mal ein Problem. Meine Verbrauchszähler (Strom, Gas und Wasser) habe ich jetzt in HA integriert und kann die Zählerstände ohne in den Keller gehen zu müssen ablesen.

Da die Energieversorger die Zählerstände ohne Nachkomma haben möchten, möchte ich diese auch gar nicht erst anzeigen. Wie das geht, ist mir klar, nur dann wird ggf. aufgerundet, womit der Wert nicht mit dem angezeigtem am Zähler (hier Stromzähler) übereinstimmt. Leider habe ich keine Funktion gefunden, mit welcher ich alles nach dem Komma abschneiden kann, ohne dass sich an den Stellen vor dem Komma etwas verändert (Aufrundung). Meine Sensoren habe ich mir so erstellt:

  - sensor:
      - name: "Zählerstand Bezug"
        unique_id: "zahlerstand_bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state: >-
          {{ states('sensor.stromzahler_bezugszahler', 'kWh') | round(1) }}

  - sensor:
      - name: "Zählerstand Einspeisung"
        unique_id: "zahlerstand_einspeisung"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state: >-
          {{ states('sensor.stromzahler_einspeisezahler', 'kWh') | round(1) }}

  - sensor:
      - name: "Zählerstand Gas"
        unique_id: "zahlerstand_gas"
        unit_of_measurement: "m³"
        device_class: "gas"
        state: >-
          {{ states('sensor.raspberrymatic_svenergycounter_22092_003fa2698ab027_2', 'm³') | round(1) }}

Besten Dank für Eure Unterstüzung!

Also möchtest Du imme abrunden.

| round(0, 'floor')

Siehe auch Dokumentation
https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.round

Oder Du rundest erst gar nicht und machst einen Integer draus.

| int(0)

Gruß
Osorkon

2 „Gefällt mir“

Ich danke Dir erneut, genau das habe ich gesucht :smiling_face_with_three_hearts:

Habe ich beides versucht, klappt leider nicht. ich möchte den Wert als ganze Zahl ausgeben
Die Urform stammt aus dem Video von Simon42 zum Balkonkraftwerk.

Hier der Code:

  - sensor:
      - name: b2500 Power current CT001
        unique_id: "b2500_power_cur_ct001"
        state_class: measurement
        icon: mdi:transmission-tower
        unit_of_measurement: W
        device_class: power
        state: >
            {% if is_number(states('sensor.tasmota_mt681_power_cur')) and states('sensor.tasmota_mt681_power_cur') | float(0) < 0 %}
                {{(states('sensor.tasmota_mt681_power_cur') | float(0))*-1/10 | round(0) }}
            {% else %}
                {{(states('sensor.tasmota_mt681_power_cur')) | round(0) }}
            {% endif %}

Der negative Wert, falls vorhanden wird in einen positiven gewandelt und verringert (/10)

                  {{(states('sensor.tasmota_mt681_power_cur') | float(0))*-1/10 | round(0) }}

Ich möchte die Nachkommastellen los werden

Beide funktionieren:

{{(10.5 | float(0) * -1 / 10) | round(0) }}
= -1
{{(10.5 | float(0) * -1 / 10) | int }}
= -1

aber Deine Klammersetzung (Sensor) * -1 / 10 ändere in (Sensor * -1 / 10 )

Noch eine Bemerkung zu Deinem Code: Du fragst 3 mal die gleiche Variable ab. Warum nicht reduzieren auf 1x?

{% set power = states('sensor.tasmota_mt681_power_cur') | float(0) %}
{% if power < 0 %}
  {{ (power * -1 / 10) | int }}
{% else %}
  {{ power | int }}
{% endif %}

Schöne Woche

Danke für die Hilfe, im Template Editor von HA klappt das hervorragend.

Das etwas umfangreiche Konstrukt stammt ja von Simon42 und der hat erst prüfen lassen ob der Wert eine Zahl ist und dann den Wert erst zum positiven gewandelt.

Ich habe deinen Vorschlag in meinen template Sensor eingebaut und der macht was ich wollte.

Super.

Freut mich. Simon ist toll aber auch nicht allwissend. Wie wir alle entwickelt er sich weiter und so ein Video ist immer eine Momentaufnahme. Das Wissen im Forum ist super, gemeinsam gehts immer besser.