Homematic Heizungssteuerung - VirtualDevices (Gruppen) ansprechen

Hallo…

nach einigen Versuchen glaube ich einen Weg gefunden zu haben, um in IPS die VirtualDevices der CCU2 anzusprechen.

Zu diesem Zweck habe ich die bereits aus dem HeizungsSkript bekannte >>hmxml.inc.php<< etwas umgebaut und erweitert und ein Skript geschrieben, welches

[ul]
[li] die Datenpunkte der VirtualDevices (Gruppen) aus der CCU2 ausliest,
[/li][li] automatisch eine Struktur mit diesen Datenpunkten in IPS erstellt (ähnlich den HM-Konfigurator),
[/li][li]die Datenpunkte regelmäßig ausliest und
[/li]li die „SET_TEMPERATURE“ und den „CONTROL_MODE“ bedienen kann.
[/li][/ul]

Für alle die es ausprobieren wollen hier die „Installations-Anleitung“:
(Hinweis: Nach meinem Ermessen sollte zwar nichts (absolut) schief gehen … macht trotzdem vorher ein Backup !!! )

  1. [li]Falls noch nicht vorhanden, die Datei >>xmlrpc.inc.php<< hier im Forum oder per Google suchen und so ins Script-Verzeichnis von IPS kopieren.
    [/li][li] Die beigefügte Funktionssammlung >>hmxml.inc.php<< in IPS importieren. Achtet bitte darauf dass der Dateiname nicht verändert werden darf.
    [/li]
    Hinweis 1:
    Alle die mein Projekt „Homematic Heizkörperthermostat - Heizprogramme per WebFront einstellen“ im Einsatz haben, können die bereits vorhandene >>hmxml.inc.php<< durch diese ersetzen. Macht vorher unbedingt ein Backup !!! Bei mir funktioniert zwar alles. Ich übernehme jedoch keine Garantie für eine vorhandene Installation.
    Hinweis 2:
    Die Funktionssammlung >>hmxml.inc.php<< habe ich um einige von mir nicht benötigte Funktionen entschlackt. Lest bitte das „Vorwort“ in der Datei … ;). Solltet Ihr diese Funktionen für eigene Anwendungen eingebunden haben, müsst Ihr diese einfach in die neue >>hmxml.inc.php< wieder reinkopieren.
    .
    [li] In der importierten Funktionssammlung >>hmxml.inc.php<< die Zeilen 64, 65 und 70 unbedingt an Eure Verhältnisse anpassen (IP der CCU und Port für die HM-RF Module). Ganz wichtig: Unbedingt in Zeile 70 die IPS-ID der Funktionssammlung >>hmxml.inc.php<< einzutragen <edit> und in Zeile 268 ($IPS_HM=HM_GetKnownDevices) die ID des Homatic Konfigurators eintragen </edit>
    [/li][li] Die vorhandene Variable >>HM_Device_Cache<< löschen bzw. als Backup verschieben oder umbenennen.
    [/li][li] Das Skript >>HM_VG<< importieren. (Name und Ablage in IPS sind beliebig)
    [/li][li] Falls noch nicht vorhanden ist das Profil HM_Heizung_Steuerung_RT-DN zu erstellen bzw. ein vorhandenes Profil um den PartyModus zu ergänzen (siehe Bild).
    [/li]Hinweis: Im Webfront ist der PartyModus noch nicht aktiv auswählbar (… dass kommt später …)
    [li]<edit>Im importierten Skript >>HM_VG<< in der Zeile 49 die Kommentierung herausnehmen (HMXML_DevicesCache_update(0)), einmal manuell ausführen, die Fehlermeldung ignorieren und anschließend die Zeile wieder auskommentieren.</edit> Der erste Aufruf dauert etwas länger, da der HM-Cache neu erstellt wird. Unter diesem Skript solltet Ihr sodann diverse DummyModule finden, in denen jewels die Datenpunkte der VirtualDevices (Gruppen) zusammengefasst sind. Ihr könnt die Dummys beliebig umbenennen und in IPS verschieben/ablegen nur müssen zwingend die unter den Dummy erstellen Variablen auch bei ihrem Dummy bleiben …
    [/li][li] Die gewünschten Variablen ins Webfront verlinken …
    [/li]

… eine Integration in mein Heizungs-Projekt folgt … :loveips:

Gruß

Swifty

PS: Sollte IPS die VirtualDevices der CCU2 nativ unterstützen wird dies hier überflüssig.
PPS: Leider habe ich nur einen Weg gefunden, die Werte aus der CCU abzuholen. Hat Jemand eine Idee, wie man der CCU „beibringen“ kann, diese bei Veränderung zu senden ?

HM_VG.zip (2.56 KB)
hmxml.inc.php.zip (6.33 KB)

Bild01.jpg

Bild02.jpg

Hallo Swifty,

ich habe bereits Dein „Homematic Heizkörperthermostat - Heizprogramme per WebFront einstellen“ im Einsatz und bin nun diese Anleitung durchgegangen.

Leider bekomme ich beim Ausführen der HM_VG diese Meldung „Warning: Invalid argument supplied for foreach() in [Heizung Details\HM_VG] on line 61“ und es wird nichts angelegt (außer dem Timer).

Die Zeilen 64,65 und 70 habe ich angepasst.
An was könnte es liegen?

Viele Grüße
Erik

Hallo ErikB

… die Tücke steckt im Detail … schaun wir mal dort nach …:smiley:

[ol]
[li]Wurde die Variable >>HM_Device_Cache<< als Child unter dem Script hmxml.inc.php angelegt ?
[/li][li]Wenn nein, überprüfe bitte im Script hmxml.ic.php die Werte $GLOBALS[’$BidCosServiceIP’], $GLOBALS[‚port1‘] und $GLOBALS[‚hmxml_ID‘]… stimmen diese ?
[/li][li]Sind die Werte OK, dann einfach mal versuchen in der HM_VG die auskommentierte Zeile „//HMXML_DevicesCache_update(0); // 0= alle Devices; 1= nur HM WD und HM RF an CCU 2; 2= nur HM_VG’s XMLRPC an CCU2-Port 9292/groups“ zu aktivieren und das Skript einmal zu starten. Dann sollte die HM_Device_Cache angelegt bzw. upgedatet werden.
[/li][li]Zum Prüfen, ob die HM_DevicesCache überhaupt relevante Werte enthält kannst du im Skript HM_VG hinter der Zeile „$HM_VGs=HMXML_DevicesCache_ListByType(‚HM-CC-VG-1‘);“ einfach mal ein "prinr_r($HM_VGs) einfügen und die Ausgabe mal hier posten.
[/li][/ol]

Gruß Swifty

Hallo Swifty,

vielen Dank für die schnelle Hilfe.
Nachdem ich die Zeile in der HM_VG einmalig aktiviert hatte ging es.

Jetzt habe ich aber das Problem das ich über die Grenze von 1000 Variablen komme…aber das ist ein anderes Thema.

Viele Grüße
Erik

Hall ErikB …

du kannst ja die HM_VG so anpassen, dass nur die Variablen angelegt werden, die für Dich interessant sind. Einfach die jeweilige Case-Zeile auskommentieren.

Gruß

Swifty

Moin swifty,

sehe gerade dass sich wohl eine kleine Veränderung in die letzte CCU2-Software eingeschlichen hat. Veränderungen am Wandthermostat über WebUI oder IP-SymcAn werden jetzt an die Gruppe weitergegeben.

Gruß
Bruno

Hi …

habe ich auch gerade getestet … sieht gut aus. :smiley:

Noch besser währe es jedoch, wenn man den HomeMatic Socket „überreden“ könnte, mit dem für die VirtualDevices zuständigen XML-RPC-Server Kontakt aufzunehmen.:cool: Dann bräuchte man die Werte der Gruppen nicht abfragen. Die kämen ja dann frei Haus …

Gruß

Swifty

Dann lasst uns doch alle noch mal den Funktionswunsch pushen :smiley:
Ich glaube seit dem CCU Update könnte der RPC sogar Events versenden? Hat das mal wer getestet ?
Michael

Push erfolgt … melde Vollzug. …:smiley:

Hi,
nach der ersten Installation bekam ich diegleiche Fehlermeldung wie in #2. Nach auskommentieren der Zeile HMXML_DevicesCache_update(0); gibt es aber

Warning: array_key_exists() expects parameter 2 to be array, string given in D:\IP-Symcon\scripts\hmxml.inc.php on line 266
Abort Processing during exceed of maximal ErrorCount: array_key_exists() expects parameter 2 to be array, string given
Error in Script D:\IP-Symcon\scripts\hmxml.inc.php on Line 266

wobei „Warning: […] php on line 256“ 10x nacheinander auftaucht.

wo muss ich da suchen?

installiert ist: Dein Heizungs-Skript/System (erweitert um Profilumschaltung per Skript). HM-CC-TC, HM-CC-RT-DN

meine PHP-Kenntnisse reichen nicht ganz zum Verstehen der Funktion HMXML_DevicesCache_Update($Cache=0)

nette Grüße
Sven

So, nach ein bisschen Probieren und mehrfachem Starten von HM_VG.php läuft jetzt alles super.

Die Zeile HMXML_DevicesCache_update(0); muss nach dem manuellen Start von HM_VG.php wieder auskommentiert werden, sonst gibt die hmxml.inc.php ständig einen Fehler, dass eine Instanz fehlt:

[Zeile 279]: $IPS_HM=HM_GetKnownDevices(56067 /[Objekt #56067 existiert nicht]/);

Soll hier die ID der HM_Device_Cache hin?

nette Grüße
Sven

Hallo swooper

da muss die ID des HomematicKonfigurators hin. … sorry hab ich wohl übersehen.

Gruß

Swifty

Hallo, ich bin frischer Anfänger was IP-Symcon angeht…
Ist diese Möglichkeit hier noch aktuell um eine „Heizungsgruppe“ aus der CCU2 Auszulesen? Ich nutze einen Raspberry pi2 mit dieser 4er Version.

Falls dies nicht mehr aktuell sein sollte, kann mir jemand einen Tipp geben oder helfen. Ich habe im Wohnzimmer drei Heizkörper zu einer Gruppe in der CCU2 eingebunden.

Vielen Dank schon einmal und einen guten Rutsch :slight_smile:

Hallo, ich hatte schon einmal nachgefragt … kann mir jemand sagen ob dies hier auch unter der Version 4.0 geht?
Vielen Dank

Eigentlich brauchst du die Gruppen nicht in IPS.
Siehe hier: Homematic Heizungssteuerung - VirtualDevices (Gruppen) ansprechen
Michael

Hallo und Danke …

Ich probiere jetzt dort diese Schritte einmal durch.

Hallo,

kann mir jemand bei der Einrichtung hier helfen?? Gerne auch per TeamViewer oder so…
Ich bekomme immer Fehlermeldungen und bin noch zu sehr von der Materie als Anfänger entfernt :slight_smile:
Das mit den Gruppen bei den CCU2 Heizungen scheint für mich doch einen Schritt zu komplex… :slight_smile:

Danke schon einmal

Vielleicht mag mir noch jemand helfen…hier mal Schritt für Schritt was ich bisher gemacht habe:

Die Datei „xmlrpc.inc.php“ habe ich ins Verzeichnis „Scriptverzeichniss“ von Symcon kopiert.
Dann habe ich eine Kategorie erstellt mit dem Namen „Homematic Heizung“

Dort habe ich die Datei „hmxml.inc.php“ importiert und angepasst.

In der Kategorie „Homematic Heizung“ habe ich wiederum eine Kategorie mit dem Namen „HM_VG“ angelegt und dort die Datei „HM_VG“ importiert.

Jetzt komme ich zu dem Punkt - „Falls noch nicht vorhanden ist das Profil HM_Heizung_Steuerung_RT-DN zu erstellen bzw. ein vorhandenes Profil um den PartyModus zu ergänzen (siehe Bild).“
Wie und wo muss bzw. kann ich das Profil erstellen??

Anbei auch einmal ein Screenshot wie es zur Zeit ausschaut…

Auf Kategorie „HM_VG“ rechte Maustaste -> Objekt hinzufügen -> Variable hinzufügen. Im neu „aufgehenden“ Fenster gibt es den Button „Profile verwalten“, dort ein neues Profil anlegen, Typ (oben rechts) Integer, Rest wie im Bild. Danach Profil speichern, Fenster schliessen und abbrechen.

Gruß
Bruno

Danke… das ging ja gut :slight_smile:
Jetzt hänge ich bei der Position 7 und erhalte die Fehlermeldungen

Warning: Objekt #49 existiert nicht in C:\IP-Symcon\scripts\hmxml.inc.php on line 218

Warning: Invalid argument supplied for foreach() in C:\IP-Symcon\scripts\27450.ips.php on line 61