NEWS
Test Adapter hue-extended
-
@dos1973 so, habe mir das mal angeguckt. Die
transitiontime
muss direkt in der Szene gespeichert werden (statisch) und kann nicht dynamisch gesetzt werden.Entsprechend der hue Dokumentation (siehe https://developers.meethue.com/develop/hue-api/4-scenes/:
storelightstate
)If set, the lightstates of the lights in the scene will be overwritten by the current state of the lights. Can also be used in combination with transitiontime to update the transition time of a scene.
Bitte auch beachten:
The duration of the transition from the light’s current state to the new state. This is given as a multiple of 100ms and defaults to 4 (400ms). For example, setting transitiontime:10 will make the transition last 1 second.
Also zunächst die aktuellen Einstellungen der Szene in Erfahrung bringen:
var request = require('request-promise'); request({ uri: 'http://192.168.178.31/api/<token>/scenes/<sceneId>', method: 'GET', json: true }) .then(function(res) {console.log(JSON.stringify(res))});
<sceneId>
hat das Formatp3XV34t4yScXryS
.Ausgabe:
{ "name":"Arctic aurora", "type":"GroupScene", "group":"8", "lights":[ "1" ], "owner":"XXX", "recycle":false, "locked":false, "appdata":{ "version":1, "data":"XXX" }, "picture":"", "lastupdated":"2019-12-14T10:14:30", "version":2, "lightstates":{ "1":{ "on":true, "bri":137, "xy":[ 0.1715, 0.3528 ] } } }
Der Abschnitt
lightstates
ist der interessante Teil. Das sind die aktuellen Einstellungen der Szene.
Diesen Abschnitt gilt es zu verändern:var request = require('request-promise'); let data = { // alte Daten aus lightstates "on":true, "bri":137, "xy":[0.1715,0.3528], // sowie neu die transitiontime "transitiontime": 25 } request({ uri: 'http://192.168.178.31/api/<token>/scenes/<sceneId>/lightstates/1', method: 'PUT', body: data, json: true }) .then(function(res) {console.log(JSON.stringify(res))});
Ausgabe des Befehls:
[ { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/on":true } }, { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/bri":137 } }, { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/xy":[ 0.1715, 0.3528 ] } }, { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/transitiontime":25 } } ]
Ab jetzt kann die Szene normal ausgeführt werden und die
transitiontime
wird entsprechend mitgenommen. Wenn unterschiedlichetransitiontime
gewollt sind, muss eine neue Szene angelegt werden. -
@Zefau
Vielen Dank für deine Mühe, Das muss ich mir heute Abend in Ruhe anschauen.
Feedback folgt... -
ohne den Clip API Debugger kann ich hier nichts machen. Da ist ein Bug in der Hue Bridge Version... hoffe das wird bald behoben...
Du machst das mit scripts - damit komme ich leider nicht klar...
-
@dos1973 sagte in Test Adapter hue-extended v1.1.x GitHub/Latest:
Du machst das mit scripts - damit komme ich leider nicht klar...
Die Skripts musste ich nehmen, weil auch bei mir der Debugger nicht funktioniert.
-
Ich werde wohl warten müssen dass der Hue Bug behoben wird...
-
@dos1973 sagte in Test Adapter hue-extended v1.1.x GitHub/Latest:
Ich werde wohl warten müssen dass der Hue Bug behoben wird...
Hab dir das Skript mal für die Kommandozeile zusammengestellt: scene.js
- Skript runterladen und in einem Ordner speichern
- Per Kommandozeile in den Ordner navigieren
npm i request-promise
ausführen, um das Paket zu installieren
Kommandos:
node scene <token> <sceneId>
zeigt die aktuellen Einstellungen der Szene mitsceneId
node scene <token> <sceneId> <transitionTime>
speichert die neuetransitionTime
z. B.
node scene ArzP2yHKjD3KXXXXXXXSU7NG-pA3UsMNX3x p3XV34t4yScXryS
ruft die Szenep3XV34t4yScXryS
abnode scene ArzP2yHKjD3KXXXXXXXSU7NG-pA3UsMNX3x p3XV34t4yScXryS 30
speichert eine transition von 30 fürp3XV34t4yScXryS
-
Danke!
Das macht dann ein/ aus transition...
Ich versuches es sobald ich zh bin
-
@Zefau
das klappt nur bedingt... es wird keine Transitiontime auf eine Szene gesetzt, er macht es nur auf die erste Lampe.node scene Ish9AlyuGYkYWoqQjFOA45pUoF22UQ1WbOaDK7dK msI5-W9gGmDQhU6 SCENE: { name: 'D-gemütlich2', type: 'GroupScene', group: '1', lights: [ '1', '2', '5', '9', '10', '11', '13', '14', '15', '16', '17', '18', '19', '20' ], owner: 'Ish9AlyuGYkYWoqQjFOA45pUoF22UQ1WbOaDK7dK', recycle: false, locked: false, appdata: { version: 1, data: 'yCfea_r01_d99' }, picture: '', lastupdated: '2019-12-17T20:36:51', version: 2, lightstates: { '1': { on: true, bri: 74, xy: [Array], transitiontime: 30 }, '2': { on: true, bri: 74, xy: [Array] }, '5': { on: true, bri: 109, xy: [Array] }, '9': { on: true, bri: 135, xy: [Array] }, '10': { on: true, bri: 74, xy: [Array] }, '11': { on: true, bri: 135, xy: [Array] }, '13': { on: true, bri: 74, ct: 438 }, '14': { on: true, bri: 109, ct: 438 }, '15': { on: true, bri: 74, ct: 438 }, '16': { on: true, bri: 109, ct: 438 }, '17': { on: true, bri: 74, ct: 438 }, '18': { on: true, bri: 74, ct: 454 }, '19': { on: true, bri: 74, ct: 438 }, '20': { on: true, bri: 109, ct: 454 } } } SETTINGS "lightstates": { on: true, bri: 74, xy: [ 0.6305, 0.3541 ], transitiontime: 30 }
dein script funktioniert... du sprichst darin ja auch nur den "lighstate 1" an, lässt sich das auf die Gruppe erweitern/ anwenden?
if (scene.lightstates && scene.lightstates[1] && transitionTime) { let data = { ...scene.lightstates[1], "transitiontime": transitionTime } request({ uri: 'http://192.168.10.27/api/' + token + '/scenes/' + sceneId + '/lightstates/1', method: 'PUT', body: data, json: true
-
-
@Zefau
das klappt... und noch ein frage, kann ich transitintime auch wieder entfernen?edit:
für die Nachwelt, falls das Script noch jemand nutzen möchte.
Im script sind 2 Positionen in denen die IP der HUE Bridge ausgetauscht werden müssen... -
Das Skript nochmal angepasst bzgl. der IP: scene.js
- Skript runterladen und in einem Ordner speichern
- Per Kommandozeile in den Ordner navigieren
npm i request-promise
ausführen, um das Paket zu installieren
Kommandos:
node scene <ip> <token> <sceneId>
zeigt die aktuellen Einstellungen der Szene mitsceneId
node scene <ip> <token> <sceneId> <transitionTime>
speichert die neuetransitionTime
z. B.
node scene 192.168.1.30 ArzP2yHKjD3KXXXXXXXSU7NG-pA3UsMNX3x p3XV34t4yScXryS
ruft die Szenep3XV34t4yScXryS
abnode scene 192.168.1.30 ArzP2yHKjD3KXXXXXXXSU7NG-pA3UsMNX3x p3XV34t4yScXryS 30
speichert eine transition von 30 fürp3XV34t4yScXryS
-
@Zefau hmmm, wie sieht denn der Befehl im command aus?
{"on":true, "szene": nqzlxTGPKATf6WQ, "transitiontime":20}
Danke
-
@rehmosch die transition kann für Szenen nicht im command geschickt werden, daher das Skript. Die transition ist fest in der Szene gespeichert und wird durch das Skript entsprechend angepasst.
-
@Zefau hey,
[ { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/on":true } }, { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/bri":137 } }, { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/xy":[ 0.1715, 0.3528 ] } }, { "success":{ "/scenes/p3XV34t4yScXryS/lightstates/1/transitiontime":25 } } ] Ab jetzt kann die Szene normal ausgeführt werden und die transitiontime wird entsprechend mitgenommen. Wenn unterschiedliche transitiontime gewollt sind, muss eine neue Szene angelegt werden. 0
Muss ich dieses Skript für mich anpassen und dann unter dem Javaskript-Ordner "Eigene Skripte" speichern und dann in Blockly wieder einbinden?
Danke & schöne Weihnachten
-
Nein, du führst das Script aus und ergänzt die Transition Time zu bereits bestehenden Szenen.
Dein Szenen Aufruf bleibt gleich nur dann eben mit der neuen Transition Time Dauer.
-
Hallo
Ich hatte heute ein Netzwerkunterbuch der HUE Bridge und ioBroker. Nachdem das Netz wieder verfügbar war, fand ich danach im LOG Fehlermeldungen von fehlender UID etc.
Habe dann in den Objekten plötzlich neue HUE Lamps gefunden und meine konfigurierten wurden nummerisch nach hinten verlegt. Dadurch konnte ich mit den Skripts natürlich die Datenpunkte nicht mehr ansprechen!
Ein Stoppen des Adapters und löschen der Objekte half nichts, diese werden gleich wieder angelegt.
Kann ja nicht sein, dass nach einem Netzwerkunterbruch die Struktur durcheinander gerät.Danke
-
@Zefau Hallo ich habe ihren adapter installiert
und bekomme vollgende fehler meldungNeuen Benutzer abrufen
Zunächst den Button an der Hue Bridge drücken! Danach mit dem Button -Neuen Benutzer abrufen- fortfahren.Status:
Verbinde zum Adapter..
Verbunden zum Adapter. Lade Token..
Error: getaddrinfo ENOTFOUND undefined undefined:80 -
@Horst-Böttcher Danke für die Info. Prüfe ich morgen
-
Wollte fragen ob es schon eine lösung gibt
-
@Horst-Böttcher sagte in Test Adapter hue-extended v1.1.x GitHub/Latest:
Wollte fragen ob es schon eine lösung gibt
Gucke mir das gerade an und habe Probleme, den Fehler nachzustellen.
Hast du die IP der Bridge eingetragen?