Homegear-Installation: Einträge in rpcservers.conf/ rpcclients.conf

Hallo!

Meine Name ist Marc und ich bin gerade dabei die heimischen Wände in ein Smarthome zu verwandeln. Das mit dem Smart ist dann doch nicht ganz trivial. Daher finde ich es super, dass mit diesem Forum eine Anlaufstelle für Fragen da ist. Besten Dank dafür!!!

Ich nutze aktuell openHAB 1.7 auf einen Raspberry Pi B+. Auf der anderen Seite soll der LAN Konfigurations-Adapter “HM-CFG-LAN” meine Lampe mittels Zwischen-Steckdose ein/ausschalten. Homegear und openHAB laufen auf dem gleichen Gerät.

Wie hier in der Anleitung beschrieben habe ich homegear installiert, in dem ich die physicalinterfaces.conf gefüllt habe. Somit klappte auch das Pairing, die “peers list” zeigt meine Steckdose an.

Was noch nicht rund läuft ist die Verbindung mit openHAB. Ich vermute aufgrund dieses Log-Eintrags, dass der RPC-Server nicht (richtig) läuft:

Muss hier nicht meine IP-Adresse statt “0.0.0.0” angezeigt werden? Wenn ja, wo mache ich das in der rpcservers.conf?
Habe ich ausprobiert, aber dann folgt ein Fehler mit Hinweis auf die rpcclients.conf.

Könnt ihr mir einen Link etc. nennen, wo die richtige Konfiguration beschrieben ist? Dazu habe ich bisher nichts gefunden. Danke!

Viele Grüße
Marc

Hallo Marc,

ja, der Einstieg ins Smarthome ist nicht ganz einfach :wink:.

Schon einmal super!

Du kannst jetzt zum Testen eine Datei /var/lib/homegear/scripts/Schalter.php mit folgendem Inhalt erstellen:

<?php
hg_set_value(DEINE_SCHALTER_ID, 1, "STATE", true);
sleep(5);
hg_set_value(DEINE_SCHALTER_ID, 1, "STATE", false);
?>

DEINE_SCHALTER_ID ersetzt du mit der ID, welche mit “peers list” angezeigt wird. Durch Aufruf von:

Sollte der Schalter jetzt einschalten und nach 5 Sekunden wieder ausgehen.

Wenn das schon einmal klappt, super. Das heißt, dass Homegear einwandfrei funktioniert.

An der rpcservers.conf musst du erst einmal nichts verändern. “0.0.0.0” bedeutet, dass Homegear auf allen IP-Version-4-Adressen lauscht. Das tut zwar nicht unbedingt Not, wenn OpenHAB auf dem gleichen Rechner läuft (localhost würde reichen), ist aber ok. Ein “netstat -tulpen” verrät dir, ob auf Port 2001 tatsächlich gelauscht wird. Falls ja, ist an der Front ebenfalls alles ok. Also weiter zu OpenHAB. Wie sieht da deine HomeMatic-Konfiguration aus? Gibt’s da irgendwelche Fehlermeldungen im Log?

Liebe Grüße

Sathya

vielen Dank für die schnelle Antwort!

Das Lauschen auf Port 2001 scheint zu klappen:


Auch das Schalter-Script funktioniert. Also weiter mit openHAB:

openhab.cfg:


“homematic:callback.host=” hatte ich auch schon mit 192.168.178.49 angegeben, machte aber keinen Unterschied.

Um Log steht folgendes:


Dose1 ist mein Schalter in openHAB.

Folgende Zeile beunruhigt doch?!

2015-06-02 19:10:55.131 [ERROR] [.b.h.i.c.HomematicCommunicator] - Could not start Homematic communicator: Can't connect to interface BidCos-RF: Connection timed out

Daher kommt meine ursprüngliche Frage, ob noch etwas am RPC-Server (rpcservers.conf) getan werden muss. Kannst du damit etwas anfangen?

Hey Marc,

auf Homegear-Seite sieht alles gut aus, da ist nichts anzupassen. Aus irgendeinem Grund schafft es OpenHAB nicht bei dir eine Verbindung zu Homegear aufzubauen (der initiale TCP-Handshake findet gar nicht statt). Also ran an die Netzwerkanalyse:

Ist bei dir eine Firewall installiert? Setz mal “homematic:host=127.0.0.1” und “homematic:callback.host=127.0.0.1” (auch wenn da steht, das sollst du nicht machen - die Info stimmt in deinem Fall nicht). Geht’s jetzt? Falls nicht, poste mal die Ausgabe von “nmap 192.168.178.49” und “nmap 127.0.0.1”, das gibt uns Aufschluss darüber, ob Homegear generell erreichbar ist (bei beiden sollte Port 2001 sichtbar sein).

Ein “telnet 192.168.178.49 2001” sollte ebenfalls ein “Connected to 192.168.178.49” zurückgeben. Falls das alles klappt, kannst du noch XMLRPC testen, in dem du die Datei “/var/lib/homegear/scripts/SchalterRPC.php” mit folgendem Inhalt anlegst:

#!/usr/bin/env php
<?php
include_once("Connect.php");
$Client->send("setValue", array(DEINE_SCHALTER_ID, 1, "STATE", true));
sleep(5);
$Client->send("setValue", array(DEINE_SCHALTER_ID, 1, "STATE", false));
?>

Der Aufruf von “php /var/lib/homegear/scripts/SchalterRPC.php” sollte jetzt den Schalter wie das andere Skript ein- und wieder ausschalten nur halt über RPC.

Ich erwarte eigentlich, dass hier irgendwo der Wurm liegt und bin gespannt auf die Ergebnisse.

Liebe Grüße

Sathya

Ich benutze Wheezy auf dem Raspberry. Eine Firewall habe ich nicht expliziert installiert.

Der Portscan vom Laptop aus bringt folgende Ergebnisse:

127.0.0.1:


192.168.178.49:


Die Telnet-Anfrage gibt “Connected to 192.168.178.49” zurück. Das SchalterRCP-Script wird leider nicht ausgeführt.

Ich habe nochmals nach einem Neustart von openHAB den Log ausgeschnitten, in der Hoffnung, dass es im Vergleich zum vorherigen Post übersichtlicher wird:


Ich benutze ja das openHAB-Binding 1.7 - sollte ich mal die vorherige Version 1.6.2 ausprobieren? Macht das Sinn?

Hallo Marc,

Nö, mit 1.7 sollte es funktionieren.

Super! Der Portscan zeigt auch, dass Homegear lauscht.

Mit welcher Fehlermeldung? Fehlt vielleicht PHP? Schieb mal ein apt-get install php5-cli nach. Geht’s jetzt? Ist aber auch nicht sooo wichtig, denn ich gehe davon aus, dass es klappt.

Schick mir mal beide Homegear-Logdateien (/var/log/homegear/homegear.log und /var/log/homegear/homegear.err) und probier noch aus, ob das Ändern der Adressen auf “127.0.0.1” in der OpenHAB-Konfiguration was ändert (gehe ich ehrlich gesagt nicht von aus, aber “127.0.0.1” ist auch die bessere Einstellung). Ich hoffe, die Logdateien von Homegear geben etwas Aufschluss (vielleicht steht da etwas von einem fehlgeschlagenen Funktionsaufruf), sonst bin ich ehrlich gesagt auch etwas ratlos und wir sollten mal beim HomeMatic-Binding-Entwickler anfragen, ob er weiß, was da los sein könnte.

Liebe Grüße

Sathya

Schalter.php und SchalterRPC.php geben beide als Rückmeldung folgendes aus:

Script executed. Exit code: 0

Habe openHAB und homegear beide mal neu gestartet. Beim Start von homegear kamen folgende Hinweise:


Die Log-File habe ich auch hinterlegt. Ich hoffe, dass du mir aufgrund der Logs noch etwas zum Testen mitgeben kannst?!
homegear.log (51.3 KB)
homegear.err.log (1.24 MB)

Da die beiden conf-Dateien in dem Screenshot erwähnt werden, hänge ich sie mal direkt an den Post:
rpcclients.conf.txt (1.42 KB)
rpcservers.conf.txt (5.76 KB)

Hallo Marc,

Ähm, die SchalterRPC.php darf nicht über die interne Skript-Engine gestartet werden. Also direkt in der Shell (nicht in Homegear) ausführen mit:

Die Ausgabe wär ganz interessant, aber: Die Warnungen sind komisch und machen überhaupt keinen Sinn… Installier dir mal Version 0.6 von Homegear (die ist aktuell stable). Damit kann ich dir leichter helfen.

Kurze Installationsanleitung:

[ul]
[li] Achte darauf, dass das Homegear-APT-Repository hinzugefügt ist (in /etc/apt/sources.list.d/homegear.list).[/li]
[li] Installier die PHP-Bibliothek mit apt-get install libphp5-embed (die MUSS aus dem Homegear-Repository kommen)[/li]
[li] Downloade die aktuelle Nightly für dein System mit “wget”.[/li]
[li] Installier das Paket mit dpkg -i PAKETNAME[/li]
[li] Falls Abhängigkeitsfehler auftreten, schieb noch ein apt-get -f install nach[/li][/ul]

Sind die Warnungen jetzt noch da? Nach dem Update führ noch einmal das SchalterRPC.php-Skript aus (über PHP!). Das muss funktionieren. Wenn es das tut, wissen wir nämlich, dass die RPC-Verbindung funktioniert.

Liebe Grüße

Sathya

Homegear 0.6 läuft nun! Folgende Fehlermeldung kommt mit dem PHP-Script:

root@raspberrypi:/home/pi# php /var/lib/homegear/scripts/Schalter.php PHP Fatal error: Call to undefined function hg_set_value() in /var/lib/homegear/scripts/Schalter.php on line 2 root@raspberrypi:/home/pi# php /var/lib/homegear/scripts/SchalterRPC.php PHP Fatal error: Uncaught exception 'XMLRPC\XMLRPCException' with message 'Could not open socket. Host: localhost Port: 2001 Error: Connection timed out (110)' in /var/lib/homegear/scripts/HM-XMLRPC-Client/Client.php:135 Stack trace: #0 /var/lib/homegear/scripts/HM-XMLRPC-Client/Client.php(118): XMLRPC\Client->connect() #1 /var/lib/homegear/scripts/Connect.php(15): XMLRPC\Client->__construct('localhost', 2001, false) #2 /var/lib/homegear/scripts/SchalterRPC.php(3): include_once('/var/lib/homege...') #3 {main} thrown in /var/lib/homegear/scripts/HM-XMLRPC-Client/Client.php on line 135 root@raspberrypi:/home/pi# homegear -e rs Schalter.php Script executed successfully.

Hallo Marc,

das hilft uns weiter. Auch PHP bekommt keine Verbindung zu Homegear hergestellt. Das Problem liegt also weder in OpenHAB noch in Homegear. Schick mir bitte einmal die Ausgabe von netstat -tulpen. Diesmal aber als root ausgeführt. Dann wird nämlich auch der Dienstname angezeigt. Heute habe ich leider nur sehr wenig Zeit, aber morgen recherchier ich einmal kurz, was mögliche Ursachen sein könnten. Hast du das Standard-Raspbian von der Raspberry-Pi-Homepage am Laufen?

Liebe Grüße

Sathya

Hallo Sathya,

ich habe nach deiner Frage welche Version ich von Raspbian nutze, spontan meinen Raspberry mit dem vorinstallierten Paket neu aufgesetzt.
Und siehe da: es funktioniert!!!

Herzlichen Dank für deine Hilfe und deine Geduld mit mir!!

Marc

Ja super :smiley:. Ich bin froh, dass es funktioniert! Was auch immer das Problem war.

Hallo Sathya und andere,

ich bin gerade beim Testen vorab von Platformen und stosse auf ein Problem, das am besten zu diesem Beitrag passt, obwohl ich keinen Geraete von Homegear benutze.

OpenHAB zeigt mir immernoch diesen Fehler “connect to interface BidCos-RF: Connection refused: connect” an.
Saemtliche Configs sind X Mal ueberprueft, also die config passt, die Bindings sind da, der LAN Adapter ist am Netz und erreichbar.

Nach einer langen Nach habe ich mich kurzerhand in das FHEM eingelesen und mit meiner Syno 412+ eine stabile Verbindung hinbekommen zur HMLAN Status “opened”. Das Log zeigt auch brav die geglueckte Verbindung.

OpenHAB ist hier auf meinem Laptop installiert Ver 1.7.0 und bis auf den Fehler scheint alles gut zu sein.

Meine Vermutung insbesondere gestuetzt durch den letzten Teil dieses Eintrags ist, dass die Windows7 Maschine Ursache ist.

Frage noch zu dem Ports: Auf die HMLAN (FHEM stehender Begriff) komme ich mit einer telnet session problemlos auf den Port 1000 von meiner Syno und dem Windows7 Schlaeppi. Nutzt OpenHAB einen anderen Port als FHEM?

Ja, alle anderen Interfaces hier auf dem Schlaeppi sind down und die Anwendungen, die eine Verbindung blockieren koennte nicht am Start. Firmware ist auf dem neuesten Stand der HM-CFG-LAN.

Auch wenn also ich keine Homegear Devices, sondern Homematic nutze, sehe ich den wahrscheinlichsten Zusammenhang mit den Verlautbarunngen genau zu diese Beitrag hier.

Waere toll, wenn noch jemand einen Vorschlag hat.

Das OpenHAB Log im Anhang, sowie die conf GENERAL und HOMEMATIC.

Servus,
Timo
Homematic.txt (1.14 KB)
General.txt (1.57 KB)
openhab.log (4.84 KB)

Hallo Timo,

was genau versuchst du denn zu verbinden? Dein Problem erschließt sich mir noch nicht ganz. Versuchst du OpenHAB direkt mit dem HM-CFG-LAN zu verbinden? Das würde nicht gehen. Hast du Homegear bei dir am Laufen? OpenHAB kann sich über das HomeMatic-Binding nur mit Homegear oder einer CCU2 verbinden.

Viele Grüße

Sathya