Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Hilfe - Probleme Javaskript mit Hue API

    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

    Hilfe - Probleme Javaskript mit Hue API

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active last edited by

      starte doch mal ioBroker komplett neu und zeig mal Deine Einstellung vom Javascript Adapter

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

        Danke hatte ich gerade vorhin gemacht... leider ohne Erfolg auch.

        Bildschirmfoto 2019-02-18 um 19.43.51.png

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

          hm, bis auf den Haken oben rechts identisch mit meinem...

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

            @Stormbringer
            zeig mal ein Script was Du verwendest

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

              Der Skript ist ewig lange, der Schaltet bei allen unterschiedlichen Gegebenheiten (Jahreszeit, Tageszeit, Wetter, Arbeitstag, Urlaub) andere Szenen und die liefen ja bisher immer.

              Willst du dir den Skript wirklich antun?☺

              Meinst der Haken oben rechts hilft? Für was ist der gut?

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

                @Stormbringer
                ja, zeige mal trotzdem das Script, kannst ja auch in eine Textdatei packen und per PN schicken.

                S 1 Reply Last reply Reply Quote 0
                • S
                  Stormbringer @dslraser last edited by 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.

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

                    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 1 Reply Last reply Reply Quote 0
                    • S
                      Stormbringer @dslraser last edited by

                      @dslraser

                      Dankeschön 🐵 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 🤢 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....

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

                        @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 Reply Last reply Reply Quote 0
                        • S
                          Stormbringer last edited by Stormbringer

                          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 ☺

                          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.

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

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

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

                              @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

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

                                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?

                                dslraser 1 Reply Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @Stormbringer last edited by 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 1 Reply Last reply Reply Quote 0
                                  • S
                                    Stormbringer @dslraser last edited by

                                    @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 🙈😂

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

                                      @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 Reply Last reply Reply Quote 0
                                      • S
                                        Stormbringer last edited by

                                        Dankeschön 😉🤗

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

                                          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 🤧

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

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          393
                                          Online

                                          31.8k
                                          Users

                                          79.9k
                                          Topics

                                          1.3m
                                          Posts

                                          blockly javascript
                                          2
                                          24
                                          1450
                                          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