Ikea basiertes Smart Rollo

  • Hallo liebe Community,


    ich habe mir seit längerem vorgenommen ein TUPPLUR Rollo von Ikea smart zu machen. Der Auslöser war diese Anleitung : https://goo.gl/FjNdNs

    Am Black Friday habe ich mir über Gearbest ein 3D Drucker bestellt, der dann kurz nach Weihnachten kam.

    Ich habe dann alle Teile gedruckt und mir bei Ikea in der Fundgrube ein Testrollo gekauft. Habe dann einen Prototypen gebaut und die Software (Arduino basiert) geschrieben.

    In den letzten Tagen habe ich mein erstes Homebridge Plugin geschrieben. :)8)


    Das Rollo lässt sich via MQTT steuern. Die HomeKit Anbindung funktioniert somit bereits. Was noch nicht funktioniert ist die manuelle Steuerung.

    Ich habe bereits erste Ideen, wie ich das umsetzten möchte. Hier wäre meine Frage an alle die smarte Rollos oder Ähnliches nutzen, welche Use Cases bei der manuellen Steuerung zu beachten sind?

    Reicht es im täglichen Gebrauch zwei einfache Knöpfe zu haben, die das Rollo auf und wieder zu machen können? Braucht man weitere Zwischenstufen? Oder sogar stufenlos mit Display?

    Wäre cool, wenn ihr mir eurer Erfahrungen mitteilen könnt. :)


    Hier einmal die ersten Bilder:



    Bevor das Ding einsatzbereit ist, werden noch so einige Tage vergehen. Das Bedienterminal muss modelliert und gedruckt werden. Ich werde die Motorhalterung auch nochmal neu konstruieren (etwas dezenter und mit einem Anschluss für ein Kabel zum Bedienterminal). Etwas Bedenken habe ich noch beim Motor. Da meine Fenster wesentlich größer sind, als mein Prototyp des Rollos, muss der Motor unterm Strich mehr Leistung aufwenden. Es wird sich zeigen, ob er das schafft. Anderenfalls muss ich nochmal weitere Motoren testen.


    Ich freue mich auf eure Ideen und Anregungen. Sobald ich fertig bin, stelle ich alles Nötige für einen Nachbau online.

  • Ich denke, bei einem Rolle reicht "auf" und "ab", also 2 Tasten. Für ganz spartanische User reicht sogar auch nur eine Taste.

    1x drücken "auf"

    1x drücken "stop"

    1x drücken "ab"

    1x drücken "stop"

    1x drücken "auf"

    usw.


    Dein Projekt hört sich jedenfalls sehr intetessant an...bin auf weitere Infos gespannt.


    Edit: Also per ? Home App kannst du schon steuern? D.h., du könntest abends das Rollo runter und morgens hoch machen lassen - automatisch?

  • Ich denke, bei einem Rolle reicht "auf" und "ab", also 2 Tasten. Für ganz spartanische User reicht sogar auch nur eine Taste.

    Das Problem ist, dass der aktuell verbaute Motor lange braucht, bis er das Rollo auf und zu macht. Man müsste ja dann die Taste gedrückt halten. Oder meinst du zwei Tasten mit zwei States (0% und 100%)?


    Zitat

    Edit: Also per ? Home App kannst du schon steuern? D.h., du könntest abends das Rollo runter und morgens hoch machen lassen - automatisch?

    Ja, das funktioniert bereits. 0% ist geschlossen und 100% geöffnet. Mit einem Slider (wie bei Lampenhelligkeit) kann ein genauer Wert angegeben werden. Geht natürlich dann auch via Siri und lässt sich ebenso in Szenen und Automationen einbauen.

    Was ich mir für HomeKit wünschen würde, wäre ein Anbindung an die gestellten Wecker (Wecker als Auslöser für Automationen).

  • Das Problem ist, dass der aktuell verbaute Motor lange braucht, bis er das Rollo auf und zu macht. Man müsste ja dann die Taste gedrückt halten. Oder meinst du zwei Tasten mit zwei States (0% und 100%)?

    Nein, nur eine Taste, ähnlich wie bei einem Garagen- oder Hoftor: 1x kurz drücken und es bewegt sich bis 0% oder 100%, je nachdem, wo es gerade war.


    Wenn man das Ganze aber über Homekit schon in Automationen bekommt, könnte man Szenen anlegen und diese doch zum Bsp auf einen Hue Dimmer oder eine Ikea Remote legen:

    Szene dunkel: Rollo fährt auf 100%

    Szene hell: Rollo fährt auf 0%


    Damit hättest du auf und ab bereits auf 2 Tasten.


    Edit: Du hast doch den Xiaomi Aqara Button im Einsatz. Den neben dem Fenster angebracht kannst du als Taster nutzen. Jeder Druck fährt bzw. stoppt das Rollo, so wie von mir beschrieben. Das sollte doch ausreichen oder?

    Einmal editiert, zuletzt von rel ()

  • Edit: Du hast doch den Xiaomi Aqara Button im Einsatz. Den neben dem Fenster angebracht kannst du als Taster nutzen. Jeder Druck fährt bzw. stoppt das Rollo, so wie von mir beschrieben. Das sollte doch ausreichen oder?

    Ich glaube das kann man mit HomeKit nicht so mappen. Ich kann nur sagen, dass beim Auslösen des Buttons das Rollo auf einen bestimmten Prozentwert fährt. Es gibt in HomeKit keine manuelle Hoch- bzw. Runtersteuerung.


    Ich möchte, das Rollo auch gerne ohne Netzwerk steuern können. Falls der Pi oder Router mal ausfällt, will ich nicht im Dunkeln sitzen.

    Ich finde aber die Idee gut, in dem Bedienterminal (Was ich so oder so bauen muss, da die Steuerungselektronik versteckt werden muss) ein paar Buttons einzubauen, die ich dann flexibel für HomeKit nutzen kann. Auf der Oberseite wird genug Platz sein, Strom ist da und dafür nochmal was zu programmieren ist glaub ich kein großer Aufwand. Danke für die Anregung, da habe ich bis jetzt noch garnicht dran gedacht.

  • Kleines Update:

    Wie befürchtet war der kleine Schrittmotor zu schwach um das Rollo hochzufahren.

    Ich habe mehrere Einstellung mit einem neuen Prototypen ausprobiert, es hat nicht geklappt.

    Ich habe dann einen kleinen Nema 17 Motor bestellt. Der schafft es ohne Probleme, dass Rollo zu bewegen. Leider ist der Motor, wenn er nicht dreht, nicht starr, sodass sich das Rollo von alleine abrollt. Damit, dass nicht passiert, muss ich auf der gegenüberliegenden Seite für Reibung sorgen. Ich denke, dass lässt sich mit einem 3D Druck und ein paar Schrauben lösen.

    Anbei ein Bild vom neuen Motor (Halterung ist nur ein Test). :)



  • Hallo zusammen,


    ich lese hier schon einige Zeit im Forum mit. Jetzt habe ich es aber auch endlich mal geschafft mich anzumelden:)


    Ich sitze momentan auch an dem Projekt "Smart Blinds". Im Grunde stütze ich mich auf auf die im ersten Beitrag genannte Anleitung. Hier mal ein paar weitere Infos zu meinem jetzigen Stand:


    Bauteile:

    Ich habe vor 4x meiner Fenster in der Wohnung mit einem smarten Rollo auszustatten. Hierfür stehen mir folgende Bauteile zur Verfügung:


    4x 28BYJ-48 Stepper Motor DC 5 V Motor

    4x esp8266 NodeMCU v2 Lua WIFI development kit basis auf ESP8266

    4x NodeMCU Motor Schild Board L293D für ESP-12E

    4x Voltomat Kubiko Jalousietaster

    4x IKEA Tupplur 120cm

    4x HN Power Steckernetzteil, Festspannung HNP18-090L6 9 V/DC 2A 18W Stabilisiert

    4x mini Push-Press Button


    Software:

    Meine Haussteuerung basiert auf HomeKit (Basis ist das Apple TV 4K) und einem Raspberry Pi 3 mit Homebridge.

    Gesteuert werden die Rollos über die oben genannten Arduinos. Diese hängen im WLAN und können über ihren Webserver direkt/lokal angesprochen und gesteuert werden. Keine Umwege also über MQTT o. ä.. Die Ansteuerung erfolgt entweder direkt über einen Browser (Beispiel: https://IP-Adresse/ROLLO=OPEN) oder über Homebridge und dem Plugin Minimal Http Blinds.


    Erweiterte Steuerung:

    An dem Arduino hängt zudem ein Aufputzschalter um die Rollos auch ohne Netzwerk steuern zu können. Zudem dient ein kleiner, zusätzlicher Button (eingelassen in das Gehäuse des Schalters) als Kalibrierungstaste. Ich habe mir das wie folgt vorgestellt. Nimmt man den Arduino das erste mal in Betrieb befindet sich der Rollo an irgendeiner Position. Durch Betätigen & Halten der Kalibrierungstaste fährt der Rollo so lange nach oben, bis die gewüschte oberste Position erreicht wird. Nun wird der Taster losgelassen und diese Position ist nun der Referenzpunkt, bzw. Nullposition des Rollos. Durch ein weiteres Betätigten und Halten des Referenzschalters fährt der Rollo nun nach unten bis der Taster wieder losgelassen wird. Diese Position ist der untere Endpunkt. Beide "Steps" des Motors wurden nun im Code gespeichert und können jederzeit direkt als "Rolladen öffnen [Siri]", "Rolladen schließen [Siri]", "Rolladen auf 100% [Siri]", "Rolladen auf 0% [Siri]", einfacher Tastendruck auf "hoch"-Taste des Jalousietasters, einfacher Tastendruck auf "runter"-Taste des Jalousietasters eingestellt werden. Möchte man eine Zwischenposition einstellen, funktioniert das wieder über Siri "Rolladen auf 45%" oder durch langes drücken der "hoch"- oder "runter"-Taste des Jalousietasters.


    Aktueller Stand:

    Die Arduinos laufen bereits mit einer halbfertigen Version des Codes. Es lässt sich bereits der Motor über HomeKit steuern inkl. aller Statusmeldungen (Rolladen öffnen, Rolladen auf 40%, etc). Ausschließlich die Steuerung über den Taster fehlt noch. Auch fehlen mir noch die 3D-Druck Teile. Die sollten aber die nächsten Tage kommen. Dann kann endlich alles mit dem (hoffentlich) fertigen Code getestet werden.


    Probleme:

    Bis jetzt lief alles glatt. Aber ich denke, dass mir der 28BYJ-48 Stepper Motor zum Verhängnis werden könnte. Die 120cm breiten Rollos sind doch recht schwer...

    Hier eine Frage an dich Tim:

    Du hast gesagt, dass dir das Drehmoment des Steppers nicht ausgereicht hat um die Rollos zu bewegen. Wie hast du diesen denn mit Strom versorgt? Ich habe vor den 28BYJ-48 Stepper Motor direkt mit 5V und 2A (nicht die 0,5 A von USB-Anschluss des Arduinos) zu befeuern. Ganz nach dem Motto: P = U * I. An U = 5V kann ich nichts ändern, darum wird eben an I = 2A gedreht. Hoffe das reicht aus.




  • svk cool, dass du das Projekt auch angehst. Dann bin ich mit meinem Halbwissen nicht mehr alleine :)

    Du hast gesagt, dass dir das Drehmoment des Steppers nicht ausgereicht hat um die Rollos zu bewegen. Wie hast du diesen denn mit Strom versorgt? Ich habe vor den 28BYJ-48 Stepper Motor direkt mit 5V und 2A (nicht die 0,5 A von USB-Anschluss des Arduinos) zu befeuern. Ganz nach dem Motto: P = U * I. An U = 5V kann ich nichts ändern, darum wird eben an I = 2A gedreht. Hoffe das reicht aus.

    Ich habe es nicht geschafft den Motor mit dem Nodemcu Motor Shield zu betreiben. Ich weiß nicht ob mein Shield ein Defekt hatte oder ob mein Code nicht passte.

    Ich habe dann einfach das passende Driver Board ULN2003 aus einem Arduino Set genommen, ich weiß allerdings nicht, was das Board für technische Details hat.

    Mir war die Geschwindigkeit bei dem Stepper bereits bei meinem kleinem Testrollo (ca 60cm) zu langsam. Das große (140cm) schafft er bereits nach 10 cm nicht mehr hochzufahren. Ich werd mich die Tage nochmal in die Funktionsweise von Schrittmotoren reinlesen. Wenn ich das richtig verstanden habe, dann bringt es nichts die Stromstärke zu erhöhen, da du dann das Risiko eingehst, den Motor zu überhitzen. Korrigier mich bitte, wenn ich falsch liege. Durch die Plastikhalterung hat der Motor auch wenig Möglichkeiten die Wärme abzugeben.


    Mein aktuelles Setup für den Antrieb:


    Der Motortreiber versorgt zum einen den Motor, bietet aber noch einen 5v Output mit dem der NodeMCU betrieben werden kann.

    Ich bin aber noch am überlegen ein EasyDriver -Stepper Motortreiber zu nutzen, da der flacher ist und sich besser verbauen lässt.

    Wenn das Setup endlich rund läuft, werde ich mir Gedanken machen, wie ich das Bedienterminal gestalte und das Netzteil verkabel.


    svk Berichte gerne, wie du mit dem 28BYJ-48 Stepper Motor klarkommst. Ein Vorteil hat der, er ist schön leise! Würde den Motor prinzipiell auch lieber nutzen.

  • Nur mal so eingeworfen...

    Könnte man das Teil nicht ein wenig modifizieren und nutzen?

    https://bit.ly/377xztB

    Der Motor ist für Gardinen gedacht. Ist natürlich auch eine Möglichkeit das Zimmer abzudunkeln. Vielleicht kann eins der Xiaomi Plugins das Ding bereits steuern. Ist mir aber auch zu teuer. Ich ziele auch auf eine günstige Lösung ab.

  • Kurzes Statusupdate nach stundenlanger Tüftelei:


    ich habe es geschafft den 28BYJ-48 mit einem ULN2003 mit sehr wenigen Zeilen Code zum laufen zu bringen.

    Die Geschwindigkeit ist in Ordnung. Für einen ca 160cm Rollo benötigt der Motor (ohne Übersetzung) 14 Umdrehungen (gemessen). Für 1x Umdrehung benötigt der Stepper 5 Sekunden -> 70 Sekunden für einen kompletten Schließvorgang.

    Auch das Drehmoment ist wohl ausreichend. Ein kurzer und provisorischer Test mit einem 1m breiten Rollo wurde erfolgreich abgeschlossen. Es muss aber dazu gesagt werden, dass der Rollo nur gute 30cm ausgefahren war und wieder eingefahren wurde.

    Nach Fasching werde ich mich mal an einen richtigen Versuchsaufbau wagen. Dann mit einem 1,2m breiten Rollo und einer Ausfahrstrecke von 1,6m. Wenn der kleine Stepper das schafft, dann werden die gleichen Bauteile wie in der ersten Anleitung benutzt. Sollte die Power nicht ausreichen, werde ich eine Übersetzung (Übersetzungsverhältnis i = 2) einbauen. Dann wird das Öffnen wohl doppelt so lange dauern, aber das Drehmoment wird sich ebenfalls verdoppeln. Und somit sollte dieses Problem auch gelöst sein.

  • ich habe es geschafft den 28BYJ-48 mit einem ULN2003 mit sehr wenigen Zeilen Code zum laufen zu bringen.

    svk Hast du den ULN2003 direkt mit dem 3,3v out vom NodeMCU mit Strom versorgt?


    Ich hab das im ersten Test so gehabt. ULN2003 direkt am NodeMCU und dann ein ca 80 cm breites Rollo 70cm hoch und runter gefahren. Der Motor hatte unten aber auch schon zu kämpfen und hatte teilweise Schrittverluste.

  • Der ULN2003 wurde direkt mit einem 5V und 2A Netzteil verbunden.

    Mit 3,3 V und 0,5 A (über das Steckbrett) hat es nicht funktioniert. Hier gab es auch bei mir Aussetzer

    Einmal editiert, zuletzt von svk ()

  • Ich habe heute versucht mein 1,40m Rollo mit nem ULN2003 (5V und 1A) zu betreiben. Das hat schon wesentlich besser geklappt, als mit den 3,3V und 0,5A. Leider hatte der Motor immer noch nicht genug Power. So ab 40cm hatte ich wieder Schrittausfälle. Ich werde es auch mit einer Übersetzung probieren.


    Dann hatte ich noch probiert das Rollo mit dem Nema 17 zu betreiben. Der hat genug Kraft, um das Rollo zu bewegen. Durch den Leerlauf, rollt das Rollo aber immer wieder runter. Hab dann eine Halterung konstruiert, in der ich kalibrierbar Reibung erzeugen kann. Leider schafft der Motor es dann wieder nicht das Rollo hochzuziehen.


    Ganz schön knifflig das Ganze. :saint: Ich hab mich nochmal von folgender Anleitung inspirieren lassen und werde es auf diese Weise nochmal versuchen.

  • An die Mechanik werde ich mich im Laufe der Woche noch einmal setzen. Habe die Hoffnung, dass die Kraft für ein 1,2m Rollo ausreicht.

    Wenn nicht, dann muss ich das auch mit einer Übersetzung umsetzen. Die Idee hierfür hatte ich auch von der gleichen Anleitung.

    Ganz schön knifflig das Ganze. :saint: Ich hab mich nochmal von folgender Anleitung inspirieren lassen und werde es auf diese Weise nochmal versuchen.


    Habe heute noch einmal die Software überarbeitet und habe jetzt ein anderes Homebridge Plugin namens HTTP Window Covering. Das läuft deutlich zuverlässiger als das http-minimal-blinds Plugin...

  • svk Ich habe es mal mit dem ULN2003 und dem 28byj-48 (12V Edition) probiert. Hab ein Netzteil mit 12V und 5A Output genommen. Das schafft mein Rollo (2,4m breit) 1,2m hochzuziehen.

  • Danke Tim,

    Die 12V Version des Steppers hatte ich gar nicht auf dem Schirm;)

    War gerade kurz davor meine 3D-Druck Teile anzufertigen und die Zahnräder zu bestellen. Diese Woche hatte ich die CAD Zeichnung dafür fertig gemacht. somit wäre ich also bei einem 5v Stepper mit Übersetzung geblieben...eigentlich...


    Du meinst aber wohl ein 1,4m breites Tupplur Rollo, oder? Ein 2,4m breites gibt es nämlich nicht. Hat dein Test nicht mehr als 1,2m in der Länge zugelassen, oder hat es Aussetzer ab 1,2m gegeben?

    svk mein Rollo (2,4m breit) 1,2m hochzuziehen.

    Ich müsste mein Rollo (1,2m breit) nämlich 1,6m hoch ziehen.... vielleicht könntest du das mal testen?


    Wenn du mir hier weitere Auskünfte geben könntest, wäre das klasse. Habe mir schon bei AliExpress die nötigen Teile (12v Stepper, ULN2003, 12v to 5v Multi Output Converter, nodemcu) dafür rausgesucht und würde diese dann bestellen. Gerne würde ich die Übersetzung nämlich sein lassen.



    Danke!


    Wie weit bist du mit deinem Code? Ggf kann man sich hierzu ja auch noch austauschen:thumbup:

    2 Mal editiert, zuletzt von svk ()

  • svk Genau, ein 1,4m Tupplur Rollo. Ich versuch mein Testaufbau noch ein bisschen höher zu bekommen, um das für dich zu testen. Aussetzer gab es bei mir nicht. Ich werd mir am Wochenende wahrscheinlich nochmal den Code vornehmen. Ich habe das Sketch mit Arduino umgesetzt. Die Kommunikation basiert auf MQTT.