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.


1 Kommentar

Mua · 14.11.2018 um 01:12

Danke. Toller Beitrag!

Schreibe einen Kommentar

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