Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

sumpfnagel
Beiträge: 104
Registriert: 30.09.2013, 20:51

Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von sumpfnagel » 24.10.2014, 11:38

Hallo,

hier ist beschrieben, wie man beim neuen Wandthermostat die Wochenprofile tauschen kann - funktioniert bei mir auch.

Nun wollte ich das Skript für eine Gruppe verwenden, bekomme es aber nicht hin. Hat schon jemand erfolgreich in der Gruppe die Wochenprofile per Skript umgestellt?

Was passiert wenn ich nur den Wandthermostat in der Gruppe umstelle? Funktioniert das trotzdem, obwohl die CCU immer noch das alte Wochenprofil in den Einstellungen gespeichert hat?

Danke,
-sumpfnagel.

Homer Matic
Beiträge: 3
Registriert: 30.12.2014, 15:34

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von Homer Matic » 31.12.2014, 15:22

Hallo sumpfnagel,

ich stand genau vor demselben Problem mit den Gruppen, habe aber endlich eine Lösung dafür gefunden.
sumpfnagel hat geschrieben: hier ist beschrieben, wie man beim neuen Wandthermostat die Wochenprofile tauschen kann - funktioniert bei mir auch.
Das von dir genannte Skript passt grundsätzlich auch schon für Gruppen.

Aber das darin verwendete TCL-Skript hier kann für Gruppen so nicht funktionieren, da Gruppen zu den sog. VirtualDevices gehören, und eben nicht zu den BidCos-RF Komponenten, auf die das Skript voreingestellt ist.
VirtualDevices haben auf der CCU2 einen eigenen XML-RPC-Server mit der Adresse http://127.0.0.1:9292/groups.

Falls es jemand nachschauen will, der findet diese Einstellungen unter /etc/config/InterfacesList.xml

Ich habe das Skript daher angepasst und als eigene Datei daneben gelegt, z.b. setparam_virtdev.tcl:

Code: Alles auswählen

#!/bin/tclsh
#
# Aufruf für ein putParamset (z.B. über CUxD.CMD_EXEC)
# ====================================================
#
# tclsh setparam_virtdev <addresse> <item> <datentyp> <wert>
# z.B.
# tclsh /usr/local/setparam_virtdev.tcl INT0000001 WEEK_PROGRAM_POINTER int 1
#
load tclrpc.so
set item [lindex $argv 1]
set datatype [lindex $argv 2]
set val [lindex $argv 3]
set cmd "{$item {$datatype $val}}"
xmlrpc http://127.0.0.1:9292/groups putParamset [list string [lindex $argv 0]] [list string "MASTER"] [list struct $cmd]
Jetzt kannst du das Skript von hier verwenden, wie du es oben schon verlinkt hattest.
Du musst darin nur den Aufruf von setparam.tcl durch setparam_virtdev.tcl ersetzen.
sumpfnagel hat geschrieben: Was passiert wenn ich nur den Wandthermostat in der Gruppe umstelle? Funktioniert das trotzdem, obwohl die CCU immer noch das alte Wochenprofil in den Einstellungen gespeichert hat?
Soweit ich das sehe hat es auf den Betrieb zunächst keinen Einfluss, wenn in Gruppe und Wandthermostat unterschiedliche Wochenprogramme aktiv sind.
Führend ist das aktive Wochenprogramm des Wandthermostats.
Aber wenn du später das Gruppenprofil über die WebUI anpassen willst, ist das falsche aktive Wochenprogramm im Vordergrund. Wenn man jetzt speichert landet das falsche aktive Profil auf dem Wandthermostat.

Grüße,
Homer

Kevin2011
Beiträge: 9
Registriert: 29.10.2014, 22:10

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von Kevin2011 » 04.01.2015, 17:00

Hallo,

ich würde gerne das oben beschriebene umsetzten. Nur muss ich leider sagen, dass ich nicht ganz durchblicke.

Was muss nochmal genau in die TCL Datei bzw welche Variablen muss ich womit ersetzten und wie passe ich das Script an ?

Vielen Dank schon mal-

sumpfnagel
Beiträge: 104
Registriert: 30.09.2013, 20:51

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von sumpfnagel » 10.01.2015, 09:33

Homer Matic hat geschrieben: Soweit ich das sehe hat es auf den Betrieb zunächst keinen Einfluss, wenn in Gruppe und Wandthermostat unterschiedliche Wochenprogramme aktiv sind.
Führend ist das aktive Wochenprogramm des Wandthermostats.
Aber wenn du später das Gruppenprofil über die WebUI anpassen willst, ist das falsche aktive Wochenprogramm im Vordergrund. Wenn man jetzt speichert landet das falsche aktive Profil auf dem Wandthermostat.
Hallo Homer,
es funktioniert - danke für die Tipps :D :D

Es scheint tatsächlich egal zu sein, ob das Wochenprogramm der Gruppe oder nur des Wandthermostaten geändert wird: im Heizungsantrieb bleibt das Programm "1" aktiv. Das führt dazu, der Heizungsantrieb zu Schaltzeiten des 1. Programms für etwa 1 Minute dessen Temperatur vorgibt (und ggf. den Antrieb kurz auf- oder zufährt), bis er vom Wandthermostaten korrigiert wird. Nicht ideal, aber noch okay. Besser als die Temperatur ständig im MANU-Modus vorzugeben.

Gruß,
-sumpnagel.

Homer Matic
Beiträge: 3
Registriert: 30.12.2014, 15:34

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von Homer Matic » 10.01.2015, 13:05

Noch ein kleiner Nachtrag zu diesem Skript bei der Verwendung von Gruppen ohne Wandthermostat:

Ich habe vorsorglich schon mal für jeden Raum getrennte Gruppen angelegt, auch für die Räume, die (noch) keinen Wandthermostaten haben. Dann kann ich bei Bedarf einfach noch Wandthermostate dazu hängen.

ABER: Wenn man das Skript nun auch auf diese Gruppen ohne Wandthermostat anwendet, so bekommt man ein Problem mit den Einstellungen dieser Gruppen in der WebUI.
Denn in der WebUI wird immer das angeblich aktive Wochenprogramm (1, 2 oder 3) angezeigt, das durch das Skript eingestellt worden ist.
Und auch nur das ist editierbar. Die anderen beiden sind nicht sichtbar.
Tatsächlich in Betrieb ist aber immer nur das 1. Wochenprogramm, da die Heizkörperthermostate selbst keine weiteren Wochenprogramme unterstützen.

Leider kann man nicht direkt in der WebUI erkennen welches Wochenprogramm gerade aktiv ist, da es keine Anzeige der derzeit aktiven Wochenprogrammnummer gibt. (Das gibt es nur bei Gruppen mit Wandthermostaten.)

:idea: Abhilfe schafft da nur, mittels Skript wieder auf Wochenprogramm 1 zurückzuschalten und diese Gruppen aus dem Gewerk herauszunehmen.

Ich hatte mich nur gewundert, warum nach der Umstellung per Skript plötzlich wieder die Standardeinstellungen der Zeitprogramme für diese Gruppe zu sehen ist. :? (Das war aber in meinem Fall tatsächlich Wochenprogramm 2, welches hier keine aber Verwendung findet.)

Deshalb: Solche Gruppen ohne Wandthermostat besser nicht über das Skript ansteuern. :!:

Cash
Beiträge: 1143
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von Cash » 21.01.2016, 14:29

Ich habe hierzu mal eine Frage:

das o. g. Script speicher ich in die Datei "setparam_virtdev.tcl"

die muss ich nun auf mein ccu2 schieben. Wie genau mache ich das?

Per ftp wähle ich als IP die IP der CCU. Das wäre kein Problem. Aber danach weiß ich erstmal nicht weiter.

Username und Kennwort bleiben leer?
Welchen Port muss ich einstellen?
Finde ich das Verzeichnis "usr" danach direkt im Root? (/usr/local)

Was genau heißt die Dateiausführbar setzen?

Vielen Dank und Grüße

Thomas

Gernot@gmx.net
Beiträge: 17
Registriert: 13.01.2016, 22:20

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von Gernot@gmx.net » 04.10.2017, 07:09

Hallo,
lese mit Begeisterung, dass es andere gibt die das auch machen wollen.
Nur habe ich von dem Scripten noch keine Ahnung. Hast du das hinbekommen und wie?
Gruss
Gernot

alchy
Beiträge: 7714
Registriert: 24.02.2011, 01:34

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von alchy » 04.10.2017, 12:33

Auch das Wochenprogramm einer Virtuellen Heizungsgruppe sollte per einfachen HM Script umgeschalten werden können, ohne sich mühsam mit Dateien rum zu quälen.

Code: Alles auswählen

object obj = devices.Get("Heizungsgruppe Kellergeschoss INT0000001");
xmlrpc.PutParamset (obj.Interface(), obj.Address(), "MASTER", "WEEK_PROGRAM_POINTER", "1");
Wobei der Name "Heizungsgruppe Kellergeschoss INT0000001" jener welcher ist:
VirtHeizgruppe.jpg
Hinten die 0 aktiviert das Wochenprogramm 1, hinten die 1 aktiviert Wochenprogramm 2 usw.
Ob das Script nun unter Script testen oder in einem Klickibuntiprogramm aufgerufen wird, sollte egal sein. Musst du mal probieren.

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Cash
Beiträge: 1143
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von Cash » 04.10.2017, 13:17

Gernot@gmx.net hat geschrieben:Hallo,
Hast du das hinbekommen und wie?
Gruss
Gernot
Ja ich habe es nach etwas suchen und probieren hinbekommen. Man speichert die Datei oben in ein Verzeichnis der ccu (per ftp verbinden und übertragen) und muss das dann im Programm aufrufen.

Damals wußte noch niemand wie man die Heizungsgruppen relativ einfach direkt per Script in der Webui ändern kann.

Ich würde heute definitvi die Variante von Alchy nehmen. Probier die Variante mal und wenn es Probleme gibt finden wir eine Lösung...

Mein Programm hat heute Morgen um 0:25 Uhr das Heizprofil von 1 (bei mir Urlaub- bzw Feiertage) wieder zurück auf 0 (Arbeitstage) gestellt. Nutze dazu noch das Feiertagsscript bzw Urlaubsscript damit die Heizungen automatisch umgestellt werden.

asman
Beiträge: 12
Registriert: 23.10.2017, 15:50

Re: Wochenprofile per Skript einstellen (Heizungs-Gruppe)

Beitrag von asman » 23.10.2017, 16:04

Hallo liebe Forenmitglieder, hallo alchy,

bei meiner Suche im Forum nach der Möglichkeit die Wochenprofile per HM Skript umzustellen bin ich auf diesen Thread gestossen. Nachdem ich kläglich scheitere, habe ich mich jetzt angemeldet um Euch mit meinen Fragen zu "belästigen".

Unter Skript testen funktioniert die Methode einwandfrei, sobald ich diese aber in eine "Klickibuntilogik" einbaue erhalte ich immer wieder Fehler.

Bei dem Versuch die Wochenprofile mehrerer Gruppen nacheinander zu ändern scheitere ich immer.

Nachfolgend Auszüge aus dem Fehlerlog:

Eine Gruppe soll geändert werden. Aufruf funktionierte unter Skript testen, sobald ich ihn mit Logik verknüpfe erhalte ich häufig (nicht immer) folgenden Fehler:

Code: Alles auswählen

Error: IseESP::ScriptRuntimeError: object obj = devices.Get("Grp_Kizi"); xmlrpc.PutParamset (obj.Interface(), obj.Address(), "MASTER", "WEEK_PROGRAM_POINTER", "0"); [iseESPexec.cpp:12534]

Mehrere Gruppen sollen geändert werden - funktioniert nie:

Code: Alles auswählen

Error: IseESP::ScriptRuntimeError: object obj1 = devices.Get("Grp_Kizi"); xmlrpc.PutParamset (obj1.Interface(), obj1.Address(), "MASTER", "WEEK_PROGRAM_POINTER", "1"); object obj2 = devices.Get("Grp_Bad"); xmlrpc.PutParamset (obj2.Interface(), obj2.Address(), "MASTER", "WEEK_PROGRAM_POINTER", "1"); [iseESPexec.cpp:12534]
Hat jemand eine Idee was ich falsch mache?

Vielen Dank und viele Grüße
asman

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“