Zeitschaltuhr per AT funktioniert aber nicht

Begonnen von MichaelK-T, 25 März 2015, 10:33:30

Vorheriges Thema - Nächstes Thema

MichaelK-T

Hallo Gemeinde,

ich habe mal eine Frage und zwar habe ich eine Zeitschaltuhr für meine Pufferspeicher Pumpe angelegt sie soll Nachts um 03:00 Uhr aller x Minuten für x Minuten angehen aber sie tut es einfach nicht.
Kann mir vielleicht jemand sagen was ich für ein Fehler gemacht habe?

FHEM Config:
attr global userattr devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd SecurityCheck:\
\
WEB,WEBphone,WEBtablet has no basicAuth attribute.\
telnetPort has no password/globalpassword attribute.\
\
Restart FHEM for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\

attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify FRM_0:reinit.*|global:INITIALIZED|initialUsbCheck:addRegexpPart.* usb create
define OWio1 OWX /dev/ttyUSB0
attr OWio1 verbose 4
define OWX_10_E49DE7020800 OWTHERM DS1820 E49DE7020800
attr OWX_10_E49DE7020800 IODev OWio1
attr OWX_10_E49DE7020800 alias Heizung Rücklauf
attr OWX_10_E49DE7020800 model DS1820
attr OWX_10_E49DE7020800 room Heizungsraum
attr OWX_10_E49DE7020800 tempHigh 75
attr OWX_10_E49DE7020800 tempLow 70
define OWX_10_D216E7020800 OWTHERM DS1820 D216E7020800
attr OWX_10_D216E7020800 IODev OWio1
attr OWX_10_D216E7020800 alias Ofen Vorlauf
attr OWX_10_D216E7020800 loglevel 1
attr OWX_10_D216E7020800 model DS1820
attr OWX_10_D216E7020800 room Heizungsraum
attr OWX_10_D216E7020800 tempHigh 75
attr OWX_10_D216E7020800 tempLow 70
define OWX_10_CA1BE8020800 OWTHERM DS1820 CA1BE8020800
attr OWX_10_CA1BE8020800 IODev OWio1
attr OWX_10_CA1BE8020800 alias Heizung Vorlauf
attr OWX_10_CA1BE8020800 model DS1820
attr OWX_10_CA1BE8020800 room Heizungsraum
attr OWX_10_CA1BE8020800 tempHigh 75
attr OWX_10_CA1BE8020800 tempLow 70
define OWX_10_AE5EB5020800 OWTHERM DS1820 AE5EB5020800
attr OWX_10_AE5EB5020800 IODev OWio1
attr OWX_10_AE5EB5020800 alias Pufferspeicher
attr OWX_10_AE5EB5020800 model DS1820
attr OWX_10_AE5EB5020800 room Heizungsraum
attr OWX_10_AE5EB5020800 tempHigh 75
attr OWX_10_AE5EB5020800 tempLow 70
define OWX_10_3344B5020800 OWTHERM DS1820 3344B5020800
attr OWX_10_3344B5020800 IODev OWio1
attr OWX_10_3344B5020800 alias Boiler/Badewasser
attr OWX_10_3344B5020800 icon sani_supply_temp
attr OWX_10_3344B5020800 model DS1820
attr OWX_10_3344B5020800 room Heizungsraum
attr OWX_10_3344B5020800 tempHigh 75
attr OWX_10_3344B5020800 tempLow 70
define FileLog_OWX_10_D216E7020800 FileLog ./log/OWX_10_D216E7020800-%Y.log OWX_10_3344B5020800:temperature:.*|OWX_10_AE5EB5020800:temperature:.*|OWX_10_CA1BE8020800:temperature:.*|OWX_10_D216E7020800|OWX_10_D216E7020800:temperature:.*|OWX_10_E49DE7020800:temperature:.*
attr FileLog_OWX_10_D216E7020800 logtype text
attr FileLog_OWX_10_D216E7020800 room Heizungsraum
define SVG_FileLog_OWX_10_D216E7020800_1 SVG FileLog_OWX_10_D216E7020800:SVG_FileLog_OWX_10_D216E7020800_1:CURRENT
attr SVG_FileLog_OWX_10_D216E7020800_1 room Heizungsraum
define Pumpe_klein RPI_GPIO 2
attr Pumpe_klein direction output
attr Pumpe_klein poll_interval 5
attr Pumpe_klein room Heizungsraum
define Pumpe__Kreislauf_klein DOIF ([OWX_10_D216E7020800:temperature] > 30) (set Pumpe_klein on) DOELSE (set Pumpe_klein off)
attr Pumpe__Kreislauf_klein devStateIcon cmd_1:FS20.on cmd_2:FS20.off
attr Pumpe__Kreislauf_klein icon sani_pump
attr Pumpe__Kreislauf_klein room Heizungsraum
define Pumpe_Pufferspeicher RPI_GPIO 3
attr Pumpe_Pufferspeicher direction output
attr Pumpe_Pufferspeicher poll_interval 5
attr Pumpe_Pufferspeicher room Heizungsraum
define Puffer_automatisch DOIF ([OWX_10_D216E7020800:temperature] > 65) (set Pumpe_Pufferspeicher on) DOELSE (set Pumpe_Pufferspeicher off)
attr Puffer_automatisch devStateIcon cmd_1:FS20.on cmd_2:FS20.off
attr Puffer_automatisch icon sani_buffer_temp_all
attr Puffer_automatisch room Heizungsraum
define FileLog_Pumpe_Pufferspeicher FileLog ./log/Pumpe_Pufferspeicher-%Y.log Pumpe_Pufferspeicher|Pumpe_Pufferspeicher:state:.*|Pumpe_klein:Pinlevel:.*|Pumpe_klein:state:.*
attr FileLog_Pumpe_Pufferspeicher logtype text
attr FileLog_Pumpe_Pufferspeicher room Heizungsraum
define PumpePufferNachtStart at *03:00:00 {  { fhem("define PumpePufferNachtStart at +*{28}00:15:00 set Pumpe_Pufferspeicher on-for-timer 400") } }
attr PumpePufferNachtStart room Heizungsraum


Log im Zeitraum:
2015.03.24 03:00:00 3: define PumpePufferNachtStart at +*{28}00:15:00 set Pumpe_Pufferspeicher on-for-timer 400 : PumpePufferNachtStart already defined, delete it first
2015.03.24 03:00:00 3: PumpePufferNachtStart: PumpePufferNachtStart already defined, delete it first
2015.03.25 03:00:00 3: define PumpePufferNachtStart at +*{28}00:15:00 set Pumpe_Pufferspeicher on-for-timer 400 : PumpePufferNachtStart already defined, delete it first
2015.03.25 03:00:00 3: PumpePufferNachtStart: PumpePufferNachtStart already defined, delete it first


Ich denke das ich da was umbenennen muss oder?

Vielen Dank schon mal für eure Hilfe

Icinger

define PumpePufferNachtStart at *03:00:00 {  { fhem("define PumpePufferNachtStart at +*{28}00:15:00 set Pumpe_Pufferspeicher on-for-timer 400") } }

Du musst dem > fhem("define PumpePufferNachtStart at +*< einen anderen Namen geben, da du diesen Namen ja schon vergeben hast.

lg, Ici
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Hollo

Du benutzt den identischen Namen für das at um 3 Uhr und das damit definierte at für alle 15 Minuten.
Benenn das 2. mal z.B. auf PumpePufferNachtIntervall um und probier neu.

EDIT: Ici war schneller :-)
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

MichaelK-T

Vielen Dank es funktioniert.
Eine Frage habe ich noch wie bekomme ich das Temperaturabhängig geschallten? Sagen wir mal das wenn der Pufferspeicher z. B. nur noch 30 °C hat das die Zeitschaltuhr gar nicht erst an geht.

Danke schon mal im vorraus.

Gruß Micha

MichaelK-T

Hat keiner eine Idee?
Habe schon im Wiki gesucht aber leider nichts gefunden.... :-\

rudolfkoenig

Die Aufgabe, etwas zw. 3:00 und 10:00 auszufuehren geht auch mit einem einzigen at, wenn man das disabledForIntervals Attribut verwendet (Achtung, 2 Intervalle notwendig: 00:00-02:59 10:00-23:59).

Temperaturabhaengig kann man schalten, wenn man im Perl den Wert abfragt:
{ fhem("set Pumpe_Pufferspeicher on-for-timer 400") if(ReadingsNum("Pufferspeicher","temperature",10) > 30) }

Wenn man diese Zeile, wie im urspruenglichen Beispiel, innerhalb eines fhem() Aufrufes hinschreiben muss, dann muss man die " mit \" schuetzen, oder man verwendet im Aeusseren fhem() ' statt ". Das alles ist nicht notwendig, wenn man die Aufgabe mit einem at und disabledForIntervals loest.