Funk-Wandthermostat Heizen/Kühlen Umschalten

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

sigasser
Beiträge: 2
Registriert: 26.09.2018, 00:04

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von sigasser » 26.09.2018, 00:46

Hallo

Ich habe Programm und Skript hier übernommen und es funktioniert.
wendy2702 hat geschrieben:
21.03.2017, 10:11

Umschalten_Heizen_Kühlen_CCU_Programm.jpg
Wie könnte ich jetzt das grad für alle 8 FWT's machen?

sigasser
Beiträge: 2
Registriert: 26.09.2018, 00:04

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von sigasser » 26.09.2018, 20:12

Ich habe es jetzt mal so gelöst:

Code: Alles auswählen

! Umschalten der Funk Wandthermostaten im Betrieb "Zweipunktregelung" gekoppelt mit entsprechenden Schaltaktoren jeweils auf Kanal 7.
! Umschalten von Heizen auf Kühlen und zurück.

! Gästezimmer (1) (SchaltAktor UG Kanal 1)

object dev = devices.Get("WT-Gast-UG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Werkstatt (2) (SchaltAktor UG Kanal 2)

object dev = devices.Get("WT-Werkstatt-UG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Lager (8) (SchaltAktor UG Kanal 3)

object dev = devices.Get("WT-Lager-UG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Wohnen (3) (SchaltAktor EG Kanal 1)

object dev = devices.Get("WT-Wohnen-EG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Küeche-Essen (4) (SchaltAktor EG Kanal 2)

object dev = devices.Get("WT-Kueche-Essen-EG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Eltern (5) (SchaltAktor OG Kanal 1)

object dev = devices.Get("WT-Eltern-OG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Kind 1 (6) (SchaltAktor OG Kanal 2)

object dev = devices.Get("WT-Kind1-OG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}

! Kind 2 (7) (SchaltAktor OG Kanal 3)

object dev = devices.Get("WT-Kind2-OG");
var cool = dom.GetObject("Kuhlen").Value();
if (cool) {cool = "1";}
else {cool = "0";}
if(dev)
{  xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool);
}
Funktioniert wunderbar.

Vielen Dank @paul53 und @wendy2702

Matten Matten
Beiträge: 278
Registriert: 09.12.2018, 17:14
System: CCU
Hat sich bedankt: 67 Mal
Danksagung erhalten: 21 Mal
Kontaktdaten:

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von Matten Matten » 14.08.2021, 16:45

Danke auch mir hat das sehr weiter geholfen.

Hier mein script, das die Systemvariable automatisch anlegt und mit dem Kanal 2 des Termostat verknüpft. und beim zweiten ausführen die Systemvariable synchronisiert. (vorausgesetzt der Kanal 2 nennt sich genau so wie das Thermostat mit ":2" am ende)

Code: Alles auswählen

WriteLine("Start");

var devName = "Wandtermostat_XYZ"; !<--- Hier den Namen des Wandthermostat

object dev = devices.Get(devName);

string  svName = devName + "_Heizen_Kuehlen";
object  svObj  = dom.GetObject(svName);

if (!svObj){   
    object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
    svObj = dom.CreateObject(OT_VARDP);
    svObjects.Add(svObj.ID());
    svObj.Name(svName);   
    svObj.ValueType(ivtBinary);
    svObj.ValueSubType(istBool);
    svObj.DPInfo("Heizen/Kuelen");
    svObj.ValueName0("Heizen");
    svObj.ValueName1("Kühlen"); 
    svObj.ValueUnit("");
    svObj.DPArchive(false);
    svObj.State(false);
    svObj.Internal(false);
    svObj.Visible(true);
    dom.RTUpdate(0);
    object oChan= channels.Get (dev.Name() + ":2");
    object oSys=dom.GetObject (ID_SYSTEM_VARIABLES).Get (svName);
    oChan.DPs().Add (oSys);
    oSys.Channel (oChan.ID());
    WriteLine("Datenpunkt "#svName#" angelegt & verknüpft");
} else {
  var cool = dom.GetObject(svName).Value();
  if (cool) {cool = "1";}
  else {cool = "0";}
  if(dev){ xmlrpc.PutParamset(dev.Interface(),dev.Address(),"MASTER","HEATING_COOLING",cool); }
  WriteLine("HEATING_COOLING wurde mit Systemvariable synchronisiert.");
}
WriteLine("Stop");
Gruß
Matten Matten

Werner74579
Beiträge: 54
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 13 Mal

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von Werner74579 » 08.12.2022, 16:39

Hallo an alle,
ich habe die Beiträge hier genau durchgelesen und habe dennoch eine Frage, zumal es hier sehr versierte Leute gibt.
Ich habe Wandthermostate HmIP-WTH-B-2 und Heizkörperthermostate HmIP-eTRV-C-2 zusammen mit der HmIP-CCU3 und das funktioniert soweit gut.

Ich habe hier eine Holz-Zentralheizung mit Pufferspeicher und kann auf alle Werte, die ich brauche zugreifen und habe die auch in der CCU vorliegen.

Ich möchte nun (weil das bisher immer ein großes Problem war) auf dem Wandthermostat anzeigen:

1) Ob das Feuer noch brennt oder am ausgehen ist und ich nachlegen sollte. Das würde ich gerne mit dem Symbol "Heizen" anzeigen.
2) Ob der Pufferspeicher noch genügend warm ist, andernfalls sollte ich ebenfalls das Feuer besser in Schwung bringen. Das würde ich gerne mit dem Symbol "Kühlen" anzeigen.

Ich habe es schon geschafft über ein Script die Einstellung "HEATING_COOLING" wunschgemäß auf 0 oder 1 zu setzen, aber leider folgen die Symbole auf dem Wandthermostat dem nicht (bei beispielsweise WINDOW_STATE funktioniert das).

Ich bin hier noch beim Testen und könnte auch noch auf einen anderen Wandthermostat wechseln oder sogar auf ein ganz anderes System, da für mich das mit der Anzeige ziemlich wichtig ist.

Ich wage mich auch an komplizierte Programmieraufgaben, wenn sie denn erfolgreich sein können.

Hat jemand einen Tipp oder eine Idee für mich.
Ich wäre extrem dankbar und würde mich sehr freuen.

(Notfalls könnte ich mir die Anzeige der beiden gewünschten Informationen auch über die Heizphasen, Wochentagsnamen oder ähnliches vorstellen, da ich diese Dinge eh nicht benötige.)

Benutzeravatar
robbi77
Beiträge: 13771
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 181 Mal
Danksagung erhalten: 731 Mal

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von robbi77 » 08.12.2022, 17:15

Der Wandthermostat ist keine Anzeige …

Wenn du auf kühlen stellst funktioniert die Regelung entgegengesetzt zum heizen.

Oder sind die WTs gar nicht mit den Heizungsthermostaten verbunden und hängen nur zur Zier an der Wand?

Werner74579
Beiträge: 54
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 13 Mal

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von Werner74579 » 08.12.2022, 19:36

Hallo robbi

1) Die Wandthermostaten zeigen ja was an, zum Beispiel die aktuelle Temperatur und das ist durchaus nützlich, also spricht prinzipiell nichts dagegen, dass sie auch andere nützliche Informationen anzeigen. Es geht hier um ein technisches Problem, eben darum, ob man die Wandthermostaten dazu nutzen kann weitere nützliche Informationen anzuzeigen, selbst wenn sie dazu nicht explizit konzipiert wurden. Das ist doch so erstmal eine spannende Frage ... und eventuell geht's ja sogar über irgendwelche Tricks.

2) Die beiden Symbole für "Heizen" und "Kühlen" sind ja auf dem Display immerhin vorhanden. Irgendjemand (der die Dinger entwickelt hat) hat sich also jedenfalls mal gedacht, dass die Symbole auch angezeigt werden. Also möglich sollte es sein.

Ich bin ein hartnäckiger Problemelöser. Solche Fragen sind für mich Anreiz und Herausforderung gleichermaßen.

Benutzeravatar
robbi77
Beiträge: 13771
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 181 Mal
Danksagung erhalten: 731 Mal

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von robbi77 » 08.12.2022, 20:17

robbi77 hat geschrieben: Oder sind die WTs gar nicht mit den Heizungsthermostaten verbunden
Fragezeichen

Werner74579
Beiträge: 54
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 13 Mal

Re: Funk-Wandthermostat Heizen/Kühlen Umschalten

Beitrag von Werner74579 » 17.11.2023, 16:05

So, nach knapp einem Jahr mache ich hier mal wieder weiter...

Und es gab einen super Erfolg: Ich habe es über einen Trick geschafft das HmIP-WTH-B-2 so einzubinden, dass ich über ein Skript und dort mithilfe der beiden Befehle

dom.GetObject("HmIP-RF.00345F29971349:1.HEATING_COOLING").State(1);

und

dom.GetObject("HmIP-RF.00345F29971349:1.HEATING_COOLING").State(0);

die Anzeige des HmIP-WTH-B-2 von Kühlen auf Heizen umschalten kann. Aber manchmal will ich weder kühlen noch heizen, also ich möchte dann auch weder Kühlen noch Heizen anzeigen. Geht das mit einem ähnlichen Befehl?

dom.GetObject("HmIP-RF.00345F29971349:1.HEATING_COOLING").State( ? );

Ich würde mich über Tipps freuen - danke.

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“