Bei Lastanstieg Timerüberwachung starten

  • Hallo,

    Ich würde gerne wenn die Last auf einem Kanal auf einen bestimmten Wert ansteigt bzw. einen Wert übersteigt einen Timer starten und wenn die Last länger als X Minuten den Wert übersteigt den Kanal abschalten und eine Nachricht versenden.

    Bleibt der Kanal innerhalb der Zeit X soll nichts geschehen sprich wenn nur 5 Minuten 100W gezogen werden nichts unternehmen, werden Beispielsweise über 10 Minuten 100Watt gezogen abschalten

    Hat jemand eine Idee wie ich das umsetzen könnte?

  • Zur hilfreichsten Antwort springen
  • ich hab sowas in der Art mal für eine Waschmaschine umgesetzt, also Verbrauch messen und wenn der eine bestimmte Zeit unter X Watt braucht eine Telegram-Nachricht schicken:

    shelly-script-examples/monitor_local_consumption.js at main · shelly-tools/shelly-script-examples
    Shelly mJS Scripting examples. Contribute to shelly-tools/shelly-script-examples development by creating an account on GitHub.
    github.com

    Eventuell hilft dir das ja für den Einstieg. Grundkenntnisse in Javascript bräuchtest du allerdings zwangsweise.

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

  • Prinzip-Idee:

    Last (Power) erfassen. Dies gelingt entweder per Eventhandler oder in der callback-Funktion eines fortlaufende Timers per RPC Abfrage (Shelly.call(...)).

    Fortlaufender Timer per Timer.set(Periode, true, callback, ...). Parameter true steht für fortlaufend wiederholen, d.h. die callback Funktion wird nach jeder Periode aufgerufen.

    Überschreitet die Last die obere Schwelle, einen fortlaufenden Timer starten, dessen callback-Funktion die Perioden zählt. Sobald die Last die untere Schwelle unterschreitet, den Timer löschen. Überschreitet der Periodenzähler einen Zähler-Endwert, Timer löschen, den Kanal abschalten und Nachricht senden.

    Dies ist eine Art Watchdog, der mit Unterschreitung der unteren Schwelle schlafen gelegt wird. Er wird mir Überschreitung der oberen Schwelle geweckt, bellt aber erst, wenn die max. Dauer der Überlast überschritten wird.

    Evtl. ist für diesen Zweck eine größere Timer-callback-Funktion zweckmäßig. Globale Variable werden erforderlich sein. Die Parameter sollten bspw. per MQTT einstellbar sein, damit der Anwender dafür nicht im Script Änderungen vornehmen muss. Am besten wäre es, wenn Konfigurationseinträge des Kanals oder Gerätes verwenbar wären, weil diese afaik im NVS (non volatile storage) abgelegt werden.

    Die Hysterese obere Schwelle - untere Schwelle ist mitentscheidend für die Eignung des Algorithmus.

    Tja, da gibt es etwas zu programmieren, wenn du das so implementieren willst.

    Viel Erfolg!

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Dieses Thema enthält 4 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.