Conversation
Module for heating and cooling. Now just deadband control.
Changed titles and off status
* Changed order of controls * Modified logging (format and logging levels) * Changed config.modes from obj to array of strings
Add thermalcontrol module Co-authored-by: Nikolay Korotkiy <sikmir@disroot.org>
* added resistance to the absence of optional fields in the config * added checks for the required fields
Add Hysteresis field to virtual device
Add persistent storage for setpoint
There was a problem hiding this comment.
Не работает. Инициализирую так по примеру, только поправил скобку в строке 102:
var libtherm = require("thermalcontrol");
config = ({
devName: "climate_kitchen",
devTitle: "Температура на кухне",
modes: ["heating", "cooling"],
temperatureSource: "wb-w1/somesensor",
heatingChannel: "wb-gpio/EXT2_R3A1",
coolingChannel: "wb-gpio/EXT2_R3A2",
setpointrange: {
"min": 6,
"max": 35
},
hysteresis: 1,
degug: true
});
var climate_in_kitchen = new libtherm.ThermalControlDevice(config);
Получаю ошибку в модуле:
Ошибка правила: TypeError: invalid base value
duk_hobject_props.c:2000
anon /usr/share/wb-rules-system/scripts/lib.js:813 preventsyield
anon thermalcontrol:312 construct preventsyield
F /etc/wb-rules/thermostat-test.js:18 preventsyield
Ещё надо статус OFF заменить на DISABLED — это ближе к выключателю ENABLED по смыслу и не будет потом путаницы с OFF_RELAY.
fixed example
Changed 'OFF' status to 'DISABLED'
not everywhere changed "OFF" to "DISABLED", now everywhere
* add default setpoint setting to config * remove persistent storage
aadegtyarev
left a comment
There was a problem hiding this comment.
Посмотрел — все ок. Оставил несколько комментариев, надо поправить и будет совсем хорошо.
Надо как можно больше параметров сделать необязательными с описанными в документации значениями: https://wirenboard.com/wiki/Wb-rules-modules#%D0%A1%D0%BE%D0%BA%D1%80%D0%B0%D1%89%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C
Давай поправим и вольём, пока я не ушёл в отпуск.
* Add units * Add checks for setpoint * Fixed cofusion with status * Fixed JSDOC example
* Add check of topics exist
KraPete
left a comment
There was a problem hiding this comment.
- Надо описание структуры топиков создаваемого в MQTT устройства. Надо описать возможные значения этих топиков, всякие
SUSPEND,DISABLEDи т.п. - Может вместо
SUSPENDписатьIDLE? Встречал такое в холодильных установках - Кто должен сохранять значения
setpoint, установленные пользователем? Сейчас при любом перезапуске, они будут сброшены, и будет установлено значение по умолчанию. Это может быть неожиданно. - Я бы всякие однообразные проверки наличия топиков вынес в отдельные функции, чтоб меньше повторений кода было.
- Надо ли обрабатывать ситуации, когда исчезли устройства, выдающие температуру и реализующие управление?
- Надо ли обрабатывать ошибку чтения у устройства, которое выдаёт температуру? Кажется, что стоит отключить нагрев и охлаждение.
- Для обсуждения: возможно, при создании термостата не надо выкидывать исключение, если нужных устройств нет в MQTT. Возможно стоит сигнализировать в топиках ошибкой, а при появлении устройств начинать работать, согласно настройкам?
- Для обсуждения: было бы удобно, если бы конфиг термостатов читался из файлика с диска. Такой конфиг можно было бы делать средствами homeui. Тогда пользователь мог бы настроить его сам без погружения в правила.
| }, | ||
| setpoint: { | ||
| title: "Setpoint", | ||
| type: "value", |
There was a problem hiding this comment.
Может, range сделать? В интерфейсе будет красивее выглядеть
There was a problem hiding this comment.
Да мы что-то так и эдак крутили это. А есть способ сделать шаг не в целый градус, а задаваемым?
There was a problem hiding this comment.
есть meta/precision, не уверен, что wb-rules это умеют
There was a problem hiding this comment.
Не умеют :(
Оставил пока value, всё-таки его по одному градусу двигать удобней.
Co-authored-by: KraPete <86825564+KraPete@users.noreply.github.com>
Co-authored-by: KraPete <86825564+KraPete@users.noreply.github.com>
Co-authored-by: KraPete <86825564+KraPete@users.noreply.github.com>
* add jsdoc for virtualdevice * minor fixes * remove bindcontrols * fix checks for heatingChannel/coolingChannel exist * changed order
1 - добавил описание |
add description of config.setpoint object
|
Дальше делает @aadegtyarev |
|
Решили не делать. Вместо этого будет визуальный конфигуратор. |


Module for heating and cooling.
Now just deadband control.