====== RCSwitch 433 Mhz Plugin ====== Version History... [[https://github.com/mschlenstedt/LoxBerry-Plugin-RCSwitch/commits/master|Änderungshistorie]] ---- ====== Aufgabe des Plugins ====== Mit dem RCSwitch Plugin kann der LoxBerry 433 Mhz-Funksteckdosen schalten. Diese Steckdosen sind sehr günstig erhältlich ("Baumarkt Funksteckdosen"). Dabei stellt der LoxBerry eine Schnittstelle zwischen den Funksteckdosen und dem Miniserver bereit, sodass die Steckdosen direkt aus Loxone heraus geschaltet werden können. Der LoxBerry muss dazu mit einem wenige Euro teuren 433 Mhz Funksender ausgestattet werden.  ====== Download ====== * Das Plugin ist auf GitHub erhältlich: [[https://github.com/mschlenstedt/LoxBerry-Plugin-RCSwitch/releases/]] * Der Sourcecode ist auf GitHub verfügbar: [[https://github.com/mschlenstedt/LoxBerry-Plugin-RCSwitch]] ====== Hardware: Sendermodul ====== Damit der LoxBerry die Funksteckdosen ansprechen kann muss er mit einem kostengünstigen 433 Mhz Sender ausgestattet werden. Diese Sendemodule kosten weniger als 5 Euro. Einkaufsliste: * 433 Mhz Sendemodul für den Raspberry, z. B. von [[https://raspiprojekt.de/kaufen/shop/funk/sendemodul-433-mhz.html|R]][[https://www.reichelt.de/de/de/entwicklerboards-433-mhz-rx-tx-modul-debo-433-rx-tx-p224219.html?PROVID=2788&gclid=CjwKCAiAsaOBBhA4EiwAo0_AnDRGZNPZt075XEOH27KnRrVvQ9oOgtGDcApuna1Nmf6HF0NH6Ny6uxoCi6oQAvD_BwE&&r=1|eichelt.de]] * Verbindungskabel (Jumper/Drahtbrücke, Buchse/Buchse) um das 433 Mhz Modul an den RaspBerry anzuschließen, siehe [[https://www.google.com/search?q=drahtbr%C3%BCcke+buchse|Google]] * Ein Stück Kabelrest (17 cm) für die Antenne, keine Litze. {{plugins:rcswitch_433_mhz_plugin:1193706527.png?185}} //Sendemodul mit angebauter Antenne (Bild von [[https://www.einplatinencomputer.com]])// Die Module sind meist alle baugleich und verfügen über 3 bzw. 4 Anschlüsse: * Pin 1: ATAD (Daten) * Pin 2: VCC (Versorgungsspannung) * Pin 3: GND (Masse) * Pin 4: Ant (Antenne) Pin 1, 2 und 3 werden mit dem LoxBerry verbunden. An Pin 4 (Ant) kann eine Antenne angeschlossen bzw. angelötet werden um die Reichweite des Sendemoduls zu erhöhen. Für die Antenne genügt ein Stück Draht mit der Länge 17 cm (exakte Länge einhalten - diese ist auf die Wellenlänge von 433 Mhz abgestimmt!). Die Pinbelegung von anderen Modulen kann abweichen, sollte aber dennoch eine ähnliche Struktur aufweisen. Versorgt wird das Sendermodul mit einer Betriebsspannung von 3,3 Volt bis 5 Volt. Wir verwenden hier eine Betriebsspannung von 5 Volt um eine größere Sendeleistung und damit auch eine größere Reichweite zu erhalten. Der Anschluss des Moduls an den Raspberry im Detail: * Pin 2 (VCC) des Moduls mit Pin 2 oder 4 (5V) am Raspberry Pi verbinden * Pin 3 (GND) des Moduls mit einem Ground-Pin vom Raspberry verbinden, z. B. Pin 6. * Pin 1 (ATAD) des Moduls wird an Pin 11 (GPIO17, Pin 11) am Raspberry angeschlossen. Ein anderer GPIO-Pin ist möglich, muss dann aber nach Installation des Plugins konfiguriert werden. Die PIN-Belegung des Raspberry Headers findet sich in der [[https://www.raspberrypi.org/documentation/usage/gpio/|Raspberry Dokumentation]]. ====== Hardware: Funksteckdosen ====== Sehr vele Steckdosen können mit dem Plugin geschaltet werden. Ich persönlich verwende die weit verbreiteten Funksteckdosen von Intertechno, oft werden auch die Steckdosen von Elro verwendet. Mittlerweile findet man häufig auch selbst anlernende Steckdosen, die keine DIP-Schalter oder Einstellrädchen mehr haben. Diese Steckdosen können ebenfalls mit dem Plugin verwendet werden - einfach die Steckdose in den Anlern-Modus versetzen und einen entsprechenden EIN-Befehl vom Hilfeassistenten senden. Damit ist die Steckdose auf diesen Code programmiert (Danke an [[https://loxwiki.atlassian.net/wiki/people/6166f83364ff010071d5b312?ref=confluence|Sven Thierfelder]] für diesen Tipp). ==== Kompatibilitätsliste ==== ^ Brand ^ Typ ^ Einstellungen ^ Einbindung über Modul ^ Protokoll ^ Unterstützung ^ | Brennenstuhl | RCS 1000N | DIP | RCSwitch | elro | JA | | Brennenstuhl | RC CE1 4001 | - | - | - | NEIN | | Düwi | DUPIS 1500 | Rädchen | RCSwitch | arctechv1 | JA | | Elro | AB600S | Selbstlernend | RCSwitch | elro | JA | | Intertechno | ITWR-3500 | Selbstlernend | RCSwitch | arctechv2 | JA | | Intertechno | YCR-1000 | Rädchen | RCSwitch | arctechv1 | JA | | Intertechno | PAR-1500 | Rädchen | RCSwitch | arctechv1 | JA | | Intertechno | IT-1500 | Selbstlernend | RCSwitch | arctechv1\\ arctechv2 | JA | | Intertechno | ITL-3500 | Selbstlernend | RCSwitch | arctechv1\\ arctechv2 | JA | ====== Einrichtung: Erster manueller Test oder unbekannte Steckdosen ====== Hinweis: Verwende den Hilfsassistenten! Das Plugin kommt mit einem Assistenten, mit dessen Hilfe Du die Befehle zum Schalten Deiner Funksteckdosen problemlos zusammenstellen kannst! Dieses Kapitel hier erklärt zusätzlich den Hintergrund, wie die Zuordnung und Gruppierung von Steckdosen funktioniert. Ich empfehle aber dringend die Schaltbefehle über den Assistenten zu erzeugen! Das Plugin bietet zwei Verfahren die Steckdosen anzusprechen: RCSwitch und [[https://www.pilight.org/|Pilight]]. Hierbei handelt es sich um zwei unterschiedliche Softwarelösungen. Wenn Deine Steckdosen unterstützt werden, empfehlen wir RCSwitch zu verwenden. Dieses ist eine sehr stabile Softwarelösung, unterstützt aber nur Elro- und Intertechnosteckdosen sowie kompatible Systeme. Pilight unterstützt eine sehr große Anzahl an weiteren Systemen, ist aber auf Grund des Aufbaus als Serversystem mit einem notwendigen laufenden Daemon eventuell etwas fehleranfälliger. ===== Modul: RCSWITCH ===== Bevor man sich daran macht und die Steckdosen in Loxone einbindet, sollte man sie manuell (über den LoxBerry) schalten, um sicherzustellen, dass die Verbindung zwischen LoxBerry und Funksteckdose einwandfrei funktioniert. Je nach Steckdose werden diese etwas unterschiedlich konfiguriert und der Aufruf der Schaltbefehle sieht etwas unterschiedlich aus. ==== Elro Funksteckdosen und kompatible ==== Diese Funksteckdosen zeichnen sich dadurch aus, dass sie auf der Rückseite (teilweise unter einem Deckel) einen 10-stelligen DIP-Schalter haben. Dieser ist meist beschriftet mit ''%%12345ABCDEF.%%'' {{https://wiki.fhem.de/w/images/5/5f/ELRO-AB440_Funkschalter.jpg}}   //Elro-Funksteckdose (Bild von [[http://www.fhemwiki.de/]])// Auf obiger Abbildung ist ein nach oben umgelegter DIP-Schalter EIN und ein nach unten gelegter DIP-Schalter AUS. Teilweise kann das auch umgekehrt sein (siehe Beschriftung der Schalter). Mit den ersten 5 DIP-Schaltern (Bezeichnung 1-5) wird der Gruppencode (oft auch als Hauscode bezeichnet) eingestellt. Man kann für alle Steckdosen im Haus den gleichen Gruppencode verwenden (man muss es aber nicht, wenn man z. B. viele Steckdosen hat). Wichtig ist, dass dieser Code unterschiedlich zu dem Deines Nachbarn ist, sonst schaltet ihr Euch gegensetig die Steckdosen {{plugins:rcswitch_433_mhz_plugin:1193706533.png}} In obigem Beispiel ist der DIP-Schalter 1 auf EIN gestellt, die DIP-Schalter 2-5 auf aus. Damit ergibt sich ein Gruppencode von 1. Wäre nur der DIP-Schalter 2 auf EIN, wäre der Gruppencode = 2 usw. Man hängt also den Parameter ?''%%group=1%%'' an die URL zum Schalten der Steckdosen an: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=elro&group=1 %%'' Mit dieser Vorgehensweise hat man nur 5 Möglichkeiten für einen Gruppencode. Bei den meisten Steckdosen hat man aber die Möglichkeit hier mehr als einen DIP-Schalter umzulegen und so ein Vielfaches an Möglichkeiten zu erhalten! Beispiel: Es wird DIP-Schalter 1 auf EIN und DIP-Schalter 3 auf EIN gesetzt, die DIP-Schalter 2, 4 und 5 sind auf AUS geschaltet. {{plugins:rcswitch_433_mhz_plugin:1193706532.png}} Stellt man einen solchen Gruppencode ein, muss man den Gruppencode in DIP-Schalter-Notation angeben. Dabei steht eine 1 für EIN und eine 0 für AUS. Für das eben erwähnte Beispiel ergäbe sich somit ein Gruppencode von ''%%10100%%''. Diesen Code hängt man an obige URL an: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=elro&group=10100 %%'' Als nächstes stellt man an der Steckdose den Gerätecode ein. Innerhalb jeder Gruppe hat jede Steckdose wiederum eine eindeutige Gerätenummer. Zum Einstellen dienen die DIP-Schalter A-E. Hier darf immer nur ein DIP-Schalter umgelegt sein, Kombinationen wie bei dem Gruppencode sind hier in aller Regel nicht möglich (es gibt wenige Ausnahmen, wo es ebenfalls geht, das ist aber eher selten). Somit können sich in jeder Gruppe maximal 5 unterschiedliche Steckdosen (A-E) befinden. Für die erste Steckdose in der Gruppe stellt man z. B. DIP-Schalter A auf EIN: {{plugins:rcswitch_433_mhz_plugin:1193706534.png}} Den verwendeten Gerätecode hängt man wiederum an die URL an (man kann A oder 1 verwenden): &''%%unit=A%%'' oder &''%%unit=1:%%'' ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=elro&group=1&unit=A %%'' Als letzten Parameter muss man nun nur noch das Schaltkommando mit übergeben. Selbsterklärend gibt es 2 Möglichkeiten eine Steckdose zu schalten: ON oder OFF. Der zugehörige URL-Parameter lautet ''%%&command=on%%'' bzw. ''%%&command=off%%''. Die vollständige URL lautet also: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=elro&group=1&unit=A&command=on %%'' ==== Intertechno Funksteckdosen und kompatible - Altes Protokoll ==== Diese Funksteckdosen zeichnen sich dadurch aus, dass sie auf der Rückseite 2 Einstellrädchen haben, meist beschriftet mit A-P sowie 1-16. Auch selbstlernende Steckdosen können mit den entsprechenden Parametern angelernt werden. Handelt es sich um eine selbstlernende Steckdose und die Fernbedienung hat kein Einstellrädchen oder DIP-Schalter, so handelt es sich um das neue Protokoll von Intertechno (siehe unten)! {{https://wiki.fhem.de/w/images/9/9a/Img_3324_small.png}}   //Intertechno-Funksteckdose (Bild von [[http://www.fhemwiki.de/]])// Mit dem ersten Rädchen (A-P) stellt man den Family-Code der Steckdose ein. Dieser ist vergleichbar zum Gruppen- oder Hauscode der Elro-Steckdosen. Man kann für alle Steckdosen im Haus den gleichen Familycode verwenden (man muss es aber nicht, wenn man z. B. viele Steckdosen hat). Wichtig ist, dass dieser Code unterschiedlich zu dem Deines Nachbarn ist, sonst schaltet ihr Euch gegensetig die Steckdosen  In obigem Beispiel ist der Familycode "''%%F"%%'' eingestellt. Man hängt also den Parameter ?''%%family=F%%'' an die URL zum Schalten der Steckdosen an: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=arctechv1&family=F %%'' Mit dem zweiten Rädchen (1-16) stellt man gleichzeitig die Gruppen- und Geräteadresse ein. Man kann pro "Famliy" 16 Steckdosen in insgesamt 4 Gruppen betreiben. Die Einstellung 1-4 steht dabei für die Gruppe 1, Einstellung 5-8 für die Gruppe 2, Einstellung 9-12 für die Gruppe 3 und Einstellung 13-16 für die Gruppe 4. Die Geräte werden wiederum in der jeweiligen Gruppe von 1-4 durchnummeriert. Beispiel: Das Rädchen steht auf Position 8. Damit ergibt sich die Gruppe 2 (5-8) und die Gerätenummer 4 (4. Gerät in der Gruppe 2). Man hängt also den Parameter &''%%group=2%%'' und &''%%unit=4%%'' an die URL zum Schalten der Steckdosen an: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=arctechv1&family=F&group=2&unit=4 %%'' Als letzten Parameter muss man nun nur noch das Schaltkommando mit übergeben. Selbsterklärend gibt es 2 Möglichkeiten eine Steckdose zu schalten: ON oder OFF. Der zugehörige URL-Parameter lautet ''%%&command=on%%'' bzw. ''%%&command=off%%''. Die vollständige URL lautet also: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=arctechv1&family=F&group=2&unit=4&command=on %%'' ==== Intertechno Funksteckdosen und kompatible - Neues Protokoll ==== Diese Funksteckdosen zeichnen sich dadurch aus, dass sie selbstlernend sind und die zugehörige Fernbedienung kein Einstellrädchen oder DIP-Schalter hat. Bei diesen Steckdosen hat die Fernbedienung eine eindeutige ID, die zur Schaltung der Steckdosen verwendet wird. Damit ist es ausgeschlossen, dass sich benachbarte Installationen gegenseitig beeinflussen. Die ID kann beliebig zwischen 0 und 67108863 gewählt werden. Die ID wird als "group" angegeben. Pro ID können 16 Steckdosen (Unit 0-15) eingerichtet werden. Wie immer muss man das Kommando (on oder off) mit angeben. Beispiel: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=arctechv2&group=7382733&unit=1&command=on%%'' Wenn man alle Steckdosen einer Gruppe schalten möchte, kann man den Parameter "all" verwenden: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=arctechv2&group=7382733&unit=1&all=1&command=on%%'' ==== Unbekannte, nicht unterstützte Steckdosen ==== Es besteht eine gewisse Chance diese Steckdosen mit einem der vorhandenen Protokolle schalten zu können. Manchmal wird aber für die Funkübertragung eine andere Pulselänge verwendet als bei den "Standard"-Steckdosen. Man kann also versuchen diese Steckdosen mit den vorhandenen Protokollen zum Laufen zu bringen und die Pulselänge entsprechend zu verändern.  So ist die Pulselänge bei der "Elro 400 Serie" 296. Allerdings ist bei der "Elro 400 Serie" alles invertiert. Dip1 hoch wäre dann 01111 usw., ebenso bei Unit und Command. Bei der "Elro 800 Serie" ist die Pulselänge 300. Die Standardpulselänge ist 350. Wenn man die Parameter seiner Steckdose sucht, hilft oft eine Internetrecherche weiter. Eine gute Anleaufstelle ist auch die Doku des [[https://www.pilight.org/|pilight-Projekts]]. Die Pulselänge kann über den Parameter "pulselength" an die URL jedes Protokolls angehängt werden: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/rcswitch.cgi?protocol=arctechv2&group=7382733&unit=1&all=1&pulselength=300&command=on%%'' ===== Modul: PILIGHT ===== Mit dem Pilight exisitert im Plugin eine weitere Möglichkeit Funksteckdosen einzubinden. Diese Softwarelösung ist sehr mächtig und unterstützt sehr viele unterschiedliche Funkprotokolle. Wenn Deine Steckdosen mit dem RCSWITCH-Modul nicht kompatibel sind, besteht eine gute Chance sie per Pilight einbinden zu können. Bitte schaue zunächst [[https://manual.pilight.org/protocols/433.92/switch/index:start|in der Pilight-Dokumentation]], mit welchen Einstellungen Deine Steckdosen eingebunden werden können. Nicht jede Steckdose benötigt alle Optionen, so muss z. B. entweder die ID oder aber der Systemcode eingegeben werden - niemals beides. Auch die Möglichkeit alle Steckdosen einer Gruppe zu schalten bieten nicht alle Funkprotokolle an. Wenn für Deine Steckdosen eine Option nicht benötigt wird, gebe sie bitte nicht an. Die Optionen werden analog zum RCSWITCH-Modul in der URL angegeben. Die URL für das Pilight-Modul lautet: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/pilight.cgi %%'' Folgende Parameter können verwendet werden und an die URL angehängt werden: * **''%%protocol%%''**, z. B. ''%%protocol=intertechno_switch%%'' * **''%%all%%''**, z. B. ''%%all=1%%'' oder ''%%all=0%%'' * **''%%id%%''**: z. B. ''%%id=0815%%'' * **''%%systemcode%%''**, z. B. ''%%systemcode=0815%%'' * **''%%unit%%''**, z. B. ''%%unit=1%%'' * **''%%command%%''**, z. B. ''%%command=on%%'' oder ''%%command=off%%'' Ein vollständiger Aufruf sieht z. B. so aus: ''%%http://loxberry:PASSWORT@IPLOXBERRY/admin/plugins/rcswitch/pilight.cgi?protocol=intertechno_switch&id=0815&unit=1&all=1&command=on %%'' ====== Einrichtung: LoxoneConfig ====== Die Funksteckdosen werden über einen Virtuellen Ausgang in LoxoneConfig eingebunden. Dazu klickt man im Peripheriebaum den Miniserver an und fügt einen neuen Virtuellen Ausgang hinzu: {{plugins:rcswitch_433_mhz_plugin:1193706583.png?400}} Anschließend editiert man die Eigenschaften des neuen Virtuellen Ausgangs: * **Bezeichnung:** Beliebig, z. B. "Funksteckdosen LoxBerry" * **Adresse:** Hier wird die Adresse des LoxBerrys eingetragen. Am Besten direkt per Copy and Paste aus dem Hilfeassistenten hierhin übertragen. Das Passwort am Anfang der URL muss noch durch das eigene Passwort ersetzt werden! Beispiel: ''%%http://loxberry:PASSWORT@192.168.3.66%%'' * **Verbindung nach Senden schließen:** Aktivieren {{plugins:rcswitch_433_mhz_plugin:1193706585.png?400}} Nun legt man für jede Funksteckdose, die über den LoxBerry gesteuert werden soll, einen Virtuellen Ausgang Befehl an: {{plugins:rcswitch_433_mhz_plugin:1193706586.png?400}} Anschließend editiert man die Eigenschaften des neuen Virtuellen Ausgang Befehls: * **Bezeichnung:** Beliebig, z. B. "Funksteckdose 1" * **Befehl bei EIN:** Hier wird der Befehl zum Einschalten der Steckdose eingetragen. Am Besten direkt per Copy and Paste aus dem Hilfeassistenten hierhin übertragen. Beispiel: ''%%/admin/plugins/rcswitch/rcswitch.cgi?group=1&unit=1&command=on%%'' * **HTTP Methode bei EIN:** GET * **Befehl bei AUS:**Hier wird der Befehl zum Ausschalten der Steckdose eingetragen. Am Besten direkt per Copy and Paste aus dem Hilfeassistenten hierhin übertragen. Beispiel: ''%%/admin/plugins/rcswitch/rcswitch.cgi?group=1&unit=1&command=off%%'' * **HTTP Methode bei AUS:** GET {{plugins:rcswitch_433_mhz_plugin:1193706587.png?400}} Den letzten Schritt wiederholt man für jede Steckdose, die man einbinden möchte. Der neue Ausgangsbefehl kann nun wie jeder andere Ausgang innerhalb von LoxoneConfig angesprochen werden, z. B. mit einem einfachen Taster: {{plugins:rcswitch_433_mhz_plugin:1193706588.png}}