Script welches bei apower > 200W (länger als 10 Sek), den 1. Kanal einschaltet

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

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.

  • Hallo zusammen Bei meinem Shelly 2 PM Gen3 überwacht

    - Switch 2 den Stromverbrauch der Heizung

    - Switch 1 kann den Brenner anschalten


    Ich möchte nun, dass wenn die Heizung über 200Watt zieht (der Brenner läuft), der Swich 1 eingeschaltet wird für 15 Minuten. Die Einschaltzeit kann ich ja über den Timer steuern, aber ich habe Probleme ein Script zu schreiben, dass bei 200 Watt den 1. Switch einschaltet.


    Wie man den Switch einschaltet habe ich rausgefunden, aber noch nicht, wie man apower ausliest, überprüft und dann den Befel auslöst.

    => Shelly.call("Switch.Set", {id:0, on:"ein"==="ein"});


  • Ich habe mittlerweilen rausgefunden, wie man die Power abfrägt...
    => Shelly.call("Switch.GetStatus",{id: 1}, function(result,error_code,error_message,ud){ print(result.apower); },null );

  • Naja ich versuche hier zumindest anderen zu helfen...
    => wieder ein Stück weiter

    Dieser Code liest die Watt heraus und druckt den Wert...

    Code
    let status = Shelly.getComponentStatus("switch", 1); 
    let watts = status.apower; 
    print(watts)
  • Ein Key-Element habe ich mal... hier kann ich schauen ob Watt über 200 ist... wenn ja, dann wird der Kanal 1 gestartet:

    Also hier wird noch gedruckt in die Konsole
    let status = Shelly.getComponentStatus("switch", 1); let watts = status.apower; if (watts > 200) print(watts)

    Und hier schalten wir den Kanal ein
    let status = Shelly.getComponentStatus("switch", 1); let watts = status.apower; if (watts > 200) Shelly.call("Switch.Set", {id:0, on:"ein"==="ein"})


    jetzt muss ich noch eine Funktion machen, die jegliche Änderung erfährt... ich will ja per sofort das machen, nicht nur alle 10 Sekunden

  • Kann mir bitte hier jemand helfen? Ich will einen Event registrieren, der bei jeder Apower Änderung den Code oben ausführt...
    => Danke

    Es muss irgendwie so gehen...

    Shelly.addStatusHandler(function(e) { if (e.component === "switch:0") { if (e.delta.output === true) { MQTT.publish("stat/s_ug_heizung_brenner_temp/POWER", JSON.stringify(1), 0, false);} else if (e.delta.output === false) { MQTT.publish("stat/s_ug_heizung_brenner_temp/POWER", JSON.stringify(0), 0, false);} } });

  • Dieses Thema enthält 17 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.