Fehlermeldung beim Sensor von Bitshake smartreader

Hey Leute, ich bekomme diese Fehlermeldung:

2025-12-15 11:38:25.068 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('TypeError: 'float' object is not callable') while processing template 'Template<template=({{ float(0) (states("sensor.bitshake_smartmeterreader_ehz_e_in")) | round (3) }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.netzbezug'

Der Sensor dazu sieht so aus:

- name: "Netzbezug"
  unique_id: netzbezug
  unit_of_measurement: "kWh"
  device_class: energy
  state_class: total_increasing
  state: >-
     {{ float(0) (states("sensor.bitshake_smartmeterreader_ehz_e_in")) | round (3) }}

Wo liegt der Fehler? Sensor ist in ausgelagerter template.yaml File

Ich denke das float(0) am Anfang gehört da nicht hin.

Versuch es mal so:

{{ (states("sensor.bitshake_smartmeterreader_ehz_e_in")) | float(0) | round (3) }}

btw.: Warum den Sensor nicht über die UI erstellen? Macht das Ganze doch viel einfacher ohne ärger mit fehlerhaften Templates.

Ok und wie mache ich das? Ich weiß das ich einen Helfer erstellen muss aber bei der Auswahl bin ich mir nicht sicher.

Hier in dem Fall musst du einen Sensor Template als Helfer erstellen. Ganz ohne Template geht es wohl nicht. Mein Fehler. Aber hier ein Beispiel wie meine Einstellungen dazu aussehen. Das Template ist ein wenig komplexer um Fehler des Wertes zu vermeiden falls der Sensor mal nicht erreichbar ist oder ähnliches. In Der UI hast du halt den Vorteil, du musst HA nicht Neustarten nach dem erstellen und du siehst sofort ob dein Template funktioniert oder nicht.

Dazu der Code vom Template: (Müsstest du dann für dich anpassen. Die Variabel Set Current ist ja klar, dein Bitshake Sensor. Und die Variabel Old ist der name deines neu erstellten Helfer Sensors. Damit ist gesichert das dieser immer einen Wert hat. Dein Template was ich ein Beitrag höher berichtigt habe geht aber natürlich auch)

{% set current = states('sensor.bitshake_smartmeterreader_norax_e_in') %}
{% set old = states('sensor.strom_zahlerstand_gesamt') %}
{% if current in ['unavailable', 'unknown', 'none'] or current | float(0) == 0 %}
  {{ old }}
{% else %}
  {{ current }}
{% endif %}

Den ersten post hatte ich auch schon probiert kam dann die Fehlermeldung das irgendwas nicht mit dem round 3 nicht funktuniert. Die zweite Variante ging bei mir gar nicht, da war keiner der beiden verfügbar. Ich probiere es jetz mal so:

- name: "Netzbezug"
  unique_id: netzbezug
  unit_of_measurement: "kWh"
  device_class: energy
  state_class: total_increasing
  availability: >-
    {{ states("sensor.bitshake_smartmeterreader_ehz_e_in") not in ["unknown", "unavailable"] }}
  state: >-
    {{ states("sensor.bitshake_smartmeterreader_ehz_e_in") | float(0) | round(3) }}

- name: "Netzeinspeisung"
  unique_id: netzeinspeisung
  unit_of_measurement: "kWh"
  device_class: energy
  state_class: total_increasing
  availability: >-
    {{ states("sensor.bitshake_smartmeterreader_ehz_e_out") not in ["unknown", "unavailable"] }}
  state: >-
    {{ states("sensor.bitshake_smartmeterreader_ehz_e_out") | float(0) | round(3) }}

Auch wenn ich bei den Sensoren eigentlich eher den Weg über customize gehen würde, mal grundsätzlich der Tipp, bei den Entwicklerwerkzeugen den Reiter “Template” zu nutzen: wenn du dort dein Template reinkopierst, kannst du sofort sehen, ob es funktioniert.