Shelly: Ausgabesignal wenn Maschine fertig - wie?

Begonnen von Thomas24568, 09 Februar 2026, 22:07:11

Vorheriges Thema - Nächstes Thema

Thomas24568

Moin!

Mir schwirrt das Hirn, ich steige nicht mehr durch. Irgendwie habe ich mich in Webhook verlaufen (das Wiki sagt "Info veraltert", die Commandref geht zu extrem ins Detail, bietet aber keine Lösung *für mich* - ich habe es nicht geschafft ein Licht per Webhook anzuschalten.). Also ich versuche meine Frage logisch zu formulieren:

Eine Maschine, die dauerhaft an einem Shelly 1PM Gen3 (daueran) hängt soll mir ein Licht anschalten (blinken lassen), wenn die Maschine seit 3 Minuten weniger als 2 Watt benötigt. Die 2 Watt sind leider der Wert, den die Maschine in Arbeitspausen zieht.

Die Anzeigelampe ist ein Huedevice, das ich per Weboberfläche von FHEM an- und ausschalten kann.

Also was nehmen, wenn nur die fallende Flanke des Verbauches ausgewertet werden soll?

Bei der Maschine handelt es sich um je eine Wasch- und Geschirrspülmaschine mit je einem der o.g. Shellys.

loetmeister

Hi,

eventuell mir einem Skript auf dem Shelly? Ich habe mal ein Bespiel angehängt, ihn dem ein gen2 Shelly abschaltet, wenn weniger als 2 W konsumiert werden. Die 3 Minuten Wartezeit müsste noch dazu kommen... und statt abschalten könntest du FHEM oder direkt eine URL deiner Lampe Aufrufen?

// Shelly Plus 1PM - Stop the output after consuming
// no power (i.e. below standbyPower) - wait 10 sec after ON

let startMonitor = false;
let standbyPower = 2;
let alertTimer = null;

Shelly.addEventHandler(function (event, user_data) {
  if (typeof event.info.state !== "undefined") {
    if (event.info.state) {
      //startMonitor = true;
       delayTimer = Timer.set(10000, true, function () {startMonitor = true; stopTimer();}, null); //delay 10sec
    } else {
      startMonitor = false;
      stopTimer();
    }
  }
 
  if (typeof event.info.apower !== "undefined") { //delta.apower
    if (startMonitor === true) { // && event.id === 0) {
      if (event.info.apower < standbyPower) {
        //print("Will turn off");
        Shelly.call(
          "switch.set",
          { id: 0, on: false },
          function (result, code, msg, ud) {},
          null
        );
      }
    }
  }
}, null);

function stopTimer() {
  Timer.clear(delayTimer);