Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Philips Hue Lampen Gruppieren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Philips Hue Lampen Gruppieren

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

      Hi zusammen,

      da mir hier schon viel geholfen wurde, hoffe ich, dass es auch für die Fragen einen Experten gibt, der helfen kann.

      Ich möchte meine Philips Hue Lampen Gruppieren, und diese in VIS steuern.

      Die App gibt es leider nur her Räume zu erstellen, und die Lampen können nur einmal pro Raum verwendet werden. Aber das wissen ja sicherlich alle. Mit Drittanbieter Apps, die das erzeugen von Gruppen zulassen, habe ich keine guten Erfahrungen gemacht, das ganze System wird sehr träge, fällt also auch aus.

      Daher möchte ich die Lampen über ein Script Gruppieren und den Datenpunkt dann als Punkt in Vis verwenden.

      Das "Philips hue dynamische Szenen" Script von ruhr70 habe ich mir angesehen und probiert, aber für meine Anforderung ist es doch überfrachtet, da ich nur die werte on, bri und sat steuern möchte.

      Über Hilfe würde ich mich freuen.

      Vielen Dank

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Szenen Adapter sollte reichen.

        Gesendet vom Handy …

        1 Reply Last reply Reply Quote 0
        • AxelF1977
          AxelF1977 last edited by

          @apollon77:

          Szenen Adapter sollte reichen.

          Gesendet vom Handy … `

          HI, danke. Das hatte ich auch schon probiert, hatte ich vergessen zu schreiben, und es hat nicht funktioniert, leider. Vielleicht habe ich mich im Szenen Adapter auch zu blöd angestellt, aber da habe ich es auch nicht hinbekommen.

          Den Logikwert on habe ich noch hinbekommen zu schalten, aber die Helligkeit oder der Weißwert konnten über den Szenen Adapter nicht gesteuert werden.

          4249_hue-szenenadapter_001.jpg
          4249_hue-szenenadapter_002.jpg

          1 Reply Last reply Reply Quote 0
          • AxelF1977
            AxelF1977 last edited by

            Keiner eine Idee wie ich das hin bekommen kann? :oops:

            1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active last edited by

              Reichen Dir eventuell auch Szenen…?

              Dann kannst Du dieses Script nehmen. (IP-Adresse und Usernamen musstanpassen)

              ! ```
              `var HueApi = require("node-hue-api").HueApi;
              ! // Replace IP and username!!!
              var host = "192.168.180.15",
              username = "cccccXHCo",
              api = new HueApi(host, username);

              var groups_ = [],
              lights_ = [],
              objects_ = [];

              ! // Log JSON results
              var displayResults = function(result) {
              console.log('Reponse: '+JSON.stringify(result, null, 2));
              };
              ! // Parse Light Group 0 (All Lights)
              var parseGroup0 = function(result) {
              if (!result.lights){return} // Empty group

              var id = result.id,
                  lights = result.lights,
                  name = "All Lights";
              console.debug('group: '+name+', lights: '+lights);
              groups_[lights] = name;
              

              };

              ! // Parse Light Groups
              var parseGroups = function(result) {
              for (var i = 0; i < result.length; i++) {
              if (!result[i].lights){continue} // Empty group

                  var id = result[i].id,
                      lights = result[i].lights,
                      name = result[i].name;
                  console.debug('group: '+name+', lights: '+lights);
                  groups_[lights] = name;
              }
              

              };

              ! // Parse Lights
              var parseLights = function(result) {
              for (var i = 0; i < result.length; i++) {
              var id = result[i].id,
              name = result[i].name;
              console.debug('light: '+name+', id: '+id);
              lights_[id] = name;
              }
              };
              ! // Create States in ioBroker
              var createStates = function(result) {
              // Resync button
              createState('PhilipsHue.Scenes.Resync', false, {role: "button", name: 'Resync Philips Hue Groups, Lights and Scenes'});
              ! for (var i = 0; i < result.length; i++) {
              if (!result[i].appdata.data){continue} // skip internal szenes
              ! var id = result[i].id,
              lights = result[i].lights,
              name = result[i].name.replace(/"/g,''),
              pathname = name.replace(/ /g,'_');

                  // Get light names
                  var light_names = [];
                  for (var j = 0; j < lights.length; j++) {
                      var light_name = lights_[lights[j]];
                      light_names.push(light_name);
                  }
              

              ! // Room, group or lights linked with scene
              var group = 'Group: '+groups_[lights] || 'Lights: '+light_names.join(", ");

                  // Create States and skip duplicates
                  if (!objects_[lights+pathname]){
                      console.debug('scene: '+name+', '+group);
                      createState('PhilipsHue.Scenes.'+pathname+'.'+id, false, {role: "button", name: 'Scene: '+name+' ('+group+')'});
                      objects_[lights+pathname] = true;
                  }
              }
              

              };

              ! // Delete States
              function deleteStates(){
              console.log('Deleting current objects for scenes...');
              objects_ = [];
              $('javascript.0.PhilipsHue.Scenes.*').each(function (id) {
              deleteState(id);
              });
              }
              ! // Fetch data from Hue API
              function init(){
              api.getGroup(0, function(err, group0) {
              if (err) throw err;
              console.log('Processing group 0...');
              //displayResults(group0);
              parseGroup0(group0);
              });
              api.groups(function(err, groups) {
              if (err) throw err;
              console.log('Processing ' + groups.length + ' groups...');
              //displayResults(groups);
              parseGroups(groups);
              });
              ! api.lights(function(err, lights) {
              if (err) throw err;
              console.log('Processing ' + lights.lights.length + ' lights...');
              //displayResults(lights);
              parseLights(lights.lights);
              });
              ! api.scenes(function(err, scenes) {
              if (err) throw err;
              console.log('Processing ' + scenes.length + ' scenes...');
              //displayResults(scenes);
              createStates(scenes);
              });
              }
              ! // Init on start
              init();
              ! // Activate scene
              on({id: /^javascript.0.PhilipsHue.Scenes./, val: true}, function (obj) {
              if (obj.id == 'javascript.0.PhilipsHue.Scenes.Resync'){return}
              sceneId = obj.id.split('.').pop();
              console.log('Activating '+obj.name);
              api.activateScene(sceneId, function(err, result) {
              if (err) throw err;
              displayResults(result);
              });
              setState(obj.id, false);
              });
              ! // Resync
              on({id: 'javascript.0.PhilipsHue.Scenes.Resync', val: true}, function (obj) {
              console.log('Resync triggered...');
              groups_ = [];
              lights_ = [];
              deleteStates();
              init();
              });
              ! schedule("0 3 * * *", function () {
              console.log('Resync triggered...');
              groups_ = [];
              lights_ = [];
              deleteStates();
              init();
              });`[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

              1 Reply Last reply Reply Quote 0
              • AxelF1977
                AxelF1977 last edited by

                @dslraser:

                Reichen Dir eventuell auch Szenen…?

                Dann kannst Du dieses Script nehmen. `

                Das Script habe ich schon seit einiger Zeit am Laufen. Ehrlich gesagt ist das Script der Grund warum ich nach dem suche, was ich hier suche. Denn das schalten der Szenen, über den Szenenadapter gruppiert, funktioniert über die erzeugten Datenpunkte, bei der Helligkeit oder dem Weißwert im Szenenadapter leider nicht.

                Danke Dir für den Tipp

                1 Reply Last reply Reply Quote 0
                • M
                  Michi68 last edited by

                  Hallo,

                  vielleicht hilf das Szene weiß und in Farbe
                  6114_bild6.png
                  6114_bild7.png
                  oder mit Blockly
                  6114_bild8.png

                  Gruß Michael

                  1 Reply Last reply Reply Quote 0
                  • AxelF1977
                    AxelF1977 last edited by

                    @Michi68:

                    Hallo,

                    vielleicht hilf das Szene weiß und in Farbe

                    Gruß Michael `

                    Hallo Michael,

                    danke für die Unterstützung. Allerdings ist dies nicht was ich suche. So steuere ich einzelne "Räume" bereits. Ich möchte aber die Werte einzelner Räume zu einem Datenpunkt zusammen fassen, und dies dynamisch steuern. Diesen Räumen sind über die App schon die entsprechenden Lampen zugeordnert.

                    Beispiel:

                    hue.1.philips_hue.Wohnzimmerdecke.bri

                    hue.1.philips_hue.Wohnzimmertvwand.bri

                    hue.1.philips_hue.Wohnzimmerleselampe.bri

                    soll z.B. den Datenpunkt

                    Javascript.0.philips_hue.Wohnzimmer.bri

                    füllen, mit dem eingestellten Wert im VIS und alle Lampen syncron auf diesen Wert steuern.

                    1 Reply Last reply Reply Quote 0
                    • AxelF1977
                      AxelF1977 last edited by

                      Über den Umweg des Alexa2 Adapters konnte ich es lösen.

                      Danke

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      470
                      Online

                      31.9k
                      Users

                      80.2k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      2113
                      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