FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: der-Lolo am 16 April 2023, 18:38:18

Titel: Leistungsabhängiges schalten von Geräten
Beitrag von: der-Lolo am 16 April 2023, 18:38:18
Hallo Zusammen,
ich würde gerne in abhängigkeit des Lastverlaufes vom Geschirrspüler einen Trigger generieren um ein weiteres Gerät zu schalten.

Unsere Spülmaschine bezieht Warmwasser aus unserem WW-Tank. Deswegen können sie 2kW peaks die man sehen kann in ihrer ausprägung variieren... Ich würde nun gerne nach dem ersten 2kW Peak einen Trigger generieren der mir das nächste Gerät - die Waschmaschine einschaltet.

Zuerst habe ich gedacht ich setze einen watchdog darauf an - ich las dann aber das der watchdog eigentlich eher für on/off als für numerische Werte gedacht ist.

Gedanklich habe ich ein bisschen damit gespielt ein DOIF-Reading darauf anzusetzen.

Was denkt ihr wie ich am besten auf die fallende flanke des ersten 2kW-peaks triggern kann..?


Titel: Aw: Leistungsabhängiges schalten von Geräten
Beitrag von: Per am 16 April 2023, 22:33:46
Wo ist der Unterschied zwischen on ja/nein und >2000 ja/nein? Zur Not über einen Dummy.

Aber DOIF kann das natürlich auch.
Titel: Aw: Leistungsabhängiges schalten von Geräten
Beitrag von: DL8EI Ralph am 16 April 2023, 23:24:59
Die Optik zeigt ja den Übergang von ca. 2000 auf "wenig".

Aber mit "was" oder mittels welchen Sensors weiß FHEM das ?

Hier mal ein Beispiel zum Umbauen aus der Abteilung Heizung:
# ein DOIF
([TH_Kueche:temperature] or [Kuechefenster:Window]) {
  my $akt = ReadingsVal("TH_Kueche","temp",0);
  my $old = ReadingsVal("TH_Kueche","tempbefore",0);
  if (Value("Kuechefenster") eq "Open"){
    {fhem("set FHT8Vtest valve 0")} }
  else {
    if ( $akt ne $old ) {
      if ($akt >= 16) {fhem("set FHT8Vtest valve  0")}
      if ($akt <  16) {fhem("set FHT8Vtest valve 30")}
      if ($akt <  15) {fhem("set FHT8Vtest valve 40")}
      if ($akt <  14) {fhem("set FHT8Vtest valve 50")}
      if ($akt <  13) {fhem("set FHT8Vtest valve 99")}
    }
  }
{fhem("setreading TH_Kueche tempbefore $akt")}
}

Titel: Aw: Leistungsabhängiges schalten von Geräten
Beitrag von: der-Lolo am 17 April 2023, 17:12:19
Es ist ein Shellyplug-S eingesetzt. Die Daten kommen via mqtt in FHEM an.
Titel: Aw: Leistungsabhängiges schalten von Geräten
Beitrag von: RalfRog am 17 April 2023, 17:45:10
Der Code von DL8EI zeigt doch schon nen Ansatz.
Der Trigger ist das Event welches die Änderung des Powerwertes vom Shelly auslöst.
Das lässt sich vermutlich gut in ein DOIF im Perl-Mode packen.
Ich denke der Vorteil DOIF ist, dass es Zustandsbasiert arbeitet.
Einmal Highpower >1000 Watt (oder welche Grenze auch immer) und einmal Lowpower < 100 Watt.

Titel: Aw: Leistungsabhängiges schalten von Geräten
Beitrag von: daedalus0815 am 26 April 2023, 21:38:31
TIPP....commandref-Beispiel: Da sollte man auf die fallende Flanke reagieren können.


Differenz

Es wird die Differenz zwischen dem letzten und dem x-ten zurückliegenden Wert berechnet.

Funktion: diff

Bsp.:

define temp_abfall DOIF ([outdoor:temperature:diff5] < -3) (set temp fall in temperature)

Wenn die Temperaturdifferenz zwischen dem letzten und dem fünftletzten Wert um mindestens drei Grad fällt, dann Anweisung ausführen.
Titel: Aw: Leistungsabhängiges schalten von Geräten
Beitrag von: der-Lolo am 01 Mai 2023, 20:56:47
Danke daedalus0815 -
mit diff funktioniert es ausgezeichnet!

Das ist für mich eine saubere Lösung - die Dauer des Peaks zum Wasseraufheizen der Spülmaschine hängt ja davon ab wie warm das Wasser ist was sie bekommt, irgendwelche krücken mit Zeiten wollte ich gerne umgehen. Um meine Lastkurve weiter hochfahren zu können brauche ich jedenfalls einen Trigger für die Waschmaschine ;) den habe ich jetzt Dank Dir!