Grafana Falsche Spitzenwerte ignorieren

Hallo,

ich möchte in Grafana meine Solarproduktion darstellen. Diese wird per Integration in Wh und wird per folgenden Code in Kwh umgerechnet:

SELECT mean("value") / 1000 FROM "Wh" WHERE ("friendly_name" = 'Solarproduktion Heute Gesamt') AND $timeFilter GROUP BY time($__interval) fill(null)

Soweit funktioniert alles.
Aber aus irgendeinem Grund liefert die Integration ab und zu kurz völlig unrealistische Spitzenwerte von über 1000 kwh. Das wäre zwar schön, stimmt aber nicht.
Durch diesen Fehler wird die Darstellung in Grafana völlig verschoben.
Ist es möglich Werte, die nach der Umrechnung mehr als 100 kwh betragen, zu ignorieren?

Gruß Werner

Hallo Werner,
ich würde schon bei den Daten ansetzen und ein Template dafür erstellen.
Ich hatte Ausreißer bei der PV-Erzeugung nach unter 0 (null), was ja nicht sein kann:

- name: "PV_Leistung_template"                                        
           unit_of_measurement: "W"                                            
           state: "
                 {% if states('sensor.PV_Leistung') | int < 0 %}          
                   {{ 0 }}                                             
                 {% else %}                                             
                   {{ (states('sensor.PV_Leistung') | int) }}            
                 {% endif %}                                            

Gruß
Fantomas

1 „Gefällt mir“

Vielen Dank, werde ich so machen.

Gruß Werner

Ich habe ein ähnlich gelagertes Problem:
Getränkekühlschrank über NOUS AZ1 Steckdose.
Beim Einschalten bekomme ich ne Spitze mit ca. 1200W, Betrieb ~100W (das passt) und wenn er abschaltet manchmal 0W, meistens aber irgendwelche Werte zwischen 30 und 50W (siehe Bild).
Kann ich das folgendermaßen lösen?:

- name: "getränkekuehlschrank_template"                                        
           unit_of_measurement: "W"                                            
           state: "
                 {% if states('sensor.tz3000_2putqrmw_ts011f_active_power_2') | int > 105 %}          
                   {{ 105 }}
                  {% elif rohwert < 60 %}
                   {{ 0 }}                     
                 {% else %}                                             
                   {{ (sensor.tz3000_2putqrmw_ts011f_active_power_2') | int) }}            
                 {% endif %}              

Chat GPT (sorry, kann nicht programmieren und suche mir alles im Netz zusammen) macht das daraus:

- platform: template
  sensors:
    getraenkekuehlschrank_template:
      unit_of_measurement: "W"
      value_template: >-
        {% set rohwert = states('sensor.tz3000_2putqrmw_ts011f_active_power_2') | int %}
        {% if rohwert > 105 %}
          105
        {% elif rohwert < 60 %}
          0
        {% else %}
          {{ rohwert }}
        {% endif %}

Interessanterweise zeigt HomeAssistant immer schön die Nullwerte an, nur InfluxDB und Grafana zicken da rum…kann da woanders noch ein Fehler sein?

Hallo,

ich würde mich freuen, wenn Du eine einfach Lösung findest. Bitte gebe dann Bescheid…

Gruß Werner

Also bisher habe ich rausgefunden, dass InfluxDB bzw. Grafana 0-Werte ignorieren (?).
Also habe ich bei fill(null) erstmal fill(0) eingetragen, um die Nullpunkte anzuzeigen, leider wird dann der Zeitraum, während das Kühlschrank an ist, etwas zerpflückt (an, aus, an, usw.), das liegt wohl daran, dass zwischendurch keine Werte ankommen und das nun als 0 interpretiert wird.
Also habe ich den Wert GROUP by time auf 150s gesetzt, wenn ich es richtig verstehe, werden jetzt immer 150s betrachtet und zusammengefasst, dadurch verschwinden schon viele 0-Stellen.
Aber das kann ja nicht die Lösung sein, ich habe wenig bis keine Erfahrung in Grafana und InfluxDB.
Aber vielleicht kann hier jemand helfen?
In HA werden die Werte ja auch sauber dargestellt, dann muss das doch auch in Grafana gehen.