Hi HCHSA
Habe das Script ausprobiert, bekomme leider eine Fehlermeldung in Zeile 29 und bricht ab.
Uncaught ReferenceError: "async" is not defined
at async function controlHeater() {
^
VPN/Proxy erkannt
Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.
Hi HCHSA
Habe das Script ausprobiert, bekomme leider eine Fehlermeldung in Zeile 29 und bricht ab.
Uncaught ReferenceError: "async" is not defined
at async function controlHeater() {
^
Hallo HCHSA
Es gibt ein Script von User-64546 für 3 stufiges laden, vielleicht kann das Dir helfen.
let REMOTE = {
ip: '192.168.1.157',
relay1: '0',
relay2: '1',
relay3: '2'
}
let energieReturnWs = 0.0;
let energieKonsumWs = 0.0;
let CounterSaldieren = 0; // Timer skalieren
let CounterRelais = 0; // vielfaches von Timer 1
let CounterSave = 0; // save Timer Leistung
let CounterRefrech = 1
let STUFE = 1;
let Multiplikator = 1;
let STUFENWECHSEL = 0;
let Senden = 1;
let LAST = 246;
let AktPO = 0;
let Aktuell = 0;
let DivLastKonsom = 2;
let DivLastReturn = 3;
print('START');
Shelly.call(
"KVS.Get",
{
"key": "EnergyReturned",
},
function callback(result, error_code, error_message, userdata) {
if (error_code === 0) {
energieReturnWs = Number(result.value);
print("Loaded returned energy: ", energieReturnWs / 3600000, " kWh");
}
}
);
Shelly.call(
"KVS.Get",
{
"key": "EnergyConsumed",
},
function callback(result, error_code, error_message, userdata) {
if (error_code === 0) {
energieKonsumWs = Number(result.value);
print("Loaded consumed energy: ", energieKonsumWs / 3600000, " kWh");
}
}
);
function timerHandler(user_data) {
let em = Shelly.getComponentStatus("em", 0);
//print (em)
if (typeof em.total_act_power !== 'undefined') {
let power = em.total_act_power;
//print (power)
if (power >= 0) {
energieKonsumWs = energieKonsumWs + power * 0.5;
}
else {
energieReturnWs = energieReturnWs - power * 0.5;
}
CounterSave = CounterSave + 1;
CounterSaldieren = CounterSaldieren + 1;
CounterRefrech = CounterRefrech + 1;
//print("REAL");
//print("AKTPO =", AktPO);
//print("CounterRelais =", CounterRelais);
//print("CounterSaldieren =", CounterSaldieren);
AktPO = (AktPO + power);
//print("POWER;AKTUELL-MITTEL;SUMME-POWER", power,";",(AktPO / (CounterSaldieren + 1)),";",AktPO);
if (CounterSaldieren == 1)
{ // Bereitstelung der Stufe
Multiplikator = (Multiplikator * -1);
Shelly.call("Sys.SetConfig", {config: {location: {lon: STUFE * Multiplikator }}});
}
if (CounterSaldieren == 2)
{ // Anzeige NAME
Shelly.call("Sys.SetConfig", {config: {device: {name: Aktuell.toFixed(0)+"W ("+STUFE+") : " + Shelly.getComponentStatus("sys").time + " : +"+(energieKonsumWs / 3600000).toFixed(1)+" kWh -"+(energieReturnWs / 3600000).toFixed(2)+" kWh" }}});
}
if (CounterSaldieren > 19)
{
print("CounterSaldieren");
CounterRelais = CounterRelais + 1;
Aktuell = (AktPO / (CounterSaldieren + 1));
AktPO = Aktuell;
CounterSaldieren = 0;
//print("POWER =", Aktuell);
//print("STUFE =", STUFE);
//print("LAST =", LAST);
if (CounterRelais > 1) {
//print("CounterRelais");
//print("AKTUELL =", Aktuell);
//print("CounterRelais =", CounterRelais);
CounterRelais = 0;
if (Aktuell < ((LAST + LAST - (LAST / DivLastReturn)) * -1)) {
//Accu Lader viel mehr -500W
STUFE = STUFE + 2;
//print("STUFE + 2 ", STUFE, (LAST * 2) );
}
else if (Aktuell < ((LAST - (LAST / DivLastReturn)) * -1)) {
//Accu Lader mehr -225W
STUFE = STUFE + 1;
//print("STUFE + 1 ", STUFE, LAST );
}
else if (Aktuell > (LAST + (LAST / DivLastKonsom))) {
//Accu Lader viel weniger +300W
STUFE = STUFE - 2;
//print("STUFE - 2 ", STUFE,(LAST + (LAST / 5)) );
}
else if (Aktuell > (LAST / DivLastKonsom)) {
//Accu Lader weniger +50W
STUFE = STUFE - 1;
//print("STUFE - 1 ", STUFE,(LAST / 5) );
}
if (STUFE > 4) {
STUFE = 4;
}
else if (STUFE < 0) {
STUFE = 0;
}
if (STUFENWECHSEL < STUFE) {
Senden = 1;
AktPO = Aktuell + LAST;
}
else if (STUFENWECHSEL > STUFE) {
Senden = -1;
AktPO = Aktuell - LAST;
}
//print("wird gesendet: ",Senden);
if (Senden != 0) {
CounterRefrech = 1
if (STUFE > 0) {
//http ('192.168.1.157/relay/0?turn=on&timer=2000');
//RelaisON(REMOTE.ip, REMOTE.relay1, 'on', '2000');
}
if (STUFE < 1) {
//http ('192.168.1.157/relay/0?turn=off');
//RelaisOFF(REMOTE.ip, REMOTE.relay1, 'off');
}
if (STUFE > 1) {
//http ('192.168.1.157/relay/1?turn=on&timer=1500');
//RelaisON(REMOTE.ip, REMOTE.relay2, 'on', '1500');
}
if (STUFE < 2) {
//http ('192.168.1.157/relay/1?turn=off');
//RelaisOFF(REMOTE.ip, REMOTE.relay2, 'off');
}
if (STUFE > 2) {
//http ('192.168.1.157/relay/2?turn=on&timer=1000');
//RelaisON(REMOTE.ip, REMOTE.relay3, 'on', '1000');
}
if (STUFE < 3) {
//http ('192.168.1.157/relay/2?turn=off');
//RelaisOFF(REMOTE.ip, REMOTE.relay3, 'off');
}
if (STUFE > 3) {
Shelly.call("Switch.set", {'id': 100, 'on': true, toggle_after: 1000}); //direct
print("Local/relay/100/on/time=1000");
}
if (STUFE < 4) {
Shelly.call("Switch.set", {'id': 100, 'on': false}); //direct
print("Local/relay/100/off");
}
Senden = 0;
STUFENWECHSEL = STUFE;
}
}
//Shelly.call(
//"Sys.SetConfig", {
//config: {device:{name: Aktuell.toFixed(0)+"W ("+STUFE+") : " + Shelly.getComponentStatus("sys").time + " : +"+(energieKonsumWs / 3600000).toFixed(1)+" kWh -"+(energieReturnWs / 3600000).toFixed(2)+" kWh"}},
//},
//function(result, error_code, error_message, userdata) {
//print("error ", error_code, " : ", error_message);
//print("result", JSON.stringify(result));
//}
//);
CounterRefrech
if (CounterRefrech > 1990)
{
//print("CounterRefrech");
CounterRefrech = 1;
Senden = 1;
}
if (CounterSave > 3599)
{
//print("CounterSave");
CounterSave = 0;
SaveCounters();
}
}
}
}
function SetKVS(key, value) {
Shelly.call(
"KVS.Set", {
"key": key,
"value": value,
},
function(result) {
//print("KVS Saved, rev:", result.rev);
}
);
}
function http (url) {
print('http://' + url );
Shelly.call(
"http.request",
{ method: "GET" , timeout: "5" , url: 'http://' + url },
function (response, error_code, error_message, ud) {
//print(JSON.stringify(response));
//print(JSON.stringify(error_code));
//print(JSON.stringify(error_message));
//print(JSON.stringify(ud));
},
null
);
}
function SaveCounters() {
SetKVS("EnergyConsumed", energieKonsumWs );
SetKVS("EnergyReturned", energieReturnWs );
}
Timer.set(500, true, timerHandler, null);
Alles anzeigen