Как реализовать 3 состояния для одного выключателя?
Добавлено: Пт фев 08, 2019 12:14 am
Подскажите как реализовать как на картинке я про Вкл. Выкл. Авто?
Может где код или инструкция есть?
Может где код или инструкция есть?
Обсуждение проекта
https://mjdm.ru/forum/
Я "привязался" к солнцу и включаю и выключаю свет во дворе в зависимости от того во сколько оно встало/село. И все прекрасно работает в автоматическом режиме! НО, хочу так же в ручном режиме иметь возможность отключение/включение света во дворе.adzam писал(а): ↑Пт фев 08, 2019 7:34 am...
а дальше кодом примерно такСпойлерПоказать//включить Алису
$stm=gg("Mainsity.Alise");
$msn=gg("Mainsity.Say_news");
if ($stm=='откл'){
say('Я отключаюсь.',"1");
SQLExec("DELETE FROM safe_execs WHERE COMMAND LIKE '%sapi%' OR COMMAND LIKE'%play%'");//очищает очередь команд
getURL('http://127.0.0.1/rc/?command=vlc_close',"0");
// setGlobal("RadioSetting.On","0");
setGlobal("ThisComputer.minMsgLevel","10");
setGlobal("Mainsity.Alise_Led","0");
setGlobal('Mainsity.Say_time_led',"0");
setGlobal('Mainsity.Say_news_led',"0");
setGlobal('Mainsity.Say_weather_led',"0");
setGlobal('Mainsity.Say_news_led',"0");
} elseif ($stm=='авто'){
setGlobal("ThisComputer.minMsgLevel","5");
setGlobal("Mainsity.Alise_Led","1");
say('Включен автоматический режим сообщений.',"1");
callMethod("Mainsity.Alisa_auto");
if (gg("Mainsity.Say_time")!="откл"){
setGlobal('Mainsity.Say_time_led',"1");
}
if (($msn!="откл")||($msn!="свежие новости")){
setGlobal('Mainsity.Say_news_led',"1");
}
if (gg("Mainsity.Say_weather")!="откл"){
setGlobal('Mainsity.Say_weather_led',"1");
}
if (gg("Mainsity.Say_news")!="откл"){
setGlobal('Mainsity.Say_news_led',"1");
}
} elseif ($stm=='вкл'){
setGlobal("ThisComputer.minMsgLevel","0");
setGlobal("Mainsity.Alise_Led","2");
say('Я опять с Вами.',"1");
if (gg("Mainsity.Say_time")!="откл"){
setGlobal('Mainsity.Say_time_led',"1");
}
if (gg("Mainsity.Say_news")!="откл"){
setGlobal('Mainsity.Say_news_led',"1");
}
if (gg("Mainsity.Say_weather")!="откл"){
setGlobal('Mainsity.Say_weather_led',"1");
}
if (($msn!="откл")||($msn!="свежие новости")){
setGlobal('Mainsity.Say_news_led',"1");
}
}
Код: Выделить всё
//Свет во дворе
$stm=gg("Switch2.status");
if ($stm=='откл'){
say('Свет во дворе отключен в ручном режиме!',"2");
setGlobal('Switch2.status_On_Off',"0");
} elseif ($stm=='авто'){
say('Свет во дворе в автоматическом режиме!.',"2");
setGlobal('Switch2.status_On_Off',"Авто");
if (timeIs(getGlobal('ThisComputer.Chicivil_beginTime'))) {
// Начало утренних сумерек Через 20 минут выклется свет во дворе!
SetTimeOut("lightOnTimer1","setGlobal('ThisComputer.svet_vo_dvore',0);",1200); // Устанавливает свойство ThisComputer.svet_vo_dvore с задержкой в 20 минут
setTimeOut('myTimer2','runScript("Test_svet_vo_dvore");',1210); //скрипт включает/выключает уличное освещение в зависимости от свойства ThisComputer.svet_vo_dvore
}
if (timeIs(getGlobal('SunSetTime'))) {
//Солнце заходит, начало сумерек. Через 20 минут вклется свет во дворе!
SetTimeOut("lightOnTimer2","setGlobal('ThisComputer.svet_vo_dvore',1);",1200); // Устанавливает свойство ThisComputer.svet_vo_dvore с задержкой в 20 минут
setTimeOut('myTimer4','runScript("Test_svet_vo_dvore");',1210); //скрипт включает/выключает уличное освещение в зависимости от свойства ThisComputer.svet_vo_dvore
}
} elseif ($stm=='вкл'){
say('Свет во дворе включен в ручном режиме!',"1");
setGlobal('Switch2.status_On_Off',"1");
}
Спасибо за идею!
Код: Выделить всё
//Свет во дворе
$stm=gg("Switch2.status");
if ($stm=='откл'){
say('Свет во дворе отключен в ручном режиме!',"2");
} elseif ($stm=='авто'){
say('Свет во дворе в автоматическом режиме!.',"2");
} elseif ($stm=='вкл'){
say('Свет во дворе включен в ручном режиме!',"2");
}
У вас к этим строкам все привязано? Как вы настроили свое меню по настройке ночного времени? Покажите настойки на скриншотах как вы настроили меню управления для ночного режима.