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);

Starkstrombastler

Vorschlag:
Gehe auf die Webseite des Shelly und erstelle eine Action:
Event: Active Power Measurement
Add. Condition: New Active Power    Less Than    2
Add URL: http://<ip-vom-FHEM-Server>:<port>/fhem?cmd=defmod AAA at +00:02 set lamp on

dann noch eine zweite Action, aber mit Power More than 2 und in der URL: .... delete AAA

Es wird also ein at-Device erstellt, welches die gewünschte Timer-Funktion liefert. Steigt die Leistung innerhalb der Zeitspanne wieder über den Schwellwert, wird das At gelöscht. Ansonsten wird mit Ablauf der Zeitspanne das Device lamp eingeschaltet.
Du kannst die URL testen indem du sie in die Adresszeile deines Browsers einträgst.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200