FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Chris_XXX am 21 Juli 2019, 11:57:40

Titel: [Gelöst] - if sleep - Takten verhindern
Beitrag von: Chris_XXX am 21 Juli 2019, 11:57:40
Hallo zusammen,

ich möchte in Abhängigkeit der Leistung meiner PV Anlage eine Steckdose schalten. Allerdings soll das ganze nicht takten. Dazu habe ich in meine if Bedingung ein Sleep eingebaut. Und zwar soll die Steckdose mindestens 30min aus bleiben wenn die Leistung einen bestimmten Wert unterschritten hat. Umgesetzt habe ich das so:

defmod nt_PV_Energie_da_S26_01_on notify Stromzaehler1:16.7_aktuelle_Leistung.* {if ($EVTPART1 > -200 ) {fhem("set sonoff_S26_01 off,sleep 1800")} else\ \
{if ($EVTPART1 < -1500 ) { fhem("set sonoff_S26_01 on")};; } }


Der schöne sleep hat aber dazu geführt dass gar nix mehr passiert. Bekommt man das irgendwie in dieser Art und Weise hin oder bin ich da komplett auf dem Holzweg?

Viele Grüße
Christian
Titel: Antw:if sleep - Takten verhindern
Beitrag von: CoolTux am 21 Juli 2019, 12:24:54
Ein FHEM sleep ohne Folgebefehl ist Unsinn. Was genau soll denn nach 30 min passieren?
Soll er min 30min off bleiben auch wenn er nach > -200 gleich auf < -1500 geht und somit on?
Titel: Antw:if sleep - Takten verhindern
Beitrag von: Chris_XXX am 21 Juli 2019, 12:29:19
Ja genau, ich will erreichen dass das Gerät nicht gleich wieder an ist. Kommt ja manchmal vor das eine Wolke umher schwirrt die dazu führt das es im 10sekunden takt geschaltet wird.
Titel: Antw:if sleep - Takten verhindern
Beitrag von: CoolTux am 21 Juli 2019, 12:56:36
Soll das selbe für on auch gelten? Dann schau Dir das Attribut disabledAfterTrigger an wenn nicht müsstest Du in der > - 200 Bedingung vor dem sleep ein set $self inactive und nach dem sleep ein set $self active machen.
Titel: Antw:if sleep - Takten verhindern
Beitrag von: Chris_XXX am 21 Juli 2019, 13:12:26
Das soll nur beim ausschalten der Fall sein.
Jetzt habe ich es umgebaut:

efmod nt_PV_Energie_da_S26_01_on notify Stromzaehler1:16.7_aktuelle_Leistung.* {if ($EVTPART1 > -200 ) {fhem("set sonoff_S26_01 off,set $SELF inactive,sleep 600,set $SELF active")} else\ \
{if ($EVTPART1 < -1500 ) { fhem("set sonoff_S26_01 on")};; } }


Hat ihn recht wenig beeindruckt. Hat den gleichen Effekt wie der sleep. Er macht nix mehr.
In Kleinbuchstaben wollte er das $self übrigens nicht.
Titel: Antw:if sleep - Takten verhindern
Beitrag von: CoolTux am 21 Juli 2019, 13:17:11
Was genau meinst Du mit er macht nix mehr?
FHEM hängt? Webinterface nicht mehr erreichbar?
Titel: Antw:if sleep - Takten verhindern
Beitrag von: CoolTux am 21 Juli 2019, 13:20:00
defmod nt_PV_Energie_da_S26_01_on notify Stromzaehler1:16.7_aktuelle_Leistung.*  {
                     if ( $EVTPART1 > -200 ) {
                          fhem("set sonoff_S26_01 off; set $SELF inactive; sleep 600; set $SELF active");
                     }
                     elsif ( $EVTPART1 < -1500 ) {
                          fhem("set sonoff_S26_01 on");
                      }
   }


Versuche bitte einmal genau so.
Titel: Antw:if sleep - Takten verhindern
Beitrag von: Chris_XXX am 21 Juli 2019, 13:53:15
Hey, das scheint zu funktionieren  ;D ;D ;D
Vielen Dank.
Aber lass mich nicht dumm sterben, warum?
Titel: Antw:if sleep - Takten verhindern
Beitrag von: CoolTux am 21 Juli 2019, 13:58:15
Gute Frage. Entweder die , oder die zu vielen ; oder das else if Konstrukt. Kann leider nicht testen, muss gerade mein 5 Noce Proxmox Cluster upgraden. Keine Testumgebung daher.