Becker Rolladen mit BoxCTRL direkt über die Fritzbox steuern

27. Mär
2021
geschrieben von Roland Meier

Kürzlich hatte ich Besuch von einem Mitarbeiter der BECKER-Antriebe GmbH (Anzeige) und mir wurde eine neue, sehr interessante Möglichkeit über die Ansteuerung von Rohrmotoren vorgestellt.

Die Technologie nennt sich BoxCTRL und verbindet sich quasi direkt über DECT mit einer Fritzbox.

Im Gegensatz zur bestehenden Ansteuerung mit Rohrmotor → Homematic Schaltaktor → Homematic CCU3 → Fritzbox/LAN-Router kann diese Technologie also die beiden Homematic-Positionen einsparen.

Anzeige

Bedenkt man, dass ein einzelner HomeMatic Rolladenaktor (Anzeige) ca. 70€ + CCU3 ca. 150€ kostet und das hochgerechnet auf ca. 20 Motore in einem üblichen Einfamilienhaus, ist die Einsparung durchaus eine Hausnummer im 4-stelligen Bereich.

 

Ich hatte bereits im Jahr 2018 unsere Wohnung mit Selve-Motoren umgebaut, die bis heute anstandslos ihre Dienste leisten.

Zugegeben, bis zu diesem Zeitpunkt war mir die Firma Becker noch nicht wirklich ein Begriff, aber alleine die Tatsache, dass Becker sogar Antriebe für Flughäfen etc. herstellen (Anzeige) zeigt, dass hier enorme Erfahrungswerte in die Produkte mit einfließen, von welchen Hausbesitzer definitiv profitieren.

 

Hier ein Video über die Becker BoxCTRL Technologie (Anzeige):

 

Meine Tests und Eindrücke in diesem Beitrag beruhen ausschließlich auf Tischaufbauten, ich werde sie erstmal in unserem Zuhause nicht im produktiven Umfeld testen.

Ich bin mir aber relativ sicher, dass Erfahrungswerte im Bereich Smarthome mit den Becker-DECT-Rohrmotoren bald bei interessierten Kunden folgen könnten...

Bei Fragen, Anmerkungen oder Interesse an einem Angebot können Sie mir gerne schreiben:

Schreibt mir einfach eine Nachricht!

 

Vorstellung des Becker-BoxCTRL-Musterkoffers

Im Einleitungsbild habe ich das ganze Setup abgebildet, im Speziellen handelt es sich um folgende Komponenten:

Anzeige

 

Den losen Rohrmotor habe ich schonmal so abgelegt, dass sich der Mitnehmer (Drehkranz) frei bewegen kann.

Die Komponenten waren so weit nicht angemeldet, ich bin auch unmittelbar den Weg über meine eigene Fritzbox gegangen, da ich später noch die Integration ins bestehende Smarthome ausprobieren möchte...

 

Anschluss des Becker-Rohrmotors

Der Anschluss des Motors ist absolut einfach, es werden lediglich 230V benötigt.
Entgegen bei den üblichen Motoren, wo jeweils ein 230V für auf und ab notwendig ist, also 4 Leitungen.
Das ganze funktioniert somit parallel zu einer normalen Steckdose, die evtl. wegen einer Weihnachtsbeleuchtung bereits in der Nähe ist.

Die Installation ist hier ganz schön u.a. auch mit Videos gezeigt:
https://becker-antriebe.shop/Installation/ (Anzeige)

Becker Rohrmotor Anschluss

(Quelle: Becker-Antriebe)

 

 

Verbindung des Becker-Rolloaktors und der AVM-Sensorik mit der Fritzbox

Anzeige

Nun beginne ich mit der Einrichtung der Geräte und starte mit dem Fritz DECT 440 Taster (Anzeige).
Das Display zeigt bereits "Zum Starten Menü-Taste drücken". Gemacht, getan, die Taste leuchtet dann weiß, nun in die Fritzbox → Smart Home → Geräteverwaltung → Gerät anmelden.
Mit "Jetzt einrichten" starte ich mal die Konfiguration und sehe, was man hier so machen kann.
Da ich diverse AVM-Schaltsteckdosen habe, lege ich mal 2 davon auf Anzeige 1 des Displays.
Im nächsten Fenster kann ich eine Aktion hinzufügen und wählen, ob ich eine Komfortschaltung mit zwei Tasten möchte oder nur eine einfache Schaltung. Ich wähle mal zweiteres als umschalten.
Ich lege mir so mal 2 der Steckdosen auf links oben und links unten und beschrifte sie auch entsprechend, was geschaltet wird. Das ganze speichere ich mit OK in den Taster und probier es aus:

avm schalter

 

Als Nächstes verbinde ich den ausgebauten Motor mit der Fritzbox, schließe ihn an 230V an und aktiviere wie vorher über die Geräteverwaltung in der Fritzbox die Suche (Gerät anmelden).
Auch hier kann ich im Anschluss mit "Jetzt einrichten" den Motor konfigurieren.
Im Reiter Allgemein vergebe ich einfach mal einen klaren Namen, damit ich später den Motor zuordnen kann. In meinem Fall "Motor ausgebaut".
Die Endlageneinstellungen belasse ich erstmal unverändert.
In der Fritzbox unter Smart Home → Bedienung kann ich den Motor schonmal nach oben und unten fahren.

Ich gehe nun wieder in den vorherigen AVM Taster und möchte nun in Anzeige 2 meine beiden Motoren ansteuern.
Als Aktion hinzufügen sind die Rolladen unter Sonstige Geräte zu finden, wo ich dann meinen Motor auswähle.
Auch hier wieder eine entsprechende Beschriftung und wähle die oberen beiden Tasten für die Bedienung auf Anzeige 2 aus.

Das Gleiche mache ich nun mit dem anderen Motor, den ich "Motor eingebaut" nenne.

Meine aktuellen Taster-Einstellungen sehen nun wie folgt aus, soweit kann ich alles wie erwartet bedienen:

avm schalter motore

Ich bin überrascht, wie einfach ich hier die Funktion rein mit "Zusammenklicken" herstellen konnte.

 

Die Motore beginnen übrigens mit Ihrer Fahrt, sobald man in eine Richtung drückt. Betätigt man ein 2. Mal die Taste, bleibt der Motor stehen.
Anschließend kann er wieder Wahlweise in eine Richtung weitergefahren werden.

 

Nun versuche ich die Ansteuerung über meine Fritz-Telefone und gehe über Einstellungen auf Smart Home → Rolladen → wähle den Motor und siehe da, ich kann auch mit den Telefonen ganz einfach die Motore ansteuern.

 

Einstellung der Endlagen der Becker-Rohrmotore

Ein wichtiges Thema, welches ich hier noch kurz behandeln möchte, bevor wir in die Programmierung gehen, sind die Endlagen.

In meinem Fall verwende ich den ausgebauten Motor und möchte ihn so einstellen, dass er 2 Umdrehungen macht, bis er unten ist.
Deshalb setze ich zuerst mal in der Rolladensteuerung die aktuellen Endlagen zurück, was dann beim entsprechenden Motor auch gleich angezeigt wird:

becker motor endlagen

 

Als Erstes möchte ich die obere Endlage (offen) einstellen und fahre entsprechend mit dem nach oben Button hinauf und speichere den Endpunkt.
Gleiches mache ich mit dem unteren Endpunkt und speichere auch wieder.

Das wars dann auch schon.

 

Einbinden & Ansteuerung der DECT-Rohrmotore über die Fritzbox in IP-Symcon

Für IP-Symcon habe ich seit einigen Jahren das PHPModule von Thomas Dressler im Einsatz.
Ich wechsel in den Kern Instanzen → Module, wähle den Github Zweig aus und stelle ihn auf den aktuellen Symcon 5.5 Zweig.

Soweit scheint es jedoch für die neuen Motorfunktionen keine Skript zu geben, weshalb ich erstmal selbst mein Knowhow versuche.
Was die automatisierte Umschaltung der Rufumleitungen abhängig vom Stand des Schlafzimmerrollos angeht, habe ich bereits einiges selbst geschrieben, was ich in abgewandelter Form nun auch hier mache.

Im Browser (Chrome) öffne ich die Entwicklerkonsole, den Reiter Network und filtere nach den XHR Inhalten, anschließend lade ich die Fritzbox Seite → Smart Home → Bedienung.

fritzbox request auslesen

 

Diese Methode ist generell meistens ein guter Ansatz, unabhängig, ob man nun die Kommunikation zur Fritzbox, dem Staubsaugerroboter oder anderen Geräten auslesen möchte.

Mit dem final ermittelten Befehl können dann die Symcon Skripte erstellt werden.

Die Befehle, die ich speziell für meinen Anwendungsfall möchte, wären (die ID dahinter ist der jeweilige Motor):

  • openBlind=2001
  • closeBlind=2001
  • stopBlind=2001

Den Response mit den Werten, welche die Motoren zurückschicken, können natürlich genauso über die data.lua im Reiter Response ausgelesen werden.
Hier z.B. Level 20%:

fritzbox request response

 

Und zuletzt noch die Ermittlung der Befehle, um gezielt Prozentwerte zu schicken:

fritzbox request prozentwert

 

In meinem Fall also (saveLevel%5Bid%5D=2001&saveLevel%5Blevel%D=25):

  • savelevel[d]=2001
  • saveLevel[level]=25

 

So, dann gehts an das Symcon Programm, hierfür lege ich in meiner Rollosteuerung eine neue Boolean Variable (auf/ab) an und lege folgendes Skript darin an:

symcon elemente

<?php
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

if (GetValue(VARIABLE_ID) == true)
{
    $level = 0;
}
else
{
    $level = 100;
}
WFC_SendNotification(WEBFRONT_ID, 'Rollo', 'Level: ' . $level, 'Shutter', 5);

$fritzbox_ip = '192.168.XXX.XXX';
$username    = 'USER';
$password    = 'PASSWORD';
$shutter_id  = 'SHUTTER_ID';

$ch = curl_init('http://' . $fritzbox_ip . '/login_sid.lua');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
$session_status_simplexml = simplexml_load_string($login);

if ($session_status_simplexml->SID != '0000000000000000')
{
   $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));

   curl_setopt($ch, CURLOPT_POSTFIELDS, "username=$username&response={$response}&page=/login_sid.lua");
   $sendlogin = curl_exec($ch);
   $session_status_simplexml = simplexml_load_string($sendlogin);

   if ($session_status_simplexml->SID != '0000000000000000')
   {
       $SID = $session_status_simplexml->SID;
   }
   else
   {
      echo "Fehler: Login fehlgeschlagen";
      return;
    }
}
$ch = curl_init("http://{$fritzbox_ip}/net/home_auto_edit_view.lua?sid={$SID}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$rc1=curl_setopt($ch, CURLOPT_POSTFIELDS, "&device=$shutter_id&setLevel=true&levelpercentage=" . $level);
$rc2=curl_exec($ch);
curl_close($ch);
?>

 

Damit kann ich nun einen definierten Auf/Ab-Button in der Symcon-Oberfläche einfügen und die Motore auch ansteuern, es werden aber stets entweder 100% oder 0% angefahren:

symcon webfront

 

Über die $level Variable könnte nun das Programm auch einfach erweitert werden, um z.B. mit einem Slider wie rechts oben im Bild gezielt ein Level anzufahren.

Genauso könnte das aktuelle Level über die Lua-Aufrufe ermittelt werden, sodass man ein Feedback erhält, wo der Motor gerade steht.

 

Ansteuern der Becker-BoxCTRL-Motore mit Loxone

Für die Loxone Ansteuerung werde ich den Weg auch über Symcon nehmen, da hier schon alles eingerichtet ist und funktioniert.

Mein Plan ist, dass ich eine weitere Boolean Variablen in Symcon anlege, welche über eine Ereignisänderung die Motore ansteuert.
Zuletzt möchte ich über das JSON-RPC Protokoll aus dem Miniserver diese Variablen über meinen T5 Touch-Taster (Anzeige) ansteuern.

symcon loxone variable

 

Nach dem Erstellen der Variable, lege ich ein Ereignis an, welches auf die Werteänderung reagiert und die Zielvariable Motor ausgebaut entsprechend dem geschaltenen Wert verändert:

symcon loxone ereignis

 

Ein erster Test zeigt auch schon, dass der Motor korrekt angesteuert wird. Hierfür ändere ich lediglich den Zustand der Loxone Rollo-Auf-Ab Variable...

In einem früheren Beitrag DoorPI Türsprechanlage mit IP-Symcon verbinden ging ich bereits auf die JSONRPC Schnittstelle ein.
Der genaue Aufruf an dieser Stelle lautet ähnlich:

curl -i -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"SetValue\", \"params\": [VARIABLE_ID, false]}" http://MEINE%40EMAIL.DE:PASSWORT@192.168.178.XXX:3777/api/

Hinweis!
Der URL am Ende muss der Benutzer sowie das Passwort mitgegeben werden. Anschließend MUSS ein @ folgen, wonach dann der Hostname bzw. die IP-Adresse folgt.
Da bei Symcon die Benutzernamen identisch den Email-Adressen sind, welche auch ein @ enthalten, muss deren @ mit %40 encodiert werden!
AUS DIESEM GRUND IST DER NACHFOLGEND BESCHRIEBENE WEG ETWAS "TRICKY"...

 

Sehr hilfreich zum Ermitteln der möglichen Befehle und genauen Syntax ist die Schnittstellendokumentation von Symcon (Anzeige)!

Gebe ich diese Syntax bereits in die Konsole meines PCs ein, wird die Variable entsprechend TRUE/FALSE verändert und steuert den Motor an.

 

Da ich bereits lokal einen Webserver am Laufen habe vom NAS, erstelle ich hier ein PHP-Skript, welches als Bindeglied zw. dem Loxone Miniserver (Anzeige) und IP-Symcon (Anzeige) dient.
Ich nenne es einfach mal loxone.php und lege es in /var/www/openmediavault.

<?php
// MODIFY HERE ACC. YOUR NEEDS. // Skript username and password. $AUTH_USER = 'admin'; $AUTH_PASS = 'admin'; // Symcon data. $symcon_url = '192.168.178.xxx:3777/api/'; $symcon_user = ''; $symcon_password = 'passwort'; // STOP HERE TO MODIFY ANYTHING. // Read URL-param. $symcon_id = $_GET['symcon_id']; $symcon_value = $_GET['symcon_value']; // Encode symcon user mail: $symcon_user = urlencode($symcon_user); // Simple authentication. header('Cache-Control: no-cache, must-revalidate, max-age=0'); $has_supplied_credentials = !(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])); $is_not_authenticated = ( !$has_supplied_credentials || $_SERVER['PHP_AUTH_USER'] != $AUTH_USER || $_SERVER['PHP_AUTH_PW'] != $AUTH_PASS ); if ($is_not_authenticated) { header('HTTP/1.1 401 Authorization Required'); header('WWW-Authenticate: Basic realm="Access denied"'); exit; } $url = "http://$symcon_user:$symcon_password@$symcon_url"; $data = "{\"jsonrpc\":\"2.0\",\"id\":\"0\",\"method\":\"SetValue\",\"params\":[$symcon_id,$symcon_value]}"; // Open the connection. $ch = curl_init(); // Set the URL, number of variables & data. curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Return the contents of the CURL. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Execute the post via CURL. $result = curl_exec($ch); if (curl_errno($ch)) { $error_msg = curl_error($ch); } $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch);

 

Ich möchte kurz das Skript beschreiben, was es wo genau macht.

In den Zeilen 2-10 beginne ich mal mit dem Benutzer und Passwort, damit das Skript überhaupt ausgeführt werden darf.
Anschließend folgen die URL, der Port und die Ansteuerung der API von Symcon.
Zuletzt noch Benutzer & Passwort von IP-Symcon selbst, hier eben mit der besagten Email-Adresse.
Das Thema bei der Email-Adresse ist, dass es ein @-Zeichen enhält, welches ich in Zeile 16 enkodiere.

In Zeile 13 & 14 frage ich 2 Post-Variablen der URL ab, nämlich die Symcon-ID meiner Symcon-Varialbe und dann noch den Wert, auf den die Variable geschaltet werden soll.

Es folgt dann die eigentliche Anmeldung, um das Skript auszuführen, bzw. es stoppt, wenn die Anmeldung scheitert.

Dann setze ich in Zeile 32 & 33 die genaue Syntax der URL und des Datenpakets zusammen.

Zuletzt dann der eigentliche cURL-Aufruf.

 

Der erste Test in einem Browserfenster kann wie folgt abgesetzt werden:

http://admin:admin@NAS-IP:8080/loxone.php?symcon_id=SYMCON_ID&symcon_value=false

 

Und siehe da, entsprechend dem gesendeten Wert true oder false schaltet auch die Symcon-Variable um.

 

Zweifelsohne, dieses erste Skript kann noch ziemlich ausgebaut werden, schließlich gibt es nicht nur Variablen mit true/false, sondern auch viele andere Möglichkeiten.

Auch eine lesende Funktion ist in ähnliche Form einfach umsetzbar.

 

Bei Fragen oder Wünschen zur Erweiterung des Skripts, könnt Ihr mich natürlich gerne kontaktieren:

Nachricht schreiben!

 

 

Und somit haben wir auch nur noch den Loxone-Part des Miniservers (Anzeige), welchen ich nun noch einrichte.

  1. In meinem Beispielprojekt lege ich nun in der Loxone-Config einen neuen virtuellen Ausgang an.
    Diesen lege ich in den Raum Zentral, die Adresse ist quasi 1:1 die obige Adresse inkl. Benutzer & Passwort:
    loxone virtueller ausgang

  2. Darunter lege ich einen neuen virtuellen Ausgangsbefehl wie folgt an:
    loxone virtueller befehl
    Achtet hier bitte auf die ZWEI && Symbole, denn eines wird wohl vom Programm entfernt und dadurch kommt der Aufruf nicht zustande!

  3. Und hier mein erstes Programm dazu, wo ich einen einfachen Schalter I7 mit dem Befehl verbunden hab:
    loxone erstes programm mit schalter
    Ist der Schalter EIN, schließt der Motor das Rollo, wechselt der Schalter nach AUS, öffnet es wieder.

  4. Zuletzt möchte ich noch den Loxone T5 Touch Pure Taster (Anzeige) mit dem Becker-Motor verbinden, dafür ändere ich den existierenden Automatikjalousie-Baustein und lege meine virtuellen Befehle auf den entsprechenden Ausgang.
    Vorher hatte ich natürlich einen separaten Befehl für die Abfahrt erstellt, sodass ich nun auch 2 Befehle zur Verfügung hab:
    loxone erstes programm mit t5

 

Ansteuern der Becker-Beschattungsmotore über KNX

Anzeige

Da das ganze KNX-Thema noch relativ neu für mich ist, beschreibe ich hier mal einen einfachen Weg, welcher über die genannte Symcon-Anbindung läuft.

Ich hätte zwar auf meinem Testboard einen Schaltaktor, welchen ich direkt mit dem Motor verbinden könnte, aber wie gesagt, erstmal möchte ich es über Symcon lösen.
Heißt, ich betätige meinen KNX MDT-Glastaster mit 2 Tasten auf/ab, welche Variablen in Symcon ansteuern, die dann wiederum die Fahrbefehle zur Fritzbox senden.

 

Da ich meinen MDT-Glastaster bereits in einem anderen Beitrag entsprechend parametriert habe, exisiteren die Instanzen und Variablen bereits in meinem Symcon-Objektbaum

Für die entsprechende Werteänderung erstelle ich hier entgegen der vorherigen Loxone-Version 2 Ereignisse, ohne in die Programmierung einzutauchen:
(Dies soll einfach zeigen, dass es stets mehrere Wege gibt, um an seine Ziele zu kommen...)

knx ereignis

 

Hier abgebildet ist oben die KNX-Instanz Küchen-Fenster mit der Variable, auf welche Veränderung meine beiden Eregnisse reagieren.

Diese verändern die untere Variable Motor ausgebaut, das darin enthaltene Skript wird dann entsprechend aufgerufen und steuert den Motor an.

 

Leistungsaufnahme der Becker BoxCTRL Motore

Wie bei allen Funkaktoren, müssen diese natürlich 24h täglich in Betrieb sein, um Befehle entgegen nehmen zu können.
Eine Erste Messung eines Motors ergab folgenden Verbrauch:

Initialisierung: ~2,5W
Fahrt: ~107W
Standby: ~0,25W

Hochgerechnet auf ein Haus mit 20 Motore ergibt sich ein reiner Standby-Verbrauch von 5W/h.
Aufs Jahr gesehen sind wir bei 43,8kWh, was bei einem Strompreis von angenommen 30 Cent je kWh 13,14€ für die reine Erreichbarkeit ohne der Fritzbox heißt.

motor stromverbrauch

 

Fazit über die Becker-Rollomotore

Ich bin mir absolut sicher, hätte ich in 2018 bereits von den Becker BoxCTRL Motoren gewusst, hätte ich diese verbaut.

Alleine die Tatsache, dass ich mir die HomeMatic Aktoren hätte sparen können, sowie auch die CCU2, wären Grund dafür gewesen.

Auf der Produktsets Seite von Becker (Anzeige) ist im übrigen sehr schön beschrieben, auf welche Punkte es beim Kauf ankommt, um die richtigen Motore auszuwählen.
Über die Maße des Rollopanzers kann in einem Diagramm einfach ermittelt werden, wieviel Drehmoment der jeweilige Motor benötigt.

Auch welche Winkelwellen verbaut sind, sowie welche Rollokästen.

 

Wer Interesse an elektrischen Rolladen hat, sich aber bzgl. Planung, Einkauf, Einbau oder Programmierung noch unsicher ist, kann sich gerne melden:

Schreibt mir eine Nachricht!

 

Gelesen 8143 mal Letzte Änderung am Samstag, 03 April 2021
Artikel bewerten
(8 Stimmen)

1 Kommentar

  • AP 19. Mai 2021
    gepostet von AP

    Hallo Herr Meier,

    die Einbindung eines Rolladenantriebs in die FritzBox hat auch mich bewogen, mit einem Becker Box Ctrl die Modernisierung meiner Rolladen zu starten. Der erste Eindruck nach der Montage und Anmeldung ist etwas durchwachsen. Das System funktioniert zwar grundsätzlich, allerdings sind die Statusmeldungen zwischen FritzBox, MyFritz-App, Smart Home-App und FritzFon C5 leider nicht konsistent, zudem wird ein nicht näher konkretisierter Fehlerzustand angezeigt. Aktuell warte ich auf eine Ticketantwort von AVM. Im Vergleich zu einer Nachrüstung von Elero-Motoren mit dem Bosch Smart Home-System kann ich derzeit keine schlagenden Vorteile bezüglich Reaktionsgeschwindigkeit oder App-Steuerung erkennen. Meiner Einschätzung nach ist die Kombination FritzBox/Becker-Motoren noch nicht ganz ausgereift - hoffentlich ändert sich das noch. Mit Ihren Programmierkünsten kann ich natürlich nicht mithalten.

    Freundliche Grüße,

    AP

Bitte anmelden, um einen Kommentar zu posten
Anzeige

Anzeige

123RF.com - For all your creative needs!

Kalender

« März 2024 »
Mo Di Mi Do Fr Sa So
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Newsletter

Euch interessieren meine Themen hier? Dann tragt euch einfach in den Newsletter ein und ihr werden bei neuen Beiträgen informiert.

Anzeige