Hallo,
ich habe ein Dummy Device angelegt mit attr setList state:time
jetzt möchte ich die Zeit die ich dort einstelle mit at verwenden, was leider nicht klappt.
Meine Zeile sieht so aus
define Wasser_Seite_Ein_Auto at +*{ Value("Ventil1Start") }
aber so mag at das nicht. Hat da einer ne Idee?
Die Fehlermeldung:
the at function "Value("Ventil3Start")" must return a timespec and not "???"
Danke
Nun, wer lesen kann ist immer im Vorteil.
Die Fehlermeldung besagt doch eindeutig, was der übergebene Wert sein sollte, nämlich eine Zeitangabe ähnlich "12:34". Und dass dem nicht so ist, sondern dass irgend etwas Anderes übergeben wird.
Klar ?
pah
Oh ja wer lesen kann ist klar im Vorteil, das stimmt.
ABER wenn ich im WEB Interface{ Value("Ventil1Start") } eingebe bekomme ich die Zeit angezeigt die ich auch eingestellt habe. Leider nicht wenn ich es so wie im ersten Posting eintrage.
Na ja aber danke
Nimm mal die Leerzeichen raus.
Das hatte ich auch schon versucht da ich das im Command ref gelesen habe.
Wie gesagt wenn ich das so in der Commando Zeile im Webinterface eintrage dann wird mir auch der Wert zb. 14.30 so angezeigt.
Zitatthe at function "Value("Ventil3Start")" must return a timespec and not "???"
dein code bezieht sich aber auf "Ventil1Start".
Zitat von: spacy am 16 Mai 2015, 10:55:37
Das hatte ich auch schon versucht da ich das im Command ref gelesen habe.
Wie gesagt wenn ich das so in der Commando Zeile im Webinterface eintrage dann wird mir auch der Wert zb. 14.30 so angezeigt.
Was zeigt:
list Ventil1Start
Zitat von: spacy am 16 Mai 2015, 10:55:37
Das hatte ich auch schon versucht da ich das im Command ref gelesen habe.
Wie gesagt wenn ich das so in der Commando Zeile im Webinterface eintrage dann wird mir auch der Wert zb. 14.30 so angezeigt.
Was hältst du davon eine korrekte Zeit abzulegen - Zeiten werden üblicherweise mit Doppelpunkt angegeben und nicht mit Punkt, also z. B. 14:30
Gruß
Damian
Ich lege die ZEIT nicht selber ab sondern das "setList state:time"
und da wird es richtig mit Doppelpunkt übergeben. Sorry mein Fehler hier im Text.
@Flurin das zeit list Ventil1Start
Internals:
CFGFN ./config/relay.cfg
NAME Ventil1Start
NR 92
STATE 00:00
TYPE dummy
Readings:
2015-05-11 12:12:59 state 00:00
Attributes:
alias Beregnung Start Seite
group Beregnung Seite
room Bewässerung
setList state:time
sortby 1
webCmd state
Zitat von: spacy am 17 Mai 2015, 09:40:10
Ich lege die ZEIT nicht selber ab sondern das "setList state:time"
und da wird es richtig mit Doppelpunkt übergeben. Sorry mein Fehler hier im Text.
@Flurin das zeit list Ventil1Start
Internals:
CFGFN ./config/relay.cfg
NAME Ventil1Start
NR 92
STATE 00:00
TYPE dummy
Readings:
2015-05-11 12:12:59 state 00:00
Attributes:
alias Beregnung Start Seite
group Beregnung Seite
room Bewässerung
setList state:time
sortby 1
webCmd state
Du darfst bei at keine Leerzeichen angeben, statt
define Wasser_Seite_Ein_Auto at +*{ Value("Ventil1Start") }
angeben:
define Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")}
Gruß
Damian
das hatte ich schon geändert.
Hier mal alles wie ich es stehen habe,
DEFINITION:
define Ventil1Start dummy
attr Ventil1Start alias Beregnung Start Seite
attr Ventil1Start group Beregnung Seite
attr Ventil1Start room Bewässerung
attr Ventil1Start setList state:time
attr Ventil1Start sortby 1
attr Ventil1Start webCmd state
define Ventil1Dauer dummy
attr Ventil1Dauer alias Beregnungs Dauer Seite
attr Ventil1Dauer group Beregnung Seite
attr Ventil1Dauer room Bewässerung
attr Ventil1Dauer setList state:time
attr Ventil1Dauer sortby 2
attr Ventil1Dauer webCmd state
define Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {if("Ventil1" eq "auto") {my $hm1 = Value("Ventil1Dauer") ;; fhem ("set relais Port5 on-for-timer $hm1") ;; Log 3, "Ventil 1 an"}}
FEHLER MELDUNG:
define Wasser_Seite_Ein_Auto Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {if("Ventil1" eq "auto") {my $hm1 = Value("Ventil1Dauer") ; fhem ("set relais Port5 on-for-timer $hm1") ; Log 3, "Ventil 1 an"}}: the at function "Value("Ventil1Start")" must return a timespec and not ???
Wie viele Antworten hat er jetzt benötigt, um endlich die vollständige Konfiguration zu posten ? :'(
Immer noch Mengen an Leerzeichen drin...
pah
Nach dem Definieren deines Ventil1Start Dummys musst du noch die Zeit setzen bevor das at erzeugt werden kann.
Zitat von: spacy am 17 Mai 2015, 11:20:26
das hatte ich schon geändert.
Hier mal alles wie ich es stehen habe,
DEFINITION:
define Ventil1Start dummy
attr Ventil1Start alias Beregnung Start Seite
attr Ventil1Start group Beregnung Seite
attr Ventil1Start room Bewässerung
attr Ventil1Start setList state:time
attr Ventil1Start sortby 1
attr Ventil1Start webCmd state
define Ventil1Dauer dummy
attr Ventil1Dauer alias Beregnungs Dauer Seite
attr Ventil1Dauer group Beregnung Seite
attr Ventil1Dauer room Bewässerung
attr Ventil1Dauer setList state:time
attr Ventil1Dauer sortby 2
attr Ventil1Dauer webCmd state
define Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {if("Ventil1" eq "auto") {my $hm1 = Value("Ventil1Dauer") ;; fhem ("set relais Port5 on-for-timer $hm1") ;; Log 3, "Ventil 1 an"}}
FEHLER MELDUNG:
define Wasser_Seite_Ein_Auto Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {if("Ventil1" eq "auto") {my $hm1 = Value("Ventil1Dauer") ; fhem ("set relais Port5 on-for-timer $hm1") ; Log 3, "Ventil 1 an"}}: the at function "Value("Ventil1Start")" must return a timespec and not ???
Versuchs mal zunächst so:
set Venti1Start 00:01
define Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {Log 3, "Ventil 1 an"}
Wenn das klappt, dann so:
set Ventil1Dauer 10
define Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {if(Value("Ventil1") eq "auto")
{my $hm1 = Value("Ventil1Dauer");; fhem("set relais Port5 on-for-timer $hm1");; Log 3, "Ventil 1 an"}}
if(Value("Ventil1") eq "auto")
Hmm ich weiß nicht ob ich mich falsch ausgedrückt habe.
Also es soll so sein das ich über das Webinterface per Schieberegler eine StartZeit Ventil1Start und eine Dauer Ventil1Dauer einstellen möchte.
Wenn dann die Zeit erreicht ist soll mit dem "at" ein Ventil "Ventil1" für eine Dauer gesetzt werden.
Aber egal wie ich es eintrage sagt mir das log immer das at mit dem Timespec nicht klar kommt. Frage ich den Value aber im Webinterface ab ist es in ordnung. Wenn da 14:30 eingestellt sind dann wird das auch so angezeigt.
@ Prof. Dr. Peter Henning, wenn Sie in irgent einer art helfen können würde ich mich sehr freuen.ABER wenn nicht dann spam bitte nicht nur kraftlose Kommentare. Danke
Ich weiss jetzt nicht ob das hilft, aber ein Versuch ist es vielleicht wert.
Ich habe Deinen Code komplett in meine Spar-Config des Dritt-FHEM-Raspies kopiert und genau Deine beschriebene Fehlermeldung bekommen. Danach habe ich alles außer der letzten Zeile kopiert. Anschließend habe ich durch Verschieben der unter "Bewässerung" neu aufgeführten Schieberegler für die beide Werte "Beregnung Start Seite" und "Beregnung Dauer Seite" Werte eingestellt und mit "+" gespeichert (?).
Dann wiederum in der Komandozeile unter FHEM die letzte Deiner Codezeilen eingegeben:
define Wasser_Seite_Ein_Auto at +*{Value("Ventil1Start")} {if("Ventil1" eq "auto") {my $hm1 = Value("Ventil1Dauer") ;; fhem ("set relais Port5 on-for-timer $hm1") ;; Log 3, "Ventil 1 an"}}
und es kam keine Fehlermeldung mehr.
Bin auch Laie und kann das nicht erklären, aber vielleicht fehlt in der Konfiguration einfach ein Startwert, um die letzte Zeile ausführen zu können.
at +*{Value("Ventil1Start")}
Value() liefert den state zurück, wenn nichts im state steht wird auch nichts zurückgegeben.
Mit ReadingsVal() kann auch ein Defaultwert bei nichtvorhandenen Abfragewert zurückgegen werden.
ReadingVal() wäre hier besser.
im state steht ja was drin und bei ReadingsVal kommt
the at function "ReadingsVal("Ventil1Start")" must return a timespec and not Not enough arguments for main::ReadingsVal at (eval 43162) line 1, near ""Ventil1Start")"
Steht doch in der Commandref die Syntax von ReadingsVal().
ReadingsVal("Device","Reading","Default")
also
at +*{ReadingsVal("Ventil1Start","state","00:01")}
Ich war mal so unverschämt und hab den Code in meine Testumgebung geprügelt.
Der Code funktioniert bei mir einwandfrei.
Ganz ohne Fehlermeldung oder irgendwelcher anderer Meldungen.
Egal ob ReadingsVal oder Value - wobei das Grundlagen sind die vorgängig angelernt/angelesen werden sollten.
Wie schon einige Male beschrieben müssen einfach nur VOR dem anlegen des at die Zeiten gesetzt sein.
Was dann vielleicht noch Fragen aufwerfen dürfte wäre der Ausführungszeitpunkt - aber das at wird NICHT durch ein neues setzen der Zeiten aktualisiert.
Dazu müsste das ganze in ein notify und das at daraus dann
a) entweder angelegt oder
b) modifiziert werden
Aber auch das wurde schon des öfteren erklärt und beschrieben.
Da die Fragestellung in meiner Testumgebung einwandfrei klappt - nach den Angaben in diesem Thread - lösch ich mal wieder alle Dummys.
@Puschel74: Bei mir funktionierte das ebenfalls schon vor einigen Stunden ohne Probleme. Ich nehme an, dass "spacy" die fünffach erteilten Ratschläge zur Reihenfolge der Definitionen einfach nicht befolgt hat.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 17 Mai 2015, 20:36:51
@Puschel74: Bei mir funktionierte das ebenfalls schon vor einigen Stunden ohne Probleme. Ich nehme an, dass "spacy" die fünffach erteilten Ratschläge zur Reihenfolge der Definitionen einfach nicht befolgt hat.
LG
pah
Nichts anderes habe ich erwartet/vermutet.
Da du aber tiefer in FHEM "blickst" wollte ich das ganze nur probieren ;)
Vielleicht hat er's einfach nicht kapiert? Wäre das schlimm?
Was ist daran nicht zu kapieren, dass man jemandem schreibt, er möge Zeiten festsetzen bevor das "at" definiert wird ?
pah
;)
Hmm noch mal, bin wohl zu blond um deinen Wegen zu folgen.
Wenn ich im Webinterface per schiebe Regeler eine Zeit festlege, ist sie dann nicht festgelegt?
Aber wie Puschel schon geschrieben hat, muss das dann wohl durch ein Notify passieren.
Naja danke
Ja eigentlich schon. Ich denke auch, dass die Ursache des Problems damit gelöst ist.
Zitat von: spacy am 18 Mai 2015, 08:49:23
Hmm noch mal, bin wohl zu blond um deinen Wegen zu folgen.
Wenn ich im Webinterface per schiebe Regeler eine Zeit festlege, ist sie dann nicht festgelegt?
Aber wie Puschel schon geschrieben hat, muss das dann wohl durch ein Notify passieren.
Naja danke
oder so definieren:
define Wasser_Seite_Ein_Auto DOIF( [+[Ventil1Start]] and [Ventil1] eq "auto") (set relais Port5 on-for-timer [Ventil1Dauer])
attr Wasser_Seite_Ein_Auto do always
DOIF erkennt im Gegensatz zu at eine Änderung des Dummys und setzt automatisch die neue Zeit. Hier braucht man kein notify zusätzlich um die Zeit zu stellen.
Gruß
Daman
Hallo,
Zum automatischen Update per DOIF habe ich auch nochmal eine Frage. Ich habe versucht das ganze jetzt so umzusetzen, jedoch wird die Aktion bei mir nicht ausgeführt. Hab ich irgendwo noch einen Fehler?
# Water morning
define time dummy
set time 13:18:00
define water3 DOIF ([[time]]) (define waterMorning at +*{6}00:00:10 set Steckdose.K5 on-for-timer 5)
bei mir wird die aktion so auch nicht ausgeführt. Leider gibt es auch keinen Log den ich dazu liefern könnte.
verbose auf 5 setzen und ins Log schauen?
schon passiert nichts zu sehen
Zitat von: gloob am 18 Mai 2015, 13:19:56
Hallo,
Zum automatischen Update per DOIF habe ich auch nochmal eine Frage. Ich habe versucht das ganze jetzt so umzusetzen, jedoch wird die Aktion bei mir nicht ausgeführt. Hab ich irgendwo noch einen Fehler?
# Water morning
define time dummy
set time 13:18:00
define water3 DOIF ([[time]]) (define waterMorning at +*{6}00:00:10 set Steckdose.K5 on-for-timer 5)
Genauso?
Bei Damian sehe ich zumindest noch ein Attribut was zu setzen ist:
attr Wasser_Seite_Ein_Auto do always
War ja quatsch mit dem do always.
Zumindest das erste mal geht das ganz wunderbar.
Einfach mal Deine 3 Zeilen (mit angepasster Zeit) per Copy & Paste in Fhem eingegeben
define time dummy
set time 17:25:00
define water3 DOIF ([[time]]) (define waterMorning at +*{6}00:00:10 set Steckdose.K5 on-for-timer 5)
und das DOIF triggerte um 17:25:00
Zitat von: maxritti am 18 Mai 2015, 17:27:49
War ja quatsch mit dem do always.
Zumindest das erste mal geht das ganz wunderbar.
Einfach mal Deine 3 Zeilen (mit angepasster Zeit) per Copy & Paste in Fhem eingegeben
define time dummy
set time 17:25:00
define water3 DOIF ([[time]]) (define waterMorning at +*{6}00:00:10 set Steckdose.K5 on-for-timer 5)
und das DOIF triggerte um 17:25:00
na ja, wenn möchte, dass das Modul nochmal den Befehl ausführt (auch mit neuer Zeitangabe), dann muss man schon do always setzen, denn es gibt ja nur den einen Zustand. Genaueres zu do always kann man in der Commanderf zu DOIF nachlesen.
Gruß
Damian
Hallo Damian,
danke für Deine Hilfe. Leider passiert nichts wenn ich das so eintrage wie Du es mir aufgetragen hast.
Wenn ich aber anstatt der Variable eine Feste Zeit eintrage dann funktionier es nicht. Hast du noch nen Tip für mich wo mein Fehler liegen könnte bzw wo bei mir in der Birne der Fehler legt.
Ich danke dir sehr für deine fachliche Hilfe
Gruß
Klaus
Zitat von: spacy am 18 Mai 2015, 18:48:58
Hallo Damian,
danke für Deine Hilfe. Leider passiert nichts wenn ich das so eintrage wie Du es mir aufgetragen hast.
Wenn ich aber anstatt der Variable eine Feste Zeit eintrage dann funktionier es nicht. Hast du noch nen Tip für mich wo mein Fehler liegen könnte bzw wo bei mir in der Birne der Fehler legt.
Ich danke dir sehr für deine fachliche Hilfe
Gruß
Klaus
Hallo Klaus,
damit wir hier nicht wieder raten müssen, was das Problem ist, brauchst du nur die Ausgabe von list <dein_doif_modul> hier zu posten, dann kann ich dir direkt sagen, wo das Problem liegt.
Gruß
Damian
Zitat von: gloob am 18 Mai 2015, 13:19:56
Hallo,
Zum automatischen Update per DOIF habe ich auch nochmal eine Frage. Ich habe versucht das ganze jetzt so umzusetzen, jedoch wird die Aktion bei mir nicht ausgeführt. Hab ich irgendwo noch einen Fehler?
# Water morning
define time dummy
set time 13:18:00
define water3 DOIF ([[time]]) (define waterMorning at +*{6}00:00:10 set Steckdose.K5 on-for-timer 5)
Für solche Fälle habe ich die Repeat-Funktion geschrieben.
define du_time dummy
set du_time 13:18
define du_interval dummy
set du_interval 10
define du_repeat dummy
set du_repeat 6
define di_repeat_cmd DOIF ([[du_time]] or [[du_repeat:time]])
(set Steckdose.K5 on-for-timer 5,
{set_repeat_time("du_repeat","du_interval")})
attr di_repeat_cmd do always
Repeat-Funktion siehe:
http://forum.fhem.de/index.php/topic,36814.0.html
(http://forum.fhem.de/index.php/topic,36814.0.html)
Gruss
flurin
Internals:
CFGFN ./config/relay.cfg
DEF ( [+[Ventil2Start]] and [Ventil2] eq "auto") (set relais Port5 on-for-timer [Ventil2Dauer])
NAME Wasser_Tropfschlauch_Ein_Auto
NR 109
NTFY_ORDER 50-Wasser_Tropfschlauch_Ein_Auto
STATE ???
TYPE DOIF
Readings:
2015-05-18 20:31:15 timer_1_c1 19.05.2015 14:56:15
Condition:
0 DOIF_time_once($hash->{timer}{0},$wday,"") and InternalDoIf('Ventil2','STATE','') eq "auto"
Days:
Devices:
0 Ventil2
all Ventil2
Do:
0 set relais Port5 on-for-timer [Ventil2Dauer]
Helper:
last_timer 1
sleeptimer -1
Internals:
0 Ventil2:STATE
all Ventil2:STATE
Itimer:
all Ventil2Start
Realtime:
0 14:56:15
State:
Time:
0 +[Ventil2Start]
Timecond:
0 0
Timer:
0 0
Timerfunc:
Timers:
0 0
Attributes:
so sieht es aus, also genauso wie auch beim at befehl den ich genutzt hatte im state sind drei ?
Wieso no.
Wenn ich nen list auf das Ventil2Start mache sieht das so aus
Internals:
CFGFN ./config/relay.cfg
NAME Ventil2Start
NR 104
STATE 18:25
TYPE dummy
Readings:
2015-05-18 18:23:49 state 18:25
Attributes:
alias Beregnung Start Tropfschlauch
group Tropfschlauch
room Bewässerung
setList state:time
webCmd state
Genau die Uhrzeit die ich per Regler im Web einstelle. Und das verstehe ich nicht.
Und so sieht es aus wenn die Ventil2 Auto = True ist
Internals:
CFGFN ./config/relay.cfg
DEF ( [+[Ventil2Start:state]] and [Ventil2] eq "auto") (set relais Port5 on-for-timer [Ventil2Dauer])
NAME Wasser_Tropfschlauch_Ein_Auto
NR 109
NTFY_ORDER 50-Wasser_Tropfschlauch_Ein_Auto
STATE cmd_2
TYPE DOIF
Readings:
2015-05-18 20:41:45 cmd_event Ventil2
2015-05-18 20:41:45 cmd_nr 2
2015-05-18 20:41:45 e_Ventil2_STATE Auto
2015-05-18 20:41:45 state cmd_2
2015-05-18 20:37:41 timer_1_c1 19.05.2015 15:02:41
Condition:
0 DOIF_time_once($hash->{timer}{0},$wday,"") and InternalDoIf('Ventil2','STATE','') eq "auto"
Days:
Devices:
0 Ventil2
all Ventil2
Do:
0 set relais Port5 on-for-timer [Ventil2Dauer]
Helper:
last_timer 1
sleeptimer -1
Internals:
0 Ventil2:STATE
all Ventil2:STATE
Itimer:
all Ventil2Start
Readings:
Realtime:
0 15:02:41
State:
Time:
0 +[Ventil2Start:state]
Timecond:
0 0
Timer:
0 0
Timerfunc:
Timers:
0 0
Trigger:
Attributes:
Zitat von: spacy am 18 Mai 2015, 20:34:07
Internals:
CFGFN ./config/relay.cfg
DEF ( [+[Ventil2Start]] and [Ventil2] eq "auto") (set relais Port5 on-for-timer [Ventil2Dauer])
NAME Wasser_Tropfschlauch_Ein_Auto
NR 109
NTFY_ORDER 50-Wasser_Tropfschlauch_Ein_Auto
STATE ???
TYPE DOIF
Readings:
2015-05-18 20:31:15 timer_1_c1 19.05.2015 14:56:15
Condition:
0 DOIF_time_once($hash->{timer}{0},$wday,"") and InternalDoIf('Ventil2','STATE','') eq "auto"
Days:
Devices:
0 Ventil2
all Ventil2
Do:
0 set relais Port5 on-for-timer [Ventil2Dauer]
Helper:
last_timer 1
sleeptimer -1
Internals:
0 Ventil2:STATE
all Ventil2:STATE
Itimer:
all Ventil2Start
Realtime:
0 14:56:15
State:
Time:
0 +[Ventil2Start]
Timecond:
0 0
Timer:
0 0
Timerfunc:
Timers:
0 0
Attributes:
so sieht es aus, also genauso wie auch beim at befehl den ich genutzt hatte im state sind drei ?
Wieso no.
Wenn ich nen list auf das Ventil2Start mache sieht das so aus
Internals:
CFGFN ./config/relay.cfg
NAME Ventil2Start
NR 104
STATE 18:25
TYPE dummy
Readings:
2015-05-18 18:23:49 state 18:25
Attributes:
alias Beregnung Start Tropfschlauch
group Tropfschlauch
room Bewässerung
setList state:time
webCmd state
Genau die Uhrzeit die ich per Regler im Web einstelle. Und das verstehe ich nicht.
Ist ganz einfach. Mit dem Pluszeichen setzt du den Timer
um 18 Stunden und 35 Minuten weiter (wie du es auch bei at definiert hast). Die Schaltzeit ist dann 14:56:15 (siehe Realtime). Wenn du die Zeit absolut haben willst also 18:25 Uhr, dann musst du das Pluszeichen weglassen. Ausführliche Informationen zu Zeitangaben (das sind einige mehr als bei at) solltest du genau in der Commandref zu DOIF durchlesen, wenn du das Modul nutzen willst.
also: ... ([[Ventil2Start]] and [Ventil2] eq "auto")...
Gruß
Damian
Vielen Danke für deine Hilfe Damin.
Haut jetzt so weit hin ;)
habe mir dann noch mal das Command.ref angesehen und wollte dann eine Abschaltzeit mit OffTime erzeugen.
Die "list" Ausgabe sieht so aus
Internals:
CFGFN ./config/relay.cfg
DEF ([[Ventil2Start]-[Ventil2Dauer]] and [Ventil2] eq "Auto") (set relais PortA6 on, set end {(OffTime("[Ventil2Start]"))}) DOELSE (set relais PortA6 off)
NAME Wasser_Tropfschlauch_Ein_Auto
NR 111
NTFY_ORDER 50-Wasser_Tropfschlauch_Ein_Auto
STATE cmd_1
TYPE DOIF
Readings:
2015-05-19 10:30:00 cmd_event timer_1
2015-05-19 10:30:00 cmd_nr 1
2015-05-19 10:26:43 e_Ventil2_STATE Auto
2015-05-19 10:30:00 error Undefined subroutine &main::OffTime called at (eval 547) line 1.
2015-05-19 10:30:00 state cmd_1
2015-05-19 10:30:00 timer_1_c1 20.05.2015 10:30:00
2015-05-19 10:26:40 timer_2_c1 20.05.2015 00:10:00
Condition:
0 DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('Ventil2','STATE','') eq "Auto"
Days:
Devices:
0 Ventil2
all Ventil2
Do:
0 set relais PortA6 on, set end {(OffTime("[Ventil2Start]"))}
1 set relais PortA6 off
Helper:
last_timer 2
sleeptimer -1
Internals:
0 Ventil2:STATE
all Ventil2:STATE
Itimer:
all Ventil2Start Ventil2Dauer
Readings:
Realtime:
0 10:30:00
1 00:10:00
State:
Time:
0 [Ventil2Start]
1 [Ventil2Dauer]
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timerfunc:
Timers:
0 0 1
Trigger:
Attributes:
Es gibt einen Error in der Subroutine mit OffTime.
Liegt das etwa an der Version von Fhem die ich nutze?
Fhem info:
Release : 5.6
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.14.2
uniqueID : 6e33f79a0106deabf76c07c646d1ac6b
upTime : 00:25:38
Defined modules:
CALVIEW : 1
CUL : 1
CUL_FHTTK : 4
CUL_HM : 19
CUL_WS : 2
Calendar : 2
DOIF : 1
Dashboard : 3
FHEMWEB : 3
FHT : 4
FS20 : 5
FileLog : 43
HMLAN : 1
Heating_Control : 4
I2C_MCP23008 : 1
PRESENCE : 7
RPII2C : 1
RPI_GPIO : 5
SVG : 13
Text2Speech : 1
Weather : 1
at : 33
dummy : 58
notify : 55
readingsGroup : 1
telnet : 1
watchdog : 7
weblink : 9
Defined models per module:
CUL : CUL
CUL_HM : ActionDetector,HM-LC-BL1-FM,HM-LC-SW4-DR,HM-SEC-SC,HM-SEC-SD,HM-SEC-SDTeam,HM-Sen-MDIR-O
CUL_WS : S300TH
FS20 : fs20bs,fs20rcu
danke
Zitat von: spacy am 19 Mai 2015, 10:48:14
Vielen Danke für deine Hilfe Damin.
Haut jetzt so weit hin ;)
habe mir dann noch mal das Command.ref angesehen und wollte dann eine Abschaltzeit mit OffTime erzeugen.
Offtime musst du schon selbst in Perl programmieren. Wenn deine Ausschaltzeit einfach über den Dummy angegeben wird, dann brauchst du auch nichts dynamsich über ausgelagerte Perl-Funktionen zu berechnen.
Es reicht dann:
([[Ventil2Start]-[Ventil2Dauer]] and [Ventil2] eq "Auto") (set relais PortA6 on) DOELSE (set relais PortA6 off)
Gruß
Damian