Ok das wären die Scenen so wie ich es jetzt steuere möchte das aber in Zukunft ohne denn Scenen machen. E zum einschalten und A zum Ausschalten.
Beiträge von HCHSA
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.
-
-
Es ist zum Messen der Shelly 3em pro
Und zum schalten der pro 3 womit ich zurzeit über Scenen das ganze steuere und das funktioniert auch sehr gut. Die heizpatrone hat 3 Phasen + Null Leiter wo jede Phase extra dazu geschaltet wird.
Das Problem an der Sache wenn das Internet ausfällt funktionieren die Scenen nicht mehr und da ist der Gedanke daß mit einem Skript zu steuern.
Code
Alles anzeigenfunction getPowerConsumption() { return new Promise(function(resolve, reject) { Shelly.call( "HTTP.GET", {url: "http://localhost/meters"}, function(result, error_code, error_message) { if (error_code !== 0) { reject(error_message); } else { resolve(JSON.parse(result)); } } ); }); } function controlShellyRelay(outputIndex, action) { Shelly.call( "HTTP.GET", {url: `http://192.168.178.83/relay/${outputIndex}?turn=${action}`}, function(result, error_code, error_message) { if (error_code !== 0) { console.error("Fehler beim Schalten des Relais:", error_message); } } ); } async function controlHeater() { try { const { power } = await getPowerConsumption(); const surplusPower = power; const stufe1 = -1000; const stufe2 = -1050; const stufe3 = -1100; const einschaltenZeitStufe1 = 20; const einschaltenZeitStufe2 = 15; const einschaltenZeitStufe3 = 10; const ausschaltenSchwellenwert = 50; // Hier den Schwellenwert für das Ausschalten ohne Hysterese eingeben let stufe1An = false; let stufe2An = false; let stufe3An = false; if (surplusPower < stufe1) { setTimeout(() => { if (surplusPower < stufe1) { controlShellyRelay(0, 'on'); stufe1An = true; } }, einschaltenZeitStufe1 * 1000); } if (stufe1An && surplusPower < stufe2) { setTimeout(() => { if (stufe1An && surplusPower < stufe2) { controlShellyRelay(1, 'on'); stufe2An = true; } }, einschaltenZeitStufe2 * 1000); } if (stufe2An && surplusPower < stufe3) { setTimeout(() => { if (stufe2An && surplusPower < stufe3) { controlShellyRelay(2, 'on'); stufe3An = true; } }, einschaltenZeitStufe3 * 1000); } if (stufe3An && surplusPower >= ausschaltenSchwellenwert) { controlShellyRelay(2, 'off'); setTimeout(() => { stufe3An = false; }, 10 * 1000); } if (stufe2An && surplusPower >= ausschaltenSchwellenwert) { controlShellyRelay(1, 'off'); setTimeout(() => { stufe2An = false; }, 5 * 1000); } if (stufe1An && surplusPower >= ausschaltenSchwellenwert) { controlShellyRelay(0, 'off'); setTimeout(() => { stufe1An = false; }, 0 * 1000); } } catch (err) { console.error("Fehler:", err); } } setInterval(controlHeater, 1000);
-
Ok aber trotzdem danke.
-
Ja teilweise und Copy and paste.
Bekomme dann denn Fehler referenc_error -3
-
Ja sollte auf dem Shelly pro 3em laufen und dann denn Aktor Schalten.
Ja sollte JavaScript sein. Bin aber da ein kompletter Anfänger.
-
Hallo
Ich möchte einen Heizstab in 3 Stufen steuern mit einem Skript.
Mein Skript funktioniert aber irgend wie nicht könnte mir da wer weiterhelfen.