NEWS

Hue Szenen nicht mehr verfügbar (iConnectHue)



  • @JoergK Bei mir funktioniert's. Du hast das Skript schon länger im Einsatz und jetzt geht es auf einmal nicht mehr? Was geht denn konkret nicht mehr?



  • @aleks-83 sagte in Hue Szenen nicht mehr verfügbar (iConnectHue):

    Allerdings kann ich die Szenen nicht triggern.

    Das gilt nur für LightScenes. GroupScenes kannst du triggern. Ich weiß leider technisch nicht, wie ich eine LightScene triggern kann. Das Skript von @JoergK lädt die LightScenes gar nicht aus der Bridge, sondern nur GroupScenes (if (!result[i].appdata.data){continue} // skip internal szenes).



  • @Zefau
    Bevor dieses Update gemacht wurde, konnte ich die Szenen alle per Datenpunkt triggern welche durch das Skript erstellt wurden.
    Auch wenn diese nicht als Light- oder GoupScenes gekennzeichnet waren.

    Oder ist genau das in dem Update passiert?
    Die Trennung von Group- und LightScenes?



  • @Zefau
    Was funktioniert denn bei dir noch?`
    Du nutzt also das Skript was Jörg erwähnt, und bei dir werden die Lampen und Szenen geladen, und du kannst sie auch schalten?

    Oder nutzt du deinen hue-extended Adapter?



  • @aleks-83 ich nutze natürlich meinen Adapter 😉 hatte das Skript nur gestern kurz eingebunden, um es mir mal anzugucken.



  • @Zefau
    OK.
    Dann muss ich wohl abwarten bis die LightScenes auch gesteuert werden können, oder bis die API mit dem Skript wieder steuerbar ist.

    In der Zwischenzeit habe ich mir das Skript nochmal angeschaut...
    Ich spreche kein Javascript, aber ist dieses ^ in der 2. Zeile korrekt?

    // 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);
    });
    
    

    Ich habe es testweise mal entfernt und bei mir wurden die Datenpunkte wieder erstellt.
    Nach dem Ausführen des Resync Triggers werden aber keine neuen mehr erstellt.

    Keine Ahnung wie das ^ da rein gekommen ist, aber in dem zitierten Skript und Beitrag von @JoergK ist es ja auch vorhanden.
    Und es hat ja auch mal so funktioniert!?
    Merkwürdig



  • Zur Info:
    Der neue Hue-Extended Adapter v0.8.6 kann jetzt LightScenes steuern.
    Beitrag von Zefau


  • Starter

    @Zefau Echt? Wieso läuft es denn bei dir?Da muss ich nochmal auf Suche gehen.
    Also bei mir kommt keine Fehlermeldung und die Datenpunkte in JavaSkript.0 werden aber nicht aktualisiert. Nach dem manuellen Löschen der Datenpunkte wurden sie auch nicht wieder neu angelegt.

    Deinen Adapter habe ich in der Zwischenzeit auch installiert und er macht einen guten Eindruck. Wenn ich damit auch ein zügiges Auslesen des Hue Dimmers hinbekomme ohne große Systemlast, dann kann ich auch umschwenken. 😊
    Ich hatte für den Dimmer folgendes abgewandelte Skript (Auch hier aus dem Forum Link), mit dem ich eine Reaktionszeit von 1s auf einen Tastendruck hinbekommen hatte.

    var hue = require('node-hue-api');
    var HueApi = hue.HueApi;
    var api;
     
    var request = require('request');
     
    var presenceID=0;
    var laststatechanged='';
     
    var bridge='[IP-DER-HUE-Bridge]';
    var user='[USER-AUF-DER-HUE-Bridge]';
    var port=80;
     
    var displayResult = function(result) {
        console.log(JSON.stringify(result, null, 2));
    };
     
    api = new HueApi(bridge, user, 0, port);
     
    schedule("*/1 * * * * *", readAllHueSensors); 
    createHueSensors();
    
    function createHueSensors() {
        api.sensors(function(err, config) {
            if (err) throw err;
            var sensors = config.sensors;
            console.log('sensors create');
            for (var sid in sensors) {
                var sensor = sensors[sid];
     
                if (sensor.type=='ZLLSwitch') {
     
                    var sensorName =  sensor.name.replace(/\s/g, '');
                    if (getState('hueSensors.'+sensorName).notExist===true) {
                        console.log('hueSensors.'+sensorName +' wird erstellt.')
                        createState('hueSensors.'+sensorName, sensorName, true, {
                            read: true, 
                           write: true, 
                            name: sensorName, 
                            type: "string", 
                            role: "channel",
                            def: false
                        });
     
                        if (sensor.type=='ZLLSwitch') {
                            createState('hueSensors.'+sensorName+'.buttonevent', sensor.state.buttonevent, true, {
                                read: true, 
                               write: true, 
                                name: "buttonevent", 
                                type: "number", 
                                role: "state",
                                def: 0
                            });
                            createState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated, true, {
                                read: true, 
                               write: true, 
                                name: "lastupdated", 
                                type: "string", 
                                role: "date",
                                def: false
                            });
                            //Config
                            createState('hueSensors.'+sensorName+'.on', sensor.config.on, true, {
                                read: true, 
                               write: true, 
                                name: "on", 
                                type: "boolean", 
                                role: "config",
                                def: false
                            });
                            createState('hueSensors.'+sensorName+'.battery', sensor.config.battery, true, {
                                read: true, 
                               write: true, 
                                name: "battery", 
                                type: "number", 
                                role: "config",
                                def: 0
                            });
                            createState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable, true, {
                                read: true, 
                               write: true, 
                                name: "reachable", 
                                type: "boolean", 
                                role: "config",
                                def: false
                            });
                            createState('hueSensors.'+sensorName+'.pending', sensor.config.pending, true, {
                                read: true, 
                               write: true, 
                                name: "pending", 
                                type: "number", 
                                role: "config",
                                def: 0
                            });
                        }
     
                    }
                }
            }
        });
    }
     
     
    function readAllHueSensors() {
        //console.log('sensors refresh');
        api.sensors(function(err, config) {
            if (err) throw err;
            var sensors = config.sensors;
            for (var sid in sensors) {
                var sensor = sensors[sid];
                if (sensor.type=='ZLLSwitch') {
                    var sensorName =  sensor.name.replace(/\s/g, '');
                    //console.log(sensorName)
     
                    if (sensor.type=='ZLLSwitch') {
                        // Hue Dimmer Switch
                        
                        if (sensor.state.lastupdated != getState('hueSensors.'+sensorName+'.lastupdated').val) {
                            // console.log('UPDATE HueSwitch');
                            //console.log(sensor.state.buttonevent);
                            // console.log(getState('hueSensors.'+sensorName+'.lastupdated').val);                   
                            setState('hueSensors.'+sensorName+'.buttonevent', sensor.state.buttonevent);
                            setState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated);
                            setState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable);
                            setState('hueSensors.'+sensorName+'.on', sensor.config.on);
                            setState('hueSensors.'+sensorName+'.battery', parseFloat(sensor.config.battery));
                            //setState('hueSensors.'+sensorName+'.pending', sensor.config.pending);
                            switch (sensor.state.buttonevent) {
                            case 1000:
                            setState('hueSensors.'+sensorName+'.button0','initial_press');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 1001:
                            setState('hueSensors.'+sensorName+'.button0','repeat');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 1002:
                            setState('hueSensors.'+sensorName+'.button0','short_release');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 1003:
                            setState('hueSensors.'+sensorName+'.button0','long_release');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 2000:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','initial_press');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 2001:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','repeat');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 2002:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','short_release');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 2003:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','long_release');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 3000:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','initial_press');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 3001:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','repeat');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 3002:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','short_release');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 3003:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','long_release');
                            setState('hueSensors.'+sensorName+'.button3','');
                            break;
                            case 4000:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','initial_press');
                            break;
                            case 4001:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','repeat');
                            break;
                            case 4002:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','short_release');
                            break;
                            case 4003:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','long_release');
                            break;
                            
                            default:
                            setState('hueSensors.'+sensorName+'.button0','');
                            setState('hueSensors.'+sensorName+'.button1','');
                            setState('hueSensors.'+sensorName+'.button2','');
                            setState('hueSensors.'+sensorName+'.button3','');
                            }
                            //
                        }
                    }                    
                }
            }
        });
    }
    

  • Starter

    @aleks-83 das /^ lief bei mir auch.
    Ich hatte es auch mal entfernt, weil es mir komisch aussah 😉
    Die Syntax von JavaScript kenn ich leider nicht so gut.



  • Also ich weiß nicht was passier ist, aber das Skript aus Post #1 funktioniert bei mir seit 2 Tagen wieder.
    Die Datenpunkte sind alle wieder da und ich kann auch die Szenen steuern.

    Aber ich bleibe jetzt bei dem hue-extended Adapter.
    Ich teste auch mal die Reaktionszeit auf Dimmer-Befehle. Das wäre für mich auch noch ein Punkt den ich gerne realisiern würde, es aber bisher an zu langsamer Reaktion des Skriptes gescheitert ist.
    Aber eine PayPal Spende wirst du von mir unabhängig davon auch bekommen @Zefau


Log in to reply
 

Suggested Topics

1.6k
Online

30.6k
Users

37.6k
Topics

505.6k
Posts