Smarthome mit dem Raspberry Pi (piMatic)

Als ich damals mit dem Raspberry Pi angefangen habe, war nach dem Klassiker „Mediacenter“ mit Kodi das Thema „Smarthome“ das erste was ich mit dem Raspi angegangen bin. Mir ging es Anfangs einfach nur darum Funksteckdosen (433 Mhz) schalten zu können. Lösungen dazu mit entsprechenden Tutorials gab bzw. gibt es mehr als genug. Mein erster Ausflug führte zu piLight, was mir zunächst auch gereicht hat. Allerdings kam später der Wunsch das ganze via App vom Smartphone steuern zu können, statt immer auf eine Weboberfläche gehen zu müssen. Da kam dann „homebridge“ als Addon ins Spiel und eine erneute Sondierung ob piLight denn auch noch das richtige ist. Ich entschied mich dann mal einen Blick auf pimatic und FHEM zu werfen. Rein optisch sieht FHEM etwas altbacken aus, daher viel meine Entscheidung auf pimatic.

Hardware

Raspberry Pi
433 Mhz Sender & Empfänger (inkl. Antenne)

Anschluss der Hardware

piMatic GPIO
(Bild von https://gathering.tweakers.net/forum/list_message/45642919#45642919)

Vorbereitung (Raspbian Jessie)

Für die Installation von piMatic benötigen wir eine SD Karte mit 4GB und Raspbian Jessie (Lite). Dies bekommen wir aus dem Archiv von RaspberryPi.org: 2017-04-10-raspbian-jessie-lite.zip

Bevor ich die SD in den Pi stecke lege ich mir 2 Dateien auf der „boot“ Partition an. Zum einen eine Datei „ssh“ (ohne Dateiendung) und zum anderen die Datei „wpa_supplicant.conf“ mit meiner WLAN Konfiguration, damit der Pi direkt nach dem booten SSH aktiviert und sich in mein WLAN verbindet. Wird der Pi via LAN angeschlossen benötige ich die „wpa_supplicant.conf“ nicht.

Inhalt der „wpa_supplicant.conf“:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant
GROUP=netdev
update_config=1

network={
  ssid="Name des WLAN"
  scan_ssid=0
  proto=RSN
  key_mgmt=WPA-PSK
  psk="das WLAN Passwort im Klartext"
}

Nun kommt die SD Karte in den Pi und boote. Anschließend sollte der Pi eine IP bekommen haben. Dies gucke ich auf meinem Router nach und verbinde mich via SSH mit ihm, oder arbeite mit Monitor und Tastatur direkt am Pi.

Nun sollten wir das System erst einmal einrichten und anschließend aktualisieren.

sudo raspi-config

In „raspi-config“ stelle ich den Namen, das Tastatur-Layout und Zeitzone ein. Nach einem Reboot verbinde ich mich nun wieder mit dem Pi und aktualisiere das System.

sudo apt-get update
sudo apt-get upgrade

Installation piMatic

Ich orientiere mich hier an der Anleitung aus dem Wiki von piMatic.

wget https://nodejs.org/dist/v4.8.3/node-v4.8.3-linux-armv7l.tar.gz -P /tmp
cd /usr/local
sudo tar xzvf /tmp/node-v4.8.3-linux-armv7l.tar.gz --strip=1

sudo apt-get install build-essential git

cd /home/pi
mkdir pimatic-app
npm install pimatic --prefix pimatic-app --production

cd pimatic-app
cp ./node_modules/pimatic/config_default.json ./config.json

Nun müssen wir die „config.json“ öffnen und ein Passwort hinterlegen, sonst startet piMatic nicht.

nano ~/pimatic-app/config.json

Dort den folgenden Teil bearbeiten und ein Passwort eintragen:

"users": [
    {
      "username": "admin",
      "password": "admin",
      "role": "admin"
    }
  ],

Anschließend mit Strg + X beenden und mit „j“ speichern.

Damit piMatic automatisch gestartet wird wenn der Pi bootet, machen wir folgendes:

cd ~/pimatic-app/node_modules/pimatic/
sudo npm link

cd ~/pimatic-app

wget https://raw.githubusercontent.com/pimatic/pimatic/v0.9.x/install/pimatic-init-d
sudo cp pimatic-init-d /etc/init.d/pimatic
sudo chmod +x /etc/init.d/pimatic
sudo chown root:root /etc/init.d/pimatic
sudo update-rc.d pimatic defaults

sudo service pimatic start

Nun sollte piMatic starten. Mit dem folgenden Befehl kann ich das LogFile überwachen und sehen ob etwas schief läuft:

tail -f ~/pimatic-app/pimatic-daemon.log

Der erste Start dauert etwas, da die Datenbank etc. erst erstellt werden muss. Irgendwann tauch im Log dann eine Zeile auf mit „[pimatic-mobile-frontend] info: rendering html finished“, dann sollte die Weboberfläche unter http://ip-des-pi/ erreichbar sein.

Konfiguration von piMatic und homeduino Plugin

Nach der Anmeldung am Webinterface wählen wir links im Menü den Punkt „Plugins“ und dann oben rechts „Browse Plugins“ aus. Aus der Liste suchen wir nun das „homeduino“ Plugin und klicken auf „Install“. Das dauert einen Moment.
piMatic homeduino

Ist das Plugin installiert wechseln wir oben Links auf „Installed Plugins“ und klicken beim „homeduino“ Plugin auf „Activate“. Hier müssen wir jetzt ein paar Einstellung wie im folgenden Bild vornehmen.
piMatic homeduino Config

Nun unten auf „Save“ und dann oben Links auf „Restart Now“. Dies dauert wieder einen Moment.

Steckdosen einbinden

Um jetzt die erste Steckdose in Betrieb zu nehmen, müssen wir herausfinden mit welchem (piMatic) Protokoll die Steckdose arbeitet. Dazu gibt es zum einen eine Liste von unterstützten Geräten und welches Protokoll diese benutzen. Die Liste findet man hier: https://github.com/pimatic/rfcontroljs/blob/master/protocols.md

Zum anderen brauchen wir den DEBUG Modus. Dazu öffnen wir Links im Menü „Messages“ und aktivieren dort oben „Debug“. Die anderen Optionen kann man abhaken oder lassen, ist egal.
Wenn man nun mit der Fernbedienung eine Steckdose schaltet, sollte das im DEBUG Log auftauchen.

In der Regel tauchen dort auch mehrere auf. Sollten mehrere Zeilen auftauchen mit unterschiedlichen Protokollen kann man ein wenig mit Ausschlussverfahren die falschen rausfiltern.
Das geht am einfachsten über den Status. Wenn man z.B. auf der Fernbedienung auf „EIN“ gedrückt hat dann können im DEBUG Log nur Einträge Sinn machen wo der „state“ auch „True“ ist.
Gibt es mehrere mit „True“ muss man durchprobieren.

Dazu legen wir uns ein neues „Device“ an und wählen als „Class“ einfach „HomeduinoRFSwitch“ aus. Dann fügen wir ein neues Protokoll hinzu tragen die Daten aus dem DEBUG Log ein.

HomeDuinoSwitch

Nach dem Speichern kann man den Schalter dann auf bestehende oder neue Pages und in Gruppen einordnen. Bei mir sieht das dann wie folgt aus.

Bekannter Fehler

Sollte der Pi abstürzen oder nicht mehr reagieren, dann kann es an einer zu neuen Kernel Version liegen. WireringPi läuft auf Kernel 4.9 nicht so gut oder auch gar nicht. Kernel 4.9 hat man meistens mit Raspbian Stretch. Ich nutze daher eigentlich Raspbian Jessie. Man kann den Kernel auch herabsetzen.

Ein Downgrade geht mit „sudo rpi-update 52241088c1da59a359110d39c1875cda56496764“ in der Shell z.B. über Putty.

11 Kommentare

  1. Hallo.
    danke für schnelle Antwort.
    ich Arbeite mit port >5000 pimatic wie auch Raspberry.
    in der pimaticapp/pimatic deamon.log steht
    02:06:27.201 [pimatic] info: New device „pavillon“…
    02:06:27.207 [pimatic-echo] debug: successfully added device pavillon1 as dimmable light
    02:06:27.210 [pimatic-echo] debug: successfully added device pavillon11 as dimmable light
    alexa findet aber leider kein Gerät
    Echo plugin habe ich nur debug an, keine ip von alexa noch von raspberry
    port 80 aber nicht an.
    bei devices pavilon habe ich nur echo Namen vergeben wie auch active auf yes gesätzt .
    Vieleicht hast du noch eine Idee.
    ich bin am verzweifeln .
    Gruß
    arnold

    • Wie gesagt lief das bei mir nie wirklich stabil wenn es denn mal lief. Hab im Prinzip mein Smarthome auf AVM umgestellt und pimatic nutze ich nur noch für „rules“ und als homebridge für Apple.

  2. Hallo
    Schön das es noch jemanden gibt der Pimatic betreibt und was dazu schreib .
    Mein Pimatic läuft schon ca.1 Jahr auch mit Sonoff (tasmota) wie auch funk 433 über homeduino (Brennstuhl)Hast du schon versucht Alexa in den Pimatic einbinden ? (plugin-Echo ).
    bei mir erkennt alexa die Geräte nicht.
    gruß
    aus Köln

    • Ja hatte ich, allerdings lief das nicht stabil. Wichtig ist das die pimatic weboberfläche nicht auf port 80 laufen darf, weil alexa das echo plugin auf 80 sucht.

  3. Hallo Christian.
    Schön das es noch jemanden gibt der Pimatic betreibt und seine Projekte Teilt.
    Habe selber Pimatic auf einem Pi1 laufen gehabt. Leider will dieser nicht mehr und ich wollte es auf meinem Pi3 B (kein +) installieren.
    Leider bekomme ich es mit ihm aber nicht hin. 🙁
    Die Installation von Pimatic bringt viele „npm Warn“.
    Beim Starten von pimatic hört er mit „coffee-cache: compiling coffee-script file „startup.coffee“…Done“ auf.
    Beim abfragen vom Status bringt Pimatic „process is dead“…
    Alle versuche sind bis jetzt leider ohne Erfolg.
    Daher dachte ich ich Frage mal dich..
    Welchen Pi verwendest Du und ist deine Installation ohne Warn durchgelaufen?
    Hast du eventuell noch eine Idee?

    LG Andreas

    • Hi, läuft bei mir auf einem Pi2 mit Jessie auf aktuellem Kernel.

      Mein letzter Stand ist ein Bug in der Version 0.9.43 mit dem homeduino Plugin. Die npm warn sind eigentlich egal. Liegt daran weil eine recht alte Version von NPM benutzt wird bzw. benötigt wird.

      Ich habe daher nach dem Upgrade auf die .43 wieder ein downgrade auf 0.9.42 gemacht. Das läuft stabil bei mir. Mehr Infos hier: https://forum.pimatic.org/topic/4340/released-pimatic-0-9-43
      Lösung: npm install pimatic@0.9.42

      Dazu gibt es eine alternative zum homeduino Plugin hier: https://github.com/layereight/virtualhomeduino

      Hoffe das hilft dir weiter. Ich hab es leider nicht mehr genau im Kopf. Müsstest dich da selber mal durchwühlen.

    • Danke!!! 🙂 🙂 Du warst der Retter meiner Freizeit.:)
      Deine Info mit dem Bug und „Lösung: npm install pimatic@0.9.42“ war Gold wert!!
      Läuft alles wieder wie früher auf dem neuen Pi.

      Nochmals Danke, für die Seite und Hilfe!
      LG und guten Rutsch!

  4. Hi Christian,

    ich versuche seit Tagen pimatic auf meinem Raspberry Pi 3 B+ zu installieren. Ich habe schon div. Anleitungen durch gearbeitet, bin aber leider immer wieder gescheitert. Jetzt habe ich Deine Anleitung gefunden und hatte Hoffnung endlich erfolg zu haben. Nur leider klappt es damit auch nicht. Es fängt damit an das mein Pi 3B+ mit dem oben verlinkten Jessie-Image erst gar nicht bootet. Ich habe mir jetzt das aktuelle StretchLite-Image installiert und hab Deine Anleitung abgearbeitet.
    Nach „npm install pimatic –prefix pimatic-app –production“ kommt div, Fehlermeldungen, oft steht da was von Node>=6 . Muss ich also eine aktuellere Node-Version installieren?

    Ich hoffe Du kannst mir helfen!

    Viele Grüße,
    Sven

    • Hi, das Problem ist das pimatic aktuell nicht unter Raspbian Stretch ans laufen zu bekommen ist. Zumindest nicht out of the box. Stretch ist aber notwendig für RPi3B+.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.