Homegear und pocket control HM

Hallo Sathya,

bei den Features zu Homegear steht ja, dass man jede SW nutzen kann, die auch sonst für die CCU geeignet ist und XMLRPC spricht.

Trifft das auch auf Clients wie pocket control HM (iOS) zu?
Der XMLAPI-Patch ist hier ja nicht notwendig, soweit ich weiß.

Gruss
Christian

Hallo Christian,

leider nutzt pocket control HM nicht nur XML-RPC sondern auch Tcl-Skripte zur Kommunikation mit der CCU. Letzteres wird von Homegear nicht unterstützt. Es können zwar auch mit Homegear Tcl-Skripte genutzt werden (allerdings auch nicht mit den CCU-Datenpunkten), aber es können keine Skripte zur Ausführung an Homegear gesendet werden. Deswegen funktioniert pocket control HM zumindest im Moment nicht mit Homegear. Ich bin mir auch noch nicht sicher, ob ich eine entsprechende Funktion in Homegear - zumindest zu Kompatibilitätszwecken - implementieren möchte. Eine solche Schnittstelle schafft ein erhebliches Sicherheitsrisiko. Mal sehen :wink:.

Liebe Grüße

Sathya

auch wenn das Thema schon etwas älter ist (ich beschäftige mich erst seit Kurzem mit Homegear) möchte ich auch mein Interesse bekunden, dass die XML-API kompatibel zur CCU implementiert wird. Man könnte es ja deaktivierbar machen, um die mögliche Sicherheitslücke nicht unnötig zu öffnen.
Wenn man aus dem WAN auf Himegear zugreift, kann man das ja auch per VPN-Verbindung tun und hier sind so Programme wie HomeDroid oder pocket control wirklich nützlich und erhöhen den WAF enorm :wink:
Zusätzlicher Nutzen wäre, dass verschiedene Web-Oberflächen verfügbar wären (wie zum Beispiel DashUI in Verbindung mit CCU.IO

Weiß jemand, wo es eine brauchbare Doku zur XML-API gibt, dann würde ich auch mal schauen, was ich machen kann. Mit den TCL-Skripten des Originals tue ich mich etwas schwer

Hey,

inzwischen sind wir an der Front etwas weiter :wink:. Die XML-API zu implementieren wäre gar nicht so viel Arbeit - den ReGaHss-Server kompatibel zu implementieren vermutlich allerdings schon. Zur XML-API sollte sich eine vernünftige Dokumentation finden lassen. Die Tcl-Skripte sind meines Wissens nur zum Teil dokumentiert.
Du kannst auf Computern mit ARM-Prozessor allerdings den offiziellen ReGaHss-Daemon laufen lassen. Und auch die offizielle XML-API lässt sich installieren. CCU.IO und DashUI habe ich damit bereits erfolgreich getestet. Hier ist ein Script, zum Installieren der CCU-Dienste auf dem Raspberry Pi. Damit hast du dann sogar die offizielle CCU2-WebUI. Das ganze ist allerdings nicht ausgiebig getestet. Falls du das Ganze nutzen solltest, wäre ich daher über Feedback und Verbesserungsvorschläge dankbar.
Die XML-API kannst du anschließend manuell in die korrekten Verzeichnisse packen.

http://homegear.eu/downloads/InstallReGaHss.sh

Liebe Grüße

Sathya

Toll, hatte nicht gewusst, dass sowas existiert. Beim ersten Check habe ich gesehen, dass das Script auf Version 2.9.12 benutzt. Spricht was dagegen, da den Link auf die aktuelle Version einzusetzen oder ist das sowieso egal?

Ich werde das am Wochenende ausprobieren, da ich genau weiß, dass ich nicht in den Schlaf komme, sollte ich mir mein System abschießen oder irgendwas nicht funktioniert wie erwartet. Ich bin noch relativ neu in der Linuxwelt…
Da ich einen Olimex A20 (https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO-4GB/) einsetze, sollte das theoretisch wie beim Cubieboard funktionieren.

Version 2.11.6 sollte auch funktionieren. Ich habe das Skript gerade mal angepasst.
Auf dem Olimex A20 sollte es funktionieren. Die Binaries sind für ARM mit soft float kompiliert und sollten daher eigentlich auf jedem ARM-Prozessor laufen. Mach aber sicherheitshalber vorher ein Backup :wink:.

Und noch eine kurze Anleitung für die Installation der XML-API:

[ol]
[li] Von hier runterladen: http://www.homematic-inside.de/software/xml-api[/li]
[li] Mit “tar -zxf” entpacken[/li]
[li] Den Ordner xml-api nach /etc/config/addons/www/ verschieben: mv xml-api /etc/config/addons/www/[/li]
[li] ln -s /etc/config/addons/www/xmlapi/ /ccu2/www/config/xmlapi[/li][/ol]

Nachtrag: Wird jetzt auch durch das Skript installiert :wink:.

Hallo,
habe gerade Homegear installiert, aber einen Ordner /etc/config habe ich nicht. Was ist der aktuelle Stand zu den Addons?
CCU.IO läuft, aber findet die CCU nicht…

Vielen Dank im Voraus!

Gruß Charly

Hey,

den Ordner “/etc/config” hast du nach Ausführung des Skriptes http://homegear.eu/downloads/InstallReGaHss.sh.

Das Skript installiert ReGaHss von eQ3. Damit läuft dann ccu.io und auch pocket control HM. Es sei aber gesagt, dass das Ganze experimentell ist!

Liebe Grüße

Sathya

Hallo,
sorry, aber ich muss nochmals nachfragen…

Ich habe Node.js installiert und das Skript ausgeführt.
Ausserdem habe ich ccu.io installiert und den service gestartet. Die WebApp läuft auch, aber sie findet die CCU nicht. Könnte ich einen Tipp für die Konfiguration bekommen? Als IP habe ich die lokale IP eingetragen.

“service --status-all” zeigt mir, dass der Status der Services HMServer und ReGaHss unbekannt sind [?].

Edit:
Offenbar wurde bei mir das Skript (Ubuntu 14.4 auf ODroid C1) nicht komplett ausgeführt, folgende Zeile “apt-get -y install lighttpd java7-runtime” erzeugt folgende Ausgabe:

Package java7-runtime is a virtual package provided by:
  oracle-java8-installer 8u31+8u33arm-1~webupd8~1
  oracle-java6-installer 6u45-0~webupd8~8
  oracle-java7-installer 7u76+7u60arm-0~webupd8~0
  openjdk-7-jre 7u75-2.5.4-1~trusty1
  default-jre 2:1.7-51
You should explicitly select one to install.

E: Package 'java7-runtime' has no installation candidate

Damit wurde auch lighttpd nicht installiert…

Gruß Charly

Hi zusammen,

ich hänge mich mal hier rein und wollte fragen, ob die Konfiguration auch auf x86 Hardware funktioniert ?
Das DashUI würde ich gerne mal antesten, wenn ich das aber hier richtig lese ist die Software für ARM Prozessoren gemacht, die ich dafür brauche ?

Gruß
Thorsten

Hallo Thorsten,

der benötigte ReGaHss ist leider ausschließlich für armel kompiliert. Damit läuft er nur auf ARM-Prozessoren. Du kannst aber tricksen. Wenn dein Rechner schnell genug ist und ein Debian-Derivat als Betriebsystem läuft, kannst du mit debootstrap und qemu eine ARM-Debian-Installation emulieren und darin den ReGaHss laufen lassen. Als Vorlage für eine debootstrap-Umgebung kannst du folgendes Skript verwenden: [1]. Hier auch eine Kurzanleitung:

Vorraussetzungen installieren:

Debootstrap-Umgebung in “/debootstrap/Debian-wheezy-armhf” bauen:

ḿkdir -p /debootstrap/Debian-wheezy-armhf
cd /debootstrap/Debian-wheezy-armhf
debootstrap --no-check-gpg --foreign --arch=armhf wheezy /debootstrap/Debian-wheezy-armhf http://ftp.debian.org/debian
cp /usr/bin/qemu-arm-static usr/bin/
LANG=C chroot /debootstrap/Debian-wheezy-armhf /debootstrap/debootstrap --second-stage
echo "deb http://ftp.debian.org/debian wheezy main contrib non-free" > etc/apt/sources.list
echo "proc            /proc           proc    defaults        0       0" > etc/fstab

Das wars. Jetzt kannst du in der Umgebung mit “chroot debootstrap/Debian-wheezy-armhf BEFEHL” arbeiten. Erst einmal würde ich ein paar Grundpakete installieren. Hier ist jetzt einfach die Zeile für eine Homegear-Build-Umgebung - da sollte das Wichtigste drin sein:

LANG=C chroot /debootstrap/Debian-wheezy-armhf apt-get update
LANG=C chroot /debootstrap/Debian-wheezy-armhf apt-get -y install locales console-common ntp openssh-server git-core binutils curl ca-certificates sudo parted unzip p7zip-full php5-cli php5-xmlrpc libxml2-utils keyboard-configuration liblzo2-dev python-lzo libgcrypt11 libgpg-error0 libgpg-error-dev libgnutlsxx27 libgnutls-dev binutils debhelper devscripts build-essential sqlite3 libsqlite3-dev libreadline6 libreadline6-dev libncurses-dev libssl-dev libparse-debcontrol-perl libgcrypt11-dev g++

In der debootstrap-Umgebung kannst du jetzt das ReGaHss-Installationsskript ausführen. Für einen Autostart von ReGaHss musst du über ein Init-Skript in deinem Hauptsystem das Init-Skript in der chroot-Umgebung ausführen. Das Ganze ist also mit etwas Aufwand verbunden :wink:. Wenn du Hilfe brauchst oder auf Hindernisse stößt, bin ich da :wink:.

Liebe Grüße

Sathya

[1] https://github.com/Homegear/Homegear/blob/master/Miscellaneous/CreateBuildChroot.sh

Hi Du,

hui vielen Dank, das sieht mir nicht danach aus, dass ich das mal “eben” so mache aber der Herrausforderung werde ich mich stellen :slight_smile:
Das wird aber ein Wochenend-Job, scheint da ich dann doch auf einen anderen Rechner komplett umziehen würde.
Ein Atom mit DualCore wird dann doch nicht ganz reichen für Homegear / Openhab / eine weitere virtuelle Instanz vermute ich mal.

Danke Dir

Gruß
Thorsten

Hallo Thorsten,

nein, mit Atom wird das nichts. Der ist zu langsam. Die ARM-Emulation braucht gewaltig Ressourcen. Mit einem Core i5 ist die Emulation nur geringfügig schneller als der Raspberry Pi. Alternativ den ReGaHss auf einen separaten Rechner mit ARM-Prozessor - das ginge auch.

Liebe Grüße

Sathya

Hi nochmals,

okay Raspberry 2 ist unterwegs :slight_smile: ich denke ich werde es dann lieber auslagern, als jetzt den Workaround umzusetzen. Das ist gewiss auch weniger anfällig dann.

Gruß
Thorsten

Jupp, ich halte das auch für weniger anfällig. Ändere im Skript vor der Ausführung die Zeile:

Und ersetze die “127.0.0.1” durch die IP-Adresse des Rechners, auf dem Homegear läuft. Dann sollte alles klappen.

Liebe Grüße

Sathya

HI,

vielen Dank ich werde den Erfolg oder auch Misserfolg aufjedenfall berichten :slight_smile:

Gruß
Thorsten

Hallo,

mittlerweile bin ich auf einen RasPi 2 umgestiegen und konnte alle Softwarepakete problemlos installieren! Danke für das Script.

Ein konkretes Problem und ein paar Fragen habe ich allerdings:
Homematic-Manager zeigt mir die Geräte korrekt an.

  1. HM-Manager nutzt das binary-Protokoll, richtig?
    CCU.IO läuft und ist mit der CCU verbunden, DashUI ist installiert, findet aber keine konfigurierten Geräte.
  2. CCU.IO nutzt die XML-Schnittstelle, richtig?
    Homedroid habe ich auch versucht, zeigt das gleiche Verhalten wie CCU.IO
  3. Habe ich noch etwas vergessen zu konfigurieren?
    Ich habe diese Seite gefunden:
    homegear.eu/index.php/Homegear_Reference
  4. Aber welche Tools lassen sich womit einsetzen?
    Vielen Dank im Voraus!!

Gruß Charly

Hallo Charly,

zu 1: Richtig, der HM-Manager nutzt Binary-RPC.

Auf Anhieb kann ich dir leider nicht sagen, warum DashUI keine Geräte findet. Ich werde mal schauen, ob ich es die Tage hier einmal aufgesetzt bekomme.

zu 2: Bin ich mir gerade nicht sicher. Spielt aber in der Praxis keine große Rolle. Wichtig ist, dass auch die Tcl-Schnittstelle benötigt wird. Da Homegear diese nicht besitzt (aus guten Gründen), muss eQ3s ReGaHss installiert sein, sonst funktioniert gar nichts. Für Homedroid gilt das gleiche. Werden denn die Geräte in der CCU-WebUI angezeigt (ist mit dem Skript auch mitinstalliert)?

zu 3: Vielleicht. Schau mal, ob die Geräte in der WebUI sichtbar sind. Dann wissen wir zumindest, dass die eQ-3-Dienste funktionieren.

zu 4: Binär-RPC ist das empfohlene Protokoll, dafür gibt es aber keine Standardbibliotheken. Nutzen tun es vor allem unsere eigenen Implementierungen (die beiden Bibliotheken HomegearLib.NET und HomegearAddonLib beispielsweise), der HM-Manager, IP-Symcon, OpenHAB und die eQ3-Tools und Programme. XML-RPC ist deutlich leichter zu implementieren, aber sehr viel langsamer in der Verarbeitung, was auf langsamen Rechnern wie dem Raspberry Pi eine große Rolle spielt (mit vielen XML-RPC-Anfragen lässt sich die CPU-Auslastung deutlich nach oben treiben). Für XML-RPC gibt es unsere PHP-Klasse, die auch im Skripte-Ordner von Homegear zu finden ist und Implementierugen in praktisch allen Programmiersprachen (Perl, Python [1], …). Ansonsten wird XML-RPC z. B. von ioBroker verwendet. Ab Version 0.6 gibt es dann noch JSON-RPC, welches wir für die einfache Nutzung über WebSockets in JavaScript implementiert haben. Aktuell kenne ich kein Tool, welches JSON-RPC nutzt. Zu guter Letzt gibt es dann noch MQTT (auch ab Version 0.6). Das wird z. B. von Node-RED und ioBroker genutzt. Es gibt sicherlich noch einige weitere Dienste, aber ich habe mich noch nicht intensiv auf die Suche gemacht.

Ja, ja, das Hausautomations-Softwarekauderwelsch :wink:.

Liebe Grüße

Sathya

[1] https://forum.homegear.eu/viewtopic.php?f=15&t=43&p=1048&hilit=python#p1042

Hallo Sathya,
vielen Dank für deine, wie so oft, rasche und freundliche Antwort.

Der Tipp mit Python ist sehr interessant, das ist eine schöne Möglichkeit um homegear mit Tasker auf dem Handy zu verknüpfen!

Der Tipp mit dem WebUI auch war gut. Zunächst fand ich da nur eine Statusmeldung, dass die Kommunikation gestört war :laughing:
Allerdings befinden sich alle meine Geräte im Posteingang. Nach einem Klick auf “Fertig” schien alles wie gedacht zu funktionieren. Leider sind nach einem Reboot die Geräte wieder im Posteingang… Ein Berechtigungs-Problem? Wem sollte alles in /ccu2/ gehören? Bei mir gehört alles root/root.

Es kommt auch in unregelmäßigen Abständen eine Fehlermeldung:
VirtualDevices
Eine Komponente der HomeMatic Zentrale reagiert nicht mehr.

Im homegear log habe ich nichts verdächtiges entdeckt.

Viele Grüße und ein schönes Wochenende
Charly