Сценарий на выключение по условию

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Сценарий на выключение по условию

Сообщение ученик » Чт апр 13, 2017 6:59 pm

Набросал небольшой сценарий на отключение устройств управляемых ir
создал для каждого устройства объект, создал свойство статус (вкл=1; выкл=0) для каждого объекта
что бы не выключать уже выключенные устройства
перед применением проверяем статус объекта вкл 1 выкл 0
если равен 1 то выключаем его и присваиваем статус объекта 0
Если 0 то значит команду не отправляем
отрабатываю сценарий после успешного выключения
проверяю статусы объекта показывает 0
повторно включаю этот же сценарий
сценарий считает что статус объекта равен 1 и посылает команду на выключение что приводит ко включению откл устройств ( так как ir команды вкл и откл идентичны)
хотя после отработке сценария в статус объекта записывается 0
вот код

Код: Выделить всё

$sony=gg("Sonytv.status");
if($sony = 1){
    getURL('http://192.168.1.21:8888/?devMAC=b4:43:0d:f9:24:51&action=send&name=sonyoff', 0);
    setGlobal('Sonytv.status', 0);
 }
    else{}
 
как победить эту проблему?
 
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
devoff
Сообщения: 181
Зарегистрирован: Пт апр 04, 2014 10:17 pm
Благодарил (а): 37 раз
Поблагодарили: 54 раза

Re: Сценарий на выключение по условию

Сообщение devoff » Чт апр 13, 2017 7:21 pm

Ну сначала нужно исправить ошибку - "if($sony == 1)"
А то в Вашем коде он как раз устанавливает 1, а не проверят, что это 1 )))
Последний раз редактировалось devoff Чт апр 13, 2017 7:53 pm, всего редактировалось 1 раз.
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Сценарий на выключение по условию

Сообщение ученик » Чт апр 13, 2017 7:38 pm

devoff писал(а):Ну сначала нужно исправить ошибку - "$sony==gg("Sonytv.status");"
А то в Вашем коде он как раз устанавливает 1, а не проверят, что это 1 )))
Исправил ошибку, попробовал, так же включает после выключения
так же поставил изменение статуса объектов в конец скрипта а не в теле условия
поставил определение одного устройства условие на выключен
второго на включен
эффект тот же

Код: Выделить всё

$sony==gg("Sonytv.status");
if($sony = 0){
} else{
getURL('http://192.168.1.21:8888/?devMAC=b4:43:0d:f9:24:51&action=send&name=sonyoff', 0);
  }
$rolsen==gg("Rolsen.status");
 if($rolsen = 1){
    getURL('http://192.168.1.21:8888/?devMAC=b4:43:0d:f9:24:51&action=send&name=rolsenoff', 0);
   
 } else{}
    setGlobal('Sonytv.status', 0); 
    setGlobal('Rolsen.status', 0);
видимо php скрипту надо вписывать
что надо переходить на выполнение сл команды
когда то давным давно пытался чего то делать на бейсике то там просто при выполнении или не выполнении условий, пишешь команду then goto номер строки куда надо идтти и все а в php скрипте искал в командах и ничего не нашел или не там искал :oops:
Последний раз редактировалось ученик Чт апр 13, 2017 7:48 pm, всего редактировалось 1 раз.
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
devoff
Сообщения: 181
Зарегистрирован: Пт апр 04, 2014 10:17 pm
Благодарил (а): 37 раз
Поблагодарили: 54 раза

Re: Сценарий на выключение по условию

Сообщение devoff » Чт апр 13, 2017 7:46 pm

$sony=gg("Sonytv.status"); //здесь верно - переменной присваивается свойство

if($sony == 1){ // а вот здесь именно == (если просто = то установить 1)
getURL('http://192.168.1.21:8888/?devMAC=b4:43: ... me=sonyoff', 0);
setGlobal('Sonytv.status', 0);
}
За это сообщение автора devoff поблагодарил:
ученик (Чт апр 13, 2017 7:49 pm)
Рейтинг: 1.16%
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Сценарий на выключение по условию

Сообщение ученик » Чт апр 13, 2017 7:50 pm

devoff писал(а):$sony=gg("Sonytv.status"); //здесь верно - переменной присваивается свойство

if($sony == 1){ // а вот здесь именно == (если просто = то установить 1)
getURL('http://192.168.1.21:8888/?devMAC=b4:43: ... me=sonyoff', 0);
setGlobal('Sonytv.status', 0);
}
Спасибо, заработало :D
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
Ответить