Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. HUE Adapter und Bewegunsmelder

    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

    HUE Adapter und Bewegunsmelder

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      IksDrei last edited by

      Guten Tag Gemeinde,

      wieso ist der Bewegungsmelder nicht in der Objekt Liste aufzufinden, jemand eine Idee ?

      Hue Adapter Version : 0.6.9

      Grüße!

      1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active last edited by

        weil die hue diese nicht zur verfügung stellt genau so wie die Schalter..

        1 Reply Last reply Reply Quote 0
        • M
          moses123 last edited by

          Aber über ein Skript kann man den auslesen und anzeigen…

          Wenn ich heute abend daran denke, kann ich ja mal das hier anhängen.

          Gruß,

          Moses123

          1 Reply Last reply Reply Quote 0
          • M
            moses123 last edited by

            So,

            anbei nun das Skript. Es muss die Ip der Bridge und der User ergänzt werden (kann man aus dem Hue- Adapter übernehmen).

            Als zusätzliche NPM- Module wird node-hue-api,http,https benötigt.

            Gruß,7

            Moses123

            ! ````
            var hue = require('node-hue-api');
            var HueApi = hue.HueApi;
            var api;
            ! var request = require('request');
            ! var presenceID=0;
            var laststatechanged='';
            ! var bridge='IPDerHueBridge';
            var user='DereigeneHueUser';
            var port=80;
            ! var displayResult = function(result) {
            console.log(JSON.stringify(result, null, 2));
            };
            ! api = new HueApi(bridge, user, 0, port);
            ! createHueSensors();
            schedule("0 */6 * * ", createHueSensors);
            schedule("
            /30 * * * ", readAllHueSensors);
            ! //schedule("
            /5 * * * *", readPresenseHueSensor);
            ! 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=='Daylight' || sensor.type=='ZLLTemperature' || sensor.type=='ZLLPresence' || sensor.type=='ZLLLightLevel') {
            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=='Daylight') {
            createState('hueSensors.'+sensorName+'.daylight', sensor.state.daylight, true, {
            read: true,
            write: true,
            name: "daylight",
            type: "boolean",
            role: "state",
            def: false
            });
            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+'.configured', sensor.config.configured, true, {
            read: true,
            write: true,
            name: "configured",
            type: "boolean",
            role: "config",
            def: false
            });
            createState('hueSensors.'+sensorName+'.sunriseoffset', sensor.config.sunriseoffset, true, {
            read: true,
            write: true,
            name: "sunriseoffset",
            type: "number",
            role: "config",
            def: 0
            });
            createState('hueSensors.'+sensorName+'.sunsetoffset', sensor.config.sunsetoffset, true, {
            read: true,
            write: true,
            name: "sunsetoffset",
            type: "number",
            role: "config",
            def: 0
            });

                            }
            
                            if (sensor.type=='ZLLPresence') {
                                // Bewegungsmelder
                                /* Diese Eigenschaften werden nicht ausgelesen: "alert": "none","usertest": false,"sensitivitymax": 2,"pending": []*/
                                presenceID=sensor.id;
                                createState('hueSensors.'+sensorName+'.presence', sensor.state.presence, true, {
                                    read: true, 
                                   write: true, 
                                    name: "presence", 
                                    type: "boolean", 
                                    role: "state",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated, true, {
                                    read: true, 
                                   write: true, 
                                    name: "lastupdated", 
                                    type: "string", 
                                    role: "date",
                                    def: ''
                                });
                                // Config
                                createState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable, true, {
                                    read: true, 
                                   write: true, 
                                    name: "reachable", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.ledindication', sensor.config.ledindication, true, {
                                    read: true, 
                                   write: true, 
                                    name: "ledindication", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.battery', sensor.config.battery, true, {
                                    read: true, 
                                   write: true, 
                                    name: "battery", 
                                    type: "number", 
                                    role: "value.battery",
                                    def: 0
                                });
                                createState('hueSensors.'+sensorName+'.sensitivity', sensor.config.sensitivity, true, {
                                    read: true, 
                                   write: true, 
                                    name: "sensitivity", 
                                    type: "number", 
                                    role: "config",
                                    def: 0
                                });
            
                            }
                	        if (sensor.type=='ZLLLightLevel') {
                                // Helligkeitssensor
                                /* Diese Eigenschaften werden nicht ausgelesen: "alert": "none","usertest": false,"sensitivitymax": 2,"pending": []*/
                                createState('hueSensors.'+sensorName+'.lightlevel', sensor.state.lightlevel, true, {
                                    read: true, 
                                   write: true, 
                                    name: "lightlevel", 
                                    type: "number", 
                                    role: "config",
                                    def: 0
                                });
                                createState('hueSensors.'+sensorName+'.dark', sensor.state.dark, true, {
                                    read: true, 
                                   write: true, 
                                    name: "dark", 
                                    type: "boolean", 
                                    role: "state",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.daylight', sensor.state.daylight, true, {
                                    read: true, 
                                   write: true, 
                                    name: "daylight", 
                                    type: "boolean", 
                                    role: "state",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated, true, {
                                    read: true, 
                                   write: true, 
                                    name: "lastupdated", 
                                    type: "string", 
                                    role: "date",
                                    def: ''
                                });
                                // Config
                                createState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable, true, {
                                    read: true, 
                                   write: true, 
                                    name: "reachable", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.ledindication', sensor.config.ledindication, true, {
                                    read: true, 
                                   write: true, 
                                    name: "ledindication", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.battery', sensor.config.battery, true, {
                                    read: true, 
                                   write: true, 
                                    name: "battery", 
                                    type: "number", 
                                    role: "value.battery",
                                    def: 0
                                });
                                createState('hueSensors.'+sensorName+'.tholdoffset', sensor.config.tholdoffset, true, {
                                    read: true, 
                                   write: true, 
                                    name: "tholdoffset", 
                                    type: "number", 
                                    role: "config",
                                    def: 0
                                });
                                createState('hueSensors.'+sensorName+'.tholddark', sensor.config.tholddark, true, {
                                    read: true, 
                                   write: true, 
                                    name: "tholddark", 
                                    type: "number", 
                                    role: "config",
                                    def: 0
                                });
            
                            }
                            if (sensor.type=='ZLLTemperature') {
                                 // Temepratursensor
                                /* Diese Eigenschaften werden nicht ausgelesen: "alert": "none","usertest": false,"sensitivitymax": 2,"pending": []*/
                                createState('hueSensors.'+sensorName+'.temperature', Math.round(sensor.state.temperature / 10) / 10, true, {
                                    read: true, 
                                    write: true, 
                                    name: "temperature", 
                                    type: "number", 
                                    role: "value.temperature",
                                    "smartName": {"de": "Temperatur"}
                                });
                                createState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated, true, {
                                    read: true, 
                                   write: true, 
                                    name: "lastupdated", 
                                    type: "string", 
                                    role: "date",
                                    def: ''
                                });
                                // Config
                                createState('hueSensors.'+sensorName+'.on', sensor.config.on, true, {
                                    read: true, 
                                   write: true, 
                                    name: "on", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                    });
                                createState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable, true, {
                                    read: true, 
                                   write: true, 
                                    name: "reachable", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.ledindication', sensor.config.ledindication, true, {
                                    read: true, 
                                   write: true, 
                                    name: "ledindication", 
                                    type: "boolean", 
                                    role: "config",
                                    def: false
                                });
                                createState('hueSensors.'+sensorName+'.battery', sensor.config.battery, true, {
                                    read: true, 
                                   write: true, 
                                    name: "battery", 
                                    type: "number", 
                                    role: "battery",
                                    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=='Daylight' || sensor.type=='ZLLSwitch' || sensor.type=='ZLLTemperature' || sensor.type=='ZLLPresence' || sensor.type=='ZLLLightLevel') {
            var sensorName = sensor.name.replace(/\s/g, '');
            console.log(sensorName)
            if (sensor.type=='Daylight') {
            setState('hueSensors.'+sensorName+'.daylight', sensor.state.daylight);
            setState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated);
            setState('hueSensors.'+sensorName+'.on', sensor.config.on);
            setState('hueSensors.'+sensorName+'.configured', sensor.config.configured);
            setState('hueSensors.'+sensorName+'.sunriseoffset', parseFloat(sensor.config.sunriseoffset));
            setState('hueSensors.'+sensorName+'.sunsetoffset',parseFloat(sensor.config.sunsetoffsett));
            }

                        if (sensor.type=='ZLLPresence') {
                            // Bewegungsmelder
                            /* Diese Eigenschaften werden nicht ausgelesen: "alert": "none","usertest": false,"sensitivitymax": 2,"pending": []*/
                            setState('hueSensors.'+sensorName+'.presence', sensor.state.presence);
                            setState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated);
                            setState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable);
                            setState('hueSensors.'+sensorName+'.ledindication', sensor.config.ledindication);
                            setState('hueSensors.'+sensorName+'.battery', parseFloat(sensor.config.battery));
                            setState('hueSensors.'+sensorName+'.sensitivity', sensor.config.sensitivity);
            
                        }
            	        if (sensor.type=='ZLLLightLevel') {
                            // Helligkeitssensor
                            /* Diese Eigenschaften werden nicht ausgelesen: "alert": "none","usertest": false,"sensitivitymax": 2,"pending": []*/
                            setState('hueSensors.'+sensorName+'.lightlevel', parseFloat(sensor.state.lightlevel));
                            setState('hueSensors.'+sensorName+'.dark', sensor.state.dark);
                            setState('hueSensors.'+sensorName+'.daylight', sensor.state.daylight);
                            setState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated);
                            setState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable);
                            setState('hueSensors.'+sensorName+'.ledindication', sensor.config.ledindication);
                            setState('hueSensors.'+sensorName+'.battery', parseFloat(sensor.config.battery));
                            setState('hueSensors.'+sensorName+'.tholdoffset', parseFloat(sensor.config.tholdoffset));
                            setState('hueSensors.'+sensorName+'.tholddark', sensor.config.tholddark);
            
                        }
                        if (sensor.type=='ZLLTemperature') {
                             // Temepratursensor
                            /* Diese Eigenschaften werden nicht ausgelesen: "alert": "none","usertest": false,"sensitivitymax": 2,"pending": []*/
                            createState('hueSensors.'+sensorName+'.temperature', parseFloat(Math.round(sensor.state.temperature / 10) / 10));
                            setState('hueSensors.'+sensorName+'.lastupdated', sensor.state.lastupdated);
                            setState('hueSensors.'+sensorName+'.on', sensor.config.on);
                            setState('hueSensors.'+sensorName+'.reachable', sensor.config.reachable);
                            setState('hueSensors.'+sensorName+'.ledindication', sensor.config.ledindication);
                            setState('hueSensors.'+sensorName+'.battery', parseFloat(sensor.config.battery));
                        }                
                    }
                }
            });
            

            }

            ! function readPresenseHueSensor() {
            console.log('sensors presence');
            if (presenceID!==0) {
            var link = 'http://'+bridge+'/api/'+user+'/sensors/'+presenceID;
            request(link, function (error, response, body) {
            if (!error && response.statusCode == 200) {
            var result;
            try{
            result = JSON.parse(body);
            } catch (e) {
            console.log('Parse Fehler (Roofi Modul):' + e);
            }
            if (result) {
            var sensorName = result.name.replace(/\s/g, '');
            if (result.state.lastupdated!=laststatechanged) {
            setState('hueSensors.'+sensorName+'.presence', result.state.presence);
            setState('hueSensors.'+sensorName+'.lastupdated', result.state.lastupdated);
            console.log('State changed');
            laststatechanged=result.state.lastupdated;
            }
            }
            } else console.log('Fehler (Hue Sensordaten Abfrage: ' + error);
            }); // Ende request
            }
            }

            1 Reply Last reply Reply Quote 0
            • N
              neo4a last edited by

              @moses123:

              anbei nun das Skript. `

              Du berücksichtigst bereits in readAllHueSensors() den Typ ZLLSwitch ohne allerdings die Struktur dafür aufzubauen und zu füllen. Gibt es eine Chance, dass der HUE-Dimmer bei Gelegenheit unterstützt wird?

              Hieraus (https://github.com/ebaauw/homebridge-hue/wiki/Services) lese ich heraus, dass die HUE-Bridge wohl einen Daylight Sensor hat. Wenn das so ist: Wie kann man den eventuell auch abfragen?

              Danke für das Script.

              1 Reply Last reply Reply Quote 0
              • N
                neo4a last edited by

                @neo4a:

                …lese ich heraus, dass die HUE-Bridge wohl einen Daylight Sensor hat. Wenn das so ist: Wie kann man den eventuell auch abfragen? `
                Um mir selbst zu antworten: Es ist wohl nur ein "virtueller" Sensor, sagen die Kollegen hier: https://forum.fhem.de/index.php?topic=48462.0

                So kann meine HUE-Bridge weiterhin im dunklen Schrank bleiben …

                1 Reply Last reply Reply Quote 0
                • M
                  moses123 last edited by

                  Hallo,

                  den Switch habe ich nicht weiter berücksichtigt, weil der für meine Zwecke nicht von nutzen war.

                  Abgesehen davon ist genau wie beim Bewegungsmelder hier nur pollen möglich, man bekommt keine direkte Rückmeldung, ob eine Taste gedrückt wurde, oder ob Bewegung erkannt wurde. Auch deswegen ist der Switch nicht im Skript weiter berücksichtigt.

                  Für mich war die Temperatur vom Bewegungsmelder interessant, der Rest ist eigentlich nur Beiwerk 😉

                  1 Reply Last reply Reply Quote 0
                  • N
                    neo4a last edited by

                    @moses123:

                    nur pollen möglich, man bekommt keine direkte Rückmeldung, ob eine Taste gedrückt wurde `
                    Seit kurzem sind ja durch eine Update auch die HUE accessories (motion sensor, dimmer) HomeKit-fähig. Damit sollte es über kurz oder lang auch im ioBroker möglich sein, z.B. mit den Dimmer-Tasten Nicht-HUE-Devices schalten zu können…

                    1 Reply Last reply Reply Quote 0
                    • M
                      masterki last edited by

                      Hallo zusammen, ich bin neu bei ioBroker und hab unter anderem das Hue Skript eingebaut wegen der Temperatur.

                      Nun soweit läuft es eigentlich auch allerdings schreibt er bei mir die Stats iwie nur einmal und dann nicht mehr.

                      auch der SQL adapter nimmt keine stat änderung wahr und zeichne t demnach auch nichts auf.

                      Im Log wird leider auch keine fehler angezeigt immer nur schön die Sensor Namen.

                      Was mach ich falsch -HILFEEE

                      1 Reply Last reply Reply Quote 0
                      • M
                        mikiline last edited by

                        @masterki:

                        Hallo zusammen, ich bin neu bei ioBroker und hab unter anderem das Hue Skript eingebaut wegen der Temperatur.

                        Nun soweit läuft es eigentlich auch allerdings schreibt er bei mir die Stats iwie nur einmal und dann nicht mehr.

                        auch der SQL adapter nimmt keine stat änderung wahr und zeichne t demnach auch nichts auf.

                        Im Log wird leider auch keine fehler angezeigt immer nur schön die Sensor Namen.

                        Was mach ich falsch -HILFEEE `

                        Ändere den Schedule auf diese Weise

                        schedule("*/59 * * * *", createHueSensors); // alle 59 Minnuten

                        schedule("*/10 * * * * *", readAllHueSensors); // alle 10 Sekunden

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        872
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        6
                        10
                        2370
                        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