Die Neugierde zum Raspberry Pi ist ungebrochen und mittlerweile habe ich die ersten kleinen Erfolge verzeichnen können, um eine Smart Home-Lösung mit EnOcean-Komponenten mittels EnOcean Pi anzupeilen.
Die EnOcean Pi-Platine und das EnOcean-System
Die Raspberry Pi EnOcean Erweiterungsplatine wird über den GPIO-Port vom Pi betrieben. Die Platine verfügt über eine Status LED (grün), welche den Betriebsstatus anzeigt. Die Kombination aus Raspberry Pi Platine und EnOcean Platine bilden die zentrale Steuereinheit. Ohne das Gateway könnte kein Sender oder Empfänger auf EnOcean-Basis zugewiesen werden. Eine Funktion wäre nicht möglich. In meinem vorhergegangen Beitrag berichte ich über die anfänglichen Schwierigkeiten mit der EonOcean Pi-Platine.
Das Unternehmen EnOcean GmbH, mit dem Firmensitz in Oberhaching, ist einer der großen Smart Home Geräte Hersteller und bietet viele unterschiedliche Produkte an. EnOcean steht sowohl für den Unternehmensnamen als auch für den Funkstandard und wird batterielos betrieben.
Anleitungsschritte EnOcean Pi mit RPi verbinden
Download von NOOBS
Für den Start benötigen wir eine ausreichend große Micro SD-Karte, in meinem Fall ist diese 32 GB. Die erforderliche Basis bringt das System NOOBS, welches ihr euch immer über Raspberrypi.org herunterladen könnt. Ich habe mich für die Desktop-Variante entschieden.
Das geladene *.zip-File wird anschließend auf dem Rechner entpackt und auf die SD-Karte kopiert. Diese steckt ihr anschließend in den Pi und folgt den Installationsschritten.
Ich finde die Desktop-Variante ganz gut, auch wenn diese mehr Speicherplatz auf der SD-Karte einnimmt. So sieht man visuell einiges und ggf. kommen weitere Ideen für die Nutzung eines Raspberry Pi´s. 😉
Vorbereitungen bevor FHEM installiert wird
Standardmäßig belegt der Raspberry 3 den Software-UART-ttyAMA0 mit Bluetooth. Da ich diese Schnittstelle für das serielle Module, den EnOcean Pi, benötige, lege ich den integrierten Bluetooth-Empfänger des Raspberry Pi 3 auf ttyS0 (UART1 – „mini UART“) um, um den Hardware-UART auf die TX/RX-Pins zu legen (UART0 – „full UART“).
Folgende Befehle solltet ihr prüfen und anpassen:
Schritt1:
Über die Desktopoberfläche öffnet ihr die Console, um nachfolgend den Befehl und die serielle Schnittstelle zu aktivieren.
sudo raspi-config P6 Serial auf enabled setzen
Schritt 2:
Anschließend wird die Textdateien aufgerufen, die entsprechende Zeile gesucht und angepasst.
sudo nano /boot/cmdline.txt
Diese Zeile suchen:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
und editieren. Der Eintrag console=serial0,115200 sollte wie schon beim RPi2 entfernt werden, wenn es gesetzt ist, damit die UART-Schnittstelle von Zusatzmodulen wie EnOcean Pi verwendet werden kann. Der genaue Inhalt der Zeile kann sich je nach System unterscheiden.
Hinweis: Ändert ihr nachträglich noch einmal etwas über den Befehl „raspi-config“, so kann es vorkommen, dass „console=serial0,115200″ wieder in der Zeile ergänzt wird.
Schritt 3:
Habt ihr die Einträge gemacht, ist es ratsam den Raspberry auf den aktuellsten Stand zu bringen. Ich habe diesen Schritt ganz am Ende gemacht.
sudo apt-get update sudo apt-get upgrade
Schritt 4:
Die Aktualisierung der Firmware (rpi-update) solltet ihr nur machen, wenn es unbedingt erforderlich ist.
sudo apt-get install rpi-update sudo rpi-update sudo reboot
Schritt 5:
Jetzt gehts an die Config-Datei: /boot/config.txt In dieser Datei wird das dementsprechende Overlay geladen, um Bluetooth auf mini UART zu legen ist dieser Eintrag: dtoverlay=pi3-miniuart-bt notwendig.
Die Taktfrequenz muss beim Starten auf eine konstante Frequenz mit der Zeile enable_uart=1 eingestellt werden.
UART1 wird auf die Maximalfrequenz oder Minimalfrequenz gelegt, da der mini UART die Baudrate abhängig von der System Clock variiert: force_turbo=1 oder core_freq=250. Ich entscheide mich für force_turbo=1 weil ich ein Netzteil (2,5A) verwende.
Mit diesem Befehl öffnet ihr die entsprechende Textdatei:
sudo nano /boot/config.txt
Am Ende der Datei fügt ihr einfach die folgenden Zeilen hinzu:
dtoverlay=pi3-miniuart-bt enable_uart=1 force_turbo=1
Schritt 6:
Anschließend setzt ihr mit diesem Schritt das Filesystem und die Zeiteinstellung korrekt für die nachfolgende Installation von FHEM.
sudo raspi-config
Navigiert euch durch die Einstellung an diese Stellen:
- Menüeintrag Expand Filesystem auswählen
- danach Internationalisation Options -> Change Timezone und Zeitzone für den aktuellen Standpunkt auswählen (wichtig für die korrekte Zeitangabe in FHEM)
Schritt 7:
Jetzt aber updaten, wenn ihr das in Schritt 3 nicht gemacht habt.
sudo apt-get update && sudo apt-get upgrade -y
Die Installation von FHEM
An dem Punkt habt ihr alle Einstellungen getroffen, dass die EnOcean Pi-Platine mit dem Raspberry Pi korrekt funktioniert. Alle nachfolgenden Schritte dienen der Installation von FHEM.
Schritt 8:
Für eine reibungslose Installation von FHEM müsst ihr vor der eigentlichen Installation wichtige Pakete laden. Dies macht ihr über die nachfolgende Code-Zeile.
sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl -y
Schritt 9:
Die nachfolgende Zeile installiert FHEM in der Version 5.8. Die „5.8“ mit der aktuellsten Versionsnummer ersetzen.
sudo wget http://fhem.de/fhem-5.8.deb && sudo dpkg -i fhem-5.8.deb
Schritt 10:
Anschließend löscht ihr mit diesem Befehl die Installationsdatei.
sudo rm fhem-5.8.deb
Schritt 11:
Habt ihr die überflüssige Datei deinstalliert setzt ihr die richtigen Zugriffsrechte für den Order fhem.
cd /opt sudo chmod -R a+w fhem
Schritt 12:
Danach wird dem aktuellen Benutzer und fhem der Gruppe tty hinzufügt, um Lese/Schreibrechte für dieses Gerät zu geben (später wichtig wenn Empfänger per USB angeschlossen werden wie z.B. CUL)
sudo usermod -a -G tty pi && sudo usermod -a -G tty fhem
pi durch den aktuell verwendeten Benutzernamen ersetzen. Mit dem Befehl whoami könnt ihr euch den Namen anzeigen lassen.
Schritt 13:
Fertig! Nachdem ihr alle Punkte abgearbeitet habt, könnt ihr über die IP-Adresse http://192.168.xxx.xxx:8083/fhem das Webinterface von FEHM aufrufen. Anschließend sollte bei euch FHEM geladen werden und in der linken Menüleiste „EnOcean“ auftauchen. Bei Klick darauf öffnet sich eine ähnliche Ansicht, wie in meinem Screen.
Danke für die Anleitung. Sie funktioniert noch immer (mit PI Vers 3B).
Ein paar Kleinigkeiten sind mir aufgefallen:
Schritt 1: P6 ist bei mir I6
Schritt 5: enable_uart=1 steht schon in der aktuellen config-txt
Schritt 8: Es fehlt lauf fhem das folgende Paket in der Auflistung: libcgi-pm-perl
Schritt 13: Enocean erscheint nicht (sofort) in der linken Leiste. Aber das TCM Modul erscheint unter „everything“ – allerdings erst nach einem kompletten reboot des PI.
Vielen Dank Andreas für das Teilen der Änderungen, die bei deiner Einrichtung aufgekommen sind. Es freut mich, dass die Anleitung nach der langen Zeit immer noch hilft. Viele Grüße, Christian
Hallo,
habe aktuell einen Raspi mit dem Enocean-Modul und FHEM im Einsatz und möchte nun zusätzlich das Z-Wave-Modul einsetzten. Gibt es eine Möglichkeit beide Shields aufzustecken (z.B. über https://github.com/plasmadancom/HAT-RACK) oder gibt es dabei einen PIN-Konflikt?
Es ist leider nicht möglich, mehrere Module auf dem Pi aufzustecken.
Der verwendete Port „ttyAMA0“ kann nur durch ein Gerät verwendet werden.
In diesen Fall empfiehlt es sich ein Z-Wave USB-Stick zu verwenden.
Besten Dank für die Info. Da ich bereits beide Shields habe, muss ich eine andere Lösung suchen, evtl. mit zweitem Raspi/FHEM.
Hello Christian,
I have installed according to instructions but Enocean does not appear on the left side of menu. I used 6.1FHEM
Hello Sanjeev,
have you tried to connect an EnOcean device? In the comments and also with me appeared only later in the left column the tab EnOcean.
Hallo Christian,
auch von meiner Seite vielen Dank für die Anleitung. Da Meiste hat soweit funktioniert, der enocean pi wurde erkannt und initialisiert. Aber auch bei mir fehlt links der Eintrag Enocean.
Wenn ich versuche Geräte (zb: der FT55 Taster von Eltako) in Fhem zu erkennen, also mit: set TCP_ESP3_0 teach 600
bekomme ich die Aufforderung: Please define TCP_ESP3_0 first, (der ja schon in der fhem drinne ist)
Wiederhole ich das define, meldet fhem: TCM_ESP3_0 already defined, delete it first
Ich habe auch schon die Version 5.8 probiert, gleiches Ergebnis.
Ich komme hier nicht weiter. Hast Du noch eine Idee?
Viele Grüße
Bettina
Hallo Christian,
es hat nach mehreren Versuchen auch mit FHEM 6.0 geklappt. Das Problem war, dass das EnOcean-Modul zwar im Logfile auftauchte, aber in der linken Spalte von FHEM nicht auftauchte. Nach dem Anlernen eines Schalters, tauchte auch der Menüpunkt EnOcean in FHEM auf.
Ansonsten, Danke für die gute Anleitung.
Gruß Siegfried
Hallo Siegfried,
super, dass es klappt bei Dir 🙂 Das Anlernen von Schaltern oder Sensoren gestaltet sich immer unterschiedlich. Manchmal treten da nicht ganz nachvollziehbare Effekte auf. Danke für Deine Rückmeldung generell und zur Anleitung.
Gruß
Christian
Hallo, vielen Dank für die gute Anleitung. Ich habe ebenfalls versucht, meinen PI mit dem EnoceanPI auszustatten. Was gibt es in Bezug auf die Versionen der Software zu beachten? Habe die neuste Version von Raspbian installiert, dort gibt es die raspi-config keine Option, Serial zu deaktivieren. Ist die Version von FHEM ebenfalls entscheidend?
Eine Anleitung die alles andere als vollständig ist.
Die wichtigsten Frage sind doch welches EnOcean Modul wurde verwendet?
Welche Pins wurden womit Verbunden?
Hallo, das ist Schade, dass die Anleitung nicht hilft. Gern beantworte ich die Fragen.
Bzgl. der Platine findet man diese, wenn nach „EnOcean Erweiterungsplatine“ oder „Erweiterungsplatine EnOcean Pi“ in einer der Suchmaschinen gesucht wird. Im Grunde gibt es nicht so viele Aufsteckmodule, die dem im Blogbeitrag entsprechen. Die Platine wird dann entsprechend auf die Leiste gesteckt. (https://www.voelkner.de/products/551086/EnOcean-Pi-Breadboard-Shield.html)
Zur Kommunikation verwendet die EnOcean Pi Platine die serielle Schnittstelle (UART) mit dem Pin 8 (GPIO14) zum Senden und Pin 10 (GPIO15) zum Empfangen von Daten. Die notwenige Spannung bezieht die Erweiterungsplatine über Pin 1 (3,3V) und Pin 6 (GND).
Ist die Platine aufgesteckt, muss man beachten, dass die 2 Komponenten nicht mehr in ein klassisches RPi-Gehäuse in der Höhe passen.
Gruß Christian
alles nach Installationsanleitung erfolgreich Installiert.
Leider erscheint im FHEM das EnOcean nicht hmmm.
Habe FHEM 5.9 installiert
Hallo Markus, möglicherweise gibt es unterschiede zwischen FHEM 5.9 und FHEM 5.8. Kann es aktuell nicht nachstellen, weil was anderes läuft bei mir. Hast du es mal mit FHEM 5.8 probiert ob es klappt? Gruß Christian
S u p e r
So muss es sein.
Alles nachvollziehbar und somit machbar.
Lediglich einzelne Programmunterschiede müssen etwas gesucht werden.
Danke Reinhard! Freut mich, dass die Anleitung hilft. Gern aktualisiere ich den Beitrag, wenn die Abweichungen zu groß werden.
Hallo Christian.
Sehr ausführlicher Artikel – ich habe mich für iobroker entschieden und will über den PIEnocean Modul über FHEM mit iobroker kommunizieren. Muss ich erst testen, wie das läuft. Deine Anleitung ist eine hervorragende Basis.
Liebe Grüße aus Österreich
Josef
Hallo Josef,
vielen Dank und schön, dass Dir die Anleitung geholfen hat. Ich wünsche Dir viel Erfolg! Lass gern mal was hören, wie alles bei Dir geklappt hat. 🙂 Liebe Grüße nach Österreich, Christian