Homematic Heizkörperthermostat - Heizprogramme per WebFront einstellen

In diesem Thread bitte keine Diskussionen oder Fragen posten. Das kann hier passieren.


Dieser Thread dient ausschliesslich dazu das Skript in seiner aktuellen Version zugänglich zu machen ohne sich die Teile in seitenweisem Studium des Forums zusammen suchen zu müssen.

Hallo…

ich habe nunmehr die aktuellen Wandthermostate in mein Skript eingearbeitet und ein paar kleine Details verbessert.

  • [li]Unterstützt jetzt auch den HM-TC-IT-WM-W-EU (einschl. der internen WochenProfile)[/li][li]Das Schreiben und lesen der Profile wurde beschleunigt. Dazu habe ich die zeitintensive Funktion HMXML_getType() in der hmxml.inc.php von Zapp durch einen „Cache“ etwas entschärft. D.h. die Funktion speichert eine einmal gefundene Zuordnung HM-Adresse <-> DeviceTyp in einer Variablen ab und muss so das nächste mal nicht die gesamte Deviceliste der CCU abgrasen. [/li][li]Beim Editieren des Zeitplans für einen HM-TC-IT-WM-W-EU werden 5min Schritte berücksichtigt.[/li](Hier gibts noch einen Schönheitsfehler. Kopiert man einen Zeitplan eines HM-TC-IT-WM-W-EU in dem ein Schaltzeitpunkt auf 5min endet (z.B. 6.55) zu einem alten HM-CC-TC oder einen HM-CC-RT-DN (die können nur 10 min Schritte) lästt sich dieses Profil nicht ans Device übertragen, wird jedoch dennoch in IPS abgespeichert … muss ich noch anpassen :o)

bInstallation (Update siehe unten):[/b]

Von der Verwendung des Project-Exporters von raketenschnecke habe ich wieder Abstand genommen. Irgendwie stehe ich mit diesem Teil zur Zeit auf dem Kriegsfuss … :rolleyes:
Die Instalation von Hand sollte jedoch nicht all zu schwer sein:

[ol]
[li]Die Datei >>xmlrpc.inc.php<< hier im Forum oder per Google suchen und so ins Script-Verzeichnis von IPS zu kopieren.[/li][li]Legt in IPS an der von Euch gewünschten Stelle eine Struktur gemäß der Darstellung in Bild 1 an. [/li][li]Importiert die unten beigefügten Skripte (mit Ausnahme von HM_Profil-Import.ips) und legt sie gemäß der[/li]Abbildung in Bild 1 ab. Achtet darauf, dass dabei die Dateinamen der Skripte beibehalten werden.
( Verwendet ggf. den Menüpunkt „Skript umbenennen“; siehe Bild 2 --> Schraubenschlüssel)
[li]Importiert jetzt auch das Skript HM_Profil-Import.ips.[/li]Ihr müsst es einmalig ausführen und könnt es sodann löschen. Das Skript legt in IPS die für mein Heizungsskript benötigten Variablen-Profile an. (Achtung: bereits vorhandene -gleichnamige - Profile werden überschrieben. )
[li]im Skript >>hmxml.inc.php<< die Adresse und den Port Eurer CCU eintragen (ca. Zeile 81 und 91)[/li][li]Skript „Config\HM_Heizung_Konfig“ individuell anpassen.[/li](Orientiert Euch einfach an den Beispielen. Bei den Variablen mit „Wfe“ im Namen müssen jeweils die IDs der (manuell angelegten) Kategorien eingetragen werden, in denen die Struktur für das WFE erstellt werden soll. Die Bezeichnungen der Zimmer dürfen nur aus Buchstaben und Ziffern bestehen. Umlaute, Sonder- oder Leerzeichen führen zu einer Fehlermeldung beim erstmaligen Ausführen des Skriptes „HM_Heizung_Raumsteuerung“ … siehe Punkt 7)
[li]Skript „Funktionen\HM_Heizung_Raumsteuerung“ einmal manuell ausführen. [/li](Nun sollten für alle im HM_Heizung_Konfig Skript eingetragenen Thermostate die notwendigen Kategorien und Verlinkungen angelegt werden. Kommen später neue Thermostate hinzukommen oder werden diese entfernt, so ist das Skript abermals manuell zu starten.)
[li]Skript „Zeitplan - Editieren\HM_Edit“ ebenfalls einmal manuell starten.[/li][li]Jetzt noch das WFE basteln. Die dafür notwendige Struktur findet Ihr unter den Kategorien, die Ihr im HM_Heizung_Konfig Skript eingetragen habt.[/li][/ol]

… das wars … :slight_smile:

Update

Habt Ihr bereit eine frühere Version meines Skriptes installiert, dann geht wie folgt vor:

[ol]
[li]Ersetzt die Skripte HM_Heizung_Raumsteuerung, HM_Heizung_Funktionen, HM_Edit durch die aktuellen Fassungen[/li][li] Benennt die Sktriptdatei >HMXML_11-2013.inc.php<< in >>hmxml.inc.php<< um. (Wichtig: Die Bezeichnung in IPS ist dabei egal, es geht um die Datei im Skriptverzeichnis von IPS. Verwendet am Besten den Menüpunkt Skript umbenennen; siehe Bild 2 --> Schraubenschlüssel)[/li][li]Kopiert den Inhalt der aktuellen hmxml.inc.php in Euer Skript.[/li][li]im Skript >>hmxml.inc.php<< die Adresse und den Port Eurer CCU eintragen (ca. Zeile 81 und 91)[/li][li]Passt das Variablen Profil HM_Heizung_Zeit_Edit entweder manuell an (siehe Bild 3) oder führt einmalig das Skript Skript HM_Profil-Import.ips aus. (Achtung: bereits vorhandene -gleichnamige - Profile werden überschrieben. )[/li][li] So jetzt noch die Skripte HM_Heizung_Raumsteuerung und HM_Edit in dieser Reihenfolge ebenfalls einmalig manuell starten … das wars … :-)[/li][/ol]

Hinweis: Ich habe alles in meiner VM getestet. Macht jedoch bitte vor dem Update bzw. der Instalation ein Backup
eures Systems. Ich kann leider nicht dafür garantieren, dass nicht doch etwas schief läuft … :rolleyes:

Weiteres Vorgehen:

Um ein Profil bearbeiten zu können muss es zunächst in IPS gespeichert werden.

HM-CC-RT-DN und HM-CC-TC (… die kennen nur ein -internes - Wochenprofil)
Hierzu bitte zunächst den Button „Profil speichern“ (dieser wird rot) und sodann noch einmal den Button „Aktualisieren“ drücken. Jetzt wird das im Thermostat bereits vorhandene Profil in die IPS-Variable geschrieben und kann im TAB „Zeitplan editieren“ beliebig bearbeitet werden. (Hinweis: Das Profil wurde unter dem Profil „Normal“ gespeichert". Im nächsten Schritt kann im TAB >>Zeitplan editieren<< das Profil „Normal“ auf die noch leeren Profile „Frei“ bzw. „Abwesend“ übertragen werden.

HM-TC-IT-WM-W-EU (… der hat von Hause aus 3 interne Wochenprofile)

Der neue WT verhält sich da etwas anders, da er ja bereits 3 interne Wochenprofile kennt. Ich habe daher hier auf den Button „Aktualisieren“ verzichtet. Sofern man bei der ersten Bedienung ein Profil anklickt oder bei der „normalen“ Bedienung im WF ein Profil umschaltet werden immer alle 3 internen Profile des WT ausgelesen. IPS schaut sodann jedes mal nach, ob die aus dem neuen WT ausgelesenen Profile und die IPS bekannten 3 Profile übereinstimmen. Sollten dies nicht der Fall sein (da hat dann wohl jemand direkt am WT oder über die WebUI der CCU mind. 1 Profil geändert) leuchtet der Speicherbutton rot. Einfach auf speichern drücken und IPS hat sich die neuen Profile gemerkt, so dass diese im TAB >>Zeitplan editieren<< wieder geändert werden können. Hier sind sodann auch bereits die anderen Profile „Frei“ und „Abwesend“ belegt, da diese ja auch aus dem WT ausgelesen wurden

Mit dem Knopf >>Profil übertragen<< - linke Seite im TAB Zeitplan editieren - kann ein zusätzliches Menü ausgeklappt werden.

Die so erscheinenden (neuen) Menüpunkte kann man sodann beim Worte nehmen:

  • „Tagesprofil kopieren nach“ --> um z.B. Mo. nach Fr. kopieren (jedoch im selben Wochenprofil)

Hierbei wird das aktuell ausgewählte Tagesprofil (dies ist auf der linken Seite hervorgehoben) innerhalb des gleichen Wochenprofils auf den Tag kopiert der im Menü >>Tagesprofil kopieren nach<< gedrückt wird.

  • „Wochenprofil übernehmen von“ --> um z.B. das gesamte Profil „Normal“ Wohnzimmer mit dem Profil „Frei“ Küche zu überschreiben o.ä.

Um das Wochenprofil zu übernehmen geht wie folgt vor:
Wählt zunächst auf der linken Seite das Profil aus, welches überschrieben werden soll (z.B. „Frei“). Wählt dann auf der rechten Seite das Profil aus welches (nach links hin) übertragen werden soll und klickt dann auf der rechten Seite auf den Raum, von dem das soebend aufgewähltes Profil übertragen werden soll. Das Kann übrigens auch der selbe Raum sein, der bereits auf der linken Seite ausgewählt wurde. So kann man z.B. das Profil „Frei“ des Wohnzimmers mit dem Profil „Normal“ des Wohnzimmers überschreiben.

Achtung:
Erst wenn der Knopf „Profil speichern“ gedrückt wird, werden die geänderten Einstellungen in IPS und/oder dem WT gespeichert.

Viel Spaß

Gruß

Swifty

ToDo:

  • Fehlerbehebung beim kopieren des Zeitplans eines HM-TC-IT-WM-W-EU (siehe oben)
  • Party/Urblaubsfunktion sinnvoll integrieren

Bild1
Bild1.jpg

Bild2
Bild3.jpg

Bild3
Bild2.jpg

Weitere Bilder

Bitte immer das aktuelle Script aus #2 verwenden.

2014-02-19.zip (19.9 KB)

Version Stand 24.02.2014:
Die Fehler aus Beitrag #4 wurden korrigiert.

Neuinstalation:
… erfolgt wie im Beitrag #1 beschrieben

Update:

  • Bei einer bestehenden Installation sind nur die Inhalte der Skripte „HM_Edit“ und „hmxml.inc.php“ durch die aktuellen Versionen zu ersetzen.
    Achtung: In der „neuen“ hmxml.inc.php bitte unbedingt die IP eurer CCU bzw. des BidCosServers eintragen, sonst hagelt’s Fehlermeldungen.

2014-02-24.zip (20.1 KB)

Wenn Ihr vor habt, die Heizungsprofile per Script (s.u.) umzuschalten, dann solltet Ihr mal folgende Beiträge lesen …

Es sind nur zwei kleine Anpassungen erforderlich, die Ihr im verlinkten Beitrag findet.

$Profil = 0 ; //0 = Normal, 1 = Frei, 2 = Abwesend 
SetValueInteger (HM_Praesenz_Profil_Auswahl_ID, $Profil); 

Gruß

Swifty

Bekannte Fehler:

Fehlermeldung beim Abspeichern eines Profils

IPS-Err-PHP  2014-02-24 08:21:55.063  Warning: Wrong parameter count for SetValue()
   Error in Script C:\IP-Symcon\scripts\57523.ips.php on Line 161
  133 in IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
  161 in 57523.ips.php (call SetValue)

Ursache: Syntaxfehler in der HM_Edit

Lösung: siehe hier. --> in neuer Version vom 24.02.2014 korrigiert.

=========================================================================

Fehlermeldung beim Auslesen und/oder Abspeichern des ersten Profils eines neuen WT
bei Verwendung der CCU1 oder des LAN-Adapters

Ursache:
Bei der CCU2 haben die internen Profile das Präfix „P1_, P2_ und P3_“. Der LAN-Konfigurator
und die CCU1 bezeichenen das erste interne Profil des neuene WT anders. Dort fehlt das Präfix.

Beispiel für Fehlermeldungen:

Diskussion siehe hier

(mögliche) Lösung: siehe hier --> in neuer Version vom 24.02.2014 korrigiert.