-
Autor
Idee: Die Solarpumpe soll eingeschaltet werden, wenn es in der Solarzelle wärmer ist, als im Tank.
Code
/*******************************
| Solar Differenzregler |
*****************************
Idee: Die Solarpumpe soll eingeschaltet werden, wenn es in der Solarzelle wärmer ist, als im Tank
Wichtig: SolarzellenFühler=100 TankFühler=101
Hardware: [Shelly Plus 1 pm] mit [Shelly Plus Addon] Firmware: 1.0.0-beta6
SolarzellenFühler=DS18B20 TankFühler=DS18B20
thohei 21.08.2023
****************************************/
let CONFIG = {
Temp: [-99, -99], //Solarzelle [100], Speicher [101]
MaxTemp:80, //Speichertemperatur, die nicht überschritten werden soll, sonst weiter kühlen.
MinimalDiv:2 // MinimalDifferenz dass sich das Einschalten der Pumpe lohnt
};
function Temp(Devide) {
Shelly.call("temperature.getStatus", { id: Devide+100},
function (response) { //print(response.tC) ;
CONFIG.Temp[response.id-100]=response.tC;
} ,null );
}
function init() {
Temp(0);
Temp(1);
print("Solar=",CONFIG.Temp[0]," Speicher=",CONFIG.Temp[1]," Temp-Diff=",CONFIG.Temp[0]-CONFIG.Temp[1]);
if (CONFIG.Temp[0]-CONFIG.MinimalDiv > CONFIG.Temp[1] ) {
// SolarTemp > TankTank = Pumpe ein
print("Pumpe Ein");
Shelly.call("Switch.set", {'id': 0, 'on': true});
} else {
// SolarTemp < TankTank = Pumpe aus
if (CONFIG.Temp[1] < CONFIG.MaxTemp) {
print("Pumpe Aus");
Shelly.call("Switch.set", {'id': 0, 'on': false});
} else {
print("Pumpe noch ein: Kühlen: Speicher über ",CONFIG.MaxTemp);
}
}
}
let t = Timer.set( 10000,true,init); // Alle 10 Sek.
Alles anzeigen
Viel Spass beim Testen.