From 431199a3882139b6f1db9d2ddbc300a5c85a2692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=20Schr=C3=B6ter?= Date: Thu, 30 Jul 2015 12:37:46 +0200 Subject: [PATCH] added event map for state on/off --- platforms/FHEM.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/platforms/FHEM.js b/platforms/FHEM.js index 1fdd6ef..c29813f 100644 --- a/platforms/FHEM.js +++ b/platforms/FHEM.js @@ -451,6 +451,20 @@ FHEMAccessory(log, connection, s) { log( s.Internals.NAME + ' is NOT a thermostat. set for target temperature missing' ); } + var event_map = s.Attributes.eventMap; + if( event_map ) { + var parts = event_map.split( ' ' ); + for( var p = 0; p < parts.length; p++ ) { + var map = parts[p].split( ':' ); + if( map[1] == 'on' + || map[1] == 'off' ) { + if( !this.event_map ) + this.event_map = {} + this.event_map[map[0]] = map[1]; + } + } + } + if( s.hasHue ) log( s.Internals.NAME + ' has hue [0-' + s.hueMax +']' ); else if( s.hasRGB ) @@ -587,6 +601,12 @@ FHEMAccessory.prototype = { if( value.match(/^set-/ ) ) return undefined; + if( this.event_map != undefined ) { + var mapped = this.event_map[value]; + if( mapped != undefined ) + value = mapped; + } + if( value == 'off' ) value = 0; else if( value == 'absent' ) @@ -1425,9 +1445,14 @@ var http = require('http'); const FHEMdebug_PORT=8080; function FHEMdebug_handleRequest(request, response){ - //response.write( "subscriptions: " + util.inspect(FHEM_subscriptions) + "\n\n" ); + //console.log( request ); + if( request.url == "/cached" ) response.end( "cached: " + util.inspect(FHEM_cached) ); + else if( request.url == "/subscriptions" ) + response.end( "subscriptions: " + util.inspect(FHEM_subscriptions, {depth: 3}) ); + else + response.end( "cached
subscriptions" ); } //Create a server