NEWS
Hilfe - Probleme Javaskript mit Hue API
-
@Stormbringer
ja, zeige mal trotzdem das Script, kannst ja auch in eine Textdatei packen und per PN schicken.Hoffe das haut so hin, bin mit dem neuen schönen Forum noch ned so vertraut :-)
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.
-
Warst Du schon in allen Bausteinen (die drei Punkte rechts anklicken) und den User angepasst ?
Den Rest mit der ID muĂ ich erstmal verstehen...

-
Warst Du schon in allen Bausteinen (die drei Punkte rechts anklicken) und den User angepasst ?
Den Rest mit der ID muĂ ich erstmal verstehen...

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
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....
-
Hoffe das haut so hin, bin mit dem neuen schönen Forum noch ned so vertraut :-)
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.
@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(); }); -
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.
-
In diesem Script haben die Datenpunkte der Szenen ja auch diese "kryptischen" ID
-
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
-
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?
-
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?
@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.

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

@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
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 đđ@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)
-
Dankeschön đđ€
-
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

Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden