Перейти до змісту

Розумні розетки

Керуйте принтерами за допомогою розумних розеток Zigbee, Tasmota, Home Assistant, REST/Webhook або MQTT для моніторингу живлення, автоматизації та відстеження енергоспоживання per-print.

Та сама рація читає й датчики

Налаштований тут Zigbee-донгл тягне ще й датчики температури та вологості — див. Датчики середовища.


Огляд

Інтеграція з розумними розетками забезпечує:

  • Управління живленням -- дистанційне увімкнення/вимкнення принтерів
  • Моніторинг енергії -- відстеження споживання (lifetime + per-print)
  • Авто-увімкнення -- запуск принтера перед запланованим друком
  • Авто-вимкнення -- вимкнення після охолодження

Підтримувані типи

Тип Управління Енергія Опис
Tasmota Пряме управління розетками з прошивкою Tasmota
Home Assistant Будь-яка сутність switch/light через HA
REST / Webhook Довільні HTTP API ендпоінти
MQTT Zigbee2MQTT, Shelly Gen2 native MQTT, ESPHome, кастомні MQTT-розетки
Zigbee Zigbee-розетки, якими BamDude керує сам через донгл — без Home Assistant і без Zigbee2MQTT

Які розетки беруть

A1 / A1 mini тягнуть до ~140 W; X1 / P1 — до ~350 W; H2 — до ~500 W. Будь-яка 10A / 16A розетка підходить, але для енергозвітності найпопулярніше:

  • Athom Plug Pro (US/EU/UK, передпрошита Tasmota) — найкраще ціна/функції
  • Tapo P110M / P115 (HA через tapo-control) — дешево + надійно, тільки HA
  • Shelly Plus Plug (HA + native MQTT + REST) — найгнучкіше, три шляхи інтеграції
  • IKEA Tradfri outlet (HA через Zigbee2MQTT) — енергорепортинг із Z2M v1.30+

Як обрати шлях інтеграції

Уже маєш Кращий шлях Чому
Home Assistant Home Assistant Один dropdown сутностей, HA робить auth
Голу Tasmota-розетку Tasmota Native Tasmota команди, без брокера
Zigbee2MQTT / ESPHome MQTT Підпис прямо, без зайвого хопу
openHAB / FHEM / ioBroker REST / Webhook REST API чисто маплять у ON/OFF + status
Ще нічого, а розетки купив Zigbee Zigbee BamDude сам веде радіо — нічого більше ставити й тримати запущеним
Stock-розетку Tasmota (після перепрошивки) Best long-term + open source

Zigbee чи Zigbee2MQTT

Обидва керують тими самими розетками. Різниця в тому, що має бути запущене: шлях MQTT потребує живого Zigbee2MQTT (або Home Assistant) поруч із BamDude, шлях Zigbee — лише встромленого донгла. Якщо Zigbee2MQTT уже працює, лишайте його: переходити немає сенсу. Якщо починаєте з нуля — це один сервіс замість трьох.

Донглом володіє тільки одна програма. Якщо його вже тримає Zigbee2MQTT чи Home Assistant, BamDude його не отримає — див. Troubleshooting.


Zigbee setup

BamDude спілкується з Zigbee-розетками сам. Ви встромляєте донгл у машину з BamDude, спаровуєте розетки в налаштуваннях — і це весь стек. Ні Home Assistant, ні Zigbee2MQTT, ні брокера.

Перевірено наскрізь на SONOFF Zigbee Dongle-M по Ethernet із розеткою SONOFF S60ZBTPF. Інші розетки мають працювати, якщо віддають стандартний кластер On/Off; те, чим керувати не вийде, BamDude спаровувати відмовляється — він би все одно не зміг його перемкнути.

1. Підключити донгл

Налаштування → Розетки → Zigbee-координатор:

Поле Що вводити
Транспорт Ethernet для мережевого донгла, USB для встромленого в хост
Шлях (Ethernet) хост:порт — наприклад 192.168.1.50:6638
Шлях (USB) Вибирається зі списку знайдених портів — вводити не треба

Тисніть Підключити. Діє одразу, перезапускати BamDude не потрібно.

Порт на Ethernet — не опція

Адреса без порту відхиляється навмисно. Інакше радіобібліотека просто чекала б вічно, а ви бачили б «Zigbee не працює» без жодної підказки, що робити.

Ethernet переживає більше, ніж USB

Ethernet стоїть за замовчуванням, бо працює там, де USB ламається: у Docker-контейнері, на NAS, або на Windows-хості, який перенумеровує COM-порти після ребуту. Донгл поводиться однаково, різниця лише в транспорті.

На Linux для USB краще брати форму /dev/serial/by-id/... — вона переживає перевтикання, тоді як /dev/ttyUSB0 може зʼїхати.

2. Спарувати розетку

Тисніть Спарувати, підійдіть до розетки й затисніть її кнопку. Картка показує, що бачить радіо, просто по ходу — гадати не доводиться.

Вікно спарювання — 60 секунд. Воно закривається саме; відкритим без нагляду не лишається.

Пристрій, яким BamDude керувати не може, відхиляється й видаляється з мережі, і картка про це каже, а не лишає вас гадати, куди він подівся.

3. Додати як розетку

Налаштування → Розетки → Додати → Zigbee, далі оберіть пристрій зі списку спарованих. Адресу вводити не треба, а пристрої, вже зайняті іншою розеткою, у список не потрапляють.

Далі вона поводиться як будь-яка інша розетка — привʼязка до принтера, розклади, авто-увімкнення/вимкнення й енергія per-print там, де розетка її віддає.

Показники потужності

BamDude підвантажує ту саму бібліотеку помодельних виправлень, що й Home Assistant, тож розетки з відомими вадами прошивки обробляються, а не приймаються на віру. Понад те діє власне правило: вимкнена розетка показує нуль ватів. Розімкнене реле не несе навантаження, хай там що каже розетка — а дешеві розетки кажуть інше, через що порожня розетка колись показувала 33 Вт.

Між перемиканням і свіжим виміром потужність не показується взагалі, а не показується попередня. Оновлення — кожні 30–45 секунд.

Відключення й початок з нуля

Дві окремі дії, бо коштують вони геть по-різному:

Дія Що робить Оборотна
Відключити Зупиняє радіо. Мережа, спаровані пристрої й розетки лишаються тисніть Підключити
Забути мережу Стирає мережевий ключ переспаровувати кожну розетку вручну

Забути мережу варто зрозуміти до того, як тиснути. Ваші розетки й далі вважатимуть, що належать мережі, з якою BamDude більше не може говорити, тож кожну доведеться спаровувати особисто — там, де вона встановлена. Записи розеток і їхні налаштування зберігаються в обох випадках: вони показуються як недосяжні й оживають самі після переспарювання, тож принтер не втрачає ані автоматики живлення, ані історії енергії.

Бекапи містять Zigbee-мережу

Бекап, зроблений раніше, здатен відновити мережу — це єдиний шлях назад, окрім походу до кожної розетки.

Заміна донгла

Донгл носить мережу з собою. Наведіть BamDude на інший фізичний стік — і він підніметься абсолютно здоровим, але без жодного вашого пристрою: їх ніколи не було в мережі того донгла.

BamDude це розпізнає й каже прямо, називаючи попередній донгл, замість лишати вас із зеленим радіо та всіма розетками в офлайні. Назад два шляхи: повернути старий донгл або відновити бекап, зроблений коли він працював.


:material-tasmota: Tasmota setup

Settings → Smart Plugs → Add → Tasmota:

BamDude сканує LAN на mDNS-бродкаст Tasmota. Розетки з відповіддю — у списку Discovered — обери, дай імʼя, привʼяжи до принтера.

Поле Значення
Імʼя "X1C plug"
IP-адреса LAN IP розетки
Логін / пароль Якщо на розетці виставлений web auth

Static IP

Резервуй IP розетки у роутері — DHCP-renewal може флипнути IP і зламати лінк до BamDude.

Power control + real-time data

Після привʼязки на картці принтера зʼявляється plug icon. Клік → toggle. Tooltip — поточне споживання + cumulative kWh.

Іконка Значення
зелена On
сіра Off
червона Недосяжна

Поля з real-time-даних:

Поле Джерело Tasmota
Power (W) Status10.StatusSNS.ENERGY.Power
Voltage (V) Status10.StatusSNS.ENERGY.Voltage
Current (A) Status10.StatusSNS.ENERGY.Current
Energy (kWh) Status10.StatusSNS.ENERGY.Total

Оновлення кожні 10 с, поки відкрита вкладка BamDude, де ця розетка видно — сторінка принтерів або вкладка смарт-розеток у налаштуваннях. Коли не дивиться ніхто, Tasmota-розетку не опитує ніщо, крім погодинного знімка енергії: показник настільки свіжий, наскільки свіжа сторінка перед тобою.

Команди для дебагу

curl "http://PLUG_IP/cm?cmnd=Power"
curl "http://PLUG_IP/cm?cmnd=Power%20ON"
curl "http://PLUG_IP/cm?cmnd=Power%20OFF"
curl "http://PLUG_IP/cm?cmnd=Status%2010"

Home Assistant setup

  1. Settings → Smart Plugs → Add → Home Assistant (один раз).
  2. Заповни:
    • HA URL — http://homeassistant.local:8123 або https://ha.example.com
    • HA Long-Lived Access Token — HA → профіль → внизу → Long-lived access tokens → Create
  3. Test — BamDude пінгує /api/states. Форма блокується до проходження.

HA add-on

Якщо BamDude крутиться як HA add-on, поля з env BAR_URL / HA_TOKEN передзаповнюються з supervisor (lock-іконки ).

Після конфігу — dropdown Add Plug → Home Assistant містить кожен switch.* / light.* / input_boolean.*. Окремі сенсорні сутності (Tapo P110M, IKEA Tradfri, Shelly Plus Plug) маємо dropdown-и Power sensor + Energy sensor.

HA scripts (multi-device)

Скрипт у HA вмикає розетку + chamber light + fan разом:

script:
  x1c_full_power_on:
    sequence:
      - service: switch.turn_on
        target:
          entity_id: switch.x1c_smart_plug
      - service: light.turn_on
        target:
          entity_id: light.x1c_chamber
      - delay: '00:00:15'
      - service: switch.turn_on
        target:
          entity_id: switch.x1c_chamber_fan

У формі плагіна вказуєш script.x1c_full_power_on. На картці:

  • Run when on — запускає скрипт на power-on
  • Show on Printer Card — toggle на картку

REST / Webhook setup

Control URLs

Поле Required Приклад
ON URL ✓ http://openhab:8080/rest/items/X1C_Plug
ON body ON або {"command":"on"}
OFF URL ✓ http://openhab:8080/rest/items/X1C_Plug
OFF body OFF
Method POST / PUT / GET
Headers {"Authorization": "Bearer ..."}

Status

Поле Призначення
Status URL GET-ендпоінт current state
Status path JSON-path або порожньо для plain-text
ON value Що означає "on" (ON, true, 1)

Energy (опціонально)

Поле Призначення
Power URL + path + multiplier Поточні watts
Energy URL + path + multiplier Денні ("today") kWh
Lifetime Energy path + multiplier Накопичувальний лічильник kWh, якщо розетка його віддає

Заповніть Lifetime Energy path, якщо розетка його має

Два шляхи для енергії розділені, бо конкретний ендпоінт може віддавати або одне, або друге, або обидва — і вони не взаємозамінні. Усьому, що рахується за проміжок часу, потрібен лічильник, який тільки зростає:

  • Енергія на друк (і її вартість на картці архіву) — це різниця лічильника на старті й на завершенні друку.
  • Енергія за період на сторінці статистики — різниця погодинних снапшотів того ж лічильника.

Денне значення скидається опівночі, тож не відповідає на жодне з двох. До 0.4.7b4 BamDude складав усе, що віддавала REST-розетка, під «today» і взагалі не мав накопичувального значення — саме тому REST-розетки не показували енергію на друк і давали порожньо за будь-який період. Заповніть Lifetime Energy path — і обидва запрацюють; денний шлях опційний і живить лише живий показник «сьогодні».

Приклади

ON URL:  http://openhab:8080/rest/items/X1C_Plug   body: ON
OFF URL: http://openhab:8080/rest/items/X1C_Plug   body: OFF
Status URL: http://openhab:8080/rest/items/X1C_Plug/state
ON value:   ON
ON URL:  http://iobroker:8087/set/sonoff.0.X1C.SWITCH?value=true
OFF URL: http://iobroker:8087/set/sonoff.0.X1C.SWITCH?value=false
Status URL: http://iobroker:8087/get/sonoff.0.X1C.SWITCH
Status path: val   ON value: true
ON URL:  http://fhem:8083/fhem?cmd=set X1C_Plug on&XHR=1
OFF URL: http://fhem:8083/fhem?cmd=set X1C_Plug off&XHR=1
ON URL:  http://node-red:1880/plug/on
OFF URL: http://node-red:1880/plug/off
Method:  POST

MQTT plug setup

Для Zigbee2MQTT, нативного MQTT у Shelly Gen2, ESPHome і власних розеток на брокері.

Підключення до брокера

BamDude юзає broker із Settings → MQTT. MQTT-розетки ділять те саме підключення — окремої налаштовки брокера не треба.

Налаштування топіків

Settings → Smart Plugs → Add → MQTT:

Поле Призначення Z2M-приклад
Power topic + path + multiplier Watts zigbee2mqtt/x1c_plug / power / 1.0
Energy topic + path + multiplier kWh zigbee2mqtt/x1c_plug / energy / 1.0
State topic + path + ON value ON/OFF zigbee2mqtt/x1c_plug / state / ON

Коли стан, енергія й потужність живуть на одному топіку (дефолт Zigbee2MQTT), вкажи той самий топік для всіх трьох — різнитимуться лише JSON-шляхи.

Приклади

Power:  zigbee2mqtt/x1c_plug    path: power
Energy: zigbee2mqtt/x1c_plug    path: energy
State:  zigbee2mqtt/x1c_plug    path: state    ON: ON
Power:  shellies/x1c_plug/status/switch:0    path: apower
Energy: shellies/x1c_plug/status/switch:0    path: aenergy.total
State:  shellies/x1c_plug/status/switch:0    path: output    ON: true
Power:  esphome/x1c_plug/sensor/power/state               (path порожньо)
Energy: esphome/x1c_plug/sensor/total_energy/state        (path порожньо)
State:  esphome/x1c_plug/switch/relay/state               (path порожньо, ON: ON)

Щоб MQTT-розетка перемикалась, треба заповнити блок Control

Тип MQTT був monitor-only від дня появи й аж до міграції m113. Командний канал дає блок Control — командний топік плюс Payload для увімкнення / Payload для вимкнення. Лишиш топік порожнім — розетка лишається monitor-only; так само поводиться й наявна розетка після оновлення, бо колонки приходять порожніми.

Payload'и навмисно вільний текст, бо належать пристрою: Zigbee2MQTT чекає {"state": "ON"} на <name>/set, Tasmota — голе ON на cmnd/<name>/POWER.

До m113 спроба перемкнути не падала — вона тихо нічого не робила, бо розетка провалювалась у Tasmota-драйвер і діставала HTTP-виклик на ip_address, якої в MQTT-розетки немає причин мати. Це однаково стосувалось авто-увімкнення на старті друку, авто-вимкнення після нього, розкладів, ручних кнопок і Obico pause-and-power-off.

Енергія на друк потребує блоку Накопичена енергія

JSON шлях до накопиченої окремий від звичайного шляху енергії, бо розетка може публікувати або лічильник, що скидається опівночі (Tasmota ENERGY.Today), або наростаючий підсумок, який не скидається ніколи (Zigbee2MQTT energy) — і лише ти знаєш, на що вказує твоя. Енергії й вартості на друк потрібен саме наростаючий: інакше друк, що переходить через північ, виміряється відʼємним.


Switchbar quick access

Іконка розетки в підвалі сайдбара відкриває глобальний switchbar — кожна розетка з one-click toggle, незалежно від привʼязки. Зручно для "вирубити все на ферму перед виходом".


Безпека Auto Off

  • Не спрацьовує, поки bed_temp > порога cooldown (default 50 °C).
  • Не спрацьовує у paused (paused-by-user, paused-by-AMS, paused-by-runout).
  • Не спрацьовує, поки черга має non-completed джоб для цього принтера.
  • Спрацьовує з failed і cancelled коли стіл охолов.

Якщо розетка веде більше ніж принтер — Keep enabled флаг на цій розетці зупиняє auto-off.


Troubleshooting per type

  • Red dot → DHCP-renewal: оновити IP у BamDude
  • curl http://PLUG_IP/cm?cmnd=Power 401 → виставити web auth
  • Energy флатує на нулі → relay-only-модель (Status 10 без блока ENERGY)
  • Test fails → curl -H "Authorization: Bearer ..." $HA_URL/api/states має дати JSON. 401 → перегенеруй token. Timeout → reverse-proxy strip-ає Authorization.
  • Dropdown порожній → плагін exposeить як binary_sensor.* (read-only). Завернути у input_boolean.* template.
  • Energy нулі → вибрати окремий sensor.*_total_consumption у dropdown Energy sensor.
  • ON works, status fails → Status path drill-у JSON, або ON value не точний (глянь curl-ом, що API повертає).
  • Не оновлюється → Settings → MQTT → Connection status має бути зелений. Перевір mosquitto_sub -t 'zigbee2mqtt/x1c_plug' -v — повідомлення мають іти.
  • Power у 1000× off → не той multiplier.

Координатор не стартує. Картка показує причину, яку віддало саме радіо — читайте її, там зазвичай і відповідь. Найчастіші:

  1. Донгл уже зайнятий іншою програмою. Володіє тільки одна. Зупиніть Zigbee2MQTT чи ZHA в Home Assistant, або візьміть другий донгл. Це найімовірніша причина, і вона діє й між машинами: інстанс Z2M деінде, що відкрив ту саму socket:// адресу, тримає донгл так само міцно.
  2. Немає порту в Ethernet-адресі. 192.168.1.50 відхиляється, потрібно 192.168.1.50:6638.
  3. Не той USB-порт. Обирайте зі списку, а не вписуйте вручну.

Спарювання нічого не знаходить. Тримайте кнопку розетки, доки вона не покаже режим спарювання — більшості треба кілька секунд, коротке натискання не робить нічого. Перше спарювання робіть поруч із донглом. Якщо картка показала пристрій і одразу відхилила — у нього немає кластера On/Off: BamDude не спаровує те, чим не зможе керувати.

Розетка спарувалась, але недосяжна. Zigbee — це меш із реальними межами дальності. Розетка за стіною чи через поверх може спаруватись зблизька й відвалитись після встановлення. Розетки з мережевим живленням ретранслюють сигнал, тож проміжна розетка допомагає.

Усі розетки відвалились одночасно. Дивіться спершу на картку координатора, а не на розетки. Або радіо лежить — картка скаже чому, — або ви на іншому донглі, і BamDude це прямо повідомляє. Донгл носить мережу з собою, тож на заміненому стіку ваших пристроїв немає.

Вимкнена розетка показує нуль ватів. Так і має бути: розімкнене реле не несе навантаження. Деякі розетки після вимкнення й далі звітують останнє виміряне значення — це вада прошивки, а не вимір, і BamDude його не передає далі. Накопичена енергія, з якої рахується вартість друку, нулями ніколи не заповнюється.

Одразу після перемикання потужність порожня. Теж навмисно. Розетка оновлює свій регістр у свій час, тож будь-яке значення в цю мить описує навантаження, якого вже немає. Зʼявиться протягом 30–45 секунд.

Висмикнута розетка ще якийсь час показувалась онлайн. Це два різні випадки, і вони навмисно відповідають з різною швидкістю. Якщо ліг донгл — усі розетки на ньому стають недосяжними одразу; це той випадок, який помічають, і чекати тут нема чого. А от одна розетка, що замовкла при живому меші, позначається офлайн приблизно за дві хвилини. Ця затримка навмисна: помилковий «офлайн» гірший за пізній, бо саме на нього оператор і реагує.

На новій розетці «спожито сьогодні» порожнє. У протоколі Zigbee такого показника немає — лічильник віддає лише накопичене за весь час. BamDude рахує денне споживання з власної історії від вашої локальної півночі, тож поки нема від чого відняти, він показує порожнє, а не нуль. Нуль читався б як «ця розетка нічого не спожила», а це інше твердження.


Автоматизація

Яка розетка живить принтер

До принтера може бути прив'язано кілька розеток: власне його живлення плюс аксесуари — фільтр камери, підсвітка, сушарка. Перемикач «Ця розетка живить принтер» (під Link to Printer) каже BamDude, де що.

Він увімкнений за замовчуванням, тож для схеми «одна розетка на принтер» нічого не змінюється. Вимикайте його на аксесуарах, бо лише розетка, позначена як джерело живлення:

  • позначає принтер офлайн при вимкненні. Раніше це робив будь-який аксесуар — стан принтера обнулявся, і черга переставала надсилати йому роботу, хоча сам принтер працював нормально.
  • вмикається, щоб розбудити принтер для друку з черги. Увімкнення вентилятора фільтра ніколи б не підняло принтер, і черга чекала б на з'єднання, якого не буде.

Розетки-аксесуари так само вмикаються/вимикаються і так само віддають потужність та енергію — вони просто не говорять за стан принтера.

Авто-увімкнення

Коли друк з черги готовий до запуску, BamDude вмикає розетку, що живить принтер, чекає на його завантаження, а потім стартує друк.

Авто-вимкнення

Після завершення друку BamDude чекає охолодження стола, перевіряє наявність інших друків у черзі, а потім вимикає живлення.

Налаштовується в Settings → Smart Plugs з параметрами температури охолодження та часу.

Авто-вимкнення після сушіння

Окремий per-plug перемикач Auto Off After Drying вимикає розетку після завершення циклу сушіння AMS — незалежно від авто-вимкнення на завершення друку вище. Спрацьовує, щойно будь-який AMS на привʼязаному принтері завершує цикл сушіння. Оскільки тригер читається зі стану firmware, ловляться всі три шляхи сушіння: сушіння з черги, ambient-сушіння та вручну запущений цикл.

Має власне поле затримки, дефолт 10 хвилин (проти 5 хвилин для авто-вимкнення на завершення друку). Камера AMS лишається гарячою одразу після циклу, тож довший дефолт дає філаменту і камері більше часу охолонути перед зняттям живлення.

Дотримується тих самих guard-ів, що й авто-вимкнення на завершення друку:

  • Майстер-флаг enabled на розетці має бути увімкнений.
  • Сутності Home Assistant script.* можна запустити, але ніколи вимкнути (скрипти one-shot, не stateful).
  • Завжди використовує time-delay-гілку. Шлях охолодження за температурою стосується hotend і не має сенсу після циклу сушіння, тож тут обходиться.

Гранулярність тригера — per-printer, не per-AMS

Модель розетки — plug→printer, тож per-AMS-роутинг (окрема розетка лише на один AMS-юніт) не підтримується. Перемикач спрацьовує, коли будь-який AMS на привʼязаному принтері завершує сушіння — не конкретний юніт.


Відстеження енергії per-print

Для розумних розеток, що репортують kWh-лічильник, BamDude знімає показання лічильника на старті друку та ще раз на завершенні. Дельта -- це енергія, спожита саме цим друком, збережена в рядку архіву.

Як це працює

  • Друк стартує → BamDude читає поточний kWh розетки та пише його в PrintArchive.energy_start_kwh.
  • Друк завершується → свіжа сесія БД перечитує розетку, обчислює current - energy_start_kwh і зберігає результат на архіві.
  • Невдалі та скасовані друки фіксують часткову енергію -- дельта від старту до перерви все одно осмислена.

Restart-стійкість

energy_start_kwh зберігається в рядку архіву, ніколи не тримається в in-memory dict. Рестарт BamDude посеред друку зберігає стартовий baseline, і print-end-хендлер все одно видасть коректну дельту.

Lifetime-агрегація

Для звітів типу "kWh, спожиті принтером X цього місяця", BamDude робить погодинні снепшоти у таблицю smart_plug_energy_snapshots. Тотали по діапазону дат рахуються per-plug як max(0, last_in_range - baseline), тож скидання лічильника (перепрошивки firmware, перезавантаження розетки по живленню) не дає від'ємних дельт.

Energy Display Mode

У Settings → System → "Energy display mode":

Режим Джерело Сценарій
print Сума архівних дельт per-print "Скільки електрики коштували друки, які я зробив?"
total (за замовчуванням) Lifetime-лічильник розетки через snapshot-діапазон "Скільки спожила розетка принтера?"

Два режими можуть розходитися, коли принтер під живленням (нагрів, idle, standby) без активного друку -- лише total це ловить.


Споживання в часі

У рядку розетки на картці принтера є кнопка графіка. Вона відкриває записане споживання за останні шість годин, добу, дві доби або тиждень — ті самі діапазони й та сама форма, що й у графіків датчиків, тож хто знає один, знає й другий.

Показники зберігаються місяць, а вікно графіка сягає тижня. Розрив свідомий: місяць показників однієї розетки — це більше точок, ніж будь-який графік здатен корисно намалювати, і зберігання тут заради діапазонної статистики, а не заради картинки.

Щільність лінії залежить від типу розетки

Zigbee- і MQTT-розетки самі звітують, тож записується кожен звіт і лінія щільна. Tasmota, REST і Home Assistant не звітують ніколи — їх опитує фоновий цикл. Їхня історія через це рівномірна, а не подієва, і грубіша.

Дедуплікації свідомо немає: розетка, яка стабільно звітує ті самі вати, і розетка, яка замовкла, не мають виглядати однаково.


Надійність та обслуговування

Розумні розетки авто-перепідписуються в MQTT при кожному старті BamDude через хелпер subscribe_plug_to_mqtt. Більшість випадків "розетка перестала відповідати" фіксяться одним рестартом.

Якщо розетка не відповідає після рестарту

  1. Підтвердьте, що розетка працює у власному застосунку (web UI Tasmota / HA dashboard / Tasmota Console).
  2. Перевірте конфіг MQTT-топіків розетки в Settings → Smart Plugs -- per-type поля мають збігатися з реальними топіками брокера.
  3. Рестартніть BamDude ще раз після виправлення топіка.

Startup-restore code path, create-роут і update-роут усі ходять через той самий хелпер, тож конфігурація топіків не може розходитися між create та reconnect.


Поради

Почніть просто

Спочатку використовуйте ручне керування живленням, перш ніж вмикати автоматизацію. Назбирайте впевненість у надійності розетки, перш ніж давати BamDude циклити живлення сам.

Перевірте охолодження

Прогляньте кілька друків, щоб знайти оптимальну температуру охолодження для вашого принтера.

Паруйте з макросами

Поєднайте авто-вимкнення живлення з макросом print_finished, щоб одночасно вимикати світло корпусу. Див. Макроси.

auto_light_off більше нема — його замінили макроси

Спадковий прапорець auto_light_off на кожному принтері викинули в міграції m021. Повтори поведінку MQTT-action макросом chamber_light_off на print_finished (і симетричний chamber_light_on на print_started якщо хочеш повний цикл). Macro-фреймворк додає delay-контроль, симетрію on/off, per-model таргетинг і per-swap-profile фільтри — чого старий boolean не мав.

Звітність по енергії

Перемкніть energy display mode на print, якщо ви рахуєте з клієнтів per-print. Використовуйте total для особистого "скільки коштує моя ферма" -- він включає idle/standby споживання, яке print пропускає.

Початково базується на документації Bambuddy.