Добрый день. У меня контроллер шестой. Прошивка 6.7. Проблема с KNX. Покупал уже с установленным модулем.
1 - ETS 5 не хочет видеть его через IP WI-FI.
2 При получении по проводу, ETS его видит, но через раз. Один раз удалось все настроить, все работало. Но как только отключил роутер, и переключился на вайфай контроллера, то все перестало работать. И чтоб снова запустить, приходится несколько раз перезапустить контроллер. Использую вспомогательный код в js правилах, настроил свои адреса.
3. При изменении адресов в js правиле, в веб интерфейсе после перезагрузки возвращаются старые адреса, хотя проверяю правило, там адреса новые. Приходиться постоянно удалять из веб интерфейса блок с моими переключателями KNX, и снова перезаписывать правило. Но после перезагрузки та же проблема.
Сегодня решил обновить прошивку. После чего сразу записал нужные мне адреса.
При входе в веб интерфейс через вайфай, ничего не работает. После подключения к роутеру, и входа через назначенный роутером IP, программа начинает отправлять сообщения в шину, (Это видно через топик knx/data) Но само устройство не реагирует, плюс при переключении устройства топик knx/data ничего не показывает.
Добрый день.
К каому сетевому сервису контроллера обращается программа?
Так, термин “видит” не совсем корректен, к чему именно обращаетесь?
Про какие адреса речь, пример скрипта?
Покажите, что изменяется в топике, подписавшись на него.
Добрый день, Сейчас работает стабильно. Получается что если интернетовский кабель не подключать, то KNX не работает. То есть если нет IP адреса, то и нет KNX. В инструкциях нет такой информации. Попробую одному из интернет портов назначить статичный IP, может так будет работать.
В ETS 5 - IP wi-fi (192.168.42.1) не работает. Только через IP проводного интернета.
Если менять адреса (например 1.1.5) То система начинает глючить, и после перезапуска в веб интерфейсе возвращается старый адрес, хотя в коде все нормально. Решение - это сброс до заводских настроек. (тут в смысле если сначала установить одни адреса, а поом в процессе разработки их менять, удалять, или добавлять то после перезагрузки всегда возвращаются те адреса, которые я назначил первый раз. )
А здесь код который я использую.
(function() {
var knx_vdev_obj = {
title: “KNX Group Addresse”,
cells: {
“1-1-5”: {
type: “value”,
value: “0”,
readonly: false
},
“1-1-6”: {
type: “range”,
max: 100,
value: 0,
knx_type: “wide”
},
“1-1-7”: {
type: “value”,
value: “0”
},
“1-1-8”: {
type: “value”,
value: “0”,
readonly: false
}
}
};
var vdev_when_changed = [];
var vdev_devid = "knx_group_addrs";
for (var control_id in knx_vdev_obj.cells) {
if (knx_vdev_obj.cells.hasOwnProperty(control_id)) {
vdev_when_changed.push("knx_group_addrs/" + control_id);
}
}
defineVirtualDevice(vdev_devid, knx_vdev_obj);
defineRule("knx_vdev_feedback", {
whenChanged: vdev_when_changed,
then: function(newValue, devName, cellName) {
var group_address = cellName.split("-").join("/");
var value = +newValue;
var write_str = "";
if (knx_vdev_obj.cells[cellName].knx_type == "wide") {
while (value > 0) {
var rem = value % 256;
value = Math.floor(value / 256);
write_str = rem + " " + write_str;
}
write_str = "0 " + write_str;
} else {
write_str = "" + value;
}
if (write_str) {
dev["knx/data"] = "g:{} GroupValueWrite {}".format(group_address, write_str);
}
}
});
defineRule("knx_vdev_incoming", {
whenChanged: "knx/data",
then: function(newValue, devName, cellName) {
var arr = newValue.split(/\s/);
var sourceAddr = arr[0].split(/i\:|\,/);
var groupAddr = arr[1].split(/g\:|\,/);
var arr1 = newValue.split(/GroupValueWrite/);
var value = arr1[1];
if ((sourceAddr[1] == "0/0/0") || (sourceAddr[1] == "1/1/255")) { // skip local echo
return;
}
dev[vdev_devid][groupAddr[1].split("/").join("-")] = parseInt(value, 16);
}
});
})()
function knxConvertToFloat16(value) {
var sign = 0;
var exp = 0;
if (value < 0) {
sign = 1;
}
var mant = Math.floor(value * 100);
while ((mant < -2048) || (mant > 2047)) {
mant = mant >> 1;
exp += 1
}
var data = (sign << 15) | (exp << 11) | (mant & 0x07ff);
return data;
};
Статичный IP помог. Теперь все работает и без шнура интернета.
Не должно влиять. Впорбуйте в скрипте написать цикличное изменение параметров KNX устройства (пнапример) и отключить сеть.
Программа “ETS 5” - обращается к чему? брокеру, веб-интерфейсу?
Программа ETS 5 обращается к контролеру как интерфейсу связи с шиной KNX. То есть для связи ETS 5 и шины KNX я вводил ip контроллера. Так вот здесь работает только IP проводного подключения. Через ip wi-fi программа ETS 5 выдает ошибку что интерфейс не найден.
В целом у меня сейчас все работает, и я не буду на этом долго останавливаться. Главное что стабильно без збоев работает. В дальнейшем я скорее всего совсем откажусь от KNX, это дорого, лучше буду использовать ModBus. Тем более у вас линейка устройств тоже расширяется.
Кстати было бы не плохо сделать блок расширения в котором есть как выходы, так и входы. Например для фанкойлов. Чтоб можно было управлять двигателем через 0-10v, и клапаном воды(вкл/выкл), получать значение датчика температуры. И добавить ему порт ModBus. Плюс сделать питание от 220v. Такое устройства обычно устанавливают на корпус фанкоила, чтоб управлять им.
Например:
Благодарю, добавлю для обсуждения. То есть в одном устройства:
- выход 0-10 или PWM (или пара выходов)
- реле NO (два?)
- 18b20 входы для пары датчиков
- несколько входов “сухой контакт”
Для фанкойла с трема фиксированными скоростями нужно
- Три реле NO с обще клеммой. Для управления трехскоростным вентилятором, на него нужно на необходимый контакт подать фазу или ноль, в зависимости от модели. При этом два остальных должны выключиться.
- Управление сервоприводом (подача холодной воды) - отдельное реле, лучше переключатель. Так как клапан может быть нормально закрытый, или нормально открытый. То есть на сервопривод в одном случае при подаче питания, клапан откроется, и бывает наоборот, что клапан открывается при отсутствии питания. При этом он может управляться нолем или фазой.
3 датчик температуры. Ну тут не сложно, просто просто нужно подключить к нему датчик 1-wire DS18B20, и продавать как опцию.
4 еще одно реле для управления сервоприводом ( для четырехтрубных фанкойлов) Не обязательно. Для двухтрубных он не нужен. У меня например в офисах все двухтрубные.
Для фанкойлов у которых управление вентилятором производиться через 0-10v, нужно в место 3 реле, один выход 0-10v.
Было бы не плохо в каждый такой модуль зашивать програму управления, чтоб подключил настроил, и пользуйся. Понятное дело это будет дороже, но гораздо дешевле чем KNX. они за такие модули дерут по 20000 - 60000 тыс.