-
Autor
cooler Keller Cooler
Idee: mit den Schwankungen der Aussentemperatur den Keller zu kühlen oder zu heizen.
Hardware: [Shelly Plus 1 pm] mit [Shelly Plus Addon] Firmware: 1.0.0-beta5
Aussenfühler=DS18B20 Innennfühler=DS18B20
Code
/***************************************
| cooler Keller Cooler |
****************************
Idee: mit den Schwanzungen der Aussentemperatur den Keller zu Kühlen oder zu Heizen.
Es wird ein Ventilator angesteuert (nicht zu klein )
Wichtig: Aussenfuehler=100 Innenfuehler=101
Hardware: [Shelly Plus 1 pm] mit [Shelly Plus Addon] Firmware: 1.0.0-beta5
Aussenfühler=DS18B20 Innennfühler=DS18B20
- nach Start ca 2 Min. warten bis Temp im Script richtig ist
Inspirirt durch: https://shelly-forum.com/forum/thread/19703-temperatursensoren-ds18b20-am-plus-addon-auslesen/?pageNo=3
thohei 01.07.2023
****************************************/
// Vor dem Eventhandler:
let Status = {
Temp: [-99, -99], //Aussen, Innen
SollTemp:14, //Idealtemperatur z.B. Keller
MinimalDiv:2 // MinimalDifferenz dass sich das Heizen oder Kuehlen lohnt
};
function TempRead(event) {
//let ev=JSON.stringify(event);
//print(ev); // show event
let i = event.info;
if (i.event==="temperature_measurement") Status.Temp[i.id-100] = i.tC;
if (Status.Temp[1] >= Status.SollTemp) { //Kuehlen
//Status.Heizen=0 // Kühlen
let TEin=Status.Temp[1] - Status.MinimalDiv;
print("Solltemp=",Status.SollTemp," Aussen=",Status.Temp[0] ," Innen=", Status.Temp[1] , " TEin=", TEin );
if ( Status.Temp[0] <= TEin) {
print("Kuehlen Ein");
Shelly.call("Switch.set", {'id': 0, 'on': true});}
else {
print("Kuehlen Aus");
Shelly.call("Switch.set", {'id': 0, 'on': false});
}
}
else { //Heizen
//Status.Heizen=1;
let TEin=Status.Temp[1] + Status.MinimalDiv;
print("SollTemp=",Status.SollTemp," Aussen=",Status.Temp[0] ," Innen=", Status.Temp[1] , " TEin=", TEin );
if ( Status.Temp[0] >= TEin) {
print("Heizen Ein");
Shelly.call("Switch.set", {'id': 0, 'on': true});
}
else {
print("Heizen Aus");
Shelly.call("Switch.set", {'id': 0, 'on': false});
};
}
}
function StartDelay() {
print("t1() start alle 10 Sek.");
Shelly.addEventHandler(TempRead);
}
let t = Timer.set(4 * 1000,false,StartDelay); // min 4 Sek. warten
Alles anzeigen
In der Console werden die Temperaturen angezeigt.
Viel Spass beim Testen
thohei