Hichi Wifi ir, MQTT und Tasmota

Hallo zusammen, bin absoluter Neuling und arbeite mich gerade erst richtig ein. Habe folgendes Problem.

Habe den Hichi Wifi ir in meinen Assistant eingebunden, allerdings werden mit unter den Entitäten alle Werte richtig angezeigt. Übertrage sie per MQTT in Tasmota und dann in HA. Doch werden mir bei den Stromwerten nur bei einem Sensort die “Killowattstunden” bzw Khw angezeigt. Siehe Screenshot:
Ich möchte aber wie im Script in Tasmota die Wattzahl sehen. Unter den sensoren kann ich über das Tahnrad aber nur wh auswählen. Dann werden mir natürlich viele Kommastellen angezeigt. Ausserdem kann ich nur beim Sensor EG Whg aktuell dies ändern. Beim “Allgemeinstrom” habe ich, wie im Screenshot zu sehen ist, nicht die Möglichkeit das auszuwählen. Ist es möglich die Watt Tahl ohne Kommastellen anzuzeigen?
Wie ihr sehen könnt habe ich mir ein Template angelegt, dort steht auch “w” für Watt drinn. Ich finde den fehler einfach nicht.







Du hast in deinen Templates mehrere Fehler drin:

  • unique_id: immer alles klein schreiben, keine Leerzeichen, nur Unterstriche, keine Sonderzeichen und Umlaute
  • device_class: Die Einheit “kWh” ist energy, “W” ist power
  • state_class: energy ist total_increasing (oder total); power ist measurement

Da du nur Bilder und nicht den Code als Text eingefügt hast, hab ich keine Lust das abzutippen, um die Fehler zu korrigieren.

1 „Gefällt mir“

Hey, vielen Dank für die Hinweise,

müsste nun so aussehen oder?

template:
  - sensor:
    # Stromzähler EG Whg
      - name: "EG Whg aktuell"
        unique_id: "stromzaehler_eg_whg"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "power_measurement"
        state: >-
            {{ float(states('sensor.tasmota_eg_whg_power_cur')) | round(3) }}
  - sensor:
    # Stromzähler EG Whg
      - name: "EG Whg insgesamt"
        unique_id: "stromzaehler_eg_whg"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_eg_whg_total_in')) | round(3) }}
              - sensor:
    # Stromzähler Allgemein
      - name: "Allgemeinstrom aktuell"
        unique_id: "stromzaehler_allgemein"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "power_measurement"
        state: >-
            {{ float(states('sensor.tasmota_all_power_cur')) | round(3) }}
  - sensor:
    # Stromzähler Allgemein
      - name: "Allgemeinstrom insgesamt"
        unique_id: "stromzaehler_allgemein"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_all_total_in')) | round(3) }}

fast.
Es ist nicht power_measurement, sondern nur measurement
Dann noch ein Fehler, der mir beim ersten mal nicht aufgefallen ist:
unique_id heißt nicht umsonst unique. Die darf nur einmal vorkommen.
Bei dir heißen jetzt die beiden Sensoren für eg_whg und allgemein gleich. Hier musst du noch einen Unterschied reinbringen.
Z.B. so:

template:
  - sensor:
    # Stromzähler EG Whg
      - name: "EG Whg aktuell"
        unique_id: "stromzaehler_eg_whg_power"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "measurement"
        state: >-
            {{ float(states('sensor.tasmota_eg_whg_power_cur')) | round(3) }}
  - sensor:
    # Stromzähler EG Whg
      - name: "EG Whg insgesamt"
        unique_id: "stromzaehler_eg_whg_total"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_eg_whg_total_in')) | round(3) }}
              - sensor:
    # Stromzähler Allgemein
      - name: "Allgemeinstrom aktuell"
        unique_id: "stromzaehler_allgemein_power"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "measurement"
        state: >-
            {{ float(states('sensor.tasmota_all_power_cur')) | round(3) }}
  - sensor:
    # Stromzähler Allgemein
      - name: "Allgemeinstrom insgesamt"
        unique_id: "stromzaehler_allgemein_total"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_all_total_in')) | round(3) }}

@ bigmirror

Danke dafür, wie gesagt bin noch ganz neu mit HA und Linux.

Ich habe mein Template nun angepasst, 100 mal geschaut ob die Sensoren ID´s übereinstimmen, habe die Geräte Entitäten 100 mal geprüft und habe trotzdem noch folgende Fehler im Energie Dashboard wenn ich meine 4 Entitäten dort einfügen, sie werden mir dort auch zur Auswahl angezeigt. Nun scheinen aber wie im Screenshot zu sehen immer irgendwelche Nummern hinten dran geschrieben und einige sind nicht erreichbar oder als “unknown” angegeben. Wenn ich wie im Screen 1 zu sehen, darauf klicke werden mir die korrekten Stromwerte angezeigt. Nur wenn ich sie im Energiedashboard auswähle passieren die Fehlermeldungen Könntest Du nochmal drüber schauen?

Danke für deine Hilfe!!


Und hier mein Template:

template:
  - sensor:
    # Stromzähler EG Whg
      - name: "EG Whg aktuell"
        unique_id: "stromzaehler_eg_whg_power"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "measurement"
        state: >-
            {{ float(states('sensor.stromzaehler_eg_whg_power')) | round(3) }}
  - sensor:
    # Stromzähler EG Whg
      - name: "EG Whg insgesamt"
        unique_id: "stromzaehler_eg_whg_total"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.stromzaehler_eg_whg_total')) | round(3) }}
              - sensor:
    # Stromzähler Allgemein
      - name: "Allgemeinstrom aktuell"
        unique_id: "stromzaehler_allgemein_power"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "measurement"
        state: >-
            {{ float(states('sensor.stromzaehler_allgemein_total')) | round(3) }}
  - sensor:
    # Stromzähler Allgemein
      - name: "Allgemeinstrom insgesamt"
        unique_id: "stromzaehler_allgemein_total"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.stromzaehler_allgemein_power')) | round(3) }}

Im Log von HA steht noch folgendes:

File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 646, in state
raise ValueError(
ValueError: Sensor sensor.eg_whg_insgesamt has device class 'energy', state class 'total_increasing' unit 'kWh' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: '26673.032
- sensor:' (<class 'str'>)
2024-01-26 16:07:33.655 ERROR (MainThread) [homeassistant.helpers.event] Error while dispatching event for sensor.stromzaehler_eg_whg_total to <Job track state_changed event {'sensor.stromzaehler_eg_whg_total'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({{ float(states('sensor.stromzaehler_eg_whg_total')) | round(3) }}
- sensor:) renders=12>: <RenderInfo Template<template=({{ float(states('sensor.stromzaehler_eg_whg_total')) | round(3) }}
- sensor:) renders=12> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.stromzaehler_eg_whg_total'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 644, in state
numerical_value = float(value) # type:ignore[arg-type]

In deinem ersten Bild zeigst du die 4 Sensoren, wie sie von den Templates jetzt benannt werden.
Im zweiten meckert er aber Sensoren mit anderen Namen an.
Ich würde jetzt mal alle Sensoren aus dem Energy Dashboard entfernen, HA neu starten und danach wieder einfügen. Wobei nur die Sensoren mit “_total” eingefügt werden können, da die vom Typ Energy sind. Power Werte lassen sich nicht ins Energy Dashboard einfügen.

Was ich aber nicht verstehe ist, warum in deinen Templates jetzt plötzlich die “unique_id” und der Sensor, dessen Wert du beim state verarbeitest, identisch sind.
So verweist der Sensor ja auf sich selbst und bekommt dann wahrscheinlich keine Werte.
Ändere das mal wieder zurück auf die vorherigen Eingangssensoren des Tasmota.
Und dann hast du bei allgemein auch noch total und power vermischt und sie verweisen kreuzweise auf sich.

Hi, habe ich gemacht. Wenn ich im Energie Dashboard meine Entitäten einfügen kann ich sie nicht speichern. Ich kann nur die oben gennannten dort auswählen. Diese Stimmen aber nicht mit den Namen der richtigen Sensoren überein, wie Du schon erkannt hast. Ich weiß aber nicht woher die kommen und wie ich sie da raus bekomme. Den Rest schaue ich mir morgen in Ruhe an, heute kann ich mich da nicht mehr konzentrieren. Danke erstmal für deine Unterstützung, ich melde mich wenn ich mir die anderen Dinge nochmal zur Brust genommen habe.

Das du die Sensoren noch nicht finden kannst, kann mit dem Sensor selbst zusammenhängen.
Geh mal zu Developer Tools > Statistics und prüfe dort ob bei deinen neuen Sensoren ein Problem auftaucht. Wenn ja, dieses dann beheben. Dafür den oberen der beiden Punkte anhaken und dann rechts Problem beheben.

Der Vorteil von zusätzlichen Sensoren ist, dass man bei einem Wechsel des Lesekopfs nur den referenzierten Sensor im Template tauschen muss und nicht die Statistik im Energy-Dashboard verliert.
Ansonsten geht es natürlich auch mit customize am Originalsensor.

Moin,

ich habe mir das jetzt nicht alles durchgelesen, aber im Ausgangspost, hast Du noch von

sensor.tasmota_eg_whg_power_cur
sensor.tasmota_eg_whg_total_in
...

geschrieben, jetzt heißen die aber plötzlich

sensor.stromzaehler_eg_whg_power
sensor.stromzaehler_eg_whg_total
...

Wenn Du die in Tasmota nicht umbenannt hast, dann sollten die original Sensoren immer noch auf cur, in usw. laufen und nur die neuen Sensoren, besser Aliase lauten dann z.B. fürs Energiedashboard

EG Whg insgesamt

Falls es völliger Blödsinn ist, was ich geschrieben habe, dann schon mal sorry, bin auch erst seit kurzen mit/in HA unterwegs.

VG
Bernd

Ja da hast Du recht. Ich habe zuviel rumprobiert und habe die Entitäten umbenannt und wahrscheinlich auch irgendwann die Sensoren. Ich würde das ganze auch gerne einmal zurücksetzen und von vorne anfangen, aber ich weiß leider nicht wie ich die “Sensoren” einfach Neu einlesen kann? Hat wer einen Tip?

@ bigmirror

da gab es einen Sensor, den habe ich gelöscht da er nicht mehr gültig war. Ansonsten gibt es dort keine Fehler.
Eine Idee wie ich das ganze einfach nochmal von vorne gestalten kann?

@ Schrauber

Wie hast Du es hinbekommen, das der Zeiger nicht am Anschlag ist (so bei mir). Wie kann ich da einstellen das zum beispiel bei 300 W nur in der mitte der zeiger angezeigt wird? Habe mit dem Zeiger und den Maximal bzw Minimal sowie den anderen drei Optionen bezüglich Farbe schon herumexperimentiert.

Hat jemand evtl. eine Idee wie ich einen Öltank graphisch gestalten kann, der im Daschboard mit der Liter Zahl des Heizölstands angezeigt wird?

Super, Danke, so weit bin ich mit den Werten nicht rauf und runter gegangen. Das teste ich gleich mal.

Hat wunderbar funktioniert. Danke

Moin,

ich habe festgestellt, dass es nicht gut ist im Produktivsystem zu hantieren, denn alles, was man da macht, nur mal schauen wie etwas funktioniert, wird dann vom Provisorium zum Standard und fällt einem dann irgendwann auf die Füße.
Da ich HA unter Proxmox in einer VM installiert habe, habe ich immer ein Klon, den ich hochfahre, ausprobiere bis es passt, dann ziehe ich das im Produktivsystem nach, und lösche den Klon wieder.
Zu Deinem Problem, keine Ahnung, ob es so korrekt ist, aber ich lösche die Integration, bereinige die Entitäten, reboote das System und installiere die Integration neu, dann sollte alles wieder auf Anfang stehen.

VG
Bernd

Hi Bernd,

ja das mit einem Klon sollte ich, gerade weil ich gerade erst anfange mit HA, auch mal in Betracht ziehen.
Ich werde die Integrationen auch nochmal löschen und die Entitäten dann entfernen. Danke erstmal für Eure wirklichen guten Tipps.