Temperaturgesteuerte Zeitschaltuhr

Begonnen von Kitt, 22 September 2017, 14:20:21

Vorheriges Thema - Nächstes Thema

Kitt

Hallo an alle,

ich würde würde gerne eine Zeitschaltuhr ab einer gewissen Temperatur einschalten und unterhalt dieser
Temperatur ausschalten (um damit eine Elektroheizung zu betreiben).

Da der Sensor gelegentlich falsche Werte produziert, würde ich die Zeitschaltuhr gerne erst ansteuern, wenn
der Temperaturwert 2x erreicht wird.

Außerdem soll die Zeitschaltuhr nachts (ab 22 Uhr) generell aus bleiben.

Kann mir da jemand von euch mit dem Code helfen?

Viele Grüße

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

jkriegl

Wann soll es in der Frühe los gehen?
Lies mal bei DOIF da kannst Du was basteln wie
([06:00-22:00] and [sensor:temperatur] < 21)
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Kitt

#3
Ok, bitte nicht lachen. Das hier hab ich als Code, natürlich funktioniert es nicht. Außerdem ist die Abschaltzeit während der Nacht nicht eingebaut

Liebe Grüße

Internals:
   CFGFN
   DEF        ([Sensor:Temperature] < 20) (set Heizung=STATE on) DOELSEIF ([Sensor:Temperature] > 20) (set Heizung=State off)
   NAME       Elektroheizung
   NR         42944
   NTFY_ORDER 50-Elektroheizung
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-09-22 23:31:13   cmd             1
     2017-09-22 23:31:13   cmd_event       set_cmd_1
     2017-09-22 23:31:13   cmd_nr          1
     2017-09-22 23:31:13   state           cmd_1
   condition:
     0          ReadingValDoIf($hash,'Sensor','Temperature') < 20
     1          ReadingValDoIf($hash,'Sensor','Temperature') > 20
   devices:
     0           Sensor
     1           Sensor
     all         Sensor
   do:
     0:
       0          set Ventilator=STATE on
     1:
       0          set Ventilator=State off
     2:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   readings:
     0           Sensor:Temperature
     1           Sensor:Temperature
     all         Sensor:Temperature
   regexp:
     all:
   state:
     STATE:
Attributes:
   room       Oben

CoolTux


([Sensor:Temperature] < 20) (set Heizung on) DOELSEIF ([Sensor:Temperature] > 20) (set Heizung off)


So sollte er zu mindestens schalten. Probiere das erstmal aus.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kitt

Es schaltet leider nicht automatisch (über den Set-Knopf kann ich den Befehl allerdings senden, das funktioniert also).
"Sensor" ist übrigens ein Dummy.

Internals:
   CFGFN
   DEF        ([Sensor:Temperature] < 18) (set Heizung on) DOELSEIF ([Sensor:Temperature] > 19) (set Heizung off)
   NAME       Elektroheizung
   NR         42944
   NTFY_ORDER 50-Elektroheizung
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-09-23 12:46:46   cmd             1
     2017-09-23 12:46:46   cmd_event       set_cmd_1
     2017-09-23 12:46:46   cmd_nr          1
     2017-09-23 12:46:31   mode            enable
     2017-09-23 12:46:46   state           cmd_1
   condition:
     0          ReadingValDoIf($hash,'Sensor','Temperature') < 18
     1          ReadingValDoIf($hash,'Sensor','Temperature') > 19
   devices:
     0           Sensor
     1           Sensor
     all         Sensor
   do:
     0:
       0          set Heizung on
     1:
       0          set Heizung off
     2:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   readings:
     0           Sensor:Temperature
     1           Sensor:Temperature
     all         Sensor:Temperature
   regexp:
     all:
   state:
     STATE:
Attributes:
   room       Oben

CoolTux

Und der Sensor? Sehe nicht das der Sensor beachtet wird?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kitt

Wenn ich "list Sensor" eintippe, bekomme ich die Meldung "No device named Sensor found".

Achso, aber das ist ja der Alias-Name. Den darf ich wahrscheinlich nicht benutzen, oder?

Internals:
   CFGFN
   DEF        ([Oben.DHT22:Temperature] < 18) (set Heizung on) DOELSEIF ([Oben.DHT22:Temperature] > 19) (set Heizung off)
   NAME       Elektroheizung
   NR         42944
   NTFY_ORDER 50-Elektroheizung
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2017-09-23 16:10:44   cmd             0
     2017-09-23 16:10:44   state           initialized
   condition:
     0          ReadingValDoIf($hash,'Oben.DHT22','Temperature') < 18
     1          ReadingValDoIf($hash,'Oben.DHT22','Temperature') > 19
   devices:
     0           Oben.DHT22
     1           Oben.DHT22
     all         Oben.DHT22
   do:
     0:
       0          set Heizung on
     1:
       0          set Heizung off
     2:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   readings:
     0           Oben.DHT22:Temperature
     1           Oben.DHT22:Temperature
     all         Oben.DHT22:Temperature
   regexp:
     all:
   state:
     STATE:
Attributes:
   room       Oben

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Denke mal so passt das schon. Jetzt schauen wir mal
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kitt

Juhuu, es scheint zu funktionieren!!!

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kitt

Ich würde die Heizung gerne zwischen 22 Uhr und 6 Uhr abschalten  :)

TomLee

Das wird vermutlich mit dem dritten Beispiel ganz am Anfang der commandref gehen.

ZitatKombinierte Ereignis- und Zeitsteuerung

define di_lamp DOIF ([06:00-09:00] and [sensor:brightness] < 40) (set lamp on) DOELSE (set lamp off)

CoolTux

#14

(["^Oben.DHT22$:^Temperature",20] < 18 and [?06:00-22:00]) (set Heizung on) DOELSEIF (["^Oben.DHT22$:^Temperature",20] > 19 and [?22:00-06:00] ) (set Heizung off)


Schau mal bitte ob das so geht. Wenn nicht muß nur bisschen die RegEx angepasst werden
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net