Ungetestet:
Code
//############################## Config ############################
let Config = {
interval : 5 // 2 seconds is the minimum interval
}
let tanktemp;
// Konfiguration des Shelly-Geräts
const shellyIP = '127.0.0.1';
// Funktion zum Abrufen der Speichertemperatur
function getAll() {
Shelly.call(
"HTTP.GET",
{
url: "http://192.168.178.27/rpc/Temperature.GetStatus?id=101"
},
function(result, error_code, error_message) {
if (error_code !== 0) {
print('Error');
} else {
let jsonData = JSON.parse(result.body);
let temperatureCelsius = jsonData.tC;
tanktemp = temperatureCelsius;
console.log('Speichertemperatur:', tanktemp);
const response = Shelly.getComponentStatus("em:0");
const totalActPowerStr = response.total_act_power;
let totalActPower = parseFloat(totalActPowerStr);
const pwerPhaseA = parseFloat(response.a_act_power);
const pwerPhaseB = parseFloat(response.b_act_power);
const pwerPhaseC = parseFloat(response.c_act_power);
console.log('Total Active Power (Number):', totalActPower );
//console.log('Power Phase A:', pwerPhaseA, 'W' );
//console.log('Power Phase B:', pwerPhaseB, 'W' );
//console.log('Power Phase C:', pwerPhaseC, 'W' );
if (totalActPower > -2000) {
console.log('Phase 1,2,3 OFF');
} else if (totalActPower >= -3000 && totalActPower <= -2000) {
console.log('Phase 1 ON');
console.log('Phase 2 OFF');
console.log('Phase 3 OFF');
}
} catch (error) {
console.error('Fehler beim Abrufen der Daten:', error.message);
}
}
}
);
}
function start() {
getAll();
Timer.set(Config.interval * 1000,true,getAll);
}
// schedule script start for 1 second
Timer.set(1000,false,start);
Alles anzeigen