Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Moderator: Co-Administratoren
Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Hallo,
ich habe ein Heizungzprogramm welches ich mit einer Systemvariable Auto-Betrieb nur startet wenn die SA auf Auto steht.
jetzt möchte ich erreichen, wenn jemand an einem Thermostat die Temperatur ändert, das die Variable auf manuell gestellt wird.
Gibt es da irgendwie eine Möglichkeit?
ich habe ein Heizungzprogramm welches ich mit einer Systemvariable Auto-Betrieb nur startet wenn die SA auf Auto steht.
jetzt möchte ich erreichen, wenn jemand an einem Thermostat die Temperatur ändert, das die Variable auf manuell gestellt wird.
Gibt es da irgendwie eine Möglichkeit?
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Es wäre möglich über ein Skript abzufragen, ob der aktuelle soll Wert ungleich der aktuellen Solltemperatur im Wochenprogramm ist. Und dann darauf zu reagieren
Gruß Carsten
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Der Abgleich zwischen Soll und Ist Temperatur bringt mir nichts.
Diese kann ich ja auch anders ändern.
Ich benötige einen Trigger andem man erkennen kann, dass das Stellrad am Heizkörperthermostat verändert wurde.
Diese kann ich ja auch anders ändern.
Ich benötige einen Trigger andem man erkennen kann, dass das Stellrad am Heizkörperthermostat verändert wurde.
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Dafür gibt es keinen Trigger!!!
Das Thermostat sendet nur die Änderung der Solltemperatur (z.B. Vorher 21,0°C neu (22,0°C)) aus dieser Änderung kann man rückschließen, das das Rad betätigt wurde (natürlich muss man ausschließen, das das Thermostat im Auto Modus nach Zeitplan umgestellt wurde oder durch ein anderes Programm).
Wie gesagt die gesuchte Meldung "Rad gedreht" gibt es nicht und ist auch nicht über Skript oder sonstwie auslesbar.
Das Thermostat sendet nur die Änderung der Solltemperatur (z.B. Vorher 21,0°C neu (22,0°C)) aus dieser Änderung kann man rückschließen, das das Rad betätigt wurde (natürlich muss man ausschließen, das das Thermostat im Auto Modus nach Zeitplan umgestellt wurde oder durch ein anderes Programm).
Wie gesagt die gesuchte Meldung "Rad gedreht" gibt es nicht und ist auch nicht über Skript oder sonstwie auslesbar.
Gruß Carsten
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Das Problem ist, das sich auch im Automodus die Solltemperatur ändert...
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Korrekt das müsste man dann abfangen also wenn man weiß, das das Thermostat um z.B. 17:30 auf 22°C geschaltet wird, dann muss man die Änderung um 17:30Uhr "irgnorieren", indem man z.B: eine Variable setzt um 17:29 bis 17:31, wo diese Änderung das Programm nicht triggert.
Es ist möglich aber nicht ganz einfach und auch keine 100% Lösung, da du somit eine Änderung kurz nach dem Automatismus (während die Variable gesetzt ist) nicht erkennen würdest! Aber das ist ein 2 Minuten Zeitraum, ist die Frage ob man den so oft durch Zufall trifft..
Es ist möglich aber nicht ganz einfach und auch keine 100% Lösung, da du somit eine Änderung kurz nach dem Automatismus (während die Variable gesetzt ist) nicht erkennen würdest! Aber das ist ein 2 Minuten Zeitraum, ist die Frage ob man den so oft durch Zufall trifft..
Gruß Carsten
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Hallo,
ich möchte zwischen 17:00 Uhr und 22:00 eine Temperatur zwischen 21 und 22 Grad haben.
Das heiß, das in dieser Zeit die Solltemp immer mal wieder geändert wird
Ich glaube ich habe ein Lösung. Wenn das Programm startet setze ich zum Schluss immer die SV auf Auto.
Wenn ich die Solltemp. über ioBroker oder den Stellrädern ändere wird die SV immer auf man gesetzt.
Das müsste doch eigentlich klappen. Immer wenn jemand mit der Automatik nicht zufieden ist wird auf manu gesetzt.
Oder habe ich da einen Denkfehler?
ich möchte zwischen 17:00 Uhr und 22:00 eine Temperatur zwischen 21 und 22 Grad haben.
Das heiß, das in dieser Zeit die Solltemp immer mal wieder geändert wird
Ich glaube ich habe ein Lösung. Wenn das Programm startet setze ich zum Schluss immer die SV auf Auto.
Wenn ich die Solltemp. über ioBroker oder den Stellrädern ändere wird die SV immer auf man gesetzt.
Das müsste doch eigentlich klappen. Immer wenn jemand mit der Automatik nicht zufieden ist wird auf manu gesetzt.
Oder habe ich da einen Denkfehler?
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Ein Problem habe ich noch:
Wie bekomme ich es in einem Script hin, das ich merke das sich die Solltemperatur geändert hat?
Wie bekomme ich es in einem Script hin, das ich merke das sich die Solltemperatur geändert hat?
-
- Beiträge: 534
- Registriert: 16.03.2015, 18:57
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 26 Mal
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Hallo!
Ich stelle die Änderung der Solltemperatur mit folgendem Programm und den Scripten (kann man auch in einem Zusammenfassen, aber das hat sich bei mir eben so entwickelt gehabt). Man muß hierfür auch keine Systemvariablen verwenden falls das zu umständlich ist, sondern kann Scriptvariablen nutzen, aber ich bin ein Fan davon, dass bei möglichen Stromausfällen möglichst schnell alles den Betrieb wieder aufnehmen kann. (Ich steuere das ganze Haus mit Homematic).
hier die beiden Scripte
und Script 2
Das Programm wird periodisch aufgerufen.
Und es schreibt abwechselnd die aktuelle festgestellte Soll-Temperatur in jeweils eine von zwei Systemvariablen.
je nachdem ob die Variable "Zaehler" den Wert 1 oder 0 hat, wird beim Aufruf des Scripts entweder ind "SollAktual1" oder in "SollAktual2"
die akutell abgefragte Solltemperatur eingetragen. Die Variable "Zaehler" wird bei jedem Aufrug des Scripts automatisch abwechselnd auf 0 oder 1 gesetzt.
Das zweite Script vergleicht dann jeweils die beiden Variablen "SollAktual1" und "SollAktual2" und stellt fest ob die Werte gleich sind oder
ob die beiden Werte abweichen.
Sofern die Werte gleich sind, hat sich die Solltemperatur nicht verändert und eine Systemvariable "Solltempdiff" wird auf "false" gesetzt.
sofern die Werte unterschiedlich sind, hat sich die Solltemperatur verändert und die Systemvariable "Solltempdiff" wird auf "true" gesetzt.
Das ganze ist zwar etwas aufgebläht programmiert, und man könnte da einiges straffen und beispielsweise eine Werteliste verwenden etc.
aber wie gesagt, bei mir hat sich das aus der Historie heraus so entwickelt und ich brauchs nicht zu ändern, weils funktioniert.
Ich stelle die Änderung der Solltemperatur mit folgendem Programm und den Scripten (kann man auch in einem Zusammenfassen, aber das hat sich bei mir eben so entwickelt gehabt). Man muß hierfür auch keine Systemvariablen verwenden falls das zu umständlich ist, sondern kann Scriptvariablen nutzen, aber ich bin ein Fan davon, dass bei möglichen Stromausfällen möglichst schnell alles den Betrieb wieder aufnehmen kann. (Ich steuere das ganze Haus mit Homematic).
hier die beiden Scripte
Code: Alles auswählen
!---- Veränderung Solltemp feststellen
!----- Raumreglerz identifizieren
string Raumreglerz = "BidCos-RF.xxxxxxxxxxxxxxx";
!---- Solltemperaturen in Variablen schreiben
if ((dom.GetObject("EGDieleZaehler").Value()) == 0.0)
{
dom.GetObject("EGDieleSollAktual1").State(dom.GetObject(Raumreglerz#":2.SET_TEMPERATURE").Value());
dom.GetObject("EGDieleZaehler").State((dom.GetObject("EGDieleZaehler").Value())+1.0);
}
else
{
dom.GetObject("EGDieleSollAktual2").State(dom.GetObject(Raumreglerz#":2.SET_TEMPERATURE").Value());
dom.GetObject("EGDieleZaehler").State(0);
}
Code: Alles auswählen
!------ Veränderung Diele Feststellen
if ((dom.GetObject("EGDieleSollAktual1").Value()) == (dom.GetObject("EGDieleSollAktual2").Value()))
{
WriteLine("keine Veränderung");dom.GetObject("EGDieleSolltempDiff").State(false);
}
else
{
WriteLine("Veränderung");dom.GetObject("EGDieleSolltempDiff").State(true);
}
Und es schreibt abwechselnd die aktuelle festgestellte Soll-Temperatur in jeweils eine von zwei Systemvariablen.
je nachdem ob die Variable "Zaehler" den Wert 1 oder 0 hat, wird beim Aufruf des Scripts entweder ind "SollAktual1" oder in "SollAktual2"
die akutell abgefragte Solltemperatur eingetragen. Die Variable "Zaehler" wird bei jedem Aufrug des Scripts automatisch abwechselnd auf 0 oder 1 gesetzt.
Das zweite Script vergleicht dann jeweils die beiden Variablen "SollAktual1" und "SollAktual2" und stellt fest ob die Werte gleich sind oder
ob die beiden Werte abweichen.
Sofern die Werte gleich sind, hat sich die Solltemperatur nicht verändert und eine Systemvariable "Solltempdiff" wird auf "false" gesetzt.
sofern die Werte unterschiedlich sind, hat sich die Solltemperatur verändert und die Systemvariable "Solltempdiff" wird auf "true" gesetzt.
Das ganze ist zwar etwas aufgebläht programmiert, und man könnte da einiges straffen und beispielsweise eine Werteliste verwenden etc.
aber wie gesagt, bei mir hat sich das aus der Historie heraus so entwickelt und ich brauchs nicht zu ändern, weils funktioniert.
- Charly - Raspymatic mit Redmatic, 420 Systemvariablen, 440 Programmen, 101 Direktverknüpfungen, 121 Geräten
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa
- CCU3- Raspymatic mit Redmatic und Verbindung zur PV-Anlage/Wechselrichter
- Charly - Raspymatic mit Redmatic und Sprachsteuerung per Alexa
Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten
Hallo und danke für die Info's.
Bisher habe ich noch keine Scripte verwendet. Kannst du mir kurz erklären wo ich die Variablen
wie z.B. "EGDieleZaehler" herkommen?
Eigentlich würde mir von der Logik folgendes reichen:
int sollvorher = 10; Beispiel
int sollJetzt = 20; (am rad gedreht)
If sollvorher ungleich sollJetzt dann Sysvariable auf manu.
Gibt es da irgendwo eine Doku für die Scripte?
Bisher habe ich noch keine Scripte verwendet. Kannst du mir kurz erklären wo ich die Variablen
wie z.B. "EGDieleZaehler" herkommen?
Eigentlich würde mir von der Logik folgendes reichen:
int sollvorher = 10; Beispiel
int sollJetzt = 20; (am rad gedreht)
If sollvorher ungleich sollJetzt dann Sysvariable auf manu.
Gibt es da irgendwo eine Doku für die Scripte?