Вопросы по встроенным входам А1-А4

Добрый день! Столкнулся с несколькими вопросами и странностями работы входов А1-А4. Я подключил к этим входам датчики с выходом типа “сухой контакт” и получил несколько странностей:

  1. Данные в топики /devices/wb-gpio/controls/A{1…4}_IN отправляются только при изменении состояния датчика. Как можно сделать так, чтобы данные отправлялись постоянно, скажем, раз в секунду? Мне это требуется для корректной интеграции с внешней системой мониторинга.
  2. Если я открываю историю значений цифрового входа (/#/history/wb-gpio/A1_IN/-/-) то среди значений я вижу не только 0 и 1, но и 0,5 и даже 0,3333333. Как так получается, что дискретный вход в истории отображает какую-то дичь?
  3. Если по этому же входу открыть историю значений напряжения (/#/history/wb-adc/A1/-/-), то я не вижу там падений напряжения до околонулевых значений, минимальное значение там 8В, хотя в цифровом графике есть значения с 0. Как так получается?

Спасибо!

Здравствуйте!

  1. Думаю, что это можно сделать с помощью правил. Целевой топик должен быть доступен на запись, то есть в топик входа писать нельзя. Для этого можно создать виртуальное устройство. Например, можно сделать так:
  	title: "A1_IN virtual",
	cells: {
			a1_in_virtual: {
  			type: "switch",
  			value: false
			}      		
	}
});


startTicker("clock_1s", 1000);

defineRule("testRule", {
  	
    when: function() { return timers.clock_1s.firing },
    then: function() {
       log("Test Rule Was Executed");
       if (dev["wb-gpio/A1_IN"]) { dev["virtual_inputs/a1_in_virtual"] = true ; } else { dev["virtual_inputs/a1_in_virtual"] = false ; };
     
    }
});
  1. В историю пишутся усредненные данные. Можете попробовать изменить настройки на странице Configs → MQTT History Configuration: уменьшить параметры Minimum time interval between two data points (s) и Minimum time interval between two data points with the same value (s).
    Вот похожая тема:
    Почему такая странная разница между графиком в истории и полученными данными

  2. Попробуйте запитать ваш сухой контакт от выхода 5 V out на контроллере (справа от разъема входов).

Добрый день.

Да, это очень логично, так как зачем вполнять бессмыссленные действия? Ничего не изменяется - ничего не публикуется.
Если нужно для каких-то целей - напишите виртуальное утройство, в его топик можно публиковать по таймеру с какой удобно частотой. Как в примере выше.

Какая версия wb-mqtt-db?
В свежих для бинарных значений усредененные не создаются.

Спасибо за предложенные решения!
Решил на уровне node-red, который и так используется на контроллере и модуля интеграции нод-реда с вайренбордом, просто настроил опрос с нужным мне интервалом через get. Как я понимаю, данные там берутся из mqtt, но меня это вполне устраивает.