Erweiterung eines Funk-Schalters (Senders) um einen Doppel- und einen Lang-Klick
Im Folgenden wird beschrieben, wie man mit Raspberry PI die Funktionalität einer gewöhnlichen 433MHz Funkschaltung (Intertechno, Elro, usw…) erweitern kann. Danach kann man mit einem einfachen Ein/Aus-Schalter nicht nur das "normale" Ein und Aus nutzen, sondern man hat zusätzlich:
- Doppel-Klick-Ein
- Doppel-Klick-Aus
- Lang-Klick-Ein
- Lang-Klick-Aus
Am besten beschreibe ich es mit einem Beispiel:
Ich hatte 15-Jahre lang das Licht auf meiner Nachtkonsole mit einem Ein-Aus-Funk-Schalter von der Firma Intertechno ein- und ausgeschaltet. Dank der Erweiterung kann ich nun zusätzlich:
- Mit einem Doppelklick das Licht auf der Nachtkonsole von meiner Frau ein und ausschalten.
- Mit einem Langklick schalte ich sämtliche Beleuchtung im Schlafzimmer (2 x Nachtkonsole, Hauptlicht und Schrankbeleuchtung) auf einmal ein- bzw. aus.
Das Prinzip der Lösung
Der Raspberry Pi überwacht den 433MHz-Funkverkehr. Das heißt der Pi empfängt die Funksignale und analysiert sie. Dabei werden die Doppel- und Lang-Klicks erkannt. Die Erkennung eines Klicks löst speziell für diesen Fall hinterlegte Aktionen. Das können beliebige Pi-Kommandos sein. Insbesondere können dabei Signalle an andere Funkempfänger gesendet werden.
Benötigte Hart- und Software
Die hier beschriebene Lösung ist eine Ergänzung zu dem Open Source Projekt „pilight“ von https://www.pilight.org. Man braucht also „piligth“ mit allem was dazu gehört: Raspberry Pi, eine Schaltung mit 433MHz Sender, usw. Alle Details können Sie der Hompage des Projektes entnehmen. Eine gute Beschreibung auf Deutsch finden Sie unter: https://www.forum-raspberrypi.de/Thread-tutorial-pilight-433mhz-funksteckdosen-funkdimmer-und-mehr-schalten-und-darstellen
Außerdem braucht auch einen guten 433MHz Empfänger. Ich benutze „3400RF 433Mhz Superheterodyne Transmitter and Receiver Module Link Kit Arduino“ für 7,50 Euro (inklusive Sender) und habe damit gute Erfahrungen gemacht.
Schaltplan
Raspbery Pi mit 3400RF 433Mhz Superheterodyne Transmitter and Receiver Module Link Kit Arduino
Installation
- Zuerst müssen sie „pilight“ installieren und starten. Hinweise dafür entnehmen sie den oben angegebenen Links
- Testen Sie, ob folgende Komandos funktioniere
sudo pilight-receive
sudo pilight-send –p … -u … -i … - Laden sie die Datei click-ski.pl herunter.
- Speichern Sie die Datei an einem Ort (~ im einem Verzeichniss), dass Sie sich merken können.
Inbetriebnahme - Konfiguration
- Öffnen Sie ein Terminal
- Geben Sie folgendes Komando ein
perl click-ski.pl
- Auf dem Bildschirm erscheint folgende Text:
#######################
# piski.webnode.com #
#######################
click-ski.pl is running
-
"Spielen" Sie nun mit einem Funk-Schalter. Versuchen Sie einen Doppel- bzw. Lang-Klick zu erzeugen. Denken Sie dran "ein Funkschalter ist keine Computermaus". Das System ist wesentlich Träger. Die "Pause" beim Doppel-Klick braucht ca. 1 Sekunde. Auf dem Bildschirm erscheinen nun die Ereignisse die sie durch das "spielen" verursachen z.B.:
LongClick signal="rev1_switch 14 F14 off"
dem Signal "rev1_switch 14 F14 off" ist keine Aktion zugeordnet
LongClick signal="arctech_switch_old 3 2 on"
dem Signal "arctech_switch_old 3 2 on" ist keine Aktion zugeordnet
DoublClick Signal="rev1_switch 14 F14 off"
dem Signal "rev1_switch 14 F14 off" ist keine Aktion zugeordnet
DoublClick Signal="arctech_switch_old 3 2 on"
sudo pilight-send -p intertechno_old -u 3 -i 0 -t
Manche Schalter senden Signale in mehreren Protokollen, deswegen kann es vorkommen, dass ein Doppel- bzw. Lang-Klick mehrere Ereignisse auslösen. Das ist nicht schlimm. Lassen Sie sich bei dem "Spielen" Zeit. Machen Sie zwischen den einzelnen Versuchen ausreichend lange Pausen. Im "echten" Betrieb schalten Sie auch nicht öfters als 1-mal in 10 Sekunden.
-
Nun können Sie den ausgewählten Ereignissen Aktionen zuordnen. Am besten erkläre ich das an einem Beispiel:
Sie wollen, dass nach einem dem Ereignis:
LongClick signal="arctech_switch_old 3 2 off" (= Lang-Klick auf "Aus")
Pi folgende Kommandos aufruft:
sudo pilight-send -p intertechno_old -u 3 -i 0 -f
sudo pilight-send -p intertechno_old -u 3 -i 1 -f
Öffnen Sie dafür die Datei click-ski.pl in einem Text-Editor. Gehen sie zu dem Abschnitt:#########################################################################
# Hier können Sie eigene Reaktion auf ein Lang-Klick definieren #
# Einige Beispiele stehen unten #
# #
#########################################################################
elsif($signal eq "arctech_switch_old x y on")
{
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 0 -t");
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 1 -t");
syscomand ("sudo pilight-send -p intertechno_old -u 1 -i 0 -t");
}
elsif($signal eq "arctech_switch_old x y off")
{
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 0 -f");
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 1 -f");
syscomand ("sudo pilight-send -p intertechno_old -u 1 -i 0 -f");
}
elsif($signal eq "arctech_switch_old i k on")
{
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 0 -t");
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 1 -t");
syscomand ("sudo pilight-send -p intertechno_old -u 1 -i 0 -t");
}
#########################################################################
Sie sehen hier mehrere elsif-Blöcke, die als Vorlage für Sie gedacht sind. Sie können diese verändern und weitere elsif-Blöcke hinzufügen.
In unserem Beispiel sieht der elsif Block so aus:
elsif($signal eq "arctech_switch_old 3 2 off")
{
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 0 -f")
syscomand ("sudo pilight-send -p intertechno_old -u 3 -i 1 -f")
}
Übrigens, für die "Doppel-Klick" Ereignisse gibt es in dem Script click-ski.pl einen ähnlichen Abschnitt, wie für den "Lang-Klick"
- Nach dem Editieren muss der Script neu gestartet werden:
Stop mit: Strg-C
Start mit: perl click-ski.pl
- Nun können Sie Testen, ob Ihre Änderungen funktionieren. Nach einem Lang-Klick auf dem Schalter sollte das Script folgenden Text ausgeben.
LongClick signal="arctech_switch_old 3 2 off"
sudo pilight-send -p intertechno_old -u 3 -i 0 -f
sudo pilight-send -p intertechno_old -u 3 -i 1 -f
Diese Ausgabe bestätigt, dass Pi die Signalle gesendet hat.
Wenn Sie Fragen oder Probleme haben. Ich freue mich auch Ihre Meldungen im Gästebuch.