Полный текст команды не видно. На всякий случай напишите, пожалуйста, полный текст, который идет после IP-адреса (api.php/module/mqtt?to ... Set&msg=40).
Но, похоже, да, достаточно будет поменять значение свойства и MQTT-брокер сам отправить установленное значение на контроллер. Будем пока из этого исходить.
И еще вопрос, с каким объект.свойством ассоциирован текущий статус горелки?
1. Создаем в объектах новый класс
HeatingSystem.
2. В классе создаем свойства:
Status -- пока не знаю, за что будет отвечать, но обязательно пригодится (пока привяжем общий ярлычок отопления);
... остальные свойства добавим по необходимости.
3. Создаем методы:
targetTempUp -- увеличивает целевую температуру подачи котла на 1 градус;
targetTempDown -- уменьшает целевую температуру подачи котла на 1 градус.
Код метода
targetTempUp:
Код: Выделить всё
$TargetTemp = gg('mqttSensor_temp04.value');
$TargetTemp = $TargetTemp + 1;
sg('mqttSensor_temp04.value', $TargetTemp);
Код метода
targetTempDown:
Код: Выделить всё
$TargetTemp = gg('mqttSensor_temp04.value');
$TargetTemp = $TargetTemp - 1;
sg('mqttSensor_temp04.value', $TargetTemp);
4. Создаем в классе объект
Boiler.
Можете у объекта в свойство с целевой температурой вручную сразу вписать начальное значение. Чтобы было чему отображаться в интерфейсе.
И в свойство Status тоже запишите значение "1".
5. Кладем картинки по пути: C:\_majordomo\htdocs\cms\scenes\
6. В меню добавляем элемент типа HTML-блок. HTML-код записывается в поле "Данные".
Код: Выделить всё
<style type="text/css">
.gorizontalno {
display: inline-block
}
.button:active {
transform: scale(0.9, 0.9);
}
</style>
<div class="gorizontalno">
<div class="button">
<div style='display:%Boiler.Status|"block;none"%'><img src="\cms\scenes\styles\switch\i_warm_on.png" width="24" height="32"></div>
<div style='display:%Boiler.Status|"none;block"%'><img src="\cms\scenes\styles\switch\i_warm_on.png" width="24" height="32" style="background-color: yellow;"></div>
</div>
</div>
<div class="gorizontalno">
<div class="button">
<div onClick='callMethod("%Boiler.targetTempUp");'><img src="\cms\scenes\minus3.jpg" width="24" height="32"></div>
</div>
</div>
<div class="gorizontalno">
<div style='font-size:18pt; text-align:center; font-stretch:ultra-condensed'>%mqttSensor_temp04.value%</div>
</div>
<div class="gorizontalno">
<div class="button">
<div onClick='callMethod("%Boiler.targetTempUp");'><img src="\cms\scenes\plus3.jpg" width="24" height="32"></div>
</div>
</div>
<div><font size="4" color="blue">Фактическая температура: %mqttSensor_temp02.value%</font></div>
Может что-то сразу и не заработает, т.к. пишу "с колес", но отладка -- дело неизбежное...