| | Zeit:
12.01.2025 12:47:10 |
Hallo zusammen,
ich würde gerne als weitere Größe aus dem Logging meines WMZ am Gaskessel die Takfrequenz ermitteln und als Signal darstellen. Leider habe ich kein digitales AN/AUS Schaltsignal des Kessels, dafür gäbe es ein einfache Lösung in Grafana. Da ich dies nicht habe kam mir die Idee das Signal des Vorlaufes oder Leistung des WMZ zu nehmen, ich muss ja im Prinzip nur die Flankenänderungen über die Zeit ermitteln wenn die VL Temp die Richtung ändert. Leider konnte ich bisher keine Lösung finden und dachte mir vielleicht stand/steht ja jemand vor derselben Aufgabe. Sicher könnte ich damit auch in ein Grafana Forum, aber ich dachte vielleicht finde ich aufgrund des Use-Cases hier eine Lösung und andere können partizipieren :-)
Achso ist Grafana auf dem Raspi, weiß nicht inwieweit sich die Funktionen der Plattformen unterscheiden.
DANKE
|
| Zeit:
13.01.2025 13:21:04 |
Ich habe dieses Problem unter Verwendung des Gaszählers gelöst. Die Grundidee des Sensors am Gaszähler mit einem Magnetometer ist hier beschrieben: https://www.kompf.de/tech/gascountmag.html Ich hab das mit einem ESP32 mit QMC5883L umgesetzt. Auf dem ESP32 läuft die Tasmota-Firmware (https://tasmota.github.io/docs/). Mit wenigen Zeilen in der Berry-Skript-Sprache kann man die Messwerte des Magnetometers auswerten: import json import mqtt import string class gas_meter_driver static var threshold_high = 6000 static var threshold_low = 4000 static var timesteps_limit = 210*4 var timesteps, counter, state def init() self.state = 0 self.counter = 0 self.publish() end def publish() self.timesteps = self.timesteps_limit if mqtt.connected() mqtt.publish('tele/tasmota_DA1D70/RESULT', string.format('{"count":%i}', self.counter)) end end def every_250ms() var sensors = json.load(tasmota.read_sensors()) var induction = sensors['QMC5883L']['ZaxisInduction'] if self.state == 1 # low Zustand if induction > self.threshold_high self.state = 2 self.counter += 1 self.publish() end elif self.state == 2 # high Zustand if induction < self.threshold_low self.state = 1 end else # Einschaltzustand if induction < self.threshold_low self.state = 1 elif induction > self.threshold_high self.state = 2 end # im Einschaltzustand bleiben, wenn die Lage nicht eineutig ist end self.timesteps -= 1 if self.timesteps == 0 self.publish() end end end var driver=gas_meter_driver() tasmota.add_driver(driver) (Hinweis: die Einrückungen sind nicht korrekt dargestellt) Wenn dieses Script zweimal hintereinander den gleichen Zählerstand per MQTT ausgibt, weiß ich, dass mein WTC GW 15-B steht, da dieser bei einer Mindestleistung von 2kW deutlich weniger als 210 Sekunden für 0,01 m3 Erdgas braucht. VG Harald
|
| Zeit:
13.01.2025 19:17:26 |
Danke für deinen Ansatz. Nun ja da müsste ich jetzt ja den Gaszähler mit Sensor versehen und auswerten. Da wäre es noch viel einfacher das über die Stromaufnahme der Heizung und einen Trigger "Wenn Verbrauch über Standby Strom dann an" zu machen. Mir liegt die Information ja indirekt über die Vorlauftemperaturen vor, deshalb wäre es ja eben geschickt diese Information daraus zu isolieren ohne zusätzliche Messtechnik :-)
|
| Zeit:
14.01.2025 05:20:35 |
Zitat von Loxodan  Leider konnte ich bisher keine Lösung finden und dachte mir vielleicht stand/steht ja jemand vor derselben Aufgabe. Ich hatte das damals mit Python gelöst, da ich nur die Vorlauftemperatur zur Verfügung hatte und auf die Schnelle nichts passendes für Grafana finden konnte. Ich bin aber kein Grafana-Experte. Abhängig vom SetUp könnte es auch noch andere Lösungen geben.
|
| Zeit:
14.01.2025 06:26:04 |
Als Lösungsidee: NodeRed und dort eine Funktion erstellen (NodeRed versteht JavaScript), die vom (VLT)topic auf dem mqtt Bus getriggert wird, mit dem Vorgängerwert vergleicht, wenn größer, dann eine 1, sonst eine 0 als neues topic nach mqtt schreibt. Und sich den (VLT)topic Wert als neuen Vorgängerwert merkt.
Ansonsten gibt es in der aktuellen Grafanaversion die „Transformation“, vielleicht ist da was dabei…
Gruß
|
| Zeit:
14.01.2025 19:24:29 |
Zitat von Loxodan  Leider habe ich kein digitales AN/AUS Schaltsignal des Kessels, dafür gäbe es ein einfache Lösung in Grafana. Lässt sich in der Regel preiswert nachrüsten, vor allem wenn die Heizung einen Betriebsstundenzähler hat. Zitat von joe115  ...mit dem Vorgängerwert vergleicht, wenn größer, dann eine 1, sonst eine 0 als neues topic nach mqtt schreibt. Und sich den (VLT)topic Wert als neuen Vorgängerwert merkt. Ein einfacher Vergleich mit dem Vorgängerwert hätte bei mir damals nicht zuverlässig funktioniert, da die Vorlauftemperatur nicht streng monoton anstieg. Manchmal sackte die Temperatur sogar auf ein niedrigeres Plateau ab, wenn bestimmte Heizkreise während der Brennerlaufzeit geöffnet wurden.
|
| Zeit:
14.01.2025 19:40:26 |
Zitat von joe115  Als Lösungsidee: NodeRed und dort eine Funktion erstellen (NodeRed versteht JavaScript), die vom (VLT)topic auf dem mqtt Bus getriggert wird, mit dem Vorgängerwert vergleicht, wenn größer, dann eine 1, sonst eine 0 als neues topic nach mqtt schreibt. Und sich den (VLT)topic Wert als neuen[...] Ja die "Transformation" habe ich schon fleißig durchforstest und auch schon Stunden mit meinen Programmierkumpel ChatGPT verbracht, aber irgendwie habe ich den Workaround noch nicht gefunden. Ich bleibe dran
|
| Zeit:
14.01.2025 19:46:46 |
ChatGPT solltest du dir abgewöhnen wenn du langfristig was Lernen willst. Wenn du nur einmal das Problem lösen willst ist es natürlich egal. Ich würde aber auch entweder über die Gesamtstrom Aufnahme gehen, oder vielleicht hat die Gasheizung einen Lüfter?
|
| Zeit:
14.01.2025 19:48:50 |
Zitat von Hubmagnet  Zitat von Loxodan  [...] Lässt sich in der Regel preiswert nachrüsten, vor allem wenn die Heizung einen Betriebsstundenzähler hat. Zitat von joe115  [...] Ein einfacher Vergleich mit dem Vorgängerwert hätte bei mir damals nicht zuverlässig funktioniert, da die Vorlauftemperatur nicht streng monoton anstieg. Manchmal sackte die Temperatur sogar auf ein niedrigeres Plateau ab, wenn bestimmte Heizkreise während der Brennerlaufzeit geöffnet[...] Da der WMZ direkt am VL Auslass des Kessels sitzt, kann es eigentlich nicht sein das ein öffnen der Ventile diesen Wert so schnell verfälschen kann das die Steigung umkehrt.
|
| Zeit:
14.01.2025 22:52:17 |
Ich hatte das Verhalten bei meiner alten, zu großen und immer takteten Gastherme nie beobachtet, aber es mag schon auftreten, wenn die Modulationsgrenze tief genug ist und die Therme deswegen nicht taktet. Evtl geht es dann über das Delta-t: wenn es zu klein wird, ist die Therme aus; steigt es über einen Schwellwert, ist sie an. Letztlich muss man den Algorithmus jedoch an die Therme und die konkrete Situation anpassen - es handelt sich ja um einen abgeleiteten Wert. Einfacher wäre es sicher mit einem Shelly, der die Momentanleistung misst. Gruß
|
| Zeit:
15.01.2025 02:47:57 |
Unter meinem alten Nicknamen hier darf ich hier ja nicht mehr schreiben, da ich meine Telefonnummer nicht preis gebe. Ich bin jetzt da, wo der Schornie schon länger ist. Ganz ohne Telefonnummer.
Zum Thema:
Warum nimmst Du nicht einfach die vom WMZ übermittelte momentane Leistung? Evtl. mit einem kleinen Schwellwert?
Grüße
|
| Zeit:
15.01.2025 08:24:30 |
Zitat von 12345_martin_wall  Unter meinem alten Nicknamen hier darf ich hier ja nicht mehr schreiben, da ich meine Telefonnummer nicht preis gebe. Ich bin jetzt da, wo der Schornie schon länger ist. Ganz ohne Telefonnummer.
Zum Thema:
Warum nimmst Du nicht einfach die vom WMZ übermittelte momentane[...] Hi. Naja das geht ja nicht. Wenn der Brenner aus ist ist die Thermische Leistung ja nicht Null denn VL und RL und Volumenstrom sind ja da. Das ist genauso ein Sägezahn wie VL und RL, das bringt mir nix :-)
|
| Zeit:
15.01.2025 08:37:26 |
An der Gastherme meines Vaters habe ich den nicht genutzten Ausgang für ein externes Gasventil als Betriebsanforderung genutzt.
|
| Zeit:
15.01.2025 08:40:39 |
Zitat von godek  ChatGPT solltest du dir abgewöhnen wenn du langfristig was Lernen willst. Wenn du nur einmal das Problem lösen willst ist es natürlich egal. Ich würde aber auch entweder über die Gesamtstrom Aufnahme gehen, oder vielleicht hat die Gasheizung einen Lüfter? Das sehe ich komplett konträr. Wenn man langfristig schnell und effizient arbeiten will sollte man sich angewöhnen diese Werkzeuge zu nutzen sonst hängt man dich ab. Ich weiss aber was du sagen willst und da bin ich bei dir: Ich kopiere nicht stumpf den Code ein sondern lese mir auch die Herleitung und Erklärung. Win Win :-)
|
| Zeit:
15.01.2025 09:05:59 |
Zitat von Loxodan  Ich kopiere nicht stumpf den Code ein sondern lese mir auch die Herleitung und Erklärung. Win Win :-)] Auch die kann einfach eine Halluzination sein.
|
| Zeit:
15.01.2025 20:06:07 |
Zitat von Loxodan  Zitat von 12345_martin_wall  [...] Hi. Naja das geht ja nicht. Wenn der Brenner aus ist ist die Thermische Leistung ja nicht Null denn VL und RL und Volumenstrom sind ja da. Das ist genauso ein Sägezahn wie VL und RL, das bringt mir nix :-) Bei mir geht das: BildGrüße
|
| Zeit:
16.01.2025 08:20:17 |
Zitat von 12345_martin_wall  Zitat von Loxodan  [...] Bei mir geht das: BildGrüße Wie kann deine Heizleistung vom WMZ "Null" werden wenn der Brenner ausgeht? Das kann nur sein wenn deine Umwälzpumpe mit ausgeht und das sollte aber nicht sein
|
| Zeit:
16.01.2025 22:07:18 |
Zitat von Loxodan  Zitat von 12345_martin_wall  [...] Wie kann deine Heizleistung vom WMZ "Null" werden wenn der Brenner ausgeht? Das kann nur sein wenn deine Umwälzpumpe mit ausgeht und das sollte aber nicht sein Wie Du siehst fällt die VLT sehr schnell auf das Niveau des Rücklaufs. Dann ist eben die Leistung 0. Ich hab allerdings nur HK ( plus eine Fussbodentemperierung via RTL von 8m² ) und keine Fassadendämmung. Neues BildGrüße
|
| Zeit:
20.01.2025 16:03:26 |
So also ich habe mich dem nochmal gewidmet und bin (fast) am Ziel. Als erstes habe ich mal Grafana auf den neuesten Stand gebracht. Eigentlich wollte ich Updates während der Logging Phase vermeiden weil mein Raspi da schon oft Zicken gemacht hat, aber hier war es jetzt sinnvoll, da gerade bei den Möglichkeiten zur Signalbearbeitung ständig neues kommt.
Also ich nehme jetzt das Vorlauf Temp Signal und mache folgendes:
1: Eine Mittelung 2: Erzeuge mit der "derivative" Funktion im 10 Sekunden Raster ein Steigungssignal das sauber zwischen negativen und positiven Werten schwingt. 3: Mit der neu entdeckten "Expression- Threshold" Function setze ich alles was größer 0 ist auf 1, alles unter 0 auf Null. Damit habe ich ein sauberes Rechecksignal über den Brennerzustand. 4: Dann wähle ich die Diagrammart "Stat" anstatt "Time Series". Hier gibt es den Calkulation Type "Delta" welcher die kumulative Werteänderung zählt, damit zählt er auch einen Start nicht doppelt.
Somit habe ich jetzt direkt nach Auswahl meines Betrachtungsfensters die Anzahl der Brennerstarts angezeigt.
|