Помогите чайнику в программирование. Имеем слайдер от 1 до 60 с шагом пять, при изменении положения он записывает свойства в kotel.tempKotel и запускает сценарий climatKontrol
Код сценария:
$now=getGlobal("kotel.tempKotel");
if ($now==0) {
getURL("http://192.168.253.212/command?3=GAZ0");
}
if ($now==5) {
getURL("http://192.168.253.212/command?3=GAZ5");
}
if ($now==10) {
getURL("http://192.168.253.212/command?3=GAZ10");
}
if ($now==15) {
getURL("http://192.168.253.212/command?3=GAZ15");
}
if ($now==20) {
getURL("http://192.168.253.212/command?3=GAZ20");
}
if ($now==25) {
getURL("http://192.168.253.212/command?3=GAZ25");
}
if ($now==30) {
getURL("http://192.168.253.212/command?3=GAZ30");
}
if ($now==35) {
getURL("http://192.168.253.212/command?3=GAZ35");
}
if ($now==40) {
getURL("http://192.168.253.212/command?3=GAZ40");
}
if ($now==45) {
getURL("http://192.168.253.212/command?3=GAZ45");
}
if ($now==50) {
getURL("http://192.168.253.212/command?3=GAZ50");
}
if ($now==55) {
getURL("http://192.168.253.212/command?3=GAZ55");
}
if ($now==60) {
getURL("http://192.168.253.212/command?3=GAZ60");
}
Все это работает очень плохо. Может три раза отработать и перестать реагировать а если через пару часов дернуть слайдер может опять послать пару команд и опять отвалится. Помогите оптимизировать код или может есть другой вариант решения моей задачи. Спасибо.
На сколько я понял, в первом примере берётся температура котла и дальше идёт обращение к урлу в зависимости от температуры с интервалом в 5 градусов.
В Вашем примере, также берется температура котла и с ней идёт обращение к урлу, но без учёта интервала в 5 граусов.
А что произойдет, если температура котла будет больше 60-ти градусов?
В смысле так и нужно, чтобы ничего не вызывалось после температуры более 60-ти градусов?
В остальном согласен - вынести всё в метод.
Я бы еще вынес IP адрес в настройки какие-нибудь. Чтобы не менять IP в коде если он изменится.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
<b>Имеем слайдер от 1 до 60 с шагом пять</b> Не может быть температура kotel.tempKotel не кратна пяти.
С кодом я не вижу проблем, поставьте в конце проверку say($cmdUrl) и смотрите отправляет ли. Поставьте такую же проверку в ардуино, смотрите получает ли. Поставьте проверку доступности ардуины по пингу IP