Архив рубрики: Shorts

Короткие заметки из жизни, 1-3 предложения.

Sonoff S60TPF + ESP Home

В заметки:

Плата питается от 5В, стабилизатор уже на борту. Но левел-шифтер все равно используем.

Конфиг ESP Home

Контроллер активно ругался на отрицательные значения PF и реактивной мощности, пришлось убрать (да и не нужны мне они особо). Розетку в итоге приспособил для включения питания газового котла и контроля его состояния через встроенный ваттметр (idle – 4W, пламя ИЛИ работа циркуляционника – около 40-50 Вт; пламя + циркуляционник – около 120 Вт).

Заказал еще подобных розеток от других производителей.

Подключаем котел Protherm KLZ “Медведь” к Home Assistant

Решил чуть расширить список источников энергии на зиму и вернуть в работу газовый котел. Газом активно не пользуюсь уже несколько лет – примерно с момента ввода платы за доставку. Для подогрева воды еще до того начал использовать электрический бойлер. На сейчас (с учетом того, что панели не всегда покрывают домашнее потребление) стоит иметь возможность использовать любой источник энергии.

В котле в свое время делал доработки для обхода ограничений штатных алгоритмов: например, когда использовал встроенный бойлер, то для экономии газа вода грелась только тогда, когда включался термостат и/или по расписанию от встроенного таймера. На тот момент все делалось “в железе” – добавлением логических цепочек на дискретных элементах. Один из блоков – уже даже не помню, что делает. Второй – подключал резистор между входом термодатчика бойлера и общим, блокируя подогрев бойлера (обман электроники – та думала, что у бойлера высокая температура). Сейчас решил перевести основные функции по управлению на базу ESP Home.

Читать далее Подключаем котел Protherm KLZ “Медведь” к Home Assistant

Доехали mini 360 с Aliexpress

Закину в блог с мессенджера для истории.

Сегодня доехали mini 360. В общем, лепят их на самых разных чипах под одной и той же маркой. Причем, у чипов отличаются параметры, так что надо быть внимательнее. Те, что были на mp2307 - они до 23В - т.е., можно с ноутбучной зарядки питать. А вот эти - до 18. Тут уже облом.

И ток до 2А против 3 у старых.

Order date: Aug 14, 2025. Получил 27 августа 2025.

Home Assistant, уведомления и логика автоматизаций

Еще один баг, на этот раз со стороны Home Assistant. В последнее время решил хоть для чего-то начать использовать купленный на Али пару лет назад планшет Cubot TAB 20. Накатил туда Android-приложение Home Assistant, поставил его вместо ланчера (удобно, кстати, сделали – такой себе kiosk-mode из коробки), стоит теперь постоянно включенный. Для нескольких существующих автоматизаций решил сделать уведомления – пусть планшет подает звук, если кто-то звонит в ворота или если закончилась стирка. И поначалу вроде даже работало, но…

Сегодня заметил, что логика “звонка в ворота” сломана. Стоит сказать, что у меня на звонок стоит уведомление в джаббер, а дальше идет минутная пауза – т.е., не важно, как часто гость жмет кнопку, сообщения я буду получать лишь раз в минуту. Сейчас между сообщением в jabber и паузой добавилось еще уведомление на планшет. И – пауза перестала работать. При этом у меня на планшете нет никаких уведомлений, зато сообщения в джаббер могут идти как угодно часто. При попытке запуска уведомления на планшет вручную (в редакторе автоматизации) ничего не происходит. В другом случае (в уведомлении про стирку) получил сообщение, что устройство не подключено к локальному пуш-сервису (или как-то так). Так или иначе, проблема с одним “блоком” в автоматизации приводила к ее “вылету” и до паузы дело просто не доходило – появлялась возможность повторного запуска процесса целиком.

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

esphome 2025.10.0 ломает связь с HA

Не было печали – апдейтов накачали.

Поставил свежий esphome – при прошивке девайсов (в моем случае на базе esp8266) при подключении к Home Assistant получаем

[D][api:160]: Accept 192.168.1.111
[D][api.connection:1383]: Home Assistant (192.168.1.111) connected
[W][api.connection:1880]: Home Assistant (192.168.1.111): Reading failed CONNECTION_CLOSED errno=11

Даже если удалить / добавить девайс со стороны HA – не помогает. Сам девайс видится (передобавить его можно), но при этом список объектов не передается. При этом в веб-интерфейсе устройства все в порядке.

Решается откатом на прошлую версию и прошивкой девайса с этой версии:

pip install esphome==2025.9.3

Со стороны HA ничего менять и передобавлять не надо.

Продолжаем наблюдение.

lm-sensors и Asrock A520M-ITX/ac

В последние несколько дней навожу порядки на “большом” домашнем сервере:

  • Обновил domU с сервером статистики. На самом деле – раскатал новую систему и мигрировал данные, так как пришлось бы последовательно апгрейдить Debian 9 -> Debian 13. Реально, но в чистовой установке будет меньше мусора, да и Nagios за это время сменил мажорную версию и простого апдейта не получилось бы.
  • После чего подобавлял кое-где munin-node и мониторинг хостов в Nagios’е: наконец-то убрал заглушку “return-ok” в мониторинге хоста и теперь карта красиво подсвечивает неработающие “ветки”, а также получаю меньше писем, если отвалился корневой узел.

Глаз зацепился в том числе и за подсвеченный красным раздел sensors в munin’е. Честно говоря, никогда не обращал внимания на ALERT’ы в выводе sensors, что-то показывает – и ладно.

Во-первых, поисключал явно нерабочее. Помогла эта ссылка. Дальше – больше: в ряде сенсоров (прежде всего – напряжения) были не прописаны минимальные и максимальные значения (либо было что-то неадекватное) – например, даже при корректном значении измерителя линии 3.3В в минимальных и максимальных значениях стоял ноль и датчик выдавал ALERT. В итоге чуть расширил свой кастомный конфиг для lm-sensors/etc/sensors.d/local.conf. В целом, синтаксис оказался достаточно простым: описываем секцию, обозначая чип или маской, или точным именем, дальше описываем то, что хотим сделать с опциями отдельных сенсоров, которые можно посмотреть по sensors -u.

/etc/sensors.d/local.conf

# https://superuser.com/questions/1828051/how-to-exclude-sensors-from-output
chip "nct6792-*"
        ignore  temp1
        ignore  temp4
        ignore  temp5
        ignore  temp6
        ignore  temp8
        ignore  temp9
        ignore  temp10
        ignore  in1
        ignore  in4
        ignore  in5
        ignore  in14

        set temp3_max 75
        set temp3_max_hyst 70


# +/- 5% для линий, которые на 3,3В
        set in2_min 3.3 * 0.95
        set in2_max 3.3 * 1.05
        set in3_min 3.3 * 0.95
        set in3_max 3.3 * 1.05
        set in7_min 3.3 * 0.95
        set in7_max 3.3 * 1.05
        set in8_min 3.3 * 0.95
        set in8_max 3.3 * 1.05

# Что-то непонятное. Задал диапазон или 0-1В, или 1-2В.
        set in9_min 1
        set in9_max 2
        set in12_min 1
        set in12_max 2
        set in13_min 1
        set in13_max 2
        set in10_min 0
        set in10_max 1
        set in11_min 0
        set in11_max 1
        set in6_min 0
        set in6_max 1


# Пара SSD. Адрес может смениться, если менять слоты
chip "nvme-pci-0b00"
        ignore  temp3
        set temp1_min 0

chip "nvme-pci-0c00"
        set temp1_min 0
        set temp2_max 100
        set temp2_min 0
        set temp3_max 100
        set temp3_min 0

[свернуть]

В тех сенсорах, в которых что-то показывалось, но непонятно, к чему оно относится (если они вообще подключены на плате) – просто задал широкий диапазон значений, чтобы не ругалось.

Еще одна полезная команда – sensors -s от рута, чтобы применить изменения в конфиге.

Накрылся очередной SSD от Kingspec

Накупил в конце 2023-го / начале 2024-го несколько SSD от Kingspec – сначала вторым для ноута, потом еще несколько для различных целей. Дешевые ж – на тот момент.

На сейчас – в ноуте иногда отваливается до перезагрузки, но пока живет. Терабайтник mini SATA, поставленный в плеер (т.е., крайне редкая запись и немногие чтения) накрылся некоторое время назад, остался без плеера.

Сейчас пришел черед мелкого диска на 256 ГБ, поставленный в малом сервере в пару с диском, шедшим с HP 820. Куплен был 13-го февраля 2024-го – т.е., хватило на полтора года. Сначала отвалился до перезагрузки, потом пропал насовсем. Купил замену на “Розетке” на 512 ГБ – объем про запас, смысл брать снова на 256? А в целом, цены на 256 локально сейчас дешевле, чем на Али “тогда”.

Сохранил SMART на тот момент, когда диск еще опознавался:

SMART

root@melissa:/home/rain# smartctl -a /dev/nvme1n1
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-39-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number: XF-256 2280
Serial Number: 0009556000221
Firmware Version: 0629479F
PCI Vendor ID: 0xfe19
PCI Vendor Subsystem ID: 0x1d89
IEEE OUI Identifier: 0x000000
Total NVM Capacity: 250 059 350 016 [250 GB]
Unallocated NVM Capacity: 0
Controller ID: 0
NVMe Version: 1.4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 250 059 350 016 [250 GB]
Namespace 1 Formatted LBA Size: 512
Namespace 1 IEEE EUI-64: 4f0000 000023c1ab
Local Time is: Tue Sep 23 10:33:27 2025 UTC
Firmware Updates (0x02): 1 Slot
Optional Admin Commands (0x0007): Security Format Frmw_DL
Optional NVM Commands (0x0016): Wr_Unc DS_Mngmt Sav/Sel_Feat
Log Page Attributes (0x02): Cmd_Eff_Lg
Maximum Data Transfer Size: 64 Pages
Warning Comp. Temp. Threshold: 100 Celsius
Critical Comp. Temp. Threshold: 110 Celsius

Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 4.00W – – 0 0 0 0 1 1
1 + 4.00W – – 1 1 1 1 10 10
2 + 4.00W – – 2 2 2 2 50 50
3 – 0.1000W – – 3 3 3 3 10000 5000
4 – 0.0050W – – 4 4 4 4 20000 125000

Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 35 Celsius
Available Spare: 83%
Available Spare Threshold: 10%
Percentage Used: 223%
Data Units Read: 12 537 201 [6,41 TB]
Data Units Written: 22 550 782 [11,5 TB]
Host Read Commands: 85 562 699
Host Write Commands: 586 078 813
Controller Busy Time: 29 138
Power Cycles: 19
Power On Hours: 13 721
Unsafe Shutdowns: 11
Media and Data Integrity Errors: 23 534
Error Information Log Entries: 171
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 1: 45 Celsius
Temperature Sensor 2: 35 Celsius

Error Information (NVMe Log 0x01, 4 of 4 entries)
Num ErrCount SQId CmdId Status PELoc LBA NSID VS
0 171 2 0x90ed 0x2281 – 2465024 1 –
1 170 2 0x80ed 0x2281 – 2465024 1 –
2 169 2 0x90f8 0x2281 – 11612896 1 –
3 168 2 0x80f8 0x2281 – 11612896 1 –

[свернуть]

Примечательно “Percentage Used: 223%”. У “Тошибы”, стоявшей в паре (которая до того была в ноуте) – только 26%.

На сейчас из живых Kingspec’ов остался только терабайтник в USB-кармане, который пока не использовал.

Несчастливые они какие-то.

ping и код завершения процесса

Давно уже использую в скрипте, рулящем маршрутами на несколько ISP, проверку доступности канала через ping несколькими пакетами на 8.8.8.8. Основной канал частенько переподключался без видимых на то причин. При этом пускал отдельно свой ping – там потерь пакетов вообще не было. Дошли руки подебажить. Если из 5 проверочных пингов пролазят только 2 – то ping -q отдает false. При 3 нормально. Вероятно, граница проходит по половине заданного числа попыток. В man’е вроде ничего на этот счет.

Переделал логику; теперь канал считается мертвым при полной потере пакетов на интерфейсе. Пока полет нормальный.

Пара малогабаритных БП с APFC с Али

По мотивам обзора на Mysku обзавелся парой симпатичных БП с APFC. Вышло около 22$ за штуку.

Дублирую сюда то, что писал на Mysku в комментариях:

В 12В стоят NCEP40T11 с TEA1995. В 48В внизу с отдельной термопрокладкой стоят 4 MBRD20150CT (смотрел один), по 2 впараллель.

Как резюме обсуждения – 2 отдельно закрепленных элемента могут быть транзисторами или диодами (надо смотреть обозначение на плате). Если транзисторы – там синхронный выпрямитель и снизу есть еще микросхема.  При этом в одном и том же БП (в данном случае на 12В) может быть как вариант с синхронным выпрямителем (мой случай), так и с простыми диодами (в обзоре).

Если отдельных элементов нет (как в 48В у меня) – диоды (всегда ли?) находятся с нижней стороны платы.

Косяк парсинга у apt-mirror

А может и не совсем косяк, но надо быть внимательнее.

Решил миррорить на NAS’е некоторые зеркала для Debian. В какой-то момент закинул в mirror.list строки вида

deb https://deb.debian.org/debian/ trixie main contrib non-free # Debian 13

При запуске утилита ломанулась качать вообще все – как для других архитектур, так и html’ки; каталог skel раздулся совсем уж неприлично. Не сразу нашел, что виной символ # – тот не обрабатывался как комментарий, а как какой-то wildcard. Убрал “хвосты” – все наладилось.