Pufferladezustand in % ermitteln

  • Hallo

    Ich habe einen Shelly Plus 1 dort hängen 2 Fühler dran.

    Kann man irgendwie als sozusagen einen Pufferladestund in Prozent berechnen damit und zur Anzeige bringen?

    wenn Puffer oben 60Grad und Puffer unten 50Grad dann = Ladezustand 54%

  • gexle

    Afaik verwendest du kein übergeordnetes System. Solange eine solche Berechnung + Anzeige keinesfalls sicherheitsrelevant ist, wäre evtl. eine Szene in's Auge zu fassen, womit ich mich aus naheliegenden Gründen wenig auskenne. Per Skript(erweiterung) gelänge so etwas durchaus - bspw. per MQTT Nachricht, oder auch per kleiner Webseite, welche das Skript liefert.

    Mir ist aber noch völlig unklar, wie du von 50°C und 60°C auf 54% kommst. Das arithmetische Mittel ist 55°C - und nicht etwa 54°C. Welche Bezugstemperatur willst du festlegen? Bedenke auch, dass ein Mittelwert hierfür nicht sehr aussagekräftig ist und schon gar nicht für eine Sicherheitsabschaltung taugt.

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Ich empfehle die Berechnung des Energie in der Puffer in kWh. Ich mache das in Home Assistant für Heizungs Puffer und auch für Warmwasser und anzeige in kWh und % auch. Und kann mann mit mehrere sensoren die Volumen des Puffers verteilen in Formel so:

    kWh = ((LiternUnten * 4190 * (CelsiusUnten - MinimalCelsius) / 3600000) + (LiternOben * 4190 * (CelsiusOben - MinimalCelsius) / 3600000))

    Home Assistant template für 400L Warmwasser Tank mit 2 sensoren und 11 Celsius Leitungswasser temperatur:

           {% if states('sensor.oben') != 'unavailable' and states('sensor.oben') != 'unknown' and states('sensor.unten') != 'unavailable' and states('sensor.unten') != 'unknown' -%}
           {{ ((200*4190*(states('sensor.unten')|float - 11) / 3600000) + (200*4190*(states('sensor.oben')|float - 11) / 3600000)) | round(1) }}
           {%- else -%}
           {{ 0 }}
           {%- endif %}

    Und prozent kalkulieren kann mann einfach mit kalkulieren für maximale Temperatur und einfach dividieren die aktuelle damit.

    Hier ein online calculator: https://www.omnicalculator.com/physics/water-heating

    (Entschuldigung, mein Deutsch ist nicht besonders gut.)