FHEM Forum

FHEM => Automatisierung => Thema gestartet von: laufhem am 10 Juli 2023, 09:20:25

Titel: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: laufhem am 10 Juli 2023, 09:20:25
Guten Morgen,

ich möchte eine Shelly1 Schaltsteckdose einschalten, wenn mein Balkonkraftwerk Überschuss liefert -  also mein Stromverbrauch negativ ist (z.B. <40W für 5 Sekunden).
Wenn der Stromverbrauch wieder positiv ist (z.B. >20W für 10 Sekunden), soll das Ganze wieder abgeschaltet werden.

Den Stromzähler inklusive aktuellen Verbrauch habe ich als Device "Stromzaehler", Reading "power" bereits vorliegen.
Auch der Shelly ist als Device "Schaltsteckdose" bereits eingebunden.

Ich habe allerdings gerade keinen Ansatzpunkt, wie die logische Verknüpfung/Steuerung inklusive Entprellzeiten am Besten umgesetzt werden kann und hoffe auf Eure Hilfe.

Danke
Titel: Aw: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: xerion am 10 Juli 2023, 10:30:15
Wenn du es einfach halten willst, dann kannst du dir DOIF am besten anschauen. Das wäre da verhältnismäßig einfach mit umgesetzt
Falls du mit dem Gedanken spielst es zu erweitern und auch mit einer Vorhersage zu kombinieren dann lese dich am besten hier mal ein: https://forum.fhem.de/index.php?topic=117864.0
Titel: Aw: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: laufhem am 10 Juli 2023, 11:11:11
OK, ich würde es für den Start gerne einfach halten.

Zunächst mal bleibt aber mein einfachstes DOIF im "initialized" hängen und schaltet schon gar nicht ein. Könnt ihr mir sagen, warum?

defmod Stromueberschuss_Start DOIF { if ( [Stromzaehler:power] < -40 ) { set Schaltsteckdose on } };
Und wenn das geklärt ist: Wie bringe ich die Zeitentprellung mit rein?
Ich muss ja sicherstellen, dass während der 5s der Stromverbrauch nie über -40W ansteigt.

Danke für Eure Hilfe.
Titel: Aw: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: xerion am 10 Juli 2023, 11:35:35
Zitat von: laufhem am 10 Juli 2023, 11:11:11OK, ich würde es für den Start gerne einfach halten.

Zunächst mal bleibt aber mein einfachstes DOIF im "initialized" hängen und schaltet schon gar nicht ein. Könnt ihr mir sagen, warum?

defmod Stromueberschuss_Start DOIF { if ( [Stromzaehler:power] < -40 ) { set Schaltsteckdose on } };
Und wenn das geklärt ist: Wie bringe ich die Zeitentprellung mit rein?
Ich muss ja sicherstellen, dass während der 5s der Stromverbrauch nie über -40W ansteigt.

Danke für Eure Hilfe.

Das liegt daran das du Perl und DOIF mischt. Ich denke die Fragen solltest du besser in dem Bereich Anfängerfragen stellen, falls du es aus der Doku nicht selber heraus gelesen bekommst.
Titel: Aw: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: Damian am 10 Juli 2023, 11:49:28
Entprellen kannst du beim DOIF im FHEM-Modus mit wait, siehe Beispiele dazu: https://fhem.de/commandref_DE.html#DOIF_wait
Titel: Aw: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: Torxgewinde am 10 Juli 2023, 11:59:24
Ich habe es ähnlich gemacht, hier ist der Codeschnipsel dazu: https://forum.fhem.de/index.php?topic=133128.0 (https://forum.fhem.de/index.php?topic=133128.0)
Titel: Aw: Schaltsteckdose einschalten bei Stromüberschuss
Beitrag von: laufhem am 10 Juli 2023, 15:11:01
Danke für die ganzen Hinweise. Manchmal kann es so einfach sein:

define Stromueberschuss_Start DOIF  ( [Stromzaehler:power:avg10] < -40 ) ( set Schaltsteckdose on );
define Stromueberschuss_Stop DOIF  ( [Stromzaehler:power:avg30] > 10 ) ( set Schaltsteckdose off );