Запуск сценария, если устройство онлайн
Модератор: immortal
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Вот эти пункты я выполнил
1) Выдать ПК постоянный IP адрес в роутере
2) Добавить пинг хоста в устройства онлайн
привязать к обьекту.свойству - вы имеете ввиду добавить свойство ПК, верно?
Тут не совсем понимаю (, можете как чайнику расписать код, как будто вы бы себе писали?
if(gg(указываем объект компьютер?) == 1) {
//Код когда дома
} else {
//Нету дома телефона
}
1) Выдать ПК постоянный IP адрес в роутере
2) Добавить пинг хоста в устройства онлайн
привязать к обьекту.свойству - вы имеете ввиду добавить свойство ПК, верно?
Тут не совсем понимаю (, можете как чайнику расписать код, как будто вы бы себе писали?
if(gg(указываем объект компьютер?) == 1) {
//Код когда дома
} else {
//Нету дома телефона
}
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 899 раз
Re: Запуск сценария, если устройство онлайн
Создали объект: MyPhoneDivan писал(а): ↑Пт июл 19, 2019 8:27 pmВот эти пункты я выполнил
1) Выдать ПК постоянный IP адрес в роутере
2) Добавить пинг хоста в устройства онлайн
привязать к обьекту.свойству - вы имеете ввиду добавить свойство ПК, верно?
Тут не совсем понимаю (, можете как чайнику расписать код, как будто вы бы себе писали?
if(gg(указываем объект компьютер?) == 1) {
//Код когда дома
} else {
//Нету дома телефона
}
В объекте свойства: status
В устройствах online привязали к MyPhone.status
Далее в сценариях или где вы там настраиваете логику пишете код, который я дал выше.
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Погодите, этот код который вы написали позволяет запускать сценарий "Пришел с работы домой" когда телефон онлайн, это у меня работает. Но когда я дома, то телефон целый день онлайн и он в полночь запустит этот сценарии "Пришел с работы домой", а мне надо, чтобы когда телефон онлайн, то не запускал сценарии. Типа должно быть правило. если телефон в сети, если компьютер в сети, то запуск сценарий "Пришел с работы домой" запрещен. Можно так сделать?
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 899 раз
Re: Запуск сценария, если устройство онлайн
Вы меня простите, но я уже не знаю как вам объяснить....Divan писал(а): ↑Пт июл 19, 2019 9:48 pmПогодите, этот код который вы написали позволяет запускать сценарий "Пришел с работы домой" когда телефон онлайн, это у меня работает. Но когда я дома, то телефон целый день онлайн и он в полночь запустит этот сценарии "Пришел с работы домой", а мне надо, чтобы когда телефон онлайн, то не запускал сценарии. Типа должно быть правило. если телефон в сети, если компьютер в сети, то запуск сценарий "Пришел с работы домой" запрещен. Можно так сделать?
У вас в сценарии код есть? Есть. Оберните код в условие if()....
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Не понимаю Вас к сожалению, я не программист. Я все собираю в Blockly. Можете у себя создать сценарий, чтобы лампа не включилась по сценарию когда у меня выходной (выходные у меня плавающие), компьютер и телефон с вечера до ночи онлайн, то этот сценарий не должен сработать в полночь и он должен срабатывать только, если компьютер выключен, а телефон в сети.
Вот примерная схема, прихожу я домой в 23:40, телефон у меня автоматически включает WiFi, MD его обнаруживает и переводит в режим в онлайн, запускается сценарий, включается свет. В выходной день, вечер, я сижу за компьютером, а в 23:40 у меня по сценарию включается свет, который должен включатся только тогда, когда я возвращаюсь с работы домой, а не когда я дома.
Буду благодарен, если покажете все скриншотами или схему в Blockly.
Вот примерная схема, прихожу я домой в 23:40, телефон у меня автоматически включает WiFi, MD его обнаруживает и переводит в режим в онлайн, запускается сценарий, включается свет. В выходной день, вечер, я сижу за компьютером, а в 23:40 у меня по сценарию включается свет, который должен включатся только тогда, когда я возвращаюсь с работы домой, а не когда я дома.
Буду благодарен, если покажете все скриншотами или схему в Blockly.
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Запуск сценария, если устройство онлайн
В блокли не подскажу (не пользуюсь). А по коду, примерно, так.
Правда, предварительно вы должны выяснить адрес вашего компьютера (командная строка >>> cmd >>> ipconfig). Напротив IPv4 будет указан IP-адрес вашего компьютера. Допустим, это будет адрес "192.168.0.30".
Теперь простейший код:
Но может быть несколько условий (к примеру, ip-адрес вашего смартфона "192.168.0.44"):
Правда, предварительно вы должны выяснить адрес вашего компьютера (командная строка >>> cmd >>> ipconfig). Напротив IPv4 будет указан IP-адрес вашего компьютера. Допустим, это будет адрес "192.168.0.30".
Теперь простейший код:
Код: Выделить всё
if (ping('192.168.0.30')) {
//НЕ ВЫПОЛНЯЕМ ДЕЙСТВИЕ
} else {
//ВЫПОЛНЯЕМ ДЕЙСТВИЕ
}
Код: Выделить всё
if (ping('192.168.0.30')) {
//НЕ ВЫПОЛНЯЕМ ДЕЙСТВИЕ
} else {
if (ping('192.168.0.44') && timeBetween('23:15', '02:30')) {
//ВЫПОЛНЯЕМ ДЕЙСТВИЕ
}
}
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Спасибо что помогли , я понял вашу мысль и понял свою ошибку почему у меня не работало. Сделал как надо и все заработало. Создал инструкцию (см. во вложении) для будущих новичков, она может быть кому-то полезной.
- Вложения
-
- Запуск или запрет запуска сценария.pdf
- (862.3 КБ) 114 скачиваний
- Рейтинг: 1.16%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 899 раз
Re: Запуск сценария, если устройство онлайн
Немного невалидный код в примерах... лучше так:
Код: Выделить всё
if (getGlobal("Relay02.status") && timeBetween('23:00', '00:00')) {
callMethod("Relay04.turnOn");
$timerCode=<<<EOT
callMethod("Relay03.turnOn");
callMethod("Relay04.turnOff");
EOT;
setTimeOut('', $timerCode, (int)('600'));
}
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Если вставить ваш код, то тогда сценарии срабатывает, даже если компьютер включен. В моем случае идет сверка двух устройств в сети, если телефон в сети и компьютер в сети, то это ИСТИНА, и тогда сценарии для телефона блокируется, уже сколь угодно можно вкл/выкл телефон при включенном компьютере, сценарии не запустится. Попробуйте у себя проверить свой код и если вам не сложно, сделайте пошаговую инструкцию, все будут благодарны.
Я код вставил в блок: Если первое условие истинно, то выполняет первый блок команд. Иначе, если второе условие истинно, выполняет блок команд.
Первое условие - Мой телефон и Мой компьютер в сети, выполнить - пусто (нечего запускать)
Второе условие - Мой телефон в сети, выполнить условие (запускается сценарии)
Я код вставил в блок: Если первое условие истинно, то выполняет первый блок команд. Иначе, если второе условие истинно, выполняет блок команд.
Первое условие - Мой телефон и Мой компьютер в сети, выполнить - пусто (нечего запускать)
Второе условие - Мой телефон в сети, выполнить условие (запускается сценарии)
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 899 раз
Re: Запуск сценария, если устройство онлайн
Код: Выделить всё
if (getGlobal("Relay02.status") == 1 && timeBetween('23:00', '00:00'))
== 0 - тоже самое токо если устройство выключено
- За это сообщение автора SmoKE_xDDD поблагодарил:
- Divan (Ср авг 07, 2019 7:30 pm)
- Рейтинг: 1.16%