dxdc / homebridge-blinds

:sunrise: Homebridge Plugin to control my blinds over HTTP
https://www.npmjs.com/package/homebridge-blinds
ISC License
54 stars 26 forks source link

Feature: Webhook for external movement signaling using internal height calculation #50

Closed philipptrenz closed 3 years ago

philipptrenz commented 3 years ago

Hey there,

I have blinds, which are controlled via the Warema EWFS system. This is using 433,92 MHz radio, which I could decode and now can resend the needed commands via the aircontrol project. As this system is unidirectional, I do not have any height information and therefore I use the great height calculation feature based on timing from this plugin.

As I want to have the HomeKit controls additionally to the regular remote (which I decoded the commands from), currently I have the issue, that when using the remote, the height calculations get "out of sync".

I would like to have the height calculation at one place and have the ability to inform the plugin about external "up", "down" and "stop" commands via a webhook, so that I can receive the remote commands and feed them back into the plugin to update to the correct height.

Currently I'm investigating how to proper receive and decode the remote commands automatically. Meanwhile I would be happy to get some feedback to this feature request and if this is the proper way to do it or if there's a better one I'm not aware of.

Thanks!

dxdc commented 3 years ago

Hi @philipptrenz:

I believe, more or less, this will at least partially answer your question: https://github.com/dxdc/homebridge-blinds#receiving-specific-position-optional-ad-hoc-basis

There is the option of either -- on a one-time basis, via webhook, or via url, of updating the position URL of the blinds itself.

What you are proposing:

inform the plugin about external "up", "down" and "stop" commands via a webhook

is interesting, and is certainly possible, but given your use case I think it would be impractical. To read the Rf signals from an external device - one capable of reading the remote signals - would introduce a lag of at least 1-2 seconds. This delay would introduce a serious inaccuracy with the position.

Also, the placement of this Rf 'reader' device would obviously need to be close to each set of blinds - otherwise, such a Rf signal could be received by this 'reader' and not by the blinds (or, vice versa).

I think it will make more sense to introduce a sensor capable of reading the blinds position, and then relaying this information to the plugin itself.