at zu einer Variablen Zeit

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

Vorheriges Thema - Nächstes Thema

duke-f

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.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

stromer-12

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.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

spacy

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

stromer-12

Steht doch in der Commandref die Syntax von ReadingsVal().

ReadingsVal("Device","Reading","Default")

also

at +*{ReadingsVal("Ventil1Start","state","00:01")}
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Prof. Dr. Peter Henning

@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

Puschel74

#21
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  ;)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

duke-f

Vielleicht hat er's einfach nicht kapiert? Wäre das schlimm?
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Prof. Dr. Peter Henning

Was ist daran nicht zu kapieren, dass man jemandem schreibt, er möge Zeiten festsetzen bevor das "at" definiert wird ?

pah

duke-f

Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

spacy

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

duke-f

Ja eigentlich schon. Ich denke auch, dass die Ursache des Problems damit gelöst ist.
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

Damian

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

gloob

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)
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

spacy

bei mir wird die aktion so auch nicht ausgeführt. Leider gibt es auch keinen Log den ich dazu liefern könnte.