Virtuelles Gerät erzeugen

Hallo zusammen,
seit längerem ärgere ich mich über die Bugs und Beschränkungen von Homematic. Denn eigentlich ist das ein ganz ordentliches System, dass ich gerne mit Komponenten anderer Hersteller verbinden möchte. Und genau da bin ich wieder an die Grenzen des Systems und beim verzweifelten Suchen auf Homegear gestoßen, das anscheinend diese Grenzen sprengt.

Zunächst ein dickes Lob an den oder die Macher von Homegear. Toll was da auf die Beine gestellt wurde. Ich fange zwar erst an mit dem System aber habe jetzt schon das Gefühl, dass ich ein Fan werden könnte.
Nun zu meinem Problem.
In der Anleitung steht, dass man virtuelle Geräte erzeugen kann. Ich möchte einen virtuellen Fensterkontakt für den HM-CC-RT-DN erzeugen und auf diese Weise einen Hoppe-Fensterkontakt (enocean) mit dem Heizungssteller verbinden.
Wie kann ich also den virtellen Kontakt erzeugen und wie kann ich per XML das Fenster-offen-Signal setzen?

Grüße
Silberstreifen

Hey Silberstreifen,

erst einmal danke :wink:.

Also, du kannst tatsächlich virtuelle Geräte erzeugen, aber das ist nur für sehr spezielle Dinge erforderlich. Wenn der Fensterkontakt den Status ändert, kannst du über RPC sämtliche Variablen des HM-CC-RT-DN nach deinen Wünschen anpassen. Welche das sind, findest du in der XML-Datei des Stellantriebes (da muss ich mich mal an die Dokumentation im Wiki machen) - ich hab sie mal angehängt. Für dich interessant sind vermutlich:

[ul]
[li] SET_TEMPERATURE: Zum Setzen der Solltemperatur und 0.0 zum vollständigen Schließen bzw. 100.0 zum vollständigen Öffnen[/li]
[li] MANU_MODE: Damit die Änderung übernommen und nicht durch Zeit-Programme des Stellantriebes “überschrieben” wird.[/li][/ul]

Beide Parameter sind auf Kanal 4, d. h. der XMLRPC-Aufruf zum Schließen würde so aussehen:

setValue("KEQ0000000:4", "SET_TEMPERATURE", 0.0);
setValue("KEQ0000000:4", "MANU_MODE", true);

Zum Rumspielen kannst du das in ein PHP-Script in “/var/lib/homegear/scripts” packen, welches du auch über XMLRPC mit “runScript” [1] aufrufen kannst. So lassen sich dann auch komplexe Aufgaben lösen, wie zum Beispiel: “Schließe den Stellantrieb, wenn das Fenster länger als 10 Minuten geöffnet ist. Bei einer Außentemperatur kleiner als 20°C schick mir eine Warnmail.”

Für die eingebaute Direktverknüpfung müsste tatsächlich ein virtueller Fensterkontakt geschrieben werden. Das wäre möglich, aber bis auf, dass das Icon im Display des HM-CC-RT-DN erscheint, gibt es keinen Funktions-Vorteil.

Ich hoffe, das hilft :wink:.

Liebe Grüße

Sathya

[1] https://www.homegear.eu/index.php/RunScript
rf_cc_rt_dn.xml (79.2 KB)

Hallo sathya,
danke für die ausführliche Antwort. Das sind die Umfänge, die ich kenne und die mich nicht befriedigen. Wenn ich mit Set temperature und manu-mode arbeite, dann muss ich mir immer merken, woher ich komme und ob es in der Zwischenzeit eine Programmänderung gab. Wenn ich allerdings das Window-open-Signal habe, dann entfällt das, da der RT weiterhin im auto-mode arbeitet. Von daher würde mich schon interessieren, wie ich einen virtuellen Fensterkontakt anlege, auch dann, wenn es etwas komplexer ist. Kannst Du mir das erklären?

Grüße
Silberstreifen

Hallo Silberstreifen,

ok, ich verstehe dein Problem. Hab die Funktion gerade eingebaut. Morgen kommt Version 0.5.3, die wird’s unterstützen. Morgen poste ich dir auch die genaue Anleitung :wink:.

Liebe Grüße

Sathya

Wow! Das ist ja super. Ich bin begeistert!

So, Version 0.5.3 ist online :wink:.

Folgendes musst du nach der Installation tun:

[ol]
[li] Stellantrieb neu anlernen[/li]
[li] Jetzt kannst du die Variable “WINDOW_STATE” auf Kanal 3 setzen.[/li]
[li] Zum Setzen der Absenktemperatur verwendest du “putParamset” mit “channel = 3”, “remoteID = 0” und “remoteChannel = 3”, also zum Bespiel:
putParamset(4, 3, 0, 3, array(“TEMPERATUR_WINDOW_OPEN_VALUE” => 5.0));
Wenn du putParamset mit Seriennummer verwenden möchtest, musst du als Empfänger-Seriennummer die Seriennummer der Homegear-HomeMatic-Zentrale verwenden.[/li][/ol]

Ich habe bewusst keinen virtuellen Fensterkontakt erzeugt, da damit AES-Handshakes nicht funktionieren würden.

Schreib mir kurz, ob alles klappt.

Liebe Grüße

Sathya

Hallo Sathya,

es funktioniert phantastisch! Ich bin begeistert. :smiley:
Bei der Installation ist allerdings ein Problem aufgetreten, das ich auch noch nicht gelöst habe:
Beim ersten Einloggen in Pi hängt das System bei “Generating DH parameters”. Es werden munter Punkte gemalt, aber sonst passiert nichts. Was kann ich machen? :blush:
Unter Version 0.5.2 ging das ganz schnell.

In dem Zusammenhang: Gibt es eigentlich eine Update-Funktion? Die ist nirgends beschrieben.

Grüße
Silberstreifen

Hallo Silberstreifen,

die Dauer der Generierung der DH-Parameter schwankt ganz stark und kann sehr lange dauern (bis zu drei Stunden). Ich habe das ganze daher bereits von 2048 Bit auf 1024 Bit (auch völlig ausreichend) reduziert. Das Debian-Paket macht es korrekt, im RPI-Image hatte ich das vergessen zu ändern. Mich hat gestern bereits jemand darauf aufmerksam gemacht und es ist korrigiert (siehe [1]. Heute kommt ein neues Image. Aber auch mit 1024 Bit kann es immer noch lange dauern. Was tut man nicht alles für Sicherheit :wink:.

Update von Homegear? Einfach das neue Debian-Paket installieren. Sollte ich aber tatsächlich auch mal irgendwo erwähnen :wink: - werd ich gleich heute mal machen.
Geräte kannst du mit mit “updateFirmware” updaten [2].

Mich freut aber, dass mit den Fensterkontakten jetzt alles klappt :smiley:.

Liebe Grüße

Sathya

[1] https://github.com/Homegear/Homegear/commit/a5455111efa60509c0237d4cf3ab2a8c0e2f9c1c
[2] https://www.homegear.eu/index.php/UpdateFirmware

ok, dann war ich wohl zu ungeduldig… :unamused:
also nochmal von vorne und jetzt mit mehr Geduld.
Das wird ein groooßer Kaffee :mrgreen:

Grüße
Silberstreifen

ok :wink:. Du musst nach der Installation nur die Datei “/etc/homegear/dh2048.pem” in “/etc/homegear/dh1024.pem” umbenennen (oder die rpcservers.conf anpassen) - das der Fehler im Image von gestern. Alternativ kannst du es auch wieder abbrechen und mit folgenden Befehlen selbst die Parameter erzeugen. Die sind dann nur 1024 Bit lang, aber das ist ja lang genug und geht deutlich schneller:

openssl dhparam -check -text -5 1024 -out /etc/homegear/dh1024.pem
chown homegear:homegear /etc/homegear/dh1024.pem
chmod 400 /etc/homegear/dh1024.pem

Sathya