at zu einer Variablen Zeit

Begonnen von spacy, 15 Mai 2015, 14:18:45

Vorheriges Thema - Nächstes Thema

spacy

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

Prof. Dr. Peter Henning

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

spacy

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

stromer-12

Nimm mal die Leerzeichen raus.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

spacy

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.

frank

Zitatthe at function "Value("Ventil3Start")" must return a timespec and not "???"
dein code bezieht sich aber auf "Ventil1Start".
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

flurin

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




Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

spacy

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

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

spacy

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 ???

Prof. Dr. Peter Henning

Wie viele Antworten hat er jetzt benötigt, um endlich die vollständige Konfiguration zu posten ?  :'(

Immer noch Mengen an Leerzeichen drin...

pah

stromer-12

Nach dem Definieren deines Ventil1Start Dummys musst du noch die Zeit setzen bevor das at erzeugt werden kann.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

flurin

#13
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")

spacy

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