Проблема с мостом между WB6 и dev.rightech.io как снизить частоту синхронизации?
Добрый день. Если вы знаете как при устройстве моста между двумя брокерами выставить частоту синхронизации, что бы синхронизация была к примеру 1 раза в минуту буду очень благодарен. Есть Контроллер Wiren Board 6. К нему подключены модули ввода вывода. 16 реле 14 входов и два датчика температуры (DS18B20) первый внутри щита и второй на улице.
У сервиса dev.rightech.io есть ограничение в 14400 сообщений в день. Не выглядит чем то невыполнимым. Но что прописать в настройках моста. Рылся в описании моста, так и не нашел что отвечает за частоту синхронизации. Из за чего сообщения сыпятся часто?
Или WB6 отправляет много пакетов например свое время или от датчиков температуры.
Задача любым способом влезть в 14400 сообщений в день. Например синхронизация каждые 10 секунд это будет всего 8640 сообщений в день.
Вот что у меня прописано в mosquitto.conf
connection rightech
address dev.rightech.io:1883
remote_username ******
remote_password ******
clientid ******
try_private false
notifications true
notification_topic /devices/bridge_status/controls/enabled
start_type automatic
topic /devices/wb-gpio/controls/# both 2
topic /devices/wb-w1/controls/# out 2
topic /devices/position/controls/# out 1
Это состояние входов выходов
topic /devices/wb-gpio/controls/# both 2
Это датчики температуры
topic /devices/wb-w1/controls/# out 2
Это место расположения, но оно статично прописано (не меняется)
topic /devices/position/controls/# out 1
Частота синхронизации mqtt-бриджа?
Он же просто переправляет все сообщения, которые получает.
Предлагаю решить вопрос фундаментально иначе - создать виртуальное устройство и правилами присваивать ему значения и wb-w1, скажем, они отличаются на (значение с потолка) 0.2 градуса. Это радикально уменьшит количество сообщений.
GPIO без изменения значения, насколько я помню, ничего не шлют.
Отличное решение помогите ссылками или примерами как это прописать?
По мотивам этого.
Собственно, правило должно быть примерно таким:
defineRule({
whenChanged: "wb-w1/28-000009795545",
then: function(newValue, devName, cellName) {
if Math.abs(newValue - dev["mytemperaturesensors/T1"]) {
dev["mytemperaturesensors/T1"] = newValue;
}
}
});
Спасибо буду пробовать делать. Если что то еще раз спрошу. )))
Вот такое правило. Буду тестить упадет ли количество посылок
// Создаём виртуальное устройство - датчики температуры.
defineVirtualDevice("mytemperaturesensors", {
title: "mytemperaturesensors",
cells: {
indoor: {
type: "value",
value: 0,
readonly: true
},
outdoor: {
type: "value",
value: 0,
readonly: true
}
}
});
// Создаем правило которое дает измениться температуре только если
// изменение было значительным
defineRule({
whenChanged: "wb-w1/28-00000d6b1916",
then: function(newValue, devName, cellName) {
if (Math.abs(newValue - dev["mytemperaturesensors/indoor"])>0.2) {
dev["mytemperaturesensors/indoor"] = Number(newValue.toFixed(1));
}
}
});
// Создаем правило которое дает измениться температуре только если
// изменение было значительным
defineRule({
whenChanged: "wb-w1/28-00000de08b44",
then: function(newValue, devName, cellName) {
if (Math.abs(newValue - dev["mytemperaturesensors/outdoor"])>0.2) {
dev["mytemperaturesensors/outdoor"] = Number(newValue.toFixed(1));
}
}
});
1 лайк