Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

navino
Beiträge: 187
Registriert: 23.02.2015, 20:19

Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Beitrag von navino » 07.11.2018, 20:15

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?

Bratmaxe
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

Beitrag von Bratmaxe » 07.11.2018, 21:56

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

navino
Beiträge: 187
Registriert: 23.02.2015, 20:19

Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Beitrag von navino » 08.11.2018, 14:13

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.

Bratmaxe
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

Beitrag von Bratmaxe » 08.11.2018, 15:23

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.
Gruß Carsten

navino
Beiträge: 187
Registriert: 23.02.2015, 20:19

Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Beitrag von navino » 08.11.2018, 16:13

Das Problem ist, das sich auch im Automodus die Solltemperatur ändert...

Bratmaxe
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

Beitrag von Bratmaxe » 08.11.2018, 16:21

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..
Gruß Carsten

navino
Beiträge: 187
Registriert: 23.02.2015, 20:19

Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Beitrag von navino » 08.11.2018, 16:27

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?

navino
Beiträge: 187
Registriert: 23.02.2015, 20:19

Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Beitrag von navino » 08.11.2018, 16:34

Ein Problem habe ich noch:
Wie bekomme ich es in einem Script hin, das ich merke das sich die Solltemperatur geändert hat?

twoxx
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

Beitrag von twoxx » 08.11.2018, 19:34

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).
Programm.JPG
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);
}
und Script 2

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);
}
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.
- 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

navino
Beiträge: 187
Registriert: 23.02.2015, 20:19

Re: Durch Drehen eines Heizkörperthermostat Systemvariable umsetzten

Beitrag von navino » 08.11.2018, 19:54

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?

Antworten

Zurück zu „HomeMatic allgemein“