ich habe über Sunspec den Wechselrichterdaten in HA integriert.
Sobald der Wechselrichter jedoch Abends (sobald der Ertrag weg ist) in Standby geht, sind alle Sensoren auf “unavailable”. Damit funktionieren meine Werte / Verknüpfungen nicht mehr.
Ich hatte gelesen, dass man irgendwie den letzten Wert vor unavailable setzen kann, sobald der Sensor auf unavailable wechseln will.
Kann mir jemand weiterhelfen, wie Ich das umsetzen kann?
Aktuell geht es mir um den sensor:
sensor.sma_wr_modbus_dermeasureac_total_energy_injected
Also das availablity_template mit dem du sicher stellen kannst das ein template sensor entweder einen numerischen wert hat oder halt keinen und nicht versehentlich unavailable.
Vielleicht gepaart mit einem
| float(default=0)
damit er zumindest mal 0 ist und nicht gar nix zurückliefert?
Du wirst vermutlich eh ein template sensor bauen müssen oder kannst due das availability_template in den jetzigen Sensor einbauen? Sprich kommt der von der Integration oder ist es ein gemplate sensor?
Den letzten Wert bekommst du auch nur dadurch das du den original sensor in einen 2ten kopierst und zwar nur dann wenn er nicht unknown oder unavailable ist und dann mit dem 2ten Wert arbeitest.
EDIT:
Was dich aber auch nicht weiterbringt wenn dein HA mal neu startet denn auch dann ist der 2te Sensor unknown … sprich es ist nicht ganz trivial.
Ich würde einen default=0 benutzen wenn kein Wert geliefert wird, damit sollte man immer noch besser rechnen können als mit unavailable. Und das klappt dann auch nach einem Neustart von HA.
Ich habe 3 Sensoren meines Solarwechselrichters, die bei Sonnenuntergang auf “unavailable bzw. unknown” gehen. Ich versuche seit Tage das mit den Template Sensoren hinzubekommen, leider erfolglos.
Hat jemand die Zeit, die Muse und die Lust mir das etwas genauer zu erlären bzw. beim Coden zu helfen? Hab da echt nen Knoten im Kopp.
Triggerbasierter Template-Sensor wäre da wohl das Zauberwort, so hab ich das bei meinen BLE Tür/Fenster-Sensoren gelöst, die melden ja nur wenn man Tür bzw. Fenster öffnet/schliesst. Und einen Reboot vom HA überleben die Sensoren dann nicht. Ein weiterer Vorteil ist bei Temperatur-Sensoren oder sowas das man die Hardware drunter tauschen kann ohne die Statistik zu verlieren (zumindest wenn man aus welchen Gründen auch immer nicht die selbe Entitäts-ID nehmen kann), dann lässt sich der Quell-Sensor hier einfach ändern.
- trigger:
- platform: state
entity_id: binary_sensor.doorsensor_housedoor_2813_opening
not_to:
- "unknown"
- "unavailable"
- "error"
binary_sensor:
- name: "DoorWindowDetection_HouseDoor"
unique_id: "doorwindowdetection_housedoor"
state: >
{% if is_state("binary_sensor.doorsensor_housedoor_2813_opening", "on") %}
on
{% elif is_state("binary_sensor.doorsensor_housedoor_2813_opening", "off") %}
off
{% endif %}
icon: >
{% if is_state("binary_sensor.doorsensor_housedoor_2813_opening", "on") %}
mdi:door-open
{% elif is_state("binary_sensor.doorsensor_housedoor_2813_opening", "off") %}
mdi:door-closed
{% endif %}
device_class: door
Ein einfacher Template Sensor ist nur bedingt brauchbar. Da dieser leider den Wert nach einem Home Assistant Neustart nicht beibehalten tut, sollte der Original Sensor in dieser Zeit als unavailable geführt werden.
Das Thema Trigger Based Sensor ist schon mal gefallen und wäre das richtige an der Stelle.
Das Prinzip ist:
Wenn der Original Sensor sich ändert und dieser Zustand ist “unavailable” oder “unknown” , soll der Template Sensor den Wert von sich selbst übernehmen.
Sonst soll der Template Sensor den Wert vom Original Sensor übernehmen
template:
- trigger:
- platform: state
entity_id:
- sensor.apsystems_apsystems_ez1_m_lifetime_production
sensor:
- name: Lifetime Production
unique_id: 2f2d23d0-d5ad-11ee-a824-ffb871ba3045
state: |
{% set sensor = states('sensor.apsystems_apsystems_ez1_m_lifetime_production') %}
{% if sensor == 'unavailable' or sensor == 'unknown' %}
{{ this.state }}
{% else %}
{{ sensor }}
{% endif %}
state_class: total_increasing
device_class: energy
unit_of_measurement: "kWh"
Jetzt hast du mich aber verunsichert
Aber beim Tür sensor hab ich kein “from” drin, beim Nebelwahrscheinlichkeitssensor, wäre es egal weil der jedes Mal misst wenn sich die Temperatur ändert, aber ich nehme das mal mit und mach die Sensoren mal schlanker
Nein
Habe den Code in die Template.yaml, ohne das “template:” vorne, überprüft, keine Fehler, Neustart, keine Entität sensor.ez1_m_today_production vorhanden.