iSmartHome HD: Push-Nachrichten mit Hilfe eines Raspberry Pi’s

Um mit iSmartHome HD auch Push-Nachrichten empfangen zu können, sind nur ein paar kleine Schritte notwendig.
Ich nutze hierfür einen Raspberry Pi 2 mit dem aktuellen Raspbian Jessie Image. Eine Installationsanleitung dafür findet Ihr hier: Raspberry Pi Image installieren

Wichtig: Diese Anleitung wurde mit Hilfe eines Mac’s durchgeführt. Auf einem Windows Rechner sollte es aber ähnlich laufen (benötigt wird dabei das Programm Putty oder ein vergleichbares, um eine Verbindung zum Raspberry Pi herstellen zu können)

Mein Raspberry Pi hat die IP-Adresse „192.168.1.116“. Diese muss natürlich für die komplette Anleitung an die IP-Adresse eures Raspberry Pi’s angepasst werden!

Voraussetzungen: Raspberry Pi

Schritt 1:
Eine SSH-Verbindung zum Raspberry Pi aufbauen (Terminal).

ssh pi@192.168.1.116

Dabei wird das Passwort abgefragt. Das ist bei einer frischen Installation des Pi’s für den Benutzer pi auf raspberry gesetzt.

Schritt 2:
Dateien auf den Raspberry Pi kopieren. Es gibt viele Wege, die nötigen Dateien auf den Pi zu bekommen. Mit dem “scp” Befehl klappt es schnell und unkompliziert.

scp -r /Users/dannysmolinsky/Downloads/ismarthome pi@192.168.1.116:~/ismarthome

Der Pfad “/Users/dannysmolinsky/Downloads/ismarthome” gibt den Ordner aus dem Zip-Archiv an und muss angepasst werden. “pi@192.168.1.116:~/ismarthome” ist das Ziel auf dem Raspberry Pi. Dort wird der Ordner “ismarthome” aus dem Archiv hin kopiert. Auch hier muss die IP-Adresse angepasst werden.

Schritt 3:
Pakete installieren. Die nachfolgenden Befehle einfach Zeile für Zeile ausführen.

cd ~
sudo apt-get update
sudo apt-get upgrade
git clone https://github.com/giampaolo/psutil.git
sudo apt-get install gcc python-dev
cd psutil
sudo python setup.py install
cd ~/ismarthome
sudo cp ismarthome.sh /etc/init.d/ismarthome.sh
sudo chmod 755 ismarthome.py
sudo chmod 755 /etc/init.d/ismarthome.sh
cd /etc/init.d
sudo update-rc.d ismarthome.sh defaults

Dadurch werden alle nötigen Pakete installiert und die entsprechenden Rechte gesetzt und.

Schritt 4:
Benutzerdaten anpassen. Damit der iSmartHome Push-Service auch mit der Zentrale kommunizieren kann, müssen noch die Benutzerdaten angepasst werden. Dazu wird mit folgendem Befehl der Editor Nano geöffnet.

sudo nano /etc/init.d/ismarthome.sh

In der Zeile 19

DAEMON_OPTS="-i 192.168.1.120 -u BENUTZERNAME -p PASSWORT -v 1.70"

nur die IP-Adresse, Benutzername und Passwort an die eigenen Daten abändern, die Datei mit ctrl + o speichern (der Dateiname muss noch mit Enter bestätigt werden) und durch ctrl + x den Editor schließen.

Schritt 5:
Neustart des Service. Um auch den reibungslosen Betrieb des Push-Service zu gewährleisten, sollte dieser täglich neu gestartet werden. Dafür wird ein Cronjob eingerichtet.

sudo crontab -e

Es ist möglich, dass eine Frage mit den Antwortmöglichkeiten 1, 2 oder 3 angezeigt wird. Diese Frage kommt auf, wenn die entsprechende Datei noch nicht besteht. In diesem Fall mit 2 antworten und an das Ende der Datei folgende Zeile mit ctrl + v einfügen

@daily sudo service ismarthome restart

Die erstellte Datei wie weiter oben mit ctrl + o speichern und den Editor mit ctrl + x schließen. Zu guter Letzt wird der Raspberry Pi einmal neu gestartet.

sudo reboot

Nach dem Neustart des Pi’s baut man wie in Schritt 1 beschrieben wieder eine Verbindung auf. Der Push-Service sollte jetzt schon automatisch laufen. Mit folgendem Befehl kann das überprüft werden.

sudo service ismarthome status

Als Ergebnis sollte jetzt folgendes zu sehen sein:

● ismarthome.service - LSB: RWE SmartHome Push Service
   Loaded: loaded (/etc/init.d/ismarthome.sh)
   Active: active (running) since Mon 2015-11-30 09:25:00 UTC; 10h ago
  Process: 383 ExecStart=/etc/init.d/ismarthome.sh start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/ismarthome.service
           └─400 python /home/pi/ismarthome/ismarthome.py -i 192.168.1.120 -u BENUTZERNAME -p PASSWORT -v 1.70

Wichtig bei der Ausgabe ist der in Zeile 3 angegebene Status Active: active (running).
Der Service schreibt außerdem noch pro Tag eine Log-Datei. Dabei werden die letzten 14 Tage aufbewahrt. Diese werden im Ordner “/tmp” gespeichert. Die aktuellste Log-Datei kann mit dem Befehl

nano ~/ismarthome/ismarthome.log

angesehen werden.

Aktualisierung vom 16.03.2016:
Ich habe ein halbautomatisches Installations-Skript geschrieben. Dadurch sind alle oben aufgeführten Schritte nicht mehr nötig. Das Skript wurde ausschließlich auf Raspian Jessie getestet. Alles was man braucht, findet man hier: GitHub

31 Gedanken zu “iSmartHome HD: Push-Nachrichten mit Hilfe eines Raspberry Pi’s

  1. Gibt es vielleicht die Möglichkeit für die Push Möglichkeit ein Paket für die Synologys zu erstellen, damit dies dort ebenfalls benutzt werden kann?

    • Da ich keinen NAS von Synology habe muss ich das leider verneinen. Aber vielleicht gibt es ja andere User, die das schon umgesetzt haben.
      Vielleicht stellst du deine Frage auch nochmal auf der FB-Seite von iSmartHome HD und im inoffiziellen RWE-Smarthome Forum.

  2. Vielen dank für die Anleitung.
    Ich habe zwei Fragen:
    1) Im ismarthome.zip gibt es den Order __MACOSX muss ich denn auch zur Raspberry kopieren
    2) sudo service ismarthome status gibt mir ein ‘ismarthome: unrecognized service’ Push nachrichten funktionieren aber. Woran kann es liegen?

    Vielen Dank.

    • Hallo Lars,

      der __MACOSX Ordner muss nicht mit kopiert werden.
      Hast du den Raspberry komplett neu aufgesetzt, oder lief vorher die alte Version des Push-Dienstes?
      Wurde der Raspberry nach alles Schritten einmal neu gestartet?

      • Raspberry habe ich nicht komplett neu ausgesetzt. Ich hatte mal mit der älteren Anleitung die Du geposted hattest angefangen, aber die damals nicht zu ende geführt.
        war bis zum Punkt 6 vorgedrungen (psutil importieren) und dann am Punkt 7 (Crypto auf den Raspberry pi kopieren) hängen geblieben. Liegt es daran? Neustarts habe ich an den genanten stellen getan.
        Bin neu bei der Raspberry Pi 🙂

  3. Hallo Danny,

    bekomme Phusnachrichten trotz genauer Umsetzung nach Anleitung und Neutstarts Phusnachrichten nicht zum laufen. Könntest du wenn möglich mal ein funktionierendes Jessie uploaden?

    Wäre super!

    VG

    • Hallo Robert,
      ein vorgefertigtes Image werde ich nicht mehr bereitstellen. Denn auch bei einem solchen Image müssen die Einstellungen vorgenommen werden. Es macht also kaum einen Unterschied, ob man es selbst macht oder nicht.
      Wenn du die Anleitung genau befolgst, kann dabei nichts schief gehen.

  4. Hi. Vielen Dank erstmal für die tolle Arbeit die du leistet. Habe schon den Fernzugriff in Betrieb und nun möchte ich die Pushnachrichten einrichten. Leider komme ich an Punkt nicht weiter. Bis dahin klappt alles wunderbar. Ich bekomme dann diese Meldung:

    ~/psutil $ cd ~/ismarthome
    -bash: cd: /home/pi/ismarthome: No such file or directory

    Wo liegt der Hund begraben?
    Ich freu mich auf deine Antwort

  5. Hallo Danny,

    vorab erstmal auch meinerseits vielen Dank für die tollen Tools und Tutorials! Klasse Arbeit!

    Da ich gestern erfolgreich den Fernzugriff über den RaspberryPI eingerichtet habe, wollte ich heute die Einrichtung des Push-Services angehen. Leider stehe ich da nur irgendwie bereits bei Schritt 2 auf dem Schlauch. Welches zip-Archiv?

    Vielen Dank für die Rückmeldung,
    Freundliche Grüße,
    Andreas

  6. Hallo,

    so ich muss jetzt auch mal ein Riesen Dankeschön loswerden für die hervorragende Arbeit von Danny. Ich hatte auch meine Probleme das mit dem Push hinzubekommen aber das lag wohl daran das ich noch die alte Version installiert hatte die ich nie zum laufen bekommen habe. Dann habe ich mich ran gemacht und den Raspberry neu aufgesetzt und nach der obigen Anleitung alles genauso ausgeführt und siehe da es funktioniert bestens.

    Also nochmals vielen vielen Dank für die Arbeit was RWE bis heute noch nicht geschafft hat.

    Das einzige was ich noch nicht gemacht habe ist die neue ismarthome.py mit dem täglichen Neustart der Zentrale, irgendwie habe ich Bedenken wenn die jeden Tag Neustartet das die das nicht lange durchhält. Hat da schon jemand Erfahrung im dauertest.

  7. Lieber Danny,

    tausend Dank für die Entwicklungsarbeit. Ohne iSmartHome wäre ich mit meiner Hausautomation sicherlich nicht so zufrieden.

    Ich versuche derzeit den Push-Dienst – wie oben beschrieben – zu aktivieren. Leider wenig erfolgreich. Auf die Statusabfrage (“sudo service ismarthome status”) erhalte ich lediglich folgende Meldung:

    “ismarthome start/running, process 27464”

    Die fünfstellige Zahl variert bei jedem Versuch. Hast Du eine Idee, was ich falsch gemacht haben könnte? Die obige Anleitung bin ich bereits mehrfach durchgegangen und habe auch die “ismarthome.sh” bzw. die “contrab” Datei mehrfach auf Tippfehler kontrolliert.

    Beste Grüße

    Andreas

    • Hallo Andreas,
      danke für dein Feedback. Welche Version von Raspian hast du denn auf deinem Raspberry?
      Es sieht mir fast danach aus, dass du noch auf Wheezy bist. Falls ja, ist das so in Ordnung.

  8. Lieber Danny,

    ja, ich bin noch auf wheezy. Habe gerade pip nachgeladen (“sudo pip install requests”) und erhalte nun über “sudo service ismarthome.sh status” die Meldung “[ok] /home/pi/ismarthome/ismarthome.py is running”.

    Wie kann ich testen ob die Push-Funktion wirklich funktioniert. Vom WLAN ins Handynetz wechseln und ein Ereignisprofil auslösen?

    Viele Grüße

    Andreas

    • Du kann in der App ein beliebiges Gerät als Push-Gerät konfigurieren.
      Wenn du das getan hast, musst du einfach den Zustand des Gerätes ändern. Egal ob im WLAN oder außerhalb.

      VG Danny

  9. Hallo Danny,

    zunächst vielen Dank für Deine Arbeit. Ich habe mit dem Pushservice ein Problem. Ich habe das neue Script genutzt von GitHub. Jedoch bekomme ich bei Aufruf von sudo service ismarthome status
    nicht den Hinweis “active (running)” sondern den Hinweis “active (exited)”. Pushnachrichten gehen auch nicht. Woran könnte dies liegen?

    * ismarthome.service – LSB: RWE SmartHome Push Service
    Loaded: loaded (/etc/init.d/ismarthome.sh)
    Active: active (exited) since So 2016-03-20 00:17:13 CET; 21min ago
    Process: 332 ExecStart=/etc/init.d/ismarthome.sh start (code=exited, status=0/SUCCESS)

    M▒r 20 00:17:12 raspberrypi ismarthome.sh[332]: Starting system ismarthome d….
    M▒r 20 00:17:13 raspberrypi systemd[1]: Started LSB: RWE SmartHome Push Service.

    • Versuch es einmal mit manuell starten:
      sudo /opt/iSmartHome/ismarthome.py -i IP_DER_ZENTRALE -u BENUTZERNAME -p PASSWORT -v 1.70

      Dann wirst du auch sehen, woran es scheitert. Alternativ kannst du dir auch die Logs im Ordner /opt/iSmartHome/Logs ansehen.

  10. Hi Danny,
    es kommt folgende Meldung:
    Traceback (most recent call last):
    File “/opt/iSmartHome/ismarthome.py”, line 19, in
    from Crypto.Hash import SHA256
    ImportError: No module named Crypto.Hash

  11. Hi Danny!

    Vielen Dank für deine APP. Ohne diese wäre RWE SMarthome eine Qual 🙂

    Aktuell versuche deine Pushlösung umzusetzen und hänge beim start des scripts:

    $:/opt/iSmartHome/Logs$ sudo /opt/iSmartHome/ismarthome.py -i 172.16.10.115 -u xxx -p xxx -v 1.70
    Traceback (most recent call last):
    File “/opt/iSmartHome/ismarthome.py”, line 21, in
    from requests.packages.urllib3.poolmanager import PoolManager
    ImportError: No module named packages.urllib3.poolmanager

    Hast du einen Tipp für mich?

  12. Hi Danny,

    vielen Dank für dein Skript bei GitHub. Habe darüber die Installation vorgenommen.

    Bekomme jedoch beim Status die Meldung:
    active (excited)…

    Hier das Logfile:
    2016-03-29 13:19:00,693 ERROR /usr/lib/python2.7/dist-packages/urllib3/connectionpool.py:732: InsecureRequestWarning: U$
    InsecureRequestWarning)
    2016-03-29 13:19:02,711 INFO Login erfolgreich
    2016-03-29 13:19:02,730 INFO SessionId: 16268d4b-415c-4ab8-b320-912889ff5629
    2016-03-29 13:19:24,266 INFO Uebertrage States zum Push-Server…
    2016-03-29 13:19:26,156 INFO Uebertragung zum Push-Server erfolgreich.
    2016-03-29 13:21:24,926 INFO Uebertrage States zum Push-Server…
    2016-03-29 13:21:25,511 INFO Uebertragung zum Push-Server erfolgreich.
    2016-03-29 13:23:26,211 ERROR Traceback (most recent call last):
    2016-03-29 13:23:26,212 ERROR File “/opt/iSmartHome/ismarthome.py”, line 412, in
    2016-03-29 13:23:26,213 ERROR main()
    2016-03-29 13:23:26,214 ERROR File “/opt/iSmartHome/ismarthome.py”, line 99, in main
    2016-03-29 13:23:26,215 ERROR start(username, passwordHash, baseVersion, shcIP, ”)
    2016-03-29 13:23:26,216 ERROR File “/opt/iSmartHome/ismarthome.py”, line 218, in start
    2016-03-29 13:23:26,217 ERROR time.sleep(UPDATE_STATES_INTERVALL)

    Wenn ich den Befehl “sudo /opt/iSmartHome/ismarthome.py -i IP_DER_ZENTRALE -u BENUTZERNAME -p PASSWORT -v 1.70” eintippe – passiert gar nichts. Keine Fehlermeldung, nichts…

    Raspbian Version: Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux

    Danke

  13. Hallo Danny,

    ich nutze iSmarthome HD schon von Anbeginn auch die Beta-Version um Neuste Entwicklungen direkt zu testen und es hat sich ja auch schon viel getan. Besonders praktisch finde ich die ortsbasierten Szenen welche inzwischen zuverlässig funktionieren, super Arbeit!

    Auch die Push-Nachrichten sind nicht mehr wegzudenken. Was ich mir noch wünschen würde wäre das ich in den ortsbasierten Szenen einzelne Push-Nachrichten aktivieren oder deaktivieren kann. Wie zum Beispiel möchte ich nur bei Abwesenheit Push-Nachrichten bekommen wenn die Wohnungstür geöffnet oder eine Bewegung vom Bewegungsmelder festgestellt wird und nicht mehr bekommen wenn ich zu Hause bin. Wie stehen die Chancen für die Integration solch eine Funktion?

    Vielen Dank und Grüße

    • Das kannst du (mit etwas Aufwand) selbst umsetzen, indem du den iSmarthome Service auf dem Raspberry Pi anpasst.
      Dabei musst du überprüfen, ob sich das gerät noch daheim befindet (z.B. per Bluetooth) und auf dieser Grundlage dann eben die Push-Nachrichten rausschicken.

  14. Hallo Danny,

    danke aber ich denke nicht das ich das hinbekomme und ob Bluetooth der ideale Weg dafür ist aus Gründen der Reichweite am/im gesamten Haus/Grundstück und im Hinblick auf den Handy Akkuverbrauch weiß ich nicht. Schade das es keine Option als Weiterentwicklung für iSmarthome zu sein scheint.

    VG Robert

Schreibe einen Kommentar