Hallo,
ich habe eine Solaranlage mit Speicher von Huawei.
Die Solaranlage hat zwei Strings.
Ich bekomme vom Wechselrichter die Gesamtleistung der Solaranlage aber nicht die Leistung der einzelnen Strings.
Da ich aber die Spannung und den Strom für jeden String einzeln bekomme wollte ich mir einen eigenen Sensor basteln, der die Leistung errechnet, sodass ich sie in einem Diagramm darstellen kann.
Meine Datei sieht so aus:
Hier scheint aber etwas nicht zu stimmen, ich bekomme folgende Fehlermeldung:
Sensor None has device class 'power', state class 'measurement' unit 'W' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'template: - sensor: - name: "Solarertrag Dach" unique_id: "solar_ertrag_dach" state: > spannung: 0.0 strom: 0.0 0 unit_of_measurement: "W" device_class: "power" state_class: "measurement" suggested_display_precision: 2' (<class 'str'>)
Die Sensoren für Spannung und Strom liefern Werte die ich auch in einem Diagramm darstellen kann. Aber das Produkt aus beidem liefert scheinbar keinen numerischen Wert. Warum auch immer.
Kann jemand helfen?
Was habe ich falsch gemacht?
Hallo Silvio!
der Fehler liegt wohl daran, dass du in deinem state-Block zusätzlich zu der eigentlichen Berechnung auch Debug-Text wie spannung: … und strom: … ausgibst. Dadurch wird der Rückgabewert der Template-Funktion kein reiner Zahlenwert mehr, sondern ein String, der nicht nur aus einer Zahl besteht. Das mag Home Assistant in diesem Kontext nicht, weil er bei device_class: power und unit_of_measurement: „W“ eine reine Zahl erwartet.
Danke euch beiden für die schnelle Antwort.
Ist scheinbar aber noch nicht die Lösung.
jetzt bekomme ich folgende Fehlermeldung:
Sensor None has device class 'power', state class 'measurement' unit 'W' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'template: - sensor: - name: "Solarertrag Dach" unique_id: "solar_ertrag_dach" state: > 0.0 # Setze den Wert explizit auf eine Zahl unit_of_measurement: 'W' device_class: power state_class: measurement suggested_display_precision: 2' (<class 'str'>)
Ich kenne mich mit Programmierung so gut wie nicht aus, aber bastel zur Zeit mit einer KI an meinem eigenen PV Projekt. Ich habe einfach dein Script und die Fehlermeldung eingegeben. Das hat „Copilot“ geantwortet.
Der Fehler scheint darauf hinzudeuten, dass der Sensorwert, der erwartet wird, numerisch sein sollte, aber tatsächlich als String dargestellt ist. Das Problem liegt vermutlich in der Art und Weise, wie die state-Variable im Script formatiert wird. Durch die Kombination von Text (spannung:, strom:) und einer Berechnung wird der Zustand (state) nicht als reine Zahl erkannt, sondern als String.
Um diesen Fehler zu beheben, sollten Sie sicherstellen, dass der state des Sensors ausschließlich die numerische Berechnung ohne zusätzlichen Text zurückgibt. Hier ist eine mögliche Korrektur:
In dieser Version wird nur der berechnete numerische Wert ausgegeben, ohne zusätzliche Texte wie spannung: oder strom:. Dies sollte den Fehler beheben und sicherstellen, dass der state als numerischer Wert erkannt wird.
Probieren Sie diese Anpassung aus und teilen Sie mit, ob der Fehler dadurch behoben wurde!
Das habe ich auch schon ausprobiert.
Irgendwann dreht man sich aber im Kreis, da die KI nicht auf die Idee kommt zu fragen wie ich den Sensor erstellt habe.
Die KI geht scheinbar davon aus, dass er als yaml erstellt wurde.