hallo zusammen
benutze seit geraumer zeit fhem mit fritz7390
1xcul433mhz
1xcul868mhz
läuft alles super..........danke an alle die daran mitarbeiten
nun meine frage
ich möchte einen fs20 stecker anschalten
fs20st on = logfile fht80b actuator über 1% (oder mehr )geöffnet ist
um damit einen lüfter zu schalten
und
auszuschalten wenn der actuator 0% in dem logfile anzeigt plus eine
nachlaufzeit von +00:05:00 min
dies ist warscheinlich eine dumme frage für die die sich hiermit sehr gut auskennen
leider habe ich in den dokumentaionen keinen ähnlichen fall gefunden
vielleicht kann mir jemand helfen
gruß
andi
Hi,
das mit dem Nachlauf ist tricky, denn dafür muss ein separater Nachlauftimer gestartet werden:
define luefterschaltung notify fht80b:actuator.* { if ( %EVTPART1 > 0) { fhem("set luefter on") } else { if (defined($defs{nachlauf}) {fhem("delete nachlauf")}; fhem("define nachlauf at +00:05 set luefter off") } }
Kurze Erklärung:
fht80b steht hier für den Namen Deines FHT, musst Du ersetzen.
Wann immer eine actuator-Meldung vom fht kommt, wird geprüft:
- Ist der Gemeldete Wert > 0 (%EVTPART1)
- Falls ja, schalte den Lüfter an (Name musst Du ebenfalls ersetzen)
- Falls nein:
- prüfe, ob bereits ein Nachlauftimer existiert. Falls ja: löschen.
- definiere einen Nachlauftimer, der in 5 Minuten den luefter ausschaltet
Ungetestet und ohne Gewähr :)
Viel Erfolg,
Uli
Hallo,
sorry für die unbedarfte Frage aber ...
Zitat- prüfe, ob bereits ein Nachlauftimer existiert. Falls ja: löschen.
- definiere einen Nachlauftimer, der in 5 Minuten den luefter ausschaltet
Wird damit nicht jedesmal, wenn der FHT 0% meldet, der Timer neu gesetzt?
Ich müsst erstmal im Log schauen ob der actuator innert 5 Minuten gemeldet wird oder nicht.
Wenn ja müsste doch der Timer jedesmal gelöscht und neu gesetzt werden.
Wenn der actuator länger als 5 Minuten braucht sollte der Schnipsel funktionieren.
Grüße
Stimmt.
Der actuator kommt alle 2-3 Minuten.
Vll ist sogar die schlauere Variante, bei EVTPART > 0 einfach ein
set luefter on-for-timer 240
zu senden, dann entfällt auch gleich der off-Teil.
=8-)
Sorry Uli,
aber ich würde bei actuator = 0% ein on-for-timer 300 nachschieben und den
Lüfter damit dann noch 5 Minuten nachlaufen lassen ;-)
Grüße
Poah, Tante-Edith wo bleibst du ^^
Mein vorheriger Beitrag war auch Müll sorry.
Da der actuator ja alle 2-3 Minuten gesendet wird läuft der Lüfter dann vermutlich die ganze Zeit da ein
on-for-timer 300 immer wieder nachgeschoben wird.
Es wird wohl nichts um einen Dummy resp. eine Variable herum kommen um zu sehen das der actuator bereits >0% war und der Lüfter nur
einmal nachlaufen darf.
So ala:
if actuator > 0%
lüfter darf nachlaufen = 1
if actuator = 0% und Lüfternachlauf läuft
nix machen
if actuator = 0% und Lüfternachlauf vorbei
lüfter darf nachlaufen = 0
Die Variable müsste gesetzt werden wenn der actuator > 0% ist und sobald die Nachlaufzeit vorbei ist müsste die Variable wieder
zurück gesetzt werden.
Wie Uli schon schrieb:
Zitatdas mit dem Nachlauf ist tricky
Grüße
hey nette menschen
erstmal danke für die rege beteiligung
ich versuche auf dem ersten beitrag aufzubauen
und hoffe ich komme zu meinem ziel
lg
andi
Hallo,
auf Ulis Beitrag kannst du ruhig aufbauen.
Der Ansatz ist soweit einwandfrei.
Allerdings hat er ja auch erwähnt das der Nachlauf etwas tricky sein wird.
Daher wirst du wohl um einen Mehrzeiler nicht drum rum kommen.
define luefterschaltung notify fht80b:actuator.* {
if ( %EVTPART1 > 0) {
fhem("set luefter on") if (Value("luefter") ne "on");
}
if ( %EVTPART1 = 0) {
if (Value("luefter") ne "on-for-timer 300") {
fhem("set luefter on-for-timer 300");
}
}
}
Ebenfalls ungetestet.
Erläuterungen siehe Ulis Beitrag.
Achtung! Wenn du die Nachlaufzeit ändern willst musst du bei "on-for-timer 300" auf den neuen Wert stellen.
Grüße
define luefterschaltung notify fht80b:actuator.* {
if ( %EVTPART1 > 0) {
fhem("set luefter on") if (Value("luefter") ne "on");
}
if ( %EVTPART1 == 0) {
if (Value("luefter") eq "on") {
fhem("set luefter on-for-timer 300");
}
}
}
Und schon nen Fehler entdeckt.
Hi,
danke für Ideen von UliM und Puschel74!
Ich brauche das um eine Elektroheizung im Kinderzimmer zu steuern. Leider erhalte ich im Log immer folgendes:
2014.01.07 11:28:23 3: Heizstrahlerschaltung return value: syntax error at (eval 1268) line 1, near "% >"
Mein Notify sieht so aus:
define Heizstrahlerschaltung notify Temperaturfuehler_Vanessa:actuator.* { if ( %EVTPART1 > 0) { fhem("set Heizstrahler_Vanessa on") if(Value("Heizstrahler_Vanessa ") ne "on") } else { fhem("set Heizstrahler_Vanessa off") if(Value("Heizstrahler_Vanessa ") ne "off") } }
Laufen habe ich fhem auf der FB7390:
Fhem info:
Release : 5.4
Branch : DEVELOPMENT
OS : linux
Arch : mips-linux
Perl : v5.12.2
Kann mir jemand nen Tip geben was ich falsch mache?
Danke!
ebby
Sitze gerade beim Bäcker und sehe den Hundeparkplatz... Da kommt mir die Idee, wie es wäre, actuator 0% über einen Wachhund abzufangen, der erst zurückgesetzt wird, wenn der actuator >0% ist. Mit regexp1wontreactivate würden weitere 0%-Meldungen den internen Watchdog - Timer nicht stören.
Wär das ne Idee oder zu umständlich?
Gesendet von meinem GT-I9100 mit Tapatalk
Zitat von: OiledAmoeba am 07 Januar 2014, 12:28:54
Sitze gerade beim Bäcker und sehe den Hundeparkplatz... Da kommt mir die Idee, wie es wäre, actuator 0% über einen Wachhund abzufangen, der erst zurückgesetzt wird, wenn der actuator >0% ist. Mit regexp1wontreactivate würden weitere 0%-Meldungen den internen Watchdog - Timer nicht stören.
Wär das ne Idee oder zu umständlich?
Gesendet von meinem GT-I9100 mit Tapatalk
Ist dieser Thread und meine Anfrage im Anfängerbereich oder auf einmal im Klugscheißerbereich gelandet?
Ups, sorry.
Dachte, das wäre ne brauchbare Idee, die ich aber mangels PC zu dem Zeitpunkt nicht weiter ausführen konnte.
Dann eben nicht.
Gesendet von meinem GT-I9100 mit Tapatalk