NEWS
Hue Bewegungssensor Temperatur auslesen
-
Hallo,
ist es irgendwie möglich dei Temperatur der Hue Bewegungssensoren aus zu lesen?
in den Standardwerten ist diese ja nicht zu finden.
Ich habe bereit irgendwelche skripte gefunden die man wohl einbinden kann.
Leider bin ich am einbinden dieses Skriptes gescheitert. (ich habe diesen mal unten aufgeführt)
gibt es irgendeine Anleitung dazu? (Habe bisher lediglich 433Mhz Steckdosen, Hue Lampen und Sonos soweit eingebunden)
Ich scheitere bereits am einbinden der hue-api.
im terminal habe ich bereits folgendes versucht:
npm install node-hue-api
Ergebniss:
authenticate-pam@1.0.2 install /opt/iobroker/node_modules/authenticate-pam
node-gyp rebuild
make: Verzeichnis „/opt/iobroker/node_modules/authenticate-pam/build“ wird betreten
CXX(target) Release/obj.target/authenticate_pam/authenticate_pam.o
../authenticate_pam.cc:30:31: fatal error: security/pam_appl.h: Datei oder Verzeichnis nicht gefunden
#include <security pam_appl.h="">….......................................................
var hue = require('node-hue-api'); var HueApi = hue.HueApi; var api; var request = require('request'); var presenceID=0; var laststatechanged=''; var bridge='192.168.254.64'; var user='kUjUG9UYpRTf14fg8Q9Pw5M6lRYoxDHy5Tt0XHfy'; 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 } } ````</security> -
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