Gelöst: Zeitgesteuerter Aufruf einer Fubktion in myutils.pm (Reglerbaustein)

Begonnen von Kulli, 17 November 2022, 15:03:13

Vorheriges Thema - Nächstes Thema

Kulli

Hallo
Also: Die ganze Anlage läuft soweit eigentlich nun ganz gut! Ich habe einen at um den Regler regelmässig aufzurufen. Alles andere läuft über weitere notifies.
Die Pumpe wird per Arduino geschaltet bzw per PWM dann geregelt. Kommunikation über RS485.

Allerdings:
Manchmal, wenn das Waser schon heiß ist und die Pumpe wieder schaltet, kavitiert sie. Der Vordruck ist aufgrund fehlender Bauhöhe nicht so groß!

Deshalb wollte ich eine Überwachung bauen. Folgende Idee habe ich:
Dummy um Pumpe ein und Auszuschalten (per Relais)
Dummy um Sollwert vorzugeben (0 - 100%)
Druck im System wird gemessen in mBar

Wenn die Pumpe Eingeschaltet wird, wird der Anlagendruck in einem Userreading gespeichert (Startdruck)
Wird der Sollwert von 0 auf irgendwas > 30% gesetzt, starte ich einen at(in 30Sekunden) der einen notify auslöst.
Dieser prüft
aktuellen_Druck < Startdruck+100mbar? {
  Setze Sollwert auf 0
}

Der Heizungsregler wird den Wert wieder hochsetzen, sobald er ausgeführt wird.
Die Pumpe wird also mehrfach angefahren, bis sie durchläuft und nicht mehr kavitiert.

Das sollte eigentlich funktionieren, hört sich aber irgendwie nicht rund an:
- Eigentlich wäre eine Fahrweise nach Rampe besser, aber wie soll man das in fhem umsetzen ohne fhem zu blocken?
- Eigentlich müsste man die Pumpe dauerhaft auf Funktion prüfen.

Hat wer eine bessere Idee als meine? Wäre für Tipps sehr dankbar!