Ich möchte abhängig von einem Dummy in der Zeit von 18:00 bis 23:00 eine Steckdose schalten wenn ein Schalter aktiviert wurde und brauch dazu eine einfache IF Anweisung
Der Dummy hat den Namen: Freigabe
Den Schalter hat den Namen: SchalterTuer
Die Steckdose bez. ich: HM_Steckdose
Habe schon einiges probiert, bekomme des aber nicht hin
define TimeAktiviert *18.00 set HM_Steckdose on
dieser Befehl funktioniert. Auch das notify funktioniert wenn ich des einzeln definiere.
Hat jemand eine Idee?
Danke
Jakob
Zitat von: Jak am 03 Oktober 2015, 16:49:13
Hat jemand eine Idee?
schau dir doch mal http://fhem.de/commandref.html#DOIF (http://fhem.de/commandref.html#DOIF) an
Danke für die schnelle Antwort.
Mir sind aber die vielen Variablen die ich hier vorgeben kann zu kompliziert und hoffe auf ein konkretes Beispiel.
Vielleicht kann mir da nochmals jemand helfen, da ich anscheinend die letzen zwei Stunden immer wieder Fehler eingebaut hatte in die Pearl Syntax
Danke
Jakob
Hier mal ein Beispiel von mir, daraus kannst du den Code für dich einfach ableiten
Schalter_Tuer:open { if(!isday() && $hour ~~ [17..24]) { fhem "set Licht_SZ on-for-timer 120" } }
VG
Frank
Ok
Vielen Dank für den Versuch. Für einen Anfaenger wie mich sind da zu viele Variablen und Sonderzeichen enthalten.
Ich hoffe es gibt noch was einfacheres für mich
Danke
Jakob
da auch ich ein Freund von DOIF bin, will ich deine Verwirrung mal komplett machen :D
Ein DOIF könnte für deine Zwecke in etwa so aussehen:
define Nenn_es_wie_du_willst DOIF ([Zeitvon - Zeitbis] and [SchalterTür:state] eq "on")(set Steckdose on]
Das schaltet deine Steckdose ein.
Wie Du sie wieder aus bekommst, steht in der Commandref.
Tu dir selbst den Gefallen und lies dich in das Thema ein, Variablen hin oder her.
Du kannst nicht auf Dauer erwarten, das dir alles auf dem Silbertablett serviert wird. ;)
vb
define n_Steckdose notify SchalterTuer:on { fhem 'set HM_Steckdose on' if (Value('Freigabe') eq 'on' && $HMS gt '18:00:00' && $HMS lt '23:00:00') }
Ungetestet. Und auch nicht ohne Variablen :)
Zitat von: Jak am 03 Oktober 2015, 16:49:13
define TimeAktiviert *18.00 set HM_Steckdose on
dieser Befehl funktioniert.
Wohl kaum - da fehlt das "at".
Gruß + viel Erfolg,
Uli
Und jetzt ist der Lerneffekt futsch ... ;)
VG
Frank
Vielen Dank an euch zwei.
Des hilft mir weiter und ich kann jetzt drauf aufbauen.
Würde es nur noch einmal konkret machen:
define LichtAktivieren DOIF ([18:00-22:00] and [SchalterTuer:state] eq "on")(set Steckdose on)
Passt des so??
Verspreche auch, zu diesem Thema keine Frage mehr zu stellen.
Brauche immer etwas Zeit um mich an die Syntax zu gewoehnen
Uli
Danke
Du hast natürlich recht, da fehlt at
Danke
Jakob
so sieht das gut aus, ja.
Dein Schalter sollte den passenden state liefern, das bekommst du aber leicht raus.
Wenn ich dich recht verstanden habe, soll deine Steckdose um 22:00 wieder "off" gehen, oben steht also nur die halbe Miete.
Und Fragen sollst du sehr gern stellen, aber bitte keine, die du mit ein wenig eigenem Fleiß selbst beantworten kannst ;)
vb
Zitat von: Jak am 03 Oktober 2015, 19:00:03
Vielen Dank an euch zwei.
Des hilft mir weiter und ich kann jetzt drauf aufbauen.
Würde es nur noch einmal konkret machen:
define LichtAktivieren DOIF ([18:00-22:00] and [SchalterTuer:state] eq "on")(set Steckdose on)
Passt des so??
Verspreche auch, zu diesem Thema keine Frage mehr zu stellen.
Brauche immer etwas Zeit um mich an die Syntax zu gewoehnen
Warum probierst du es einfach nicht aus?
Ich habe im DOIF-Modul einen Syntax-Check bei der Eingabe über die Kommandozeile eingebaut (nicht in der cfg editieren), wenn die Syntax nicht stimmt wird eine entsprechende Meldung ausgegeben.
Und wenn die Definition steht, wirst du sehen, was zur gegebenen Zeit passiert oder nicht passiert - dein Haus wird schon stehen bleiben und FHEM wird auch nicht explodieren.
Also einfach mal ausprobieren. Und du musst auch nicht bis 18:00 Uhr warten, wenn du eine andere Zeit einstellst ;)
Gruß
Damian
Zitat von: Jak am 03 Oktober 2015, 19:00:03
define LichtAktivieren DOIF ([18:00-22:00] and [SchalterTuer:state] eq "on")(set Steckdose on)
Passt des so??
Zitat von: Jak
Die Steckdose bez. ich: HM_Steckdose
ohne Umbenennung der Steckdose sollte es also leider nicht funktionieren
An Alle die hier geholfen haben Vielen Dank. Des funktioniert
Danke
Jakob