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>
-
-
vielen Dank,
habe es durch die Hilfe rechtt schnell hin bekommen.
Danke für diesen Hinweis!
-
kannst du bitte den Code auch im Code Tag packen.. ist besser lesbar