RPi3: Funkdsteckdosen mit dem Amazon Echo ansteuern

Gesperrt
BaBa
General
General
Beiträge: 36
Registriert: 23 Jul 2015, 22:06
Wohnort: Pirna
Kontaktdaten:

RPi3: Funkdsteckdosen mit dem Amazon Echo ansteuern

Beitrag von BaBa » 15 Apr 2018, 11:44

Funkdsteckdosen mit dem Amazon Echo ansteuern

Viele Bastler - wie ich - sind gern sehr bequem. Um diese Bequemlichkeit zu unterstützen, lässt man sich das eine oder andere einfallen, um diese zu fördern :D
Alle hier aufgeführten Links zu Produkten sind Affiliate-Links, welche mir helfen, einen Teil der Kosten für Server usw. wieder einzuspielen. Daraus entsteht euch kein Nachteil oder anderweitige Kosten. Danke dafür.

Fragen und Probleme kann man hier los werden: Fragen zu Pilight, HA-Bridge und Alexa

Benötigte Hardware:
Einrichtung des Raspberrys:
Spoiler:
Erstens brauchen wir das Image, welches wir auf die SD-Karte installieren.
Der Download erfolgt von der offiziellen Seite: Download Raspi-Image

Das Image mit Etcher installieren
Des Weiteren empfehle ich das Tool Etcher, welches für uns den Schreibvorgang erledigt.
Der Download von Etcher erfolgt hier: Etcher Download
Einfach das Programm installieren und starte; der Rest ist selbsterklärend:

Bild

Nachdem das Image erfolgreich installiert wurde, entfernen wir die SD-Karte / den Kartenleser und stecken Ihn wieder an. Es müsste eine kleine Partition mit dem Namen "boot" erscheinen.
Da gehen wir hinein und erstellen eine neue Datei mit dem Namen: "ssh". Keine Endung, nur ssh, fertig.

Damit ist sofort SSH im Raspberry Pi aktiviert und wir können uns damit verbinden.
Jetzt nur noch die SD-Karte in den Raspberry, das LAN- und Stromkabel anschließen und los geht es.
Anschließen des Senders und Empfängers:

An den jeweiligen Modulen ist klein aufgedruckt, was Spannung (PWR/VCC), Masse (GND) und der Datenkanal (DATA) ist. Bitte auf die richtige Belegung achten!
Spoiler:
Verkabelung Sender Modul:

Grafische Darstellung der PIN-Belegung des Pi's:
Bild

DATA: Pin 11 auf dem Raspberry Pi
VCC: Pin 1 auf dem Raspberry Pi
GND: Pin 6 auf dem Raspberry

Verkabelung Empfänger Modul:
DATA: An Data wird ein 330Ω Widerstand angeschlossen, an dessen Ende eine Verbindung zu Pin 12 und einen 470Ω Widerstand mit Verbindung zu GND
VCC: Pin 2 auf dem Raspberry Pi
GND: Pin 6 auf dem Raspberry
Installation von Pilight:
Spoiler:
Wir müssen zuerst die Quelle für die aktuelle Pilight-Version hinzufügen und können dann die jeweils aktuelle Version installieren.
In folgender Reihenfolge (Zeile für Zeile) müssen die Befehle abgearbeitet werden:

Code: Alles auswählen

sudo nano /etc/apt/sources.list
deb http://apt.pilight.org/ stable main
sudo wget -O - http://apt.pilight.org/pilight.key | sudo apt-key add -
sudo apt-get -y update
sudo apt-get -y install pilight
Damit wird Pilight installiert und im Anschluss daran eine Konfigurationsdatei erzeugt. Diese befindet sich
in /etc/pilight/. Um diese weiter unseren Bedürfnissen anzupassen, öffnen wir die Datei mit dem Editor Nano:

Hinweis:
Für den Anfang ist es am einfachsten, wenn man einfach alles aus der Config-Datei löscht (Mit Strg + k kann man Zeilen ausschneiten; einfach gedrückt halten) und fügt meine Beispiel-Konfiguration ein (Folgende Zeilen kopieren und mit der rechten Maustaste in Nano einfügen):

Code: Alles auswählen

{
        "devices": {
                "Schalter1": {
                        "protocol": [ "kaku_switch" ],
                        "id": [{
                                "id": 123456789,
                                "unit": 0
                        }],
                        "state": "off"
                }
        },
        "rules": {},
        "gui": {
                "Schalter1": {
                        "name": "Schalter Nr 1",
                        "group": [ "MeineSchalter" ],
                        "media": [ "all" ]
                }
        },
                "log-level": 6,kusch
        "settings": {
                "pid-file": "/var/run/pilight.pid",
                "log-file": "/var/log/pilight.log",
                "webserver-enable": 1,
                "webserver-root": "/usr/local/share/pilight/webgui",
                "webserver-http-port": 5001,
                "webserver-https-port": 5002,
                "webserver-cache": 1,
                "gpio-platform": "raspberrypi3"
        },
        "hardware": {
                "433gpio": {
                        "sender": 0,
                        "receiver": 1
                }
        },
        "registry": {}
}
Nun erst einmal die Datei öffnen und anpassen:

Code: Alles auswählen

sudo nano /etc/pilight/config.json
Installation von HA-Bridge:

==> Offizielle Seite von GitHub zur HA-Bridge
Spoiler:
In der Annahme, das der Raspberry frisch aufgesetzt wurde, wird kein Java installiert sein. Doch dieses wird für den Betrieb von HA-Bridge benötigt.
Prüfen kann man dies mit folgenden Befehl:

Code: Alles auswählen

java -version
Sollte keine Ausgabe erfolgen, dann installieren wir Java einfach mit folgenden Befehl:

Code: Alles auswählen

sudo apt-get update && sudo apt-get install oracle-java8-jdk
Haben wir Java installiert, können wir weiter fortfahren.

Zuerst erstellen wir im Home-Verzeichnis von Pi einen Ordner. Sollte man nicht wissen, ob man sich in diesem Verzeichnis befindet, so gibt man einfach folgendes in die Konsole ein: Hier erstellen wir den Ordner habridge , wechseln in diesen und laden HA-Bridge herunter:
Hinweis: Bitte die jeweilige Version (in diesem Fall 5.2.1) in dem offiziellen Link nachprüfen und ggf. anpassen.

Code: Alles auswählen

mkdir habridge
cd ha-bridge
wget https://github.com/bwssytems/ha-bridge/releases/download/v5.2.1/ha-bridge-5.2.1.jar
Um den dazugehörigen Systemdienst zu aktivieren, müssen wir diese Datei anlegen:

Code: Alles auswählen

sudo nano /etc/systemd/system/habridge.service
Und fügen folgendes ein:

Code: Alles auswählen

[Unit]
Description=HA Bridge
Wants=network.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-5.2.1.jar

[Install]
WantedBy=multi-user.target
Nun das Systemcontrol neu laden:

Code: Alles auswählen

sudo systemctl daemon-reload
Und anschließend den Dienst starten:

Code: Alles auswählen

sudo systemctl start habridge.service
Damit die HA-Bridge automatisch mit dem System mitgestartet wird, müssen wir einen Eintrag setzen:

Code: Alles auswählen

sudo systemctl enable habridge.service
Hinweis: mit "sudo systemctl disable habridge.service" kann der Dienst deaktiviert werden

Mit diesem Befehl kann man sich die letzten Zeilen aus dem Log ansehen, um eventuelle Fehler zu erkennen:

Code: Alles auswählen

tail -f /var/log/syslog
Sollte es geklappt haben, kann man in einem Browser eurer Wahl die IP des Raspberrys aufrufen und gelangt zu dieser Oberfläche:
Bild
Klickt auf Add/Edit (1) um ein neues Gerät hinzuzufügen.

Das kann man zum Test einmal eintragen. Beschreibung ist optional und nicht von Nöten; in meinem Fall sieht es so aus:
  • Name: Test
  • Device Type: Execute Script
  • Type: Execute Script
  • Target Item: pilight-send -p kaku_switch -i 123456789 -u 0 -t
Nicht vergessen, den grünen Add Button zu drücken, um diesen Eintrag auch zu übernehmen!
Bei Off Items das gleiche in bunt!

Bild

Hat alles richtig geklappt, dann kann man nun Alexa ansprechen:

Code: Alles auswählen

Alexa, suche neue Geräte
Die Antwort müsste dann sein: Ich habe ein neues Gerät mit dem Name Test gefunden.
Dann einfach:

Code: Alles auswählen

Alexa, Test an

BaBa
General
General
Beiträge: 36
Registriert: 23 Jul 2015, 22:06
Wohnort: Pirna
Kontaktdaten:

Re: Funkdsteckdosen mit dem Amazon Echo ansteuern

Beitrag von BaBa » 15 Apr 2018, 11:44

Bekannte Probleme und mögliche Lösungsansätze

Probleme zu Pilight:
Fehler:
pilight-send: NOTICE: no pilight ssdp connections found
Mögliche Lösungen:

Bisher läuft Pilight nicht mit dem aktuellen Linux-Kernel. Es wird ein älterer benötigt. Um auf den funktionierenden Kernel zu patchen, folgendes eingeben:

Code: Alles auswählen

sudo rpi-update 52241088c1da59a359110d39c1875cda56496764
Die GPIO-Plattform muss in der Pilight-Config auf den richtigen Pi eingestellt sein. Bei dem Raspberry Pi 3:

Code: Alles auswählen

"gpio-platform": "raspberrypi3"

Gesperrt