Hauptmenü

Rollo stoppt nicht

Begonnen von chriz77, 31 August 2018, 11:47:51

Vorheriges Thema - Nächstes Thema

chriz77

Hallo,
ich möchte das automatische Herunterfahren eines Rollos beenden, wenn die Terrassentür offen ist. Die Tür hat dazu einen Sensor am Griff.
Folgender DOIF Befehl funktioniert, wenn ich mir testweise eine Nachricht schicke. Das Herunterfahren wird aber nicht beendet. Hat jemand eine Idee, an was das liegen könnte?


([KU_RolloOst:"^moving:.down$"] and [WZ_Terrassentuer_West] eq "open") ## Rollo Küche Ost fährt runter und Terrassentür offen
##(set Telegram message @Chris Rollo fährt runter Tür offen) ## Sende Telegram
(set KU_RolloOst stop) ## Beende das Herunterfahren des Rollos



2018-08-31 11:45:09 DUOFERNSTICK DuoFernStick 1 CMDs_pending
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd_nr: 1
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd: 1
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd_event: KU_RolloOst
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd_1
2018-08-31 11:45:09 DUOFERN KU_RolloOst moving: down
2018-08-31 11:45:09 DUOFERN KU_RolloOst set_stop
2018-08-31 11:45:09 DUOFERNSTICK DuoFernStick 2 CMDs_pending
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd_nr: 2
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd: 2
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd_event: KU_RolloOst
2018-08-31 11:45:09 DOIF di_StopRolloWennTuerOffen cmd_2
2018-08-31 11:45:09 DUOFERN KU_RolloOst set_down
2018-08-31 11:45:09 DUOFERNSTICK DuoFernStick 1 CMDs_pending
2018-08-31 11:45:10 DUOFERNSTICK DuoFernStick CMDs_done
2018-08-31 11:45:12 DUOFERN KU_RolloOst 9
2018-08-31 11:45:12 DUOFERN KU_RolloOst windDirection: up
2018-08-31 11:45:12 DUOFERN KU_RolloOst block: 0
2018-08-31 11:45:12 DUOFERN KU_RolloOst sunMode: off
2018-08-31 11:45:12 DUOFERN KU_RolloOst ventilatingMode: off
2018-08-31 11:45:12 DUOFERN KU_RolloOst sunAutomatic: on
2018-08-31 11:45:12 DUOFERN KU_RolloOst manualMode: off
2018-08-31 11:45:12 DUOFERN KU_RolloOst rainDirection: up
2018-08-31 11:45:12 DUOFERN KU_RolloOst position: 9
2018-08-31 11:45:12 DUOFERN KU_RolloOst moving: stop
2018-08-31 11:45:12 DUOFERN KU_RolloOst rainAutomatic: off
2018-08-31 11:45:12 DUOFERN KU_RolloOst windMode: off
2018-08-31 11:45:12 DUOFERN KU_RolloOst duskAutomatic: on
2018-08-31 11:45:12 DUOFERN KU_RolloOst ventilatingPosition: 90
2018-08-31 11:45:12 DUOFERN KU_RolloOst dawnAutomatic: on
2018-08-31 11:45:12 DUOFERN KU_RolloOst obstacle: 0
2018-08-31 11:45:12 DUOFERN KU_RolloOst timeAutomatic: on
2018-08-31 11:45:12 DUOFERN KU_RolloOst sunPosition: 85
2018-08-31 11:45:12 DUOFERN KU_RolloOst windAutomatic: off
2018-08-31 11:45:12 DUOFERN KU_RolloOst reversal: on
2018-08-31 11:45:12 DUOFERN KU_RolloOst rainMode: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst closed
2018-08-31 11:45:24 DUOFERN KU_RolloOst rainAutomatic: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst moving: stop
2018-08-31 11:45:24 DUOFERN KU_RolloOst duskAutomatic: on
2018-08-31 11:45:24 DUOFERN KU_RolloOst windMode: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst rainDirection: up
2018-08-31 11:45:24 DUOFERN KU_RolloOst position: 100
2018-08-31 11:45:24 DUOFERN KU_RolloOst ventilatingMode: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst sunAutomatic: on
2018-08-31 11:45:24 DUOFERN KU_RolloOst manualMode: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst sunMode: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst block: 0
2018-08-31 11:45:24 DUOFERN KU_RolloOst windDirection: up
2018-08-31 11:45:24 DUOFERN KU_RolloOst reversal: on
2018-08-31 11:45:24 DUOFERN KU_RolloOst rainMode: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst windAutomatic: off
2018-08-31 11:45:24 DUOFERN KU_RolloOst timeAutomatic: on
2018-08-31 11:45:24 DUOFERN KU_RolloOst sunPosition: 85
2018-08-31 11:45:24 DUOFERN KU_RolloOst obstacle: 0
2018-08-31 11:45:24 DUOFERN KU_RolloOst dawnAutomatic: on
2018-08-31 11:45:24 DUOFERN KU_RolloOst ventilatingPosition: 90


Danke und Grüße

Chris

Per

Der Befehl set stop wird zeitnah von set down übersteuert.
Zitat von: chriz77 am 31 August 2018, 11:47:51

2018-08-31 11:45:09 DUOFERN KU_RolloOst set_stop
...
2018-08-31 11:45:09 DUOFERN KU_RolloOst set_down

Ursache ist die Reihenfolge der Abarbeitung bei Triggern. Du triggerst auf "down", dann wird das ganze DOIF abgearbeitet, danach kommt erst der Befehl, auf den du triggerst, zur Ausführung. Ein wait 1 oder so bringt da Abhilfe.
Oder noch besser: du verhinderst das Absenden des "set down"-Befehls.

chriz77

Danke für den Tipp Per. Ich habe das wait Attr auf 1 gesetzt und bekomme folgende Meldung
attr di_StopRolloWennTuerOffen wait 1


2018-08-31 17:12:40 DOIF di_StopRolloWennTuerOffen wait_timer: 31.08.2018 17:12:41 cmd_1 KU_RolloOst
2018-08-31 17:12:40 DUOFERN KU_RolloOst moving: down
2018-08-31 17:12:40 DUOFERNSTICK DuoFernStick 1 CMDs_pending
2018-08-31 17:12:40 DOIF di_StopRolloWennTuerOffen wait_timer: no timer
2018-08-31 17:12:40 DUOFERN KU_RolloOst set_position 34
2018-08-31 17:12:40 DUOFERNSTICK DuoFernStick CMDs_done
2018-08-31 17:12:51 DUOFERN KU_RolloOst 35
2018-08-31 17:12:51 DUOFERN KU_RolloOst ventilatingMode: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst obstacle: 0
2018-08-31 17:12:51 DUOFERN KU_RolloOst sunAutomatic: on
2018-08-31 17:12:51 DUOFERN KU_RolloOst duskAutomatic: on
2018-08-31 17:12:51 DUOFERN KU_RolloOst rainMode: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst windDirection: up
2018-08-31 17:12:51 DUOFERN KU_RolloOst rainAutomatic: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst rainDirection: up
2018-08-31 17:12:51 DUOFERN KU_RolloOst ventilatingPosition: 90
2018-08-31 17:12:51 DUOFERN KU_RolloOst sunMode: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst dawnAutomatic: on
2018-08-31 17:12:51 DUOFERN KU_RolloOst moving: stop
2018-08-31 17:12:51 DUOFERN KU_RolloOst manualMode: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst windAutomatic: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst position: 35
2018-08-31 17:12:51 DUOFERN KU_RolloOst windMode: off
2018-08-31 17:12:51 DUOFERN KU_RolloOst reversal: on
2018-08-31 17:12:51 DUOFERN KU_RolloOst sunPosition: 85
2018-08-31 17:12:51 DUOFERN KU_RolloOst timeAutomatic: on
2018-08-31 17:12:51 DUOFERN KU_RolloOst block: 0


Den set_down Befehl zu vermeiden wird schwierig, da ich alle Rollos auf einmal mit einem at Befehl runterfahre. Oder dann ich das dann mit dem DOIF verhindern?

TomLee

#3
Wenn ich richtig mitgekommen bin dann:

attr di_StopRolloWennTuerOffen wait 0,1


https://fhem.de/commandref_DE.html#DOIF_wait

chriz77

Das Komma brauche ich doch nur wenn ich zwei Anweisungen habe oder? Die erste ist ja auskommentiert. Zumindest ist das mein Verständnis aus der commandref.

2018-08-31 18:11:58 DUOFERNSTICK DuoFernStick 1 CMDs_pending
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd_nr: 1
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd: 1
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd_event: KU_RolloOst
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd_1
2018-08-31 18:11:58 DUOFERN KU_RolloOst moving: down
2018-08-31 18:11:58 DUOFERN KU_RolloOst set_stop
2018-08-31 18:11:58 DUOFERNSTICK DuoFernStick 2 CMDs_pending
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd_nr: 2
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd: 2
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd_event: KU_RolloOst
2018-08-31 18:11:58 DOIF di_StopRolloWennTuerOffen cmd_2
2018-08-31 18:11:58 DUOFERN KU_RolloOst set_position 39
2018-08-31 18:11:58 DUOFERNSTICK DuoFernStick 1 CMDs_pending
2018-08-31 18:11:58 DUOFERNSTICK DuoFernStick CMDs_done
2018-08-31 18:11:59 DUOFERN KU_RolloOst 8
2018-08-31 18:11:59 DUOFERN KU_RolloOst ventilatingMode: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst obstacle: 0
2018-08-31 18:11:59 DUOFERN KU_RolloOst sunAutomatic: on
2018-08-31 18:11:59 DUOFERN KU_RolloOst duskAutomatic: on
2018-08-31 18:11:59 DUOFERN KU_RolloOst rainMode: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst windDirection: up
2018-08-31 18:11:59 DUOFERN KU_RolloOst rainDirection: up
2018-08-31 18:11:59 DUOFERN KU_RolloOst rainAutomatic: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst ventilatingPosition: 90
2018-08-31 18:11:59 DUOFERN KU_RolloOst sunMode: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst dawnAutomatic: on
2018-08-31 18:11:59 DUOFERN KU_RolloOst moving: stop
2018-08-31 18:11:59 DUOFERN KU_RolloOst windAutomatic: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst manualMode: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst position: 8
2018-08-31 18:11:59 DUOFERN KU_RolloOst windMode: off
2018-08-31 18:11:59 DUOFERN KU_RolloOst reversal: on
2018-08-31 18:11:59 DUOFERN KU_RolloOst sunPosition: 85
2018-08-31 18:11:59 DUOFERN KU_RolloOst timeAutomatic: on
2018-08-31 18:11:59 DUOFERN KU_RolloOst block: 0
2018-08-31 18:12:10 DUOFERN KU_RolloOst 40
2018-08-31 18:12:10 DUOFERN KU_RolloOst reversal: on
2018-08-31 18:12:10 DUOFERN KU_RolloOst block: 0
2018-08-31 18:12:10 DUOFERN KU_RolloOst sunPosition: 85
2018-08-31 18:12:10 DUOFERN KU_RolloOst timeAutomatic: on
2018-08-31 18:12:10 DUOFERN KU_RolloOst dawnAutomatic: on
2018-08-31 18:12:10 DUOFERN KU_RolloOst moving: stop
2018-08-31 18:12:10 DUOFERN KU_RolloOst ventilatingPosition: 90
2018-08-31 18:12:10 DUOFERN KU_RolloOst sunMode: off
2018-08-31 18:12:10 DUOFERN KU_RolloOst windMode: off
2018-08-31 18:12:10 DUOFERN KU_RolloOst windAutomatic: off

TomLee

Sry, da hast du Recht und ich war zu voreilig. Das hatte ich übersehen.

TomLee

#6
Bin auch immer noch Anfänger, hab mich jetzt zum Feierabend nochmal kurz eingelesen, ich find nix in der deutschen commandref (und die ist meines Wissens ausführlicher als die englische) dazu das man Bedingungen oder Ausführungsteile auskommentieren kann, kommentieren schon. Bin der Meinung hab das auch so bisher noch nicht gesehen.
In deinem  Event-Log gibt's ja auch 2 Kommandos.
Nimm mal die zwei ## aus dem ersten "Ausführungsteil" raus. Und teste.
Oder den ganzen ersten "Ausführungsteil ganz raus, dann natürlich mit wait 1

Per

Zitat von: chriz77 am 31 August 2018, 17:19:04da ich alle Rollos auf einmal mit einem at Befehl runterfahre. Oder dann ich das dann mit dem DOIF verhindern?
Du kannst in das at ein IF (oder if) reinnehmen, welches die Variable abfragt.