Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Frage] Hue Szenen "vorladen" und Hue Dimmer Switch, Motion Sensor

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Frage] Hue Szenen "vorladen" und Hue Dimmer Switch, Motion Sensor

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pman last edited by

      > Würde ich mir zumindest einbilden :D Jetzt dachte ich mir damit das alles,nicht zu träge wird (von Bewegung erkannt bis Licht einschalten), weil ja ioBroker sonst mit etlichen If Schleifen bei Bewegung das abarbeiten muss, lade ich die Farben vor sobald sich die Variable zur Szenensteuerung geändert hat.
      In der Kette an Ereignissen, die dabei eine Verzögerung hervorrufen können ist nun eben dieses Abarbeiten von ein paar IF Befehlen komplett zu vernachlässigen, so lang du die Parameter dafür nicht erst aufwendig auslesen musst. Während du das hier liest hat dein Computer bzw. Handy wahrscheinlich schon millionen oder milliarden davon abgearbeitet. :lol:

      > Laut Forum sollte man nur die id command ansprechen, RGB auf gar keinen Fall ansprechen.
      Die RGB States sind nicht so sinnvoll, da Lampen bzw. leuchtende Farben und speziell die HUE Lampen überhaupt kein RGB darstellen können, es wird nur versucht irgendwie umzurechnen.

      > id command finde ich gar nicht nur command und der Datenpunkt hat IMMER nur 2 geschweifte Klammern.
      Der Command-State ist dafür da, dass man mehrere der Datenpunkte gleichzeitig ändern kann, z.B. R+G+B, wobei das wie gesagt eh nicht so sinnvoll ist. Die Syntax wäre dann z.B.````
      {"bri":255, "xy": "0.4766,0.4097"}

      
        ` > Probier jetzt mit level.color.xy rum aber da stellt er nicht nur die Farben ein sondern anscheinend auch die Helligkeit, denn die Lampen gehen dadurch immer an beim Aktivieren der Szene (die nur mit dem level.colour.xy Datenpunkt gefüttert ist). `  
      Und genau hier machen dir die HUE Lampen einen Strich durch die Rechnung, denn diese können nur im eingeschalteten Zustand die Farben ändern. Der Befehl die Farbe zu ändern schaltet die Lampe daher auch mit ein.
      
        ` > Probier jetzt mit level.color.xy rum aber da stellt er nicht nur die Farben ein sondern anscheinend auch die Helligkeit, denn die Lampen gehen dadurch immer an beim Aktivieren der Szene (die nur mit dem level.colour.xy Datenpunkt gefüttert ist). Bei meinem Vorhaben müsste ich dann, so wie es jetzt ist, mit Verzögerung die Lampen wieder ausschalten und das Licht würde beim Szenen umstellen immer kurz aufflackern… Was ich irgendwie ungelegen finde. Drum wollte ich euch mal fragen ob es da eine andere Möglichkeit gibt den Hue Lampen nur die Farbe zu übermitteln ohne, dass sie angehen. Kurzes Fall Beispiel: Lampen waren vorher auf weiß. Gehen aus. Szenenvariable ändert sich und Lampen sollen bei nächster Bewegung Blau. `  
      Willst du es wirklich so umsetzen, würde ich die Mikrosekunde in Kauf nehmen, welche dein Server benötigt um die Farbe zu errechnen und dann die Lampe mit dieser einschalten. Du kannst auch die Farbe vorher ausrechnen und dann in einer Variablen speichern, so dass diese bei Bewegung nur noch an die Lampe übertragen werden muss. Der Einschaltbefehl muss ja sowieso gesendet werden, das macht also eigentlich keinen Unterschied.
      
        ` > Ist der xy Datenpunkt überhaupt der richtige? Kann man das ûberhaupt realisieren oder ist das zu komplex? Wären 6 Bewegungssensoren und ca. 40 Hue Lampen. `  
      XY ist genau richtig und 40 Lampen und 6 Sensoren sind auch kein Problem. Wie gesagt, du kannst die Farben entweder alle x Minuten vorberechnen und in eine Variable speichern oder aber live bei Bewegung berechnen, das sollte zeitlich nicht spürbar sein, selbst wenn du 4-5 andere Zustände prüfen willst. Vorrausgesetzt diese anderen Parameter befinden sich schon alle in ioBroker und du willst nicht erst das Wetter von einer Webseite abrufen oder ähnliches.
      
      Du kannst auch den Mittelweg gehen und diese Parameter, welcher zu deinen Berechnung herangezogen werden sollen, subscriben (siehe iobroker.javascript Anleitung) und lokal in deinem Skript in Variablen speichern, dann hast du diese bei Bewegung schon parat und musst nicht erst weitere Datenpunkte mittels getState abfragen.
      1 Reply Last reply Reply Quote 0
      • S
        Stormbringer last edited by

        wow vielen dank für die ausführliche Antwort 🙂

        @Pman:

        In der Kette an Ereignissen, die dabei eine Verzögerung hervorrufen können ist nun eben dieses Abarbeiten von ein paar IF Befehlen komplett zu vernachlässigen, so lang du die Parameter dafür nicht erst aufwendig auslesen musst. Während du das hier liest hat dein Computer bzw. Handy wahrscheinlich schon millionen oder milliarden davon abgearbeitet. `

        wenn das natürlich so ist hat du vollkommen recht. wusste nicht, dass daas da dann so flott geht. Homey ist komplett kollabiert dabei.

        @Pman:

        Der Command-State ist dafür da, dass man mehrere der Datenpunkte gleichzeitig ändern kann, z.B. R+G+B, wobei das wie gesagt eh nicht so sinnvoll ist. Die Syntax wäre dann z.B. `

        Ich Arbeit momentan nur mit Blockly. Ich hätte es dann über Szenen aufrufen gesteuert mit den xy Punkt und bri, das müsste ja dann so passen oder?

        @Pman:

        Wie gesagt, du kannst die Farben entweder alle x Minuten vorberechnen und in eine Variable speichern oder aber live bei Bewegung berechnen, das sollte zeitlich nicht spürbar sein, selbst wenn du 4-5 andere Zustände prüfen willst. Vorrausgesetzt diese anderen Parameter befinden sich schon alle in ioBroker und du willst nicht erst das Wetter von einer Webseite abrufen oder ähnliches. `

        Hätte eigentlich geplant, dasss die meisten Variablen im Vorfeld berechnet werden. Hier habe ich schon einmal angefangen

        http://forum.iobroker.net/viewtopic.php?f=21&t=6099

        das kombiniere ich halt dann noch mit Jahreszeiten, Wetter…. Das wäre ja dann abgesehen von der Wettersteuerung, so wie du gemeint hast oder? z. Bd. Frühling und Dämmerung kann er ja im Vorfeld setzen. Und wenns nur einmalig ist, wenn es das Regnen anfängt, dass er länger rechnen muss, kann ich damit leben.

        Muss man eigentlich aufpassen, wenn man die Werte der Textvariablen vergibt, dass er da irgendwie länger brauch könnte bei den If Schliefen ausrechnen. Also geht es wenn ein Zustand "Fruehling Daemmerung" heisst und der andere "Sommer Daemmerung" oder sollte man schauen, dass "Daemmerung" nicht immer mit vorkommt? Oder macht ihm das auch wieder nichts aus 😄

        Mir hat es gestern nur Angst gemacht, dass der Rasperry immer gemeldet hat zu viele Ereignisse. Bin da wahrscheinlich zu vorgeschädigt von Homey aber das kam dann wohl eher davon, dass zu viele Instanzen laufen. Danke dir auf alle Fälle, dass ich damit meiner Traumhuesteuerung einen Schritt weiter gekommen bin.

        Wegen den Hue Dimmer Tastern hast du auch keine Lösung? Wie realisierst du das denn, dass du die Schlafvariable auf wahr stellst? Ich hatte es halt so, dass der Hue Lichtschalter direkt bei meinem Bett hing. Bei "Aus" gingen dann alle Lampen aus und die Variable wurde auf wahr geschaltet. Praktisch war es halt, dass das Hue System trotzdem noch autark funktionierte. Bei den vielen Offlinezeiten von Homey wäre auch nicht anders gegangen aber allgemein fände ich es gut, wenn das Gewerk Licht unabhängig dann noch zu steuern wär für den Fall aller Fälle.

        1 Reply Last reply Reply Quote 0
        • H
          Heinzelmaennchen last edited by

          Hallo Stormbringer,

          ich bringe es zwar "nur" auf etwa 35 Hue Leuchten, hatte aber mit dem selben Problem zu kämpfen, nämlich dass wenn man mit einem EQ-3 Schalter die Leuchten einschaltet, also erstmal physisch unter Strom setzt, diese erstmal Weiss werden, bevor dann der Befehl von ioBroker kommt und dann eine anderer Farbe, Brightness oder was auch immer zieht.

          Ich habe mir mit einem ziemlich fiesen Trick geholfen, den man aber wirklich nur dann in Betracht ziehen sollte, wenn man absolut weiß was man macht!!!!!.

          Ich habe nämlich meine Verkabelung dahingehend geändert, dass ich die Phase zur Stromversorgung vom Schalter zu den Lampen durchgeschleift habe, sodaß diese nun immer unter Strom stehen. Dann in die Schalterdose eine Wagoklemme eingesetzt um auch den Schalter mit Strom zu versorgen. Das bedeutet nun, dass ich die physische Schalterfunktion gar nicht mehr nutze sondern die Leuchtmittel eben nur noch auf den PRESS_SHORT/LONG des Schalters reagieren lasse.

          Der Screenshot dazu:
          253_unbenannt.png
          Dann kann man für jede Situation eine eigene Szene bauen und die dann jeweils aufrufen. Das ganze hat auch den Vorteil, dass man diese Szenen dann auch aus Vis heraus mit exakt den selben Einstellungen aufrufen kann. Mann muss sie dann eben nur über ein Boolsches Widget auf true setzen.

          Das ganze hat nun den Vorteil, dass ich jede belibige Szene im Haus über einen Schalter (der nun nur och ein Taster ist) steuern kann. Und über die Funktion PRESS_LONG, kann ich auch dimmen, wo ich gar keinen Dimmer verbaut habe.

          Das Scriptbeispiel dazu :

          // Channel-IDs
          idTaster =      "hm-rpc.0.NEQ1250386"; 
          idHueLampe =    "hue.0.HeinzelHue.Test";
          
          // DimDown
          on({id: idTaster + ".2.PRESS_CONT", change: "any"} , function(obj) {
              if (obj.newState.val === true || obj.newState.val === "true") { 
                  setState(idHueLampe+".bri", getState(idHueLampe+".bri").val - 16);        
              }
          });
          
          // DimUp
          on({id: idTaster + ".1.PRESS_CONT", change: "any"} , function(obj) {
              if (obj.newState.val === true || obj.newState.val === "true") { 
                  setState(idHueLampe+".bri", getState(idHueLampe+".bri").val + 16);        
              }
          });
          
          // Off
          on({id: idTaster + ".2.PRESS_SHORT", change: "any"}, function (obj) {
              if (obj.newState.val === true || obj.newState.val === "true") { 
                  setState(idHueLampe+".bri", 0);        
              }
          });
          
          // On
          on({id: idTaster + ".1.PRESS_SHORT", change: "any"}, function (obj) {
              if (obj.newState.val === true || obj.newState.val === "true") { 
                  setState(idHueLampe+".bri", 254);        
              }
          });
          

          Vielleicht hilft Dir das ja weiter.

          1 Reply Last reply Reply Quote 0
          • S
            Stormbringer last edited by

            Danke, dass du dir die Mühe gemacht hast aber ich wüsste da definitiv nicht was ich mache :? Aber mit den Farben und Szenen haut glaub ich hin.

            1 Reply Last reply Reply Quote 0
            • P
              Pman last edited by

              > Ich Arbeit momentan nur mit Blockly. Ich hätte es dann über Szenen aufrufen gesteuert mit den xy Punkt und bri, das müsste ja dann so passen oder?
              Wenn du die Datenpunkte einzeln änderst, dann werden schlussendlich auch zwei Funktbefehle von der HUE-Bridge zur Lampe gesendet, wenn du den command Datenpunkt nutzt wird der Status der Lampe nur einmal geändert. Beispiel: Lampe ist aus und die änderst xy -> Lampe geht an mit Farby xy und Helligkeit 255. Dann änderst du noch bri -> Lampe dimmt auf die gesendete Helligkeit. Das wird vermutlich auch so sichtbar sein, da die HUE-Bridge zwischen den Funkbefehlen eine Verzögerung einbaut. Ich habe Blockly nie genutzt und kann nicht sagen in wie fern man da einen String mit JSON-Syntax zusammenbauen kann, wie es für den command State nötig ist.

              ` > Hätte eigentlich geplant, dasss die meisten Variablen im Vorfeld berechnet werden. Hier habe ich schon einmal angefangen

              viewtopic.php?f=21&t=6099

              das kombiniere ich halt dann noch mit Jahreszeiten, Wetter…. Das wäre ja dann abgesehen von der Wettersteuerung, so wie du gemeint hast oder? z. Bd. Frühling und Dämmerung kann er ja im Vorfeld setzen. Und wenns nur einmalig ist, wenn es das Regnen anfängt, dass er länger rechnen muss, kann ich damit leben.

              Muss man eigentlich aufpassen, wenn man die Werte der Textvariablen vergibt, dass er da irgendwie länger brauch könnte bei den If Schliefen ausrechnen. Also geht es wenn ein Zustand "Fruehling Daemmerung" heisst und der andere "Sommer Daemmerung" oder sollte man schauen, dass "Daemmerung" nicht immer mit vorkommt? Oder macht ihm das auch wieder nichts aus `
              Also Wetter ist kein Problem, wenn du z.B. einen der Wetter-Adapter nutzt, der die Werte ja alle x Stunden aktualisiert und in ioBroker Datenpunkten speichert. Wichtig ist nur, dass die nötigen Werte schon in ioBroker bekannt sind und nicht erst im Moment deiner Berechnung kompliziert aus dem Internet geladen werden. Ob du jetzt zwei sehr ähnliche oder zwei sehr verschiedene Strings vergleichst wird für dich keinen messbaren Unterschied machen. Wenn man es 100% richtig machen will würde man ohnehin nicht mit Strings arbeiten, aber das ist hier nicht das Ziel denke ich. Es gibt mit Blockly oder aber auch direkt Javascript trotzdem jede Menge Fallstricke, welche zu schlechter Performance führen können. Dein Problem ist aber defintiv in nicht spürbarer Zeit zu bewältigen.

              > Wegen den Hue Dimmer Tastern hast du auch keine Lösung? Wie realisierst du das denn, dass du die Schlafvariable auf wahr stellst? Ich hatte es halt so, dass der Hue Lichtschalter direkt bei meinem Bett hing. Bei "Aus" gingen dann alle Lampen aus und die Variable wurde auf wahr geschaltet. Praktisch war es halt, dass das Hue System trotzdem noch autark funktionierte. Bei den vielen Offlinezeiten von Homey wäre auch nicht anders gegangen aber allgemein fände ich es gut, wenn das Gewerk Licht unabhängig dann noch zu steuern wär für den Fall aller Fälle.
              Ich weiß nicht, ob ich dich hier richtig verstehe.

              Du musst in deiner ganzen Logik irgendwo darauf eingehen, dass sich Automatik und deine manuelle Steuerung nicht stören, z.B. deaktivierst du die Automatik für eine gewisse Zeit nach einer manuellen Steuerung. Diese manuelle Steuerung allerdings zu erknenn ist nicht ganz einfach. Ich beschreibe einfach mal, wie die Bridge, der Schalter und ioBroker zusammen spielen:

              Zusätzlich zur Kopplung der HUE-Lampen mit der Bridge kannst du diese auch jederzeit mit einem HUE-Taster koppeln, was eine direkte Verbindung zwischen Lampe und Taster herstellt. Diese Verbindung geht nicht durch die Bridge sondern der Taster steuert direkt die Lampe.

              Die HUE-Bridge bekommt den Status der Lampe dann allerdings nur sporadisch mit, diese sendet in einigen Abständen ihren Zustand an die Bridge. Daher siehst du Änderungen durch die Taster auch erst einige Zeit später in der HUE-App. ioBroker ruft diesen Zustand dann wiederum spätestens nach der eingestellten Poll-Zeit ab und erst dann siehst du diesen auch in den Datenpunkten.

              1 Reply Last reply Reply Quote 0
              • S
                Stormbringer last edited by

                @Pman:

                Ich habe Blockly nie genutzt und kann nicht sagen in wie fern man da einen String mit JSON-Syntax zusammenbauen kann, wie es für den command State nötig ist. `

                Dann wäre das jetzt eigentlich die 1 Mio Euro Frage. Vielleicht habe ich ja Glück und jemand anderes weiß das….

                @Pman:

                Ich weiß nicht, ob ich dich hier richtig verstehe.

                Du musst in deiner ganzen Logik irgendwo darauf eingehen, dass sich Automatik und deine manuelle Steuerung nicht stören, z.B. deaktivierst du die Automatik für eine gewisse Zeit nach einer manuellen Steuerung. Diese manuelle Steuerung allerdings zu erknenn ist nicht ganz einfach. `

                Habe es so gemeint, dass man die Taster in ioBroker als Objekt einbinden kann…. Oder zumindest irgendwie über einen HTTP Request, MQTT oder FHEM Adapter oder wie auch immer... Damit ioBroker es mitbekommt, wenn ein Hue Taster gedrückt wurde.

                Früher hatte ich es halt so. Wenn Taster Hue gedrückt > manuelle Steuerung (und dann haben sich die Regeln mit dem Bewegungssender nicht mehr eingemischt) oder "Aus Schalten" > Schlaf Variable aktiviert (dann werden die Bewegungsregeln ebenfalls nicht ausgeführt und meine Katzen machen in der Nacht keine Festbleuchtung, wenns vor den Bewegungssensoren rumtanzen :lol: )

                1 Reply Last reply Reply Quote 0
                • P
                  Pman last edited by

                  Also im Moment werden die Taster nicht im Adapter unterstützt, aber ich weiß auch nicht wie sinnvoll das ist. Du hast vorher Homey genutzt, hat man die HUE bzw. Zigbee Geräte direkt an Homey angelernt oder lief das auch über die HUE-Bridge?

                  Die HUE-API unterstützt leider nur polling, so dass der HUE-Adapter nur in den eingestellten Intervallen die Zustände von der HUE-Bridge abholen kann. Einen Taster zu unterstützen ist also nur bedingt sinnvoll, da man dessen Betätigung erst nach einiger Zeit mitbekommt.

                  1 Reply Last reply Reply Quote 0
                  • S
                    Stormbringer last edited by

                    Homey hatte zwar Zigbee an Board aber die haben Hue nur über die Bridge eingebunden. Das Pollingproblem kannte ich gut :lol: beim Motion Sensor ist das stark auf gefallen. Beim Dimmer Switch ist es mir nie aufgefallen wahrscheinlich, weil er ja nur die Schlafvariable mit geschaltet hat. Licht Aus habe ich ja innerhalb vom Hue System realisiert 😉

                    1 Reply Last reply Reply Quote 0
                    • P
                      Pman last edited by

                      Du könntest natürlich andere Taster verwenden, welche in ioBroker eingebunden werden können. Zum Beispiel über Homematic oder Z-Wave. Kommt sicher auch darauf an, was du bei dir schon verbaut hast. Alternativ mit VIS über Handy.

                      Toll wäre, wenn die HUE-Bridge Ereignisse auch pushen könnte, die Anfrage dazu gibt es im HUE-Entwickler-Forum schon. Allerdings muss die Bridge dazu ebenfalls eine Direktverbindung zu Tester/Sensor aufbauen, was zwar theoretisch möglich ist, aber den Funkverkehr natürlich vergrößert.

                      1 Reply Last reply Reply Quote 0
                      • S
                        Stormbringer last edited by

                        Danke Pman, glaube du hast recht. Da wird mir dann nichts anderes übrig bleiben. Wenn würden aber nur Z Wave Taster in Frage kommen, will eigentlich nicht noch ein Nebensystem haben. Kennst du dich mit Z Wave auch aus?

                        Kämpfe da im Moment noch wie man Parameter einstellt und welche Geräte man überhaupt nehmen kann:

                        http://forum.iobroker.net/viewtopic.php?f=20&t=6125

                        1 Reply Last reply Reply Quote 0
                        • P
                          Pman last edited by

                          Damit kenne ich mich leider bisher nicht aus, bekomme aber in den nächsten Tagen einen Z-Wave stick und 2 Sensoren. Bin gespannt, was man damit so machen kann.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          677
                          Online

                          32.0k
                          Users

                          80.4k
                          Topics

                          1.3m
                          Posts

                          3
                          12
                          2207
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo