Beiträge von svk

    smartseppel

    Es gibt 2x Möglichkeiten:

    1. Hue App:

    Hue App starten - Einstellungen – Über – (Nummer vor der Lampenbezeichnung = ID)


    2. Über den HueSunriseLamp-Code:

    In der HueSunriselamp.py findest du folgende Codezeilen:

    Code
    lights = b.get_light_objects('id')
    hue_Abfrage = lights[2].hue
    brightness_Abfrage = lights[2].brightness
    print hue_Abfrage
    print brightness_Abfrage

    Da vor keiner Codezeile eine Raute # ist, werden diese 5x Zeile alle ausgeführt. Diese dienen nur zur schnellen Überprüfung meines Codes und geben mir kurze Info über die Lampen. Grundsätzlich können diese Deaktivert (Raute # hinzufügen) werden.

    Was jedoch die erste Zeile

    Code
    lights = b.get_light_objects('id')

    macht ist, sie zeit die alle id´s von den verfügbaren Lampen an. Und genau das möchtest du. Also starte bitte dein HueSunriseLamp.py Skript über das Terminal mit

    Code
    HueSunriseLamp.py 

    und schaue dir die Ausgabe an. Bei mir erscheint so etwas:

    Code
    pi@hbridge2:~ $ HueSunriseLamp.py
    {1: <phue.Light object "Deckenlampe Wohnzimmer" at 0x766f4e70>, 2: <phue.Light object "Deckenlampe Schlafzimmer" at 0x766f4e10>, 3: <phue.Light object "Deckenlampe Küche" at 0x766f4e50>, 4: <phue.Light object "Osram CLA 60 RGBW" at 0x766f4f10>, 5: <phue.Light object "Osram On/Off" at 0x766f4ed0>, 6: <phue.Light object "Stehlampe Oben" at 0x766f4f70>, 7: <phue.Light object "Stehlampe Mitte" at 0x766f4ef0>, 8: <phue.Light object "Stehlampe Unten" at 0x76742d50>, 9: <phue.Light object "Deckenlampe Flur 1" at 0x767b7c50>, 10: <phue.Light object "Deckenlampe Flur 3" at 0x766f4e30>, 11: <phue.Light object "Deckenlampe Flur 4" at 0x7674de30>, 12: <phue.Light object "Deckenlampe Flur 2" at 0x766f4e90>, 13: <phue.Light object "Todesstern Lampe" at 0x766f4eb0>}

    Hier siehst du die ID´s. (Deckenlampe Wohnzimmer hat die ID 1, Deckenlampe Schlafzimmer die ID 2, usw)

    Leider habe ich ein Problem bei der Marko Erstellung. Kann mir hier jemand helfen?

    Das ist meine config:


    Und das der Fehlerlog:


    Das DACP Plugin befindet sich auf Version 0.9.1


    Danke!

    smartseppel

    Ich hab es gerade nicht im Kopf, aber startete das Skript und schaue dir dazu den log an. Es könnte sein dass dort alle hue Lampen angezeigt werden.

    Ich bin leider momentan nicht daheim und kann nicht überprüfen ob man die ID auch über die hue iPhone App angezeigt bekommt.


    Kann dir gerne morgen im Laufe des Tages weiterhelfen.

    finde ich auch klasse. Vor allem dann noch mit dem kommenden offset ?


    Habe mir schon überlegt, eine Art Geburtstagskalender anzulegen, aber das macht weniger Sinn, da der Name im Kalender nicht ausgelesen wird, ist aber auch nicht schlimm....


    grover macht da echt nen super job ?

    Ist es nicht sinnvoller für eine Integration des Geburtstagskalenders die App „Workflow“ (von Apple) zu nutzen und den Kalender auszulesen und dann Aufgaben an ifttt zu schicken. Ifttt wiederum schickt dir Ggf eine Benachrichtigung, schaltet das Licht, spielt Musik, etc?!

    Meine Parrot Pots sind heute angekommen. Ich werde mich am Sonntag mal hinsetzen und das Plugin auf meinem Pi 3 installieren. Einen Bluetooth-Dongle habe ich hier noch irgendwo rumfliegen.


    Werde anschließend Feedback geben

    Hast du es schon mit

    Code
    sudo easy_install phue

    oder


    Code
    pip install phue


    versucht? Bei mir ging eins von beiden (weiß leider nicht mehr welches) ohne Probleme durch.

    1. Sonnenaufgangs-Skript erstellen

    1.1 Plugin Library auf Raspberry installieren (siehe Anleitung auf GitHub):

    https://github.com/studioimaginaire/phue

    1.2 Skript erstellen:

    Code
    sudo nano HueSunriseLamp.py

    1.3 Skript mit Inhalt füllen: [Das Skript ist doch sehr schlampig, aber funktionierte auf die schnelle, darum wurde es nie wieder angepasst:)]

    Achtung: Im Skript muss folgendes angepasst werden:

    - IP-Adresse

    - Lampen-Nummer [xx]


    Die Lampennummer kann über 2 Wege herausgefunden werden:

    1. Hue App:

    Einstellungen – Über – (Nummer vor der Lampenbezeichnung = ID)


    2. HueSunriseLamp.py Code

    Aktiveren der Codezeile,

    Code
    lights = b.get_light_object('id')

    starten des Skriptes und lesen der Ausgabe (Beispiel:

    pi@hbridge2:~ $ HueSunriseLamp.py

    {1: <phue.Light object "Deckenlampe Wohnzimmer" at 0x766f4e70>, 2: <phue.Light object "Deckenlampe Schlafzimmer" at 0x766f4e10>, })



    Info: „Hue“ gibt den Farbton wieder. Es sind Farben von 0 bis 60000(?) möglich

    Eine Tabelle für die Farbnummern gibt es nicht

    Die Farbnummern können wie folgt herausgefunden werden: mit der HUE iPhone App eine Farbe auswählen (Lampe geht an). Dann folgenden Befehl innerhalb des Skriptes aktivieren:

    Code
    hue_Abfrage = lampe[2].hue
    brightness_Abfrage = lame[2].brightness
    print hue_Abfrage
    print brightness_Abfrage

    Im Terminal wird beim ausführen des Skripts die passende Farbnummer ausgegeben.

    1.4 Skript ausführbar machen:

    Code
    sudo chmod +x HueSunriseLamp.py

    1.5 Skript testen:

    Code
    ./HueSunriseLamp.py

    Achtung: bei Fehler „Press Button“ muss zunächst der Knopf auf der Hue-bridge gedrückt und innerhalb von 60 Sekunden das Skript neugestartet werden. Dabei verbindet sich das Skript das erste Mal mit der Bridge und ist fortan als Gerät angemeldet.

    1.6 Skript verschieben damit das „./“ nicht mehr nötig ist (kann zu Inkompatibilität im späteren Verlauf führen):

    Code
    sudo mv HueSunriseLamp.py /usr/local/bin

    1.7 Skript testen:

    Code
    HueSunriseLamp.py

    Das Skript kann nun jederzeit über

    Code
    sudo nano /usr/local/bin/HueSunriseLamp.py

    angepasst werden.


    2. Ansteuerung des Skriptes über Homebridge

    2.1 Homebridge Plugin cmdswitch2 installieren (https://www.npmjs.com/package/homebridge-cmdswitch2):

    Code
    npm install –g homebridge-cmdswitch2

    2.2 Homebridge config öffnen:

    Code
    sudo nano /var/homebridge/config.json

    2.3 cmdswitch2 hinzufügen und folgendes ergänzen:

    Code
    „Name" = WeckerOn,
    „cmd_on" = „HueSunriseLamp.py"

    Nun sollte nach dem Start von Homebridge ein zusätzlicher Schalter namens „WeckerOn“ vorhanden sein. Beim Betätigen wird das Skript sofort ausgeführt.

    3. Automation Sonnenaufgang (zu gewünschter Tageszeit)

    3.1 Für die Automation sind zusätzliche Schalter notwendig

    3.1.1 Homebridge Plugin Dummy (https://github.com/nfarina/homebridge-dummy) installieren und einen Schalter Namens „Zeitschalter“ sowie Einen Namens „WakeUp Light“ erstellen

    Plugin installieren:

    Code
    npm install homebridge-dummy -g

    in der config

    Code
    sudo nano /home/pi/.homebridge/config.json

    folgendes ergänzen:

    Code
    {
          "accessory": "DummySwitch", 
          "name": "Zeitschalter 1"
    },{
          "accessory": "DummySwitch",
          "name": "WakeUp Light",
          "stateful": true
    }

    Info: Der Zeitschalter wird zum Schluss zur vorgegebenen Zeit (über die Home iPhone App [Automation]) aktiviert und startet dabei eine andere Automation (Trigger). Die Bedingung ist der „WakeUp Light“-Schalter. „WakeUp Light“ wird zukünftig der Schalter sein, der in Homebridge (de-)aktiviert wird um den Sonnenaufgang für den Folgetag zu (de-)aktivieren. Das Ergebnis wird mittels „WeckerON“ das Skript ausführen. Mehr dazu später.

    3.2 Automation in der Home iPhone App erstellen

    3.2.1 Home App öffnen

    3.2.2 Automation öffnen und neue Automation hinzufügen

    3.2.3 Uhrzeit bei der die „Sonne aufgehen soll“ eingeben

    3.2.4 Als Gerät den Schalter „Zeitschalter“ auswählen und aktivieren

    3.2.5 UPDATE: der „Zeitschalter“ setzt sich automatisch 1s nach aktivierung zurück, da er „stateful“ ist (siehe Homebridge-dummy Plugin) ALT: Zusätzlich in der Funktion „Deaktivieren“ 2 Minuten einstellen

    3.2.6 Weitere Automation erstellen

    3.2.7 Gerät „WeckerOn“ [deaktivieren], Uhrzeit: 11:00 Uhr (Setzt zukünftig den Schalter zurück)

    3.3 Regel in der Eve iPhone App erstellen

    3.3.1 Eve App öffnen

    3.3.2 Szenen – Szenen – Bearbeiten – Neue Szene hinzufügen

    3.3.3 Name: „WakeUp Light Szene“, Aktionen: „WeckerOn“ [Ein] und Lampe auf eine kräftige rote Farbe stellen. <- Das ist notwendig um der Lampe von Anfang ein einen satten Rotton zu übergeben. Lässt man diese Aktion weg, kann es dazu kommen, dass wenn vor dem aktivieren des Skriptes die Lampe auf einer weniger gesättigten Farbe (weiß) stand, der gesamte „Sonnenaufgang“ ebenfalls farblich nicht kräftig genug ist.

    3.3.4 Szenen – Regeln – Regel hinzufügen

    3.3.5 Name der Regel: „WakeUp Light Regel“, Auslöser: Zeitschalter [Ein], Bedingung: WakeUp Light [Ein], Aktion: WakeUp Light Szene [Ein]


    Zusammenfassung:

    Über die Home iPhone App wird über Automation/Zeitschalter vorgegeben, wann die Sonnenaufgangsfunktion gestartet werden soll. Diese Aktion ist jedoch an die Bedingung eine Bedingung gekoppelt. Sprich, der Schalter „WakeUp Light“ muss zu der gewünschten Sonnenaufgangszeit auch eingeschaltet sein. Ist er das nicht, geht das Licht nicht an. Tipp: Definiere den Schalter „WakeUp Light“ als Favorit. Die anderen Schalter nicht, denn diese müssen zukünftig nicht manuell bedient werden.

    Hallo Smartseppel,


    ich habe mir vor einiger Zeit ein WakeUp-Light ohne Verbindung zu einer iOS App erstellt.


    Grundsätzlich funktioniert es so:


    Softwareseitige Steuerung (das wird einmal eingerichtet)

    Raspberry Pi --> Homebridge-Plugin cmdSwitch2 --> aktivieren des WakeUp-Light Skripts --> Skript steuert Lampe [Inhalt: Lampennummer, Farbe, Helligkeit, Licht)


    restliche Steuerung in HomeKit/Eve App


    Zeitschalter [Automation: Überprüfung des WakeUp-Schalters jeden morgen zur gewünschten Uhrzeit] (wann soll das Licht angehen?) --> WakeUp-Schalter (soll das Aufwachlicht morgen leuchten?) --> WeckerOn-Schalter aktivieren (aktiviert das Skript auf dem Raspberry Pi) --> Lichteffekt startet


    Das hört sich jetzt alles ein wenig umständlich an. Aber eigentlich aktivere/deaktiviere ich jeden Abend nur den WakeUp-Schalter. Da ich jeden Tag um die gleiche Uhrzeit aufstehe, geht mein Zeitschalter auch immer zur gleichen Zeit an. Möchte ich mal zu einer anderen zeit geweckt werden, dann verstelle ich die Zeit in der Automation (Home-App)


    WakeUp-Light Schalter:


    WeckerOn- und Zeitschalter:



    Automation (Startzeit) für WakeUp-Light:


    Tim, danke für die Info! Bestellung ist raus:)


    Ich hab mich an den zwei Projekten bei thingiverse.com orientiert. Habe die Teile aber neu konstruiert.


    Ich finde ein Kugellager leicht überdimensioniert. Warum machst du es nicht so wie es Ikea auch macht? Ein Stahlwinkel mit Bohrung und eine 3mm (oder so) Welle durch. Wir haben hier keine hohen Kräfte und auch keine hohen Drehzahlen. Da sind Kugellager doch nur Geldverschwendung?!

    svk Ich brauche ein Mechanismus, wo ich das Rollo von unten anbringen kann.

    Das verstehe ich nicht ganz... Meinst du etwa wie du den Motor an das Rollo anflanscht? Wenn du seitlich keinen Platz hast, dann mach es doch so: KLICK

    Aber eben ohne Übersetzung.

    Danke für die Info und deine Mühen.


    Sobald mein Code fertig ist kann ich ihn dir - bei intieresse - auch gerne zur Verfügung stellen. Dann ist ein Umweg über MQTT nicht notwendig.

    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:

    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...

    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.

    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.