Schaltsteckdose einschalten bei Stromüberschuss

Begonnen von laufhem, 10 Juli 2023, 09:20:25

Vorheriges Thema - Nächstes Thema

laufhem

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

xerion

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
Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

laufhem

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.

xerion

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.
Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

Damian

Entprellen kannst du beim DOIF im FHEM-Modus mit wait, siehe Beispiele dazu: https://fhem.de/commandref_DE.html#DOIF_wait
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Torxgewinde


laufhem

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