Задача следующая: есть esp8266 с прошивкой wifi-iot. Majordomo крутится на raspberry pi3. Пытаюсь используя activesend по wifi используя mqtt контролировать входную дверь. При открытии и закрытии одноразово Алиса должна проговорить что двери открыты или закрыты.
Сразу говорю (статья Подключаем датчик открытия въездных ворот) не подходит. Делал все по примеру . С использованием mqtt Получается циклическая ссылка.
Сделал следующим образом
Создал класс SMK
Свойства
SMK>status, SMK>statusText, SMK>updatedTimestamp
Методы
refresh
Код: Выделить всё
$status=$this->getProperty("status");
if ($status) {
$this->callMethod('turnOn');
} else {
$this->callMethod('turnOff');
}
Код: Выделить всё
Он пустой
Код: Выделить всё
$this->setProperty("status",0);
$this->setProperty("statusText","открыто");
$this->setProperty("updatedTimestamp",time());
Код: Выделить всё
$this->setProperty("status",1);
$this->setProperty("statusText","закрыто");
$this->setProperty("updatedTimestamp",time());
smk>zzz
До этого момента все ок, все работает
Код: Выделить всё
if (gg("zzz.status")=="1") {
ClearTimeOut("reminderGarageTimer");
say("Входная дверь закрыта.",5);
} else {
SetTimeOut("reminderGarageTimer","runScript('reminderGarage');", 15*60);
say("Внимание! Открывается входная дверь.",5);
}
А если вписывать в statusСhanged или turnOn (*turnOff *) получается многократный повтор. Вообщем помогите разобраться куда код пристроить чтобы работало