@@ -23,6 +23,7 @@ var sensorDevices = [];
2323var sensorResults = [ ] ;
2424var sensorsRead = 0 ;
2525
26+
2627function gpioWorker ( input_queue , output_queue ) {
2728 this . input_queue = input_queue ;
2829 this . output_queue = output_queue ;
@@ -48,6 +49,10 @@ function gpioWorker (input_queue, output_queue) {
4849 // Relay device
4950 this . relay = new Relay ( ) ;
5051 //this.relay.testConnected();
52+ for ( var i = 0 ; i < this . relay . deviceCount ( ) ; i ++ ) {
53+ this . relay . setDelaySetValue ( i + 1 , 'on_time' , this . configuration [ 'relayDelayPostON' ] ) ;
54+ this . relay . setDelaySetValue ( i + 1 , 'off_time' , this . configuration [ 'relayDelayPostOFF' ] ) ;
55+ }
5156
5257 // Temperature sensors
5358 sensorDevices = this . sensorDevices ( ) ;
@@ -57,7 +62,7 @@ function gpioWorker (input_queue, output_queue) {
5762 this . configObj . updateFudgeEntry ( sensorDevices ) ;
5863 console . log ( "Using configuration: " + JSON . stringify ( this . configuration ) ) ;
5964
60- // Set sensor fudge according to configuration
65+ // Now set sensor fudge according to updated configuration
6166 sensorDevices . forEach ( function ( sensor ) {
6267 sensor . setFudge ( parseFloat ( config [ 'sensorFudgeFactors' ] [ sensor . getId ( ) ] ) ) ;
6368 } ) ;
@@ -125,16 +130,30 @@ function gpioWorker (input_queue, output_queue) {
125130 }
126131 } . bind ( this ) ) ;
127132
128- // eventEmitter WAS global (from index.js)
129133 eventEmitter . on ( 'sensor_read' , allSensorsRead ) ;
130134 eventEmitter . on ( 'msg_waiting' , this . processMessage . bind ( this ) ) ;
131135
136+ eventEmitter . on ( 'fhem_reading' , function ( obj ) {
137+ this . fhemReading ( obj ) ;
138+ } . bind ( this ) ) ;
139+
132140}
133141//module.exports = gpioWorker;
134142//export default gpioWorker;
135- //export default gpioWorker;
136143export { gpioWorker , eventEmitter } ;
137144
145+ gpioWorker . prototype . fhemReading = function ( reading ) {
146+ //console.log("fhemReading() " + JSON.stringify(reading));
147+ var name = reading . name ;
148+ var tilt = reading . tilt ;
149+ var temp = reading . temp ;
150+ var batt = reading . batt ;
151+ console . log ( "fhem() " + name + ", " + tilt + ", " + temp + ", " + batt ) ;
152+
153+ //var plato = calcPlato(tilt, temp);
154+ //console.log("plato = " + plato);
155+ } ;
156+
138157gpioWorker . prototype . sensorDevices = function ( ) {
139158 var deviceList = [ ] ;
140159
@@ -145,6 +164,13 @@ gpioWorker.prototype.sensorDevices = function () {
145164 for ( var z = 0 ; z < sensorList . length ; z ++ ) {
146165 deviceList . push ( new sensordevice ( sensorList [ z ] ) ) ;
147166 }
167+
168+ // Sort the device list by (slightly mangled) id's
169+ deviceList . sort ( function ( a , b ) {
170+ var aval = parseInt ( a . id . substr ( 0 , a . id . search ( "-" ) ) , 16 ) + parseInt ( a . id . substr ( a . id . search ( "-" ) + 1 ) , 16 ) ;
171+ var bval = parseInt ( b . id . substr ( 0 , b . id . search ( "-" ) ) , 16 ) + parseInt ( b . id . substr ( b . id . search ( "-" ) + 1 ) , 16 ) ;
172+ return aval - bval ;
173+ } ) ;
148174 return deviceList ;
149175} ;
150176
@@ -320,11 +346,25 @@ gpioWorker.prototype.config_change = function (msg) {
320346 item . setFudge ( msg . data [ 'fudge' ] ) ;
321347 }
322348 } ) ;
349+ //this.configuration.sensorFudgeFactors[msg.data['sensorFudgeFactors']] = msg.data['fudge'];
350+ this . configObj . setFudgeFactor ( msg . data [ 'sensorFudgeFactors' ] , msg . data [ 'fudge' ] ) ;
323351 } else if ( keys [ 0 ] == 'multiSensorMeanWeight' ) {
324352 this . configObj . setMultiSensorMeanWeight ( msg . data [ 'multiSensorMeanWeight' ] ) ;
353+ } else if ( keys [ 0 ] == 'relayDelayPostON' || keys [ 0 ] == 'relayDelayPostOFF' ) {
354+ for ( var i = 0 ; i < this . relay . deviceCount ( ) ; i ++ ) {
355+ if ( keys [ 0 ] == 'relayDelayPostON' ) {
356+ this . relay . setDelaySetValue ( i + 1 , 'on_time' , msg . data [ keys [ 0 ] ] ) ;
357+ } else {
358+ this . relay . setDelaySetValue ( i + 1 , 'off_time' , msg . data [ keys [ 0 ] ] ) ;
359+ }
360+ }
361+ //this.configuration[keys[0]] = msg.data[keys[0]];
362+ this . configObj . setRelayDelayPost ( keys [ 0 ] , msg . data [ keys [ 0 ] ] ) ;
325363 } else {
326364 console . log ( "config_change(): " + keys [ 0 ] + " = " + msg . data [ keys [ 0 ] ] ) ;
327365 }
366+ console . log ( "this.configuration = " + JSON . stringify ( this . configuration ) ) ;
367+ //this.configObj.saveConfigToFile();
328368} ;
329369
330370gpioWorker . prototype . list_sensors = function ( msg ) {
0 commit comments