Nicht ausschalten falls schon eingeschaltet war

Begonnen von hietzi, 22 September 2016, 20:50:02

Vorheriges Thema - Nächstes Thema

hietzi

Habe derzeit folgendes Konstrukt.

8 Max Thermostate
1 Max Zwischenstecker der die Gastherme ein und ausschaltet.

Im Einsatz ist das Modul HCS das die Therme je nach Valve Position über den Max Zwischenstecker ein bzw ausschaltet.
Funktioniert auch wunderbar.

Dadurch das meine Gastherme aber auch das Warmwasser aufheizt habe ich für den Sommer eine Zeitschaltuhr in Fhem mit at gemacht das der Max Zwischenstecker am Nachmittag die Heizung 2 Stunden einschaltet um das Wasser wieder aufzuheitzen.
Geht auch :-)

Mein Problem ist jetzt wenn ich das HCS Modul in Betrieb habe die Heitzung läuft aber wird dann durch die Zeitschaltuhr abgeschaltet .

Gibt es eine Möglichkeit Fhem zu sagen das er den Max Zwischenschalter nicht ausschalten soll wenn der Zwischenstecker bereits an war .

Wäre super wenn wer einen Tip für mich hätte wie ich das am besten umsetzen kann.

Vielen Dank und lg
Chris

DeeSPe

Das sollte mit FILTER gehen wenn Du Dir mit setreading ein Custom Reading (z.B. manualState) im Device anlegst sobald es nicht abgeschaltet werden darf.
Das könntest Du innerhalb eines notify lösen.
setreading <device> manualState on
Wenn es wieder abgeschaltet werden darf löschst Du einfach das Reading mit deletereading.

Dann in Deinem at (Zeitschaltuhr) den Filter setzen.
set <name>:FILTER=manualState!=on off

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

topfi

Aber bitte äußerste Vorsicht bei der Syntax, wenn FILTER benutzt wird. Ein verkehrtes Pünktchen und schon werden _ALLE_ Variablen und Devices auf "on" gesetzt. Mit allen Abhängigkeiten, die das hervorruft, ist das besonders erlebnisreich, wenn Alarmsirenen verbaut sind.  :o

Ich habe mein System schon mal durch das Einspielen einer Backup- fhem.save-Datei wieder in einen definierten Zustand bringen dürfen, nachdem ich meiner Familie die Ohren gekühlt hatte. :D

Mitch

Du kennst Doch die Zeit, der Zeitschaltung.
Also einfach in der Zeit nicht off schalten lassen.

Geht z.B. mit DOIF sehr schön:
ZitatAnwendungsbeispiele:

Radio soll zwischen 8:00 und 10:00 Uhr an sein:

define di_radio DOIF ([08:00-10:00]) (set radio on) DOELSE (set radio off)
FHEM im Proxmox Container

DeeSPe

Zitat von: topfi am 23 September 2016, 12:36:30
Aber bitte äußerste Vorsicht bei der Syntax, wenn FILTER benutzt wird. Ein verkehrtes Pünktchen und schon werden _ALLE_ Variablen und Devices auf "on" gesetzt. Mit allen Abhängigkeiten, die das hervorruft, ist das besonders erlebnisreich, wenn Alarmsirenen verbaut sind.  :o

Ich habe mein System schon mal durch das Einspielen einer Backup- fhem.save-Datei wieder in einen definierten Zustand bringen dürfen, nachdem ich meiner Familie die Ohren gekühlt hatte. :D

Der FILTER ist da eher weniger Schuld dran.
In diesem Falle liegt es wohl eher am Regex der vor dem FILTER steht und genau das kann auch ohne FILTER passieren.
FILTER soll ja eigentlich nur die Funklast/Schaltbefehle gering halten. Oder eben mal solche Spezialfälle wie hier genannt abdecken.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

topfi

Das stimmt. Aber durch den FILTER ist man geneigt, dort mit Wildcards zu operieren. Dabei hat man schnell mit einem einzigen unüberlegten Befehl in der FHEM-Zeile ein  ... ähh ... Blackout verursacht. :D

Der wahre Grund sitzt sowieso immer auf dem Stuhl vor der Tastatur...  :)

hietzi

So jetzt bin verwirrt  ;D ;D ;D

Ich liste mal meinen derzeitigen ist Status

HCS Script
define HCS_System HCS HA_Heizung_Schalter
attr HCS_System alias Heizungssteuerung
attr HCS_System deviceCmdOff desiredTemperature off
attr HCS_System deviceCmdOn desiredTemperature on
attr HCS_System event-on-change-reading state,devicestate,eco,overdrive
attr HCS_System exclude HA_Heizung_Schalter
attr HCS_System idleperiod 5
attr HCS_System interval 3
attr HCS_System mode valve
attr HCS_System room System
attr HCS_System sensor HA_Heizung_Modus
attr HCS_System sensorReading HCS_TEMP
attr HCS_System sensorThresholdOff 20
attr HCS_System sensorThresholdOn -1
attr HCS_System thermostatThresholdOff 0.5
attr HCS_System thermostatThresholdOn 0.5
attr HCS_System valveThresholdOff 10
attr HCS_System valveThresholdOn 30


HA_Heizung_Schalter ist der Max Zwischenstecker an der Heizung

und eben die Zeitschaltuhr für das Warmwasser
define warmwasserein at *17:30:00 set HA_Heizung_Schalter on
define warmwasseraus at *19:00:00 set HA_Heizung_Schalter off


Wenn jetzt zb um 18:45 HCS die Heizung einschalten will läuft sie ja schon . Macht nix und passt.
Jetzt schaltet aber die Zeitschaltuhr at um 19:00 die Heizung aus. HCS bekommt davon aber nic mit Ventile sind offen aber Gastherme ist ohne Strom :-)

lg

rubbertail

Hm... ich find die Konstruktion ein wenig "krückenhaft", kann das sein?
Kannst du deine Heizung denn nicht - durch Kontakte an der Therme - getrennt von der Warmwasserbereitung schalten?
Wenn ich dich recht verstehe, schaltet dein MAX-Zwischenstecker ja beides ab - und das kanns ja nicht so wirklich sein - auch, dass die Heizung mit angeschaltet werden muss, wenn nur Warmwasser benötigt würde?

Oder steh ich jetzt grade aufm Schlauch?

Ich hab auch so eine "Dualtherme" - und habs gelöst mit nem Funkrelais zwischen den Kontakten, die normalerweise durch den Thermostaten geschaltet würden - und dieses Relais wird von HCS geschaltet. Damit geht Warmwasser IMMER und nach Bedarf, die Heizung aber nur, wenn Fhem das will (gut, ist ein BISSL komplizierter, um das Ganze auch autonom ohne Fhem betreiben zu können, aber aus Fhem-Sicht läufts darauf hinaus).

Sorry, wenn das ggf. die Frage hinterfragt... ggf. einfach ignorieren. :)
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

DeeSPe

Irgendein Event muss es doch geben wenn Deine Heizung automatisch eingeschaltet wird.
An dieses Event hängst Du ein notify und erzeugst das Custom Reading. Sobald von Deiner Heizung das Event für "aus" vom Modul kommst löschst Du das Custom Reading wieder per notify.
Kannst es auch umkehren wenn es für Dich einfacher wird und ein Reading setzen wenn Dein at aktiv wird und nur wenn das Reading gesetzt ist darf das at auch wieder ausschalten. Umgekehrt dann das Reading wieder löschen wenn das at abgelaufen ist.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Mitch

#9
Ich würde erstmal auch empfehlen, Wasser und Heizung zu trennen. So mache ich das.

Schnelle Lösung:

Ändere dies:
define warmwasseraus at *19:00:00 set HA_Heizung_Schalter off
durch z.B. dies:
define warmwasseraus DOIF ([19:00] and [HCS_System] ne "demand")(set HA_Heizung_Schalter off)

Aus dem Bauch und ohne Gewähr  ;)
FHEM im Proxmox Container

hietzi

Zitat von: Mitch am 23 September 2016, 15:19:25
Ich würde erstmal auch empfehlen, Wasser und Heizung zu trennen. So mache ich das.

Schnelle Lösung:

Ändere dies:
define warmwasseraus at *19:00:00 set HA_Heizung_Schalter off
durch z.B. dies:
define warmwasseraus DOIF ([19:00] and [HCS_System] ne "demand")(set HA_Heizung_Schalter off)

Aus dem Bauch und ohne Gewähr  ;)

Thx probiere ich gleich mal aus :-)

hietzi

Zitat von: rubbertail am 23 September 2016, 15:16:09
Hm... ich find die Konstruktion ein wenig "krückenhaft", kann das sein?
Kannst du deine Heizung denn nicht - durch Kontakte an der Therme - getrennt von der Warmwasserbereitung schalten?
Wenn ich dich recht verstehe, schaltet dein MAX-Zwischenstecker ja beides ab - und das kanns ja nicht so wirklich sein - auch, dass die Heizung mit angeschaltet werden muss, wenn nur Warmwasser benötigt würde?

Oder steh ich jetzt grade aufm Schlauch?

Ich hab auch so eine "Dualtherme" - und habs gelöst mit nem Funkrelais zwischen den Kontakten, die normalerweise durch den Thermostaten geschaltet würden - und dieses Relais wird von HCS geschaltet. Damit geht Warmwasser IMMER und nach Bedarf, die Heizung aber nur, wenn Fhem das will (gut, ist ein BISSL komplizierter, um das Ganze auch autonom ohne Fhem betreiben zu können, aber aus Fhem-Sicht läufts darauf hinaus).

Sorry, wenn das ggf. die Frage hinterfragt... ggf. einfach ignorieren. :)

Hast prinzipiell schon recht jedoch machte ich das schon vor fhem mit einer analogen zeitschaltuhr im sommer .
Grund dafür ist das die Gastherme schon ein eher älteres  Baujahr ist und diese sich immer einschaltet sobald der Boiler 1-2 Grad von der Solltemperatur absinkt. Jetzt hat sich natürlich den ganzen Tag über die Heizung immer wieder eingeschaltet um das Wasser aufzuheizen .
Mit der Zeitschaltuhr ist das Wasser den ganzen Tag auch immer warm genug bzw. brauchen wir es nicht weil eh keiner zu Hause ist. Am Abend Zeitschaltuhr ein und Wasser heizt sich auf auf die gewünschte Temp.

lg