Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Hilfe - Probleme Javaskript mit Hue API

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Hilfe - Probleme Javaskript mit Hue API

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblockly
24 Beiträge 2 Kommentatoren 1.9k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • dslraserD dslraser

    Warst Du schon in allen Bausteinen (die drei Punkte rechts anklicken) und den User angepasst ?
    Den Rest mit der ID muß ich erstmal verstehen...
    Bildschirmfoto 2019-02-18 um 20.05.54.png

    S Offline
    S Offline
    Stormbringer
    schrieb am zuletzt editiert von
    #14

    @dslraser

    Dankeschön :o) Habs gerade gefunden... Eine Helper Variable war nach dem Neustart auf falsch und deswegen gings nicht.

    Also des Rätselslösung ist wirklich überall den HUE User ändern :nauseated_face: Nen gelöschten User kann man ja nicht mehr herstellen oder?

    Ähm mal leichte offtopic Frage. Kann man das irgendwo einstellen, auf welchen Wert Variablen springen sollen? Habe nach einem Neustart immer so ein paar versteckte Ostereier die mir ewigen Suchspaß bringen....

    Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

    1 Antwort Letzte Antwort
    0
    • S Stormbringer

      Hoffe das haut so hin, bin mit dem neuen schönen Forum noch ned so vertraut :-)

      Blockly.docx

      Der ist halt jetzt stellenweise schon geändert mit Aufruf direkt über die Szenenausleser Objekte (als Test) und nicht mehr über den Javacodeschnipsel zum Hue Szenen abrufen.

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #15

      @Stormbringer
      sind die Szenen mit diesem Script ausgelesen ?

      var HueApi = require("node-hue-api").HueApi;
      
      // Replace IP and username!!!
      var host = "192.168.180.15",
          username = "xxxxx",
          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();
      });
      
      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Stormbringer
        schrieb am zuletzt editiert von Stormbringer
        #16

        Nein leider nicht sonst wärs einfach. Damals gabs den schönen Skript nicht... Habe die alle mit einer iOS App ausgelesen. Wenn ich jetzt alles ändern muß ändere ich es aber auf den Skript :relaxed:

        Finde es schade, dass der Skript nicht in den Adapter integriert ist. Hätte mir damals viel Arbeit erspart und denke vielen Neulingen würde es auch enorm weiter helfen, weil soooo bekannt ist der Skript leider noch immer nicht.

        Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

        1 Antwort Letzte Antwort
        0
        • dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #17

          In diesem Script haben die Datenpunkte der Szenen ja auch diese "kryptischen" ID

          S 1 Antwort Letzte Antwort
          0
          • dslraserD dslraser

            In diesem Script haben die Datenpunkte der Szenen ja auch diese "kryptischen" ID

            S Offline
            S Offline
            Stormbringer
            schrieb am zuletzt editiert von
            #18

            @dslraser

            Jep stimmt. Aber mit dem Skript muss man den User nur einmal ändern und man kann die Szenen mit einem "Knopfdruck" aufrufen. Also tausend mal leichter wie die alte Methode

            Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Stormbringer
              schrieb am zuletzt editiert von
              #19

              Du weißt aber ned zufällig auch wie man die Standard Werte nach einem Neustart setzt? Häkchen Standardwert gäbs ja.. Muß man den Haken nur setzen, wenn der Datenpunkt gerade den gewünschten Wert hat oder ist die Option für was anderes gedacht?

              Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

              dslraserD 1 Antwort Letzte Antwort
              0
              • S Stormbringer

                Du weißt aber ned zufällig auch wie man die Standard Werte nach einem Neustart setzt? Häkchen Standardwert gäbs ja.. Muß man den Haken nur setzen, wenn der Datenpunkt gerade den gewünschten Wert hat oder ist die Option für was anderes gedacht?

                dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                schrieb am zuletzt editiert von dslraser
                #20

                @Stormbringer sagte in Hilfe - Probleme Javaskript mit Hue API:

                Du weißt aber ned zufällig auch wie man die Standard Werte nach einem Neustart setzt? Häkchen Standardwert gäbs ja.. Muß man den Haken nur setzen, wenn der Datenpunkt gerade den gewünschten Wert hat oder ist die Option für was anderes gedacht?

                hm, weiß ich leider nicht. Ich weiß es nur beim Datenpunkt erstellen. (der initiale Wert-Initialisierung) Also beim erstellen true oder false.
                Bildschirmfoto 2019-02-18 um 20.29.56.png


                <xml xmlns="http://www.w3.org/1999/xhtml">
                <block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="-337" y="13">
                <mutation statements="false">
                <arg name="Name"></arg>
                <arg name="Initialisierung"></arg>
                <arg name="Beschreibung"></arg>
                <arg name="Type"></arg>
                <arg name="Rolle"></arg>
                <arg name="smartName"></arg>
                </mutation>
                <field name="NAME">Variablen anlegen</field>
                <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlLA0KICBzbWFydE5hbWU6IHNtYXJ0TmFtZQ0KfSk7DQo=</field>
                <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                </block>
                <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-337" y="62">
                <mutation name="Variablen anlegen">
                <arg name="Name"></arg>
                <arg name="Initialisierung"></arg>
                <arg name="Beschreibung"></arg>
                <arg name="Type"></arg>
                <arg name="Rolle"></arg>
                <arg name="smartName"></arg>
                </mutation>
                <value name="ARG0">
                <block type="text" id="nSr7Hq~;DUU2#lB+Yj:}">
                <field name="TEXT">Eigene_Datenpunkte.TVSystem.Kino</field>
                </block>
                </value>
                <value name="ARG1">
                <block type="text" id="xlqa55O11o@{+#@Yj;%"> <field name="TEXT">true</field> </block> </value> <value name="ARG2"> <block type="text" id="yEhqZqxh*}Ip8?yzOW7I"> <field name="TEXT">Kino</field> </block> </value> <value name="ARG3"> <block type="text" id="sYAGk@@-Fz^fIDONX!/i"> <field name="TEXT">boolean</field> </block> </value> <value name="ARG4"> <block type="text" id="/t]#6;-K%9u+eD1jG09@"> <field name="TEXT">button</field> </block> </value> <value name="ARG5"> <block type="text" id="f?//#sV0P}x+|S.8nzy">
                <field name="TEXT">Kino</field>
                </block>
                </value>
                </block>
                </xml>

                S 1 Antwort Letzte Antwort
                0
                • dslraserD dslraser

                  @Stormbringer sagte in Hilfe - Probleme Javaskript mit Hue API:

                  Du weißt aber ned zufällig auch wie man die Standard Werte nach einem Neustart setzt? Häkchen Standardwert gäbs ja.. Muß man den Haken nur setzen, wenn der Datenpunkt gerade den gewünschten Wert hat oder ist die Option für was anderes gedacht?

                  hm, weiß ich leider nicht. Ich weiß es nur beim Datenpunkt erstellen. (der initiale Wert-Initialisierung) Also beim erstellen true oder false.
                  Bildschirmfoto 2019-02-18 um 20.29.56.png


                  <xml xmlns="http://www.w3.org/1999/xhtml">
                  <block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="-337" y="13">
                  <mutation statements="false">
                  <arg name="Name"></arg>
                  <arg name="Initialisierung"></arg>
                  <arg name="Beschreibung"></arg>
                  <arg name="Type"></arg>
                  <arg name="Rolle"></arg>
                  <arg name="smartName"></arg>
                  </mutation>
                  <field name="NAME">Variablen anlegen</field>
                  <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlLA0KICBzbWFydE5hbWU6IHNtYXJ0TmFtZQ0KfSk7DQo=</field>
                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                  </block>
                  <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-337" y="62">
                  <mutation name="Variablen anlegen">
                  <arg name="Name"></arg>
                  <arg name="Initialisierung"></arg>
                  <arg name="Beschreibung"></arg>
                  <arg name="Type"></arg>
                  <arg name="Rolle"></arg>
                  <arg name="smartName"></arg>
                  </mutation>
                  <value name="ARG0">
                  <block type="text" id="nSr7Hq~;DUU2#lB+Yj:}">
                  <field name="TEXT">Eigene_Datenpunkte.TVSystem.Kino</field>
                  </block>
                  </value>
                  <value name="ARG1">
                  <block type="text" id="xlqa55O11o@{+#@Yj;%"> <field name="TEXT">true</field> </block> </value> <value name="ARG2"> <block type="text" id="yEhqZqxh*}Ip8?yzOW7I"> <field name="TEXT">Kino</field> </block> </value> <value name="ARG3"> <block type="text" id="sYAGk@@-Fz^fIDONX!/i"> <field name="TEXT">boolean</field> </block> </value> <value name="ARG4"> <block type="text" id="/t]#6;-K%9u+eD1jG09@"> <field name="TEXT">button</field> </block> </value> <value name="ARG5"> <block type="text" id="f?//#sV0P}x+|S.8nzy">
                  <field name="TEXT">Kino</field>
                  </block>
                  </value>
                  </block>
                  </xml>

                  S Offline
                  S Offline
                  Stormbringer
                  schrieb am zuletzt editiert von
                  #21

                  @dslraser
                  wow die Blöcke kannte ich noch gar nicht. Wo gibt es denn die? 🙃 Sie legen ja auch nen Punkt in den Objekten an oder nur im Skript? Ich mach das immer mit dem Pluszeichen in den Objekten 🙈😂

                  Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

                  dslraserD 1 Antwort Letzte Antwort
                  0
                  • S Stormbringer

                    @dslraser
                    wow die Blöcke kannte ich noch gar nicht. Wo gibt es denn die? 🙃 Sie legen ja auch nen Punkt in den Objekten an oder nur im Skript? Ich mach das immer mit dem Pluszeichen in den Objekten 🙈😂

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #22

                    @Stormbringer sagte in Hilfe - Probleme Javaskript mit Hue API:

                    @dslraser
                    wow die Blöcke kannte ich noch gar nicht. Wo gibt es denn die? 🙃 Sie legen ja auch nen Punkt in den Objekten an oder nur im Skript? Ich mach das immer mit dem Pluszeichen in den Objekten 🙈😂

                    Ich habe Dir einen Export des Blocklys in den Spoiler unten gepackt (Den Spoiler übersieht man fast)

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Stormbringer
                      schrieb am zuletzt editiert von
                      #23

                      Dankeschön 😉🤗

                      Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Stormbringer
                        schrieb am zuletzt editiert von Stormbringer
                        #24

                        Der Javascript Adapter kriegt sich leider noch immer nicht ein. Stürzt ständig ab. Anfangs mit Reconnecting to DB oder XHR Error, jetzt kommt gar nichts mehr im LOG und er steigt einfach aus. Alle auf die schnelle bekannten Skripte mit dem alten HUE User habe ich deaktiviert. Aber selbst, wenn mir einer durchgerutscht ist dürfte das doch nicht alles so zum Kollabieren bringen oder?

                        Habe jetzt noch getestet ob der mehrfach läuft. Terminal sagt:

                        io@ubuntu:~$ ps -ef | grep io.java
                        root 3429 3379 95 22:26 ? 00:09:20 io.javascript.0
                        root 3556 3379 2 22:27 ? 00:00:15 io.javascript.1
                        io 4363 4344 0 22:36 pts/8 00:00:00 grep --color=auto io.java
                        io@ubuntu:~$ ps -ef | grep io.java
                        root 3429 3379 96 22:26 ? 00:10:53 io.javascript.0
                        root 3556 3379 2 22:27 ? 00:00:16 io.javascript.1
                        io 4437 4344 0 22:37 pts/8 00:00:00 grep --color=auto io.java
                        io@ubuntu:~$ ps -ef | grep io.java
                        root 3429 3379 96 22:26 ? 00:11:13 io.javascript.0
                        root 3556 3379 2 22:27 ? 00:00:16 io.javascript.1
                        io 4443 4344 0 22:38 pts/8 00:00:00 grep --color=auto io.java
                        io@ubuntu:~$ ps -ef | grep io.java
                        root 3429 3379 97 22:26 ? 00:12:23 io.javascript.0
                        io 4511 4344 0 22:39 pts/8 00:00:00 grep --color=auto io.java
                        io@ubuntu:~$ iobroker stop javascript.0
                        Adapter "javascript.0" stopped.
                        io@ubuntu:~$ ps -ef | grep io.java
                        root 3429 3379 97 22:26 ? 00:13:24 io.javascript.0
                        io 4581 4344 0 22:40 pts/8 00:00:00 grep --color=auto io.java
                        io@ubuntu:~$ sudo iobroker stop javascript.0
                        [sudo] Passwort für io:
                        Adapter "javascript.0" stopped.
                        io@ubuntu:~$ ps -ef | grep io.java
                        root 3429 3379 97 22:26 ? 00:13:57 io.javascript.0
                        io 4622 4344 0 22:40 pts/8 00:00:00 grep --color=auto io.java
                        io@ubuntu:~$

                        Meines erachtens stopt der Javascript.0 gar nicht oder? Neustart bringt auch nichts.... Und der NUC CPU kocht schon halb :sneezing_face:

                        Vorher lief alles. Man kann zusammenfasend sagen, HUE User löschen ist bei größeren HUE Installation eher suboptimal :joy:

                        Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        371

                        Online

                        32.5k

                        Benutzer

                        81.7k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe