NEWS
Yahka и дверь гаража.
-
Так как моя система строиться больше на управлении через HomeKit приходится разбираться в работе драйвера Yahka (далее по тексту "Яшка"). С одним из таких "разбирательств" хочу поделиться. В Яшке есть категория устройств - Garage door opener.
В сервисах есть тип обслуживания GarageDoorOpener. В которых имеются следующие характеристики - LockCurrentState, LockTargetState, Name, CurrentDoorState, ObstructionDetected, TargetDoorState. С первыми двумя не разбирался, так как не было надобности. С именем думаю вопросов ни у кого не возникнет. ObstructionDetected - обнаружено препятствие, если у вас в системе есть объект, который может передавать данное значение, можете привязать его сюда, в HomeKit есть соответствующее оповещение.
Самые интересные это <u>CurrentDoorState</u> и <u>TargetDoorState</u>. CurrentDoorState - это в каком положении дверь сейчас. TargetDoorState - в какое положение ее нужно перевести.
Тут мои наблюдения и эксперименты:! TargetDoorState может быть 0 - открыта или 1 - закрыта. при этом CurrentDoorState как бы дополняет этот (TargetDoorState) параметр. Например:
! TargetDoorState = 0 и CurrentDoorState=:
! 0 - открыта (значок открытой двери без кружка выполнения.)
! 1 - закрыта (всплывающее оповещение)
! 2 - открывается (всплывающее оповещение)
! 3 - закрывается (используется только с TargetDoorState = 1)
! 4 - остановлена (Дверь не двигается, она ни полностью открыта, ни полностью закрыта.)
! а если TargetDoorState = 1 и CurrentDoorState=:
! 0 - закрыта (всплывающее оповещение "открыта", при этом значок закрытой двери, надпись "закрытие" и круг выполнения)
! 1 - закрыта (всплывающее оповещение, значок серый статичный)
! 2 - открывается (используется только с TargetDoorState = 0)
! 3 - закрывается (указывает на процесс "закрытие")
! 4 - остановлена (Дверь не двигается, она ни полностью открыта, ни полностью закрыта.)Наблюдения, наблюдениями, но есть же официальная документация
Подытожив делаю такое заключение:
в покое значения TargetDoorState и CurrentDoorState равны 1
при открытии на TargetDoorState посылается 0 (значок активизируется, показывая, что роллета открывается, при желании, можно дополнить статус "открывания" поставив CurrentDoorState в 2 в промежутке пока дверь едет)
когда роллета полностью открылась на CurrentDoorState отправляем 0. значок показывает, что дверь открыта полностью.
Для удобства:Открытия будет выглядеть так:
TargetDoorState/CurrentDoorState
1/1 - закрыта
0/2 - открытие
0/0 - открыта
Закрыть в обратном порядке.
TargetDoorState/CurrentDoorState
0/0 - открыта
1/3 - закрытие
1/1 - закрыта