Some engineer's blog

Waterfloor PID heating system with wifi and remote sensors (part 2)

Эта заключительная часть статьи посвященная прошивкам системы. Дописывалась она спустя год "жесткого" использования первого релиза (10.12.2020).

Первую часть можно прочитать тут 

Прошивка центрального микроконтроллера использует активно режим сна (ESP32 Light Sleep) просыпаясь только временами для отправки и приема данных с выносных панелей, датчиков и связи с сервером. Далеко уходить в Deep Sleep первая версия прошивки релизной не умеет. В текущем SDK от Espressif для Arduino есть проблема связанная с тем что подключение к WiFi после просыпания никогда не происходит. в Light Sleep-режиме всё нормально. 

Прошивка термостатов-панелей активно использует режим стендбай mega328.

Waterfloor PID heating system with wifi and remote sensors (part 1)

Занимаясь ремонтом вышедших из строя комнатных термостатов TECE возник план по полной переделке всей этой системы что называется "с нуля".

Дело в том, что спустя 3 года эксплуатации некоторые термостаты стали перманентно включать клапан сутками. У других бесконечно
стала "плавать" температура в помещении. Когда жарко он не выключает клапан никак, а когда холодно он никак не включит клапан.
помимо поломок у оригинального решения немцев TECE есть неудобства:

  • Температуру можно задавать только, находясь рядом с регулятором
  • Нет возможности наглядной оценки текущей температуры в помещении
  • Высокое напряжение тянется от шкафа коллекторного до термостатов (220\24 Вольта)
  • Нет возможности задания "сдвига" температуры помещения в зависимости от места установки термостата (Toffset)
  • Возможности запрограммировать систему гибко - нету. Только самое примитивное по времени в сутках при докупке
  • дополнительных аксессуаров и увеличении количества жил проводов, подводимых к термостатам
  • Нет никакой обратной связи все ли в порядке с термостатами комнатными. По факту выяснилось, что неудачные зажимы проводов в распределительной коробке TECE и провода выпадали, не включая контура отопления
  • Если раскрыть распределительную коробку в коллекторном шкафу то невозможно понять все ли работает в ней
  • После команды включения термоголовки нету никакой возможности узнать открылась-ли она по факту или что-то пошло не так
  • Интегрировать систему покомнатной автоматики (читай подружить) с оборудованием в котельной невозможно штатным способом (телеметрия)

NSIS installer Terminal Services plugin

Для инсталлятора потребовалось знать информацию о сессиях на хосте где запущен он. Поиски в обширной галлерее плагинов не дали результатов. Пришлось быстро запилить свой плагинчик.

Получаем список текущих сессий WTSEnumerateSessions, дальше пробуем получить информацию об аккаунте WTSQuerySessionInformation. возвращаем все эти данные через простейший интерфейс (цикл\функция).

 

Схема терморегулятора TECE 77410010

Сломался контроллер отопления TECE. В любом положении реостата на выходе всегда пульсирует напряжение. Для починки зарисовал его схемку дабы разобраться. Как показали поиски - это OEMный продукт который производит для TECE, REHAU и остальных брендов немецкая компания Möhlenhoff. У них в каталоге он числится под именем Alpha Thermostat (AR2x модели).

Гирляндный автомат

Новый год хороший праздник! В этот момент наряжают елки, украшают квартиры и дома. Если в наличии много Китайских гирлянд и световых приборов (лазеров в особенности) то всей этой технике необходимо время чтоб "остыть". Значит надо чередовать периоды включения и выключения. Напрашивающееся своей простотой решение ввиде горстки Китайских-же суточных таймеров по 150рэ не шибко хорошо потому что период там жестко задан 15 либо 30 минут. А хочется большей энтропии :) 

win32 S.M.A.R.T. disk drive statistics inventory

Еще одна полезная утиль потребовавшаяся на одной работе

MS System Center Configuration Manager не умеет инвентаризировать "искаропке" SMART-статистику дисков. поэтому на коленке был быстро оформлен код который получает эту статистику. и потом VBS скриптом загонял в WMI откуда его уже преспокойно читал SCCM в цикле очередной инвентаризации

Win32 COM server doing Monitor EDID inventory saving to WMI

очередной старинный мелкий проектик писанный для целей внутренней инвентаризации мониторов в среде MS System Center Configuration Manager (SCCM). Дело в том что имевшиеся на рынке решения не умели делать инвентаризацию если на консоли (Session-0) никто не залогинен.
Вот сидит пользователь в RDP, или вообще после включения машинки не логинился, а обычные утилиты (EnTech MonInfo) не могли нормально доставать в этом случае информацию о подключенных мониторах. Кроме всего этого NOIDMIF файлики отжили свое в SCCM 2012 и новых. Самый верный способ это провайдер WMI собственный который сразу как его дернула инвентаризация или еще кто - выдал свежую актуальную информацию.

MS outlook mailbox inventory and default delivery from cmd

Продолжая публикацию старых полезных утилит из прошлого (2011-2014).

 Довольно важная штука здесь (побудившая как-раз к написанию) это изменение дефолтного места доставки почты в мейлбокс\файл из командной строки. потому что ручками оно единично весело а когда надо нескольким тысячам сотрудников быстро туда-сюда...

хелп должен сказать всё что умеет утиля.

tested on MS Outlook 2003/2007/2010/2013 versions
usage: outlookdeliverychanger.exe <function> <parameter>
where <function> is one of the:
/list - print on console all mail profiles,accounts,stores for current user
/listxml - export to XML file specified in <parameter> all mail profiles,accounts,stores for current user
/exportdef - export default delivery to XML file specified in <parameter>
/importdef - import default delivery from XML file specified in <parameter>
/setdefmailbox - set default delivery to mailbox
/setdefbypath - set default delivery to PST store path in <parameter>
/delstorebypath - remove store from profile by full path in <parameter>
/dellocalstores - remove all LOCAL stores from profile (not on exchange server)
/delnondefstores - remove all NON DEFAULT delivery (files) stores from profile

tinyxml2 с поддержкой utf-16

Частенько, очень, нужно без конвертации дополнительной (WideCharToMultiByte и т.п.) работать нативно с utf-16 типом данных (MFC CString Wide char string aka UNICODE) в Win32.

Заморочился в 2013м году и перепилил tinyxml2 для поддержки прямой. Только важный момент:

-теперь библиотека работает только с UTF-16 данными. никакой utf8 не поддерживается!

зато можно смело работать с UNICODE строками в MSVC2010-2015 

 

Управление отоплением (ТЭН)

Тепло это хорошо. Когда теплом можно управлять не вставая с дивана - еще лучше!

Существуют разные варианты включения нагревательных приборов для достижения точного нагрева и поддержания температуры в помещениях. Пришедшие в голову:

  • Реле коммутируем (управляем включением\выключением)
  • Симистором коммутируем при прохождении напряжения через ноль (Zerocross) (управляем включением\выключением)
  • Симистором коммутируем после прохождения через нуль на определенное время (управляем мощностью)
  • Смешанный способ - при прохождении через нуль коммутируем симистором , потом включаем реле закорачивая симистор (таким образом симистор не нагревается при прохожении больших токов) (управляем включением\выключением)

По алгоритмам:

  • Гистерезисом
  • PID-петлей. или PI-петлей т.к. Derivative в больших инертных системах не нужен по большому счету.

Newer posts → Home ← Older posts