FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AK-868 am 18 Februar 2016, 20:59:44

Titel: define at +00:00:15 usw. Verzweiflung
Beitrag von: AK-868 am 18 Februar 2016, 20:59:44
Hallo zusammen,

ich bastel jetzt schon eine weile herum, kann mir jemand einen Denkanstoß verpassen?

Ich habe eine Steckdose mit Leistungsmessung.

Jetzt möchte ich ausschalten wenn der verbrauch über 0,25 und unter 2 Watt liegt und nach 15 sec nochmal geprüft wird ob es passt. Soweit so gut nur.... Die zweite verzögerte Prüfung.

Folgendes klappt leider nicht. Hab auch schon mit watchdog rumprobiert...  >:(



define ntfyasTrockner notify senPwr_as_Trockner power:.* {\
if ("$EVENT" < "2" && "$EVENT" > "0.25") {\
define verzoegert_Trockneraus at +00:00:15 if (ReadingsVal("senPwr_as_Trockner power", "state", "2") < "2") {set as_Trockner on-for-timer 60;;;;setstate Trockner Fertig;;;;set DroidAndre ttsSay Der  Trockner ist Fertig}")};;\
}\
}
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: Bennemannc am 18 Februar 2016, 21:33:39
Hallo,

irgendwie verstehe ich die zweite Prüfung nicht, wenn Du abgeschaltet hast kann da nur 0 kommen, und das wäre unter 0,25W ... und dann ?
Ich würde für so etwas THRESHOLD nehmen. Da kann man die Schaltgrenze und die Hysterese einstellen. Ich nutze das um festzustellen ob die Waschmaschine noch läuft. Ich habe das auch schon mal genutzt, um abzuschalten wenn das IPad geladen war (unter 1W).
Das ReadingsVal kann so nicht richtig sein - ("sensPwr_as_Trockner","power","3") sollte passen.

Gruß Christoph
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: AK-868 am 19 Februar 2016, 17:37:45
Hi, danke für die Antwort,

dann soll er ja eben gar nichts machen, wenn der Wert unter den 0,25 ist.
HMlan traffic sparen.

Threshold schau ich mir mal an. Danke für den Hinweis.

Ich hab den Trockner da ja nun dran hängen. Wenn ich den Aktor einschalte, werden auch gleich die Events generiert. Eben mit unter zwei Watt. Dann macht er wieder aus, deshalb die verzögerte Abfrage.

Gruß
Andre
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: Sinus am 21 Februar 2016, 23:32:23
Hallo,

veruche es doch mal mit einem DOIF  (ungetestet)

define DI_Trockner DOIF ([senPwr_as_Trockner:power] > 0.25 and [senPwr_as_Trockner:power] < 2) (set was auch immer Befehl1) (set was auch immer Befehl2) (set was auch immer Befehl3)
Wichtig ist das attr DI_Trockner wait 60 Dadurch wird erst ausgelöst wenn der Zustand eine Minute anhält.

Gruß
Sinus
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: ph1959de am 22 Februar 2016, 07:10:05
Das seit Monaten funktionierende DOIF für eine PCA301 Zwischensteckdose:
([pca02:power]<8.5) (set pca02 off)

Dazu das wait Attribut auf die gewünschte Verzögerungszeit setzen ... führt dazu, dass:

    pca02 ausgeschaltet wird, wenn der Verbrauch für mehr als x Sekunden unter 8.5 Watt liegt

Peter
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: chris1284 am 22 Februar 2016, 07:40:07
wie sieht den das aus dem notify erstellt at aus in fhem?
was sagt das log?
editiere lieber nicht in der cfg sondern über das webif. ich meine es sind syntax-fehler ( einige falsche / fehlende  ;  { und fehlende escapes )
Zitat
define ntf_Trockner notify senPwr_as_Trockner power:.* {
   if("$EVENT" < "2" && "$EVENT" > "0.25") {
      fhem("define at_Trockneraus at +00:00:15 { if(ReadingsVal(\"senPwr_as_Trockner power\", \"state\", \"2\") < \"2\") {
         set as_Trockner on-for-timer 60; setstate Trockner Fertig; set DroidAndre ttsSay Der Trockner ist Fertig}")};
   }
}

doif wäre sicher einfacher
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: CoolTux am 22 Februar 2016, 08:29:55
Ich mache ja wirklich wenig mit DOIF, aber ich gebe meinen Vorrednern Recht. DOIF ist hier the best Practice


Internals:
   DEF        ([GeschirrspuelerVerbrauchsanzeige:power]>30) (set GeschirrspuelerBetriebDummy on) DOELSEIF ([GeschirrspuelerVerbrauchsanzeige:power]<1.5) (set GeschirrspuelerBetriebDummy off) DOELSEIF ([GeschirrspuelerVerbrauchsanzeige:power]<2.5) (set GeschirrspuelerBetriebDummy dry)

Attributes:
   wait       60:300:300
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: AK-868 am 24 Februar 2016, 15:38:50
Hi,

Kannst du mir erklären wofür die ganzen \ sind?
Mir noch nicht schlüssig.

Vielen DANK!

Grüße Andre

Zitat von: chris1284 am 22 Februar 2016, 07:40:07
wie sieht den das aus dem notify erstellt at aus in fhem?
was sagt das log?
editiere lieber nicht in der cfg sondern über das webif. ich meine es sind syntax-fehler ( einige falsche / fehlende  ;  { und fehlende escapes )
doif wäre sicher einfacher
Titel: Antw:define at +00:00:15 usw. Verzweiflung
Beitrag von: CoolTux am 24 Februar 2016, 16:23:44
Damit escapst Du Sonderzeichen.