Heizung ausschalten unter diversen Bedingungen, ggf. später

Begonnen von fhembastler, 27 März 2021, 07:29:25

Vorheriges Thema - Nächstes Thema

fhembastler

Hallo

Was ich erreichen möchte:
- meine Heizung soll den Solarstrom nutzen, um das Haus aufzuwärmen.
- Die Heizung soll sich bei Sonnenuntergang ausschalten, aber nur, wenn sie gerade nicht heizt (status-load_power <1.8kW) , da ich den Wärmepumpenheizprozess nicht unterbrechen möchte.

Vermutlich gibt es verschiedene elegante Möglichkeiten, dass zu bewerkstelligen. Ich versuche es so:


define a_Heizung_abends_off at *{sunset("HORIZON=20","16:30",0)} {if(ReadingsVal('Aussen.Solaranlage','status-load_power',0) < 1.8) {fhem("set UG.Relais.Heizung.Haupt off")}}



Dieser Code hat den Nachteil, dass er nur einmal (bei sunset) ausgeführt wird. Und falls das "if" nicht erfüllt wird, dann war es das...
Wie kann ich es erreichen, dass solange abgefragt wird, bis der Verbrauch unter 1.8kW ist?


Ich hoffe, dass ich klar genug war.


Danke im Voraus.


gvzdus

Ich mache viel Ähnliches und arbeite dabei mit Zustandsvariablen. Z.B., wenn ich nicht schnell herausfinde, ob man abfragen kann "Ist die Sonne da?" oder denke, dass diese Abfrage viel CPU kostet, generiere ich mir in Schritt 1 den Dummy "is_sonne_oben", der auf 0 oder 1 gesetzt wird. So habe ich schon einmal gutes Debugging.

Und würde dann in Deinem Fall ein Notify auf das Reading Power der Wärmepumpe legen, was sinngemäß sagt:

define steckerzieher notify waermepumpe:power:.* { if ( power < schwellwert && is_sonne_oben == 0) { "ziehdenstecker" } }

Du wirst da vermutlich noch viel optimieren, z.B. nach Temperatur o.ä. dann doch Einschalten, etc.
Bei mir sind diese Regeln gespiekt mit
Log 1, "Setting DeviceX to " . $toset . " from " . $onoff . " for " . $reason;

um im Logfile von FHEM den Grund für irgendwelchen Zauber im Haus zu sehen

Otto123

#2
Moin,

Zitat- Die Heizung soll sich bei Sonnenuntergang ausschalten, aber nur, wenn sie gerade nicht heizt (status-load_power <1.8kW) , da ich den Wärmepumpenheizprozess nicht unterbrechen möchte.
hat die Aufgabe wirklich was mit dem Sonnenuntergang zu tun? Gilt das nicht immer?
Mach doch einfach ein notify
define n_status-load_power notify Aussen.Solaranlage:status-load_power:.* {if(ReadingsVal('Aussen.Solaranlage','status-load_power',0) < 1.8) {fhem("set UG.Relais.Heizung.Haupt off")}}
ReadingsVal('Aussen.Solaranlage','status-load_power',0) könntest Du noch durch $EVTPART1 ersetzen.

Um unnütze Vorgänge zu unterbinden, kannst Du noch den Zustand von UG.Relais.Heizung.Haupt einbauen, entweder als "and" Zusatz in der Bedingung oder als FILTER im Schaltbefehl (:FILTER=state!=off off)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

fhembastler

Danke @gvzdus, @Otto123.
Ich habe Eure Anregungen gerne übernommen.