athombv / org.knx

KNX for Homey
0 stars 2 forks source link

Unnecessary stop before up/down #20

Open Istaroth opened 1 month ago

Istaroth commented 1 month ago

The driver knx_windowcoverings is causing problems in my case.

In drivers/knx_windowcoverings/device.js lines 49-51 and 64-66 a stop/step-command is issued before the up/down command. With my windowcovers this leads to timing-problems and the coverings often do not react to the up/down command.

I did not issue a pull request as I am not sure what the initial reason for this implementation was. I see two possible solutions:

  1. (preferred) just delete the stop/step commands in lines 49-51 and 64-66
  2. insert some short delay between the stop/step and up/down
Istaroth commented 1 month ago

I did some more research, and it seems (GPT et al) that it is regarded to be best practice to first issue a stop before sending an up/down. But I did not find any first hand information or advice for this (e.g. by any manufacturer of KNX motors). It also does not make sense, as for motors in rest, the stop/step command starts the motors and the directly following up/down stops them shortly and starts them again, which is bad for the motors.

I deleted the stop/step in my personal branch of the app and tried it with my motors several days now. The timing problems are gone completely and the window covers are functioning reliably without any apparent problems for the motors.

I would therefore reinforce the vote for solution 1.

ttherbrink commented 1 month ago

You might be correct there. If i read page 24 (http://knx.com.ua/attachments/article/132/KNX-basic_course_full.pdf) correctly it would imply that your blinds always do a step "up" first and then move to the direction you want. Is that correct?

Istaroth commented 1 month ago

Uhm, no. My interpretation:

Real world behavior (of my blinds): sending the group address for "up" (without stop or anything else) when they are moving down will bring the to halt for approx. ½ sec. and then starts them again. No hard change of direction for the motor.