Добрый день,
Размышляю над телеметрией для "дачного домика", хочется снимать информацию, какую долю времени газовый котел проводит во включенном состоянии - этот параметр косвенно отражает суммарные теплопотери отапливаемых помещений. Котел отечественный Жуковский, "теплый ламповый" без новомодных телеметрических выводов. Из очевидных мест для съема исходных данных пока что придумались следующие варианты
А) Газовый счетчик - теоретически у него есть сухой контакт, но территориально он на улице, плюс лезть в него без особой нужды не хотелось бы.
Б) измерение температуры теплоносителя на входе в котел (обратка системы отопления ) и выходе из него (подача системы отопления) и определение факта работы котла по разности этих температур. измерять планирую отдельной есп-шкой, с помощью двух далласов (ds18b20), плюс на ней же будет висеть аналоговый датчик давления теплоносителя (диагностика разрыва/утечек в контуре теплоносителя плюс потому что он уже есть

)
Этот вариант представляется пока что наиболее рабочим, но дальше начинаются детали и вопросы
1) Частота опроса - в целом дискрет в десяток-другой секунд меня устраивает, вопрос: насколько точно соблюдается заданный интервал опроса? В случае несоблюдения интервал плывет или будут пропуски измерения?
2) Как лучше потом рассчитывать искомый параметр - долю времени во включенном состоянии? Вариантов вижу два - 2А) если заложиться на регулярность опроса датчиков, можно просто считать число интервалов с положительной и отрицательной разницей (конечно, добавив некоторый порог, чтобы не шумело) и несложной арифметикой находить нужное. вариант 2Б - детектировать переход разницы через ноль (с учетом порога), фиксировать время трех последовательных переходов и вычислять просто по разнице времен.
3) С помощью чего делать расчет? Подозреваю, что конструктор кода, но вдруг есть способ проще? В Си я ни разу не эксперт, и это вызывает опасения. Если все-таки конструктор кода, то вопросы - есть ли в нем float арифметика и стоит ли ее использовать? Есть ли там "глобальные переменные", то есть можно ли в переменных хранить/накапливать что-то между вызовами? Доступны ли в нем значения uptime (это на случай, если придется идти по варианту 2Б)
4) Как передавать получившееся значение? Можно ли создать переменную, которую потом отдать в MQTT или в HTTP через GET (для thingspeak)?
5) Или может вообще не заморачиваться, а просто передавать "с борта" две температуры, а все расчеты делать уже "внизу"? Тогда возникает вопрос - насколько надежно будет работать передача в MQTT или HTTP через GET c частотой 30 секунд?
Помогите советами и заранее спасибо
roofcat