Архив рубрики: Программирование

Нашел баг в ESP Home

Когда шил Sonoff Basic для использования с насосом циркуляции в Home Assistant, при доработке прошивки (хотел видеть уровень сигнала, так как Sonoff в подвале) наткнулся на баг: при использовании примера с https://esphome.io/components/sensor/wifi_signal.html и добавлении блока с platform: copy получал неработоспособный wifi: устройство раз в несколько минут появлялось в сети на несколько секунд с жуткими лагами. Когда словил момент и добрался до веб-интерфейса, то там был captive portal (хоть увидел, как выглядит). Если ограничиться только первым блоком (т.е., выводом уровня только в dB), то все работает. Пока не репортил. На других модулях это работает без проблем.

Добавил подсветку для кухни и первую автоматизацию в HA

Фотоотчет-заметка.

Читать далее Добавил подсветку для кухни и первую автоматизацию в HA

EOL для прошивок измерителей сети

На волне увлечения ESP Home и Home Assistant решил мигрировать используемые измерители для главного щитка и на инверторах солнечных панелей с самописных прошивок на ESP Home.

Читать далее EOL для прошивок измерителей сети

Модуль управления бойлером

Продолжение темы создания модулей для домашней автоматизации и “умного дома” на базе недорогих микроконтроллеров.

Читать далее Модуль управления бойлером

Примеры кода для PyXMPP и XMPPpy

Пока писал различные транспорты / сервисы для jabber’а – часто приходилось выискивать примеры кода, чтобы понять, какие блоки для чего использовать, чтобы вырисовать нужный XML. С PyXMPP было проще – под рукой было 2 проекта с неплохим объемом кода, на котором можно было учиться – наверное, поэтому мне больше PyXMPP и полюбился. С XMPPpy было сложнее, но в итоге разобрался.

В данной заметке – куски кода из моих проектов, реализующие ту или иную функцию. Код, в основном, скопирован “как есть” – разве что с удалением часто повторяющихся одинаковых блоков. Основная задача – показать последовательность действий, которая нужна для “рисования” нужного XML’а.

Читать далее Примеры кода для PyXMPP и XMPPpy

Google Translate Transport (service) for XMPP

Еще один проектик для jabber’а.

В конференции саппорта сервера jabbercity.ru с Lex’ом как-то зашла речь за перевод через гугл. Собственно, мне самому давно была интересна эта тема – боты переводчики, бывшие в таблице на JabberWorld, давно перестали работать, а новых не появлялось. Но я считал, что там надо будет активно изучать API гугла, создавать пары ключей и заниматься тому подобными вещами. Тут же Lex кинул пару функций, там все оказалось гораздо проще. Потом на stackoverflow нашел еще более интересный вариант (фактически – упрощенный и использующий меньше библиотек) – и завертелось.

Читать далее Google Translate Transport (service) for XMPP

В копилку ссылок: бридж BT-Wifi для мультиварок Redmond

Искал мультиварки-самоделки на ESP32 или чем-то таком, нашел бридж для подключения мультиварок/чайников/прочих девайсов с Bluetooth к умному дому:

Нагрузка на базу у RSS-транспорта

На сейчас вырисовался уже график, можно сделать для себя пару заметок.

Читать далее Нагрузка на базу у RSS-транспорта

Архив сообщений в RSS-транспорте и веселый юникод-2

Да, я снова вляпался в utf8mb4.

Читать далее Архив сообщений в RSS-транспорте и веселый юникод-2

Работа над JabRSS

Одним из первых jabber-проектов в собранном архиве, который пробовал запускать у себя, стал JabRSS – бот для чтения новостных лент.

Предыстория: на начало войны хотелось получать новости в jabber'e более-менее реалтайм, но оригинальный инстанс JabRSS делал апдейты не чаще, чем раз в 45 минут, что я первым делом и исправил, после чего и решил держать свой инстанс на своем сервере.

Бот вполне успешно запустился на python2 и python3.7, но отказался запускаться на python3.9, сославшись на устаревший атрибут getchildren() в xml.etree.ElementTree.Element. Бот в итоге был запущен на сервере под python2 с пакетом библиотек под него; я подергал на эту тему H31, чтобы тот как-то помог и на том все затихло. Я увлекся работой над RSS-транспортом – в итоге на сейчас JabRSS не особо и нужен, транспорт стал более продвинутым и удобным в использовании.

Однако сейчас все же решил поставить уже какую-то точку насчет JabRSS – если там не сильно сложно его доработать – а опыт работы с Python у меня уже немного есть – то почему бы и нет?

Читать далее Работа над JabRSS