FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: SwordMaster am 07 August 2016, 17:32:07

Titel: doif jede Minute... Löst aber nicht aus
Beitrag von: SwordMaster am 07 August 2016, 17:32:07
Hallo Zusammen,

Ich experimentiere gerade etwas mit DOIF.
Habe in der Commandref folgendes Beispiel gefunden:

Stündliches Speichern....
define di_save DOIF ([+01:00]) (save)
define di_save DOIF ([+3600]) (save)


Jetzt hätte ich folgendes bei mir probiert:
define di_print2 DOIF ([+60]) (set Buro_Deckenleuchter toggle)


Erwartungshaltung: Das DOIF schaltet jede Minute meinen Deckenleuchter.
Leider funktioniert es genau einmal. Danach schaltet es nicht mehr

Nach ein paar Minuten schauen die Readings dann so aus:
Readings
cmd                 1                                    2016-08-07 17:25:35
cmd_event      timer_1                          2016-08-07 17:25:35
cmd_nr           1                                     2016-08-07 17:25:35
state                cmd_1                            2016-08-07 17:25:35
timer_1_c1      07.08.2016 17:29:35    2016-08-07 17:28:35

Jede Minute wird das timer_1_c1 Reading um eins erhöht....
Allerdings wird der Deckenleuchter nicht geschaltet.

Kann mir jemand helfen? muss ich evtl das DOIF nach jeder aktivieren wieder reaktivieren?

Davon hab ich im Commandref leider nichts gelesen.

P.S. Ich weiß dass ich hierfür auch AT verwenden könnte, aber langfristiges ziel wäre schon das ganze mit mehreren Bedingungen zu verknüpfen => Deshalb das DOIF :)

Viele Grüße
Stefan

Titel: Antw:doif jede Minute... Löst aber nicht aus
Beitrag von: Morgennebel am 07 August 2016, 17:43:08
In der Commandref steht das korrekte DOIF:


define di_save DOIF ([+01:00]) (save)
attr di_save do always


Du hast das Attribut unterschlagen.

Ciao, -MN
Titel: Antw:doif jede Minute... Löst aber nicht aus
Beitrag von: derNeue am 14 November 2016, 22:31:01
Habe mich einfach einmal hier rein gesetzt, muss ja nicht immer ein neues Thema aufmachen....
Ich habe diesen Code bekommen , weil ich ganz neu hier bin und grade mit Doif etwas ausprobiere......das soll der Code auslösen....

Wenn der Bewegungsmelder zwischen 16 Uhr und 9 Uhr auslöst, dann wird die Steckdose angeschaltet
und nach 300 Sekunden wieder aus. Wenn innerhalb der 300 Sekunden erneut Bewegung ausgelöst wird,
wird der Timer wieder auf 300 Sekunden gesetzt.

Sowohl der Bewegungsmelder als auch die Steckdose4fach schalten alleine
warum geht das nicht

# Bewegungsmelder

define Bewegungsmelder IT 00110100011000101100001110 0 1001
attr Bewegungsmelder IODev CUL1
attr Bewegungsmelder room Wohnzimmer

#Steckdose4fach

define Steckdose4fach IT FF0FF0FF0F FF F0
attr Steckdose4fach IODev CUL1
attr Steckdose4fach model itswitch
attr Steckdose4fach room Wohnzimmer

define Bewegungsausloesung DOIF ([[16:00]-[09:00]] and [Bewegungsmelder] eq "on")(set Steckdose4fach on)(set Steckdose4fach off)
attr Bewegungsausloesung wait 0,300
attr Bewegungsausloesung do always
Titel: Antw:doif jede Minute... Löst aber nicht aus
Beitrag von: kumue am 14 November 2016, 22:46:54
Zitat von: derNeue am 14 November 2016, 22:31:01
define Bewegungsausloesung DOIF ([[16:00]-[09:00]] and [Bewegungsmelder] eq "on")(set Steckdose4fach on)(set Steckdose4fach off)

So wie ich die commandref lese, doppelte eckige Klammern bei indirekten Zeitangaben.
Würde es so definieren.
define Bewegungsausloesung DOIF ([16:00-09:00] and [Bewegungsmelder] eq "on") (set Steckdose4fach on) (set Steckdose4fach off)
Titel: Antw:doif jede Minute... Löst aber nicht aus
Beitrag von: derNeue am 14 November 2016, 23:09:11
Danke, es geht....war die doppelklammer....super....danke