Re: Модуль поддержки Xiaomi Smart Home
Добавлено: Пн окт 01, 2018 10:31 pm
Нет. Номер порта верный. Все в соответствии с апи сяоми и акара.
Какая версии прошивок на всех трёх шлюзах?
Какая версии прошивок на всех трёх шлюзах?
А чего бы просто не завести глобальную переменную Greeting (например) и без всяких циклов проверять чему она равна. Если 0 и условие наступило, то выполняем все наши действия и записываем в переменную 1. А потом, в сценарии OnNewHour перед нужным периодом времени переменную сбрасываем.Degu писал(а): Вт окт 02, 2018 5:54 pm Добрый день гуру majordomo!
Собственно у меня несколько вопросов по датчику движения, не обессудьте если что не правильно говорю или пишу, т.к. всю систему изучаю только месяц и это мой первый вопрос на форуме, а в программировании вообще полный нуль(((
Собственно поставил себе цель чтоб с утра по датчику движения у меня отрабатывался такой сценарий (1. Приветствие >> 2. Сообщает о погоде на улице >> 3. Включает телевизор новости) ровно один раз в определенное время с ..:.. и до ..:.. :
Но т.к. датчик движения постоянно при движении шлет 1 то была проблема в том что он в это интервал времени постоянно отрабатывал это сценарий пока время не подходило к концу. Вроде как победил эту ситуации и реализовал таким образом (если что неправильно поправьте все писал в блокли)
все сделал Через цикл до условия пока у определенного обьекта не поменяется статус ну и соответственно вручную это статус и сменил.....
создал отдельный обьект у которого после исполнения цикла меняется статус ну и напихал таймеров....
Собственно сам код
while (!(getGlobal('STOPCICKLE'.'.'.'status') == 1)) {
for ($count = 0; $count < 1; $count++) {
if ($this->getProperty('status') == 1) {
if (timeBetween('17:11', '17:16')) {
say('Доброе утро !', 2);
say('Коротко о погоде на улице', 2);
runScript('Pogoda na yulice inet');
say('Включаю для вас новости', 2);
setTimeOut('VklSony', " callMethod('Button01'.'.'.'pressed');", (int)('19'));
setTimeOut('chanel', " getURL('http://127.0.0.1:80/ajax/sonytv.html?id=1&key=Num7', 0);", (int)('25'));
}
setGlobal('STOPCICKLE'.'.'.'status', '1');
}
setTimeOut('STPcik', " setGlobal('STOPCICKLE'.'.'.'status', '0');", (int)('300'));
}
}
Вопросы:
1.Насколько так правильно?
2. Этот код я впихнул в метод statusUpdated датчика движения, правильно ли это или его над писать в motionDetected
3. В дальнейшем еще планирую несколько сценариев на это же датчик их писать туда же куда будет ответ на 2ой вопрос? Как отсекать один сценарий от другого в методе? (с помощью \\ )? Чтоб они вместе не срабатывали
Поэтому и спрашивал как лучше что и куда... Сам то всего навсего с majordomo разбираюсь ровно месяц вот и не понятно пока многое... Да и с кодом не дружу((А чего бы просто не завести глобальную переменную Greeting (например) и без всяких циклов проверять чему она равна. Если 0 и условие наступило, то выполняем все наши действия и записываем в переменную 1. А потом, в сценарии OnNewHour перед нужным периодом времени переменную сбрасываем.
И конечно код надо писать в motionDetected, отпадает необходимость проверять статус на 1.
И такой странный вопрос - а что, утро начинается в 17:11?!
Продолжение наблюдений с тормозами и пропусками.VladPTZ писал(а): Вс сен 16, 2018 12:36 am Датчики движения часто не срабатывают, если посмотреть в приложение xiaomi но сработка в логе есть , почему то мд стал часто пропускать сработки датчика.
статус можно и передавать в логикактионс, в пу поправить, на днях в тлг спрашивал https://t.me/MajorDoMoRu/73438fandaymon писал(а): Вт окт 02, 2018 8:58 pmА чего бы просто не завести глобальную переменную Greeting (например) и без всяких циклов проверять чему она равна. Если 0 и условие наступило, то выполняем все наши действия и записываем в переменную 1. А потом, в сценарии OnNewHour перед нужным периодом времени переменную сбрасываем.Degu писал(а): Вт окт 02, 2018 5:54 pm Добрый день гуру majordomo!
Собственно у меня несколько вопросов по датчику движения,
Вопросы:
1.Насколько так правильно?
2. Этот код я впихнул в метод statusUpdated датчика движения, правильно ли это или его над писать в motionDetected
3. В дальнейшем еще планирую несколько сценариев на это же датчик их писать туда же куда будет ответ на 2ой вопрос? Как отсекать один сценарий от другого в методе? (с помощью \\ )? Чтоб они вместе не срабатывали
И конечно код надо писать в motionDetected, отпадает необходимость проверять статус на 1.
И такой странный вопрос - а что, утро начинается в 17:11?!
Оффтоп. По миИО другая тема.dksobol писал(а): Пн окт 08, 2018 3:52 pm Привет всем. Вот такая интересная ерунда происходит. Включение выключение кондика через шайбу, пылесос вкл.выкл. происходило довольно быстро.1-4 сек. задержки. Сейчас 10 попыток и только 3 достучались до пылесоса. с кондеем по лучше 6 из 10 запросов.