//GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 //More information: https://www.gnu.org/licenses/gpl-3.0.txt //ABSOLUTELY NO WARRANTY!!! //Made by Ostfriese //############################## Config ############################ let Config = { temp_diff: 2, temp_min: 12, id_inside: 100, hum_target: 55, interval: 10, // 2 seconds is the minimum interval Tank_Sensor: 0, //Sensor Wasserstand comp: 0, // Kompressor FanH: 1, // Luefter Schnell FanL: 2, // Luefter langsam LedG: 3, LedR: 4, LedB: 5 } //############################## Config end ############################ function LedsOff() { Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.LedR) + '?turn=on' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.LedG) + '?turn=on' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.LedB) + '?turn=on' }); } function Gruen() { LedsOff(); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.LedG) + '?turn=off' }); } function Rot() { LedsOff(); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.LedR) + '?turn=off' }); } function Blau() { LedsOff(); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.LedB) + '?turn=off' }); } function allesAus() { Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.comp) + '?turn=off' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.FanH) + '?turn=off' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.FanL) + '?turn=off' }); LedsOff(); } function niedrigeStufe() { Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.comp) + '?turn=on' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.FanH) + '?turn=off' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.FanL) + '?turn=on' }); Blau(); } function hoheStufe() { Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.comp) + '?turn=on' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.FanH) + '?turn=on' }); Shelly.call("http.get", { url: 'http://127.0.0.1/relay/' + JSON.stringify(Config.FanL) + '?turn=off' }); Blau(); } function watch() { try { temperature = Shelly.getComponentStatus('Temperature', Config.id_inside).tC; humidity = Shelly.getComponentStatus('Humidity', Config.id_inside).rh; tank = Shelly.getComponentStatus('Input', Config.Tank_Sensor).state; //print('Temp. inside =',temp_inside); print('Hum. Inside =', humidity); print('tank= ', tank); //inside <= minimum if (humidity <= Config.hum_target) { //allesAus(); Gruen(); print('Relay(', Config.comp, ') off. Inside hum <= ', Config.hum_target); } else { delta = humidity - Config.hum_target; //delta more than or equal Config.temp_diff //if (!tank && delta >= Config.temp_diff) { //niedrigeStufe(); Blau(); // print('Relay(', Config.comp, ') on. Delta >= ', Config.hum_target); } //delta less than Config.temp_diff //else { //allesAus(); // Gruen(); // print('Relay(', Config.comp, ') off. Delta < ', Config.hum_target); //} //} print('\n') } catch (err) { //allesAus(); //Rot(); print(err); } } function start() { LedsOff(); //allesAus(); // do a first shot print('Starting....'); watch(); // set watch timer to configured value Timer.set(Config.interval * 1000, true, watch); } // schedule script start for 1 second Timer.set(1000, false, start);