Closed Noschvie closed 1 month ago
Hallo Norbert, wenn es für dich OK ist, wechseln wir ins Deutsche. Das geht etwas leichter. Ich kann gerne Starthilfe leisten.
Ich gehe davon aus, dass du einen ESP32 mit Tasmota hast und auch die Berry-Console schon kennst.
Grüße Johann
Hallo Johann bin mit ESP32, Tasmota und Berry vertraut... das wird nicht das Problem sein. Also Testumgebung vorhanden, Screenshot kann ich nachliefern: ESP32 mit je einem DS18B20 am WW Vor- und Rücklauf, sowie eine Tasmota ESP32 Steckdose, an der die Pumpe angeschlossen bzw. umgesteckt werden kann. Derzeit läuft die Pumpe zeitgesteuert über die Wärmepumpe.
Dieser Make-Artikel: Warmwasser-Sparpumpe hat mich auch inspiriert, mich diesem Thema zu widmen. Wobei es mir nicht so sehr (aber doch auch) um das Einsparen von Energie geht, sondern um die techn. Herausforderung, dies mit Tasmota umzusetzen. Wie kann die Fragestellung "Erkennen einer Warmwasser-Anforderung" mit einem ESP32, DS18B20 Sensoren und Tasmota beantwortet werden, um in weiterer Folge eine Zirkulationspumpe zu steuern. Wenn der Grundstein gelegt ist: Zusätzlich sollte die Zirkulationspumpe täglich mind. einmal laufen (für eine bestimmte Dauer), um die Zirkulationsleitung zu spülen.
Danke für deine Unterstützung meines Vorhabens! Norbert
Wo konkret brauchst du Unterstützung ?
Ich sehe zunächst folgende Themen, die du ja ggf. schon gelöst hast.
Es wäre hilfreich, wenn du noch ein Schaubild aller beteiligten Komponenten liefern könntest damit die Funktion deutlich wird.
Hier die Screenshots
Die beiden Temperature Values für Vor- und Rücklauf sind in Berry verfügbar. Sollen nun zwei verschiedene Functions definiert werden, um den post-133815 umzusetzen, also eine ansteigende Vorlauftemperatur zu erkennen?
Ich hab das mal ergänzt mit einem Cron-Job. Im 'timerHandler()' kannst du deine Berechnungen durchführen.
# globale variable
T1="DS18B20-1"
T2="DS18B20-2"
vorlaufTemp=nil
nachlaufTemp=nil
diffTemp=nil
cnt=0
# rule handler fuer die messwerte
def tempHandler(value,trigger,data)
var cproc="tempHandler"
# print(f"{value=} {trigger=}")
if trigger==T1
vorlaufTemp=value['Temperature']
end
if trigger==T2
nachlaufTemp=value['Temperature']
end
cnt+=1
# print(f"{cproc} - {vorlaufTemp=} {nachlaufTemp=} {cnt=} {trigger=}")
end
# wird alle 5 sekunden via timer aufgefufen, hier kann man die rechenoperationen ausführen
def timerHandler()
var cproc="timerHandler"
# differenz temperatur berechnen
diffTemp = vorlaufTemp - nachlaufTemp
print(f"{cproc} - {vorlaufTemp=} {nachlaufTemp=} {diffTemp=}")
end
# rules definieren
tasmota.remove_rule(T1)
tasmota.remove_rule(T2)
tasmota.add_rule(T1,tempHandler)
tasmota.add_rule(T2,tempHandler)
# cron job alle 5 Sekunden
tasmota.add_cron("0/5 * * * * *", timerHandler, "timer")
Got it up and running, thanks again!
Hello John found your coding with Berry and Tasmota, looks amazing, congrats!
For my use case I want to control a circulating hot water pump connected to a device running Tasmota. There are also two DS18B20 connected to monitor the outgoing temperature and the return temperature. Please have a look to this code snippet: post-133815
Any idea how to start to convert this code to Berry ?
Thanks!