![Logo](../../admin/automatic-feeder.png) # ioBroker.automatic-feeder

## Адаптер automatic-feeder для ioBroker Цей адаптер перетворює будь-який уже наявний вимикач ioBroker (розетку, реле, GPIO-вихід …) на **автоматичну годівницю з керуванням за часом**. Він вмикає вихід у заданий вами час на визначену кількість секунд і може при цьому враховувати температуру, а також зміну дня/ночі, щоб годування ніколи не відбувалося в неправильний час. Цей документ є повним посібником. Якщо ви ще ніколи не користувалися адаптером, читайте його зверху донизу — **Швидкий старт** за кілька хвилин доведе вас до першого годування, решта пояснює кожне налаштування детально. --- ## Зміст 1. [Що робить адаптер](#1-що-робить-адаптер) 2. [Передумови](#2-передумови) 3. [Встановлення](#3-встановлення) 4. [Швидкий старт](#4-швидкий-старт--перше-годування) 5. [Сторінка налаштувань детально](#5-сторінка-налаштувань-детально) 6. [Об'єкти / точки даних](#6-обєкти--точки-даних) 7. [Приклади / рецепти](#7-приклади--рецепти) 8. [Сповіщення Telegram](#8-сповіщення-telegram) 9. [Усунення несправностей і поширені запитання](#9-усунення-несправностей-і-поширені-запитання) 10. [Журналювання та пошук помилок](#10-журналювання-та-пошук-помилок) --- ## 1. Що робить адаптер «Годування» за своєю суттю дуже просте: **вихід УВІМК → зачекати задану кількість секунд → знову ВИМК**. У переробленій автоматичній годівниці протягом цього часу працює двигун і видає корм. Адаптер керує **до 5 вимикачами**, кожен повністю незалежно та з власною вкладкою конфігурації, названою за іменем вимикача. Для кожного вимикача ви визначаєте: * **коли** відбувається годування — або у **фіксований час** (наприклад, 08:00 та 18:00), або з **інтервалом** у межах часового вікна (наприклад, кожні 60 хвилин між 08:00 та 18:00); * **як довго** вихід залишається ввімкненим (тривалість годування в секундах); * **чи блокувати**, якщо температура води або повітря надто низька/висока; * **чи не годувати вночі** (на основі реального сходу/заходу сонця для вашого місцезнаходження); * **чи контролювати процес перемикання** (перевірка, чи дійсно відбулося ввімкнення та вимкнення) та опціонально надсилати повідомлення про результат через **Telegram**; * **чи зменшувати або призупиняти** годування протягом повторюваного **зимового** сезону — опціонально з нагадуваннями в Telegram перед його початком і завершенням; * **чи підлаштовувати** інтервал і порцію до температури води/повітря автоматично (**динамічне годування**, модель Q10); * **чи блокувати** годування, коли розчинений **кисень** (O₂) надто низький. Ви можете будь-коли запустити годування **вручну** — безпосередньо на сторінці налаштувань (кнопка з довільно обраною тривалістю) або через точку даних (наприклад, кнопка у вигляді VIS). > Важливо: адаптер не створює вимикач самостійно. Він **керує вже наявним > об'єктом** у вашому ioBroker. Цей об'єкт ви обираєте в конфігурації. --- ## 2. Передумови | Вам потрібно | Деталі | |-------------|---------| | **ioBroker** з актуальним **admin** (≥ 7) | Сторінка конфігурації реалізована на React. | | **Об'єкт-вимикач** | Доступна для запису точка даних ioBroker, яка вмикає/вимикає автоматичну годівницю — наприклад, розетка (`shelly.0.…`, `sonoff.0.…`, `zigbee.0.…`), реле або змінна скрипту. | | **Геокоординати** | Для розрахунку сходу/заходу сонця. Або із системних налаштувань ioBroker, або за адресою/картою. **Обов'язково.** | | *(опціонально)* Об'єкти температури | Наявні точки даних із температурою повітря та/або води, для температурного блокування або динамічного годування. Призначаються **для кожного вимикача** у вкладці вимикача. | | *(опціонально)* Об'єкти **кисню (O₂)** | Наявні точки даних із розчиненим киснем, щоб блокувати годування, коли він падає надто низько. Призначаються **для кожного вимикача**. | | *(опціонально)* Екземпляр **Telegram** | Офіційний адаптер `telegram`, налаштований і запущений, якщо ви бажаєте push-сповіщення. | | Доступ до інтернету на хості ioBroker | Лише для пошуку адреси/карти в конфігурації. Звичайна робота відбувається офлайн. | --- ## 3. Встановлення 1. У **admin** ioBroker відкрити вкладку **Адаптери** (Adapter). 2. Знайти **automatic-feeder** у списку адаптерів і натиснути **Встановити** (Installieren). 3. Створити **екземпляр** адаптера. 4. Відкрити налаштування екземпляра (символ шестірні) — має з'явитися сторінка конфігурації з вкладкою **Основні налаштування** (Grundeinstellungen). Якщо вона залишається порожньою, див. [Усунення несправностей](#9-усунення-несправностей-і-поширені-запитання). --- ## 4. Швидкий старт – перше годування Мета: вимикач має — одразу, для тесту — годувати протягом 5 секунд. 1. **Відкрити налаштування** екземпляра automatic-feeder. 2. На вкладці **Основні налаштування** (Grundeinstellungen): * У розділі **Місцезнаходження** (Standort) дозволити *Перейняти системні налаштування* (Systemeinstellungen übernehmen), якщо ваш ioBroker уже має координати. Інакше обрати *Задати місцезнаходження окремо* (Standort spezifisch festlegen), ввести адресу, натиснути **Пошук** (Suchen) і підтвердити маркер на карті. * Прокрутити вниз до розділу **Вимикачі** (Schalter) і натиснути **Додати вимикач** (Schalter hinzufügen). * Призначити **ім'я** (наприклад, `Koi-Teich`). Це ім'я стане заголовком окремої вкладки. * Поруч із **Об'єкт-вимикач** (Schalter-Objekt) натиснути символ списку і вибрати точку даних, яка перемикає вашу годівницю (наприклад, вашу розетку). Вимикач має бути **активним** (галочка ліворуч). 3. **Зберегти** (дискета/галочка внизу). З'явиться нова вкладка з іменем вашого вимикача. 4. Відкрити цю **вкладку вимикача**. У самому верху під **Ручне годування** (Manuelle Fütterung) встановити тривалість (наприклад, `5` секунд) і натиснути **Годувати зараз** (Jetzt füttern). Вихід має ввімкнутися на 5 секунд, а потім знову вимкнутися. 5. На цій самій вкладці налаштувати справжній розклад у розділі **План годування** (Fütterungsplan) (наприклад, фіксований час 08:00 та 18:00) і встановити **Тривалість годування** в розділі **Процес годування** (Fütterungsvorgang), потім **Зберегти**. Готово — відтепер адаптер годує автоматично. Усе інше пояснює параметри детально. --- ## 5. Сторінка налаштувань детально Конфігурація має вкладку **Основні налаштування** (Grundeinstellungen), а також **одну вкладку на кожен вимикач** (створюється автоматично, щойно вимикач отримує ім'я). Якщо сторінка не прокручується, збільшіть вікно або скористайтеся смугою прокручування праворуч — усі розділи є доступними. ### 5.1 Вкладка «Основні налаштування» (Grundeinstellungen) #### Місцезнаходження (обов'язково) Адаптеру потрібне ваше географічне положення, щоб розраховувати схід і захід сонця (для нічного блокування). Два варіанти: * **Перейняти системні налаштування** (Systemeinstellungen übernehmen) — бере широту/довготу із системної конфігурації ioBroker (рекомендовано, якщо вони там уже задані). Поточні значення відображаються. * **Задати місцезнаходження окремо** (Standort spezifisch festlegen) — визначити положення самостійно: * Ввести **адресу** і натиснути **Пошук** (Suchen). Адаптер розв'язує її (через OpenStreetMap / Nominatim) і встановлює маркер. * Або **клацнути по карті** / **перетягнути маркер**, щоб вибрати точне місце. * Широту/довготу можна також вводити безпосередньо; карта слідуватиме за ними. > Пошук адреси відбувається в бекенді адаптера, тому **екземпляр має бути запущений**. Карта та пошук > потребують доступу до інтернету. #### Сонячне вікно (без годування вночі) Визначає часове вікно, у якому дозволено годувати: * **Хвилин після сходу сонця** — годувати лише через стільки хвилин *після* сходу сонця. * **Хвилин до заходу сонця** — припинити за стільки хвилин *до* заходу сонця. Приклад: при сході сонця о 06:30, заході о 21:00 та зміщеннях 30 / 30 годування дозволено лише між **07:00 та 20:30**. Кожен вимикач може враховувати це вікно окремо або ігнорувати його (див. *Обмеження* у вкладці вимикача). Розраховані значення часу також зберігаються в точках даних `sunrise` / `sunset` і щоночі автоматично перераховуються. #### Вимикачі Список автоматичних годівниць (до 5). Для кожного запису: * **Активний** (галочка) — плануються лише активні вимикачі. * **Ім'я** — довільний текст; стає заголовком вкладки вимикача та іменем каналу в дереві об'єктів. * **Об'єкт-вимикач** (Schalter-Objekt) — наявна точка даних ioBroker, якою керують. Вибирати через символ списку, очищати через хрестик. За допомогою **Додати вимикач** (Schalter hinzufügen) ви створюєте ще один (макс. 5), за допомогою символа кошика видаляєте один. При видаленні також видаляються його точки даних. ### 5.2 Вкладки вимикачів Кожен налаштований вимикач отримує власну вкладку зі своїм іменем. Вона містить наступні розділи. #### Ручне годування * **Тривалість ручного годування (секунди)** — тривалість, яку використовує кнопка. * **Годувати зараз** (Jetzt füttern) — одразу запускає годування з цією тривалістю. Зручно для тестування або для додаткової порції. (Чи ігноруються блокування, залежить від *Ручний запуск ігнорує всі блокування* у розділі *Обмеження*.) * Для кнопки екземпляр має бути запущений, а конфігурація **збережена**. #### План годування Вибрати **один** режим: * **Фіксований час** — список значень часу (`HH:mm`). Додавати будь-яку кількість; годівниця спрацьовує щодня в кожне з них. Приклад: `08:00` та `18:00`. * **Інтервал у межах періоду** — повторювати годування в межах вікна: * **Початок періоду** / **Кінець періоду** — наприклад, з 08:00 до 18:00. * **Інтервал (хвилини)** — наприклад, 60 → годує щодня о 08:00, 09:00, … до кінця вікна. Наступний запланований час завжди зберігається в точці даних `status.nextFeeding`. #### Процес годування * **Тривалість годування (секунди)** — як довго вихід залишається УВІМК при запланованому годуванні. * **Значення УВІМК** / **Значення ВИМК** — значення, які записуються в об'єкт-вимикач. Стандартними є `true` та `false`, що підходить для більшості розеток/реле. Якщо ваш пристрій очікує числа або текст, ввести тут, наприклад, `1` / `0` або `ON` / `OFF`. #### Джерела температури та кисню Кожен вимикач (станція годування) має **власні** сенсори — різні ставки/резервуари можуть використовувати різні об'єкти: * **Температура повітря** — поставте галочку і виберіть точку даних, яка містить температуру повітря цієї станції. * **Температура води** — поставте галочку і виберіть точку даних, яка містить температуру води цієї станції. * **Кисень (O₂)** — поставте галочку і виберіть точку даних, яка містить розчинений кисень. Доцільними є лише числові точки даних. Поточні значення дзеркалюються в точки даних `status.airTemperature`, `status.waterTemperature` та `status.oxygen` цього вимикача. Порогові значення налаштовуються нижче (*Температурне блокування*), а температури також керують *Динамічним годуванням*. #### Температурне блокування Відображається лише для джерел температури, активованих вище (*Джерела температури та кисню*). Для кожного вимикача: * **Блокувати за температурою води** — *Блокувати, якщо нижче* та/або *Блокувати, якщо вище* (°C). * **Блокувати за температурою повітря** — те саме для повітря. Якщо поточна температура виходить за межі дозволеного діапазону, годування пропускається, а причина записується в `status.blockReason`. (Якщо значення температури невідоме, це джерело не блокує.) #### Обмеження * **Не годувати вночі** — враховує сонячне вікно (разом зі зміщеннями). Вимкнути, якщо цей вимикач може годувати цілодобово. * **Ручний запуск ігнорує всі блокування** — якщо активно, кнопка та точка даних `feedNow` годують навіть при активному температурному/нічному блокуванні. #### Динамічне годування Опційно: підлаштовує **інтервал і тривалість годування до температури** за моделлю Q10 (обмін речовин приблизно подвоюється на кожні +10 °C). Потрібне активне джерело температури; фіксовані години тоді замінюються інтервалом у межах вікна. * **Увімкнення / джерело** – увімкніть і виберіть температуру води чи повітря. * **Опорна / Q10** – базовий інтервал і тривалість діють за опорної температури (напр. 20 °C); Q10 зазвичай 2–2,5. * **Інтервал / тривалість (база, мін, макс)** – межі обчисленого інтервалу (хвилини) та тривалості (секунди). **Базовий інтервал і максимальний інтервал мають бути більшими за 0**, інакше жодне годування не може бути заплановане. * **Вікно усереднення / гістерезис** – ковзне середнє (напр. 24 год) згладжує сплески; гістерезис запобігає переплануванню за незначних змін. Поточні значення доступні в `status.dynamicAvgTemperature`, `status.dynamicRate`, `status.dynamicIntervalMin` та `status.dynamicDurationSec`. Опційне джерело **кисню (O₂)** може блокувати годування, коли розчинений кисень падає нижче порогу. Зимова пауза має пріоритет над динамічним годуванням. > Якщо динамічне годування ввімкнено, але не вдається обчислити дійсний інтервал (базовий або максимальний інтервал дорівнює 0 чи задано недійсне часове вікно), нічого не планується: `status.nextFeeding` залишається порожнім, а `status.blockReason` показує підказку. Задайте базовий інтервал і максимальний інтервал, більші за 0. #### Зимова пауза Для кожного перемикача можна задати повторювану **зимову паузу** (сезонну, у вигляді дат `ММ-ДД`, які повторюються щороку та можуть переходити через Новий рік). * **Увімкнути зимову паузу** – увімкнути паузу. * **Початок / Кінець зими** – виберіть день і місяць з календаря (відображається як дд.мм), напр. з 01.11 до 15.03. * **Режим** – під час паузи **призупинити годування**, годувати з власним **обмеженим** інтервалом або **один раз на день** у визначений час; діє власна **тривалість годування взимку**. * **Нагадування (Telegram)** – у дні перед початком і перед завершенням щодня (востаннє в сам день) о встановленій годині надсилається нагадування. Потрібен екземпляр Telegram (див. нижче). Поточний стан показано в точці даних `status.winterActive`. Після завершення паузи годування відновлюється автоматично. #### Контроль перемикання Після перемикання адаптер може перевірити, чи вимикач **дійсно** досяг стану ввімкнення та вимкнення, і повідомляє про один із трьох результатів за кожне годування: | Результат | Значення | Повідомлення | |----------|-----------|---------| | ✅ Успіх | Вимикач увімкнувся та вимкнувся, як очікувалося | „Годування запущено на x с." | | ❌ Ввімкнення не вдалося | вимикач так і не підтвердив стан УВІМК | „Не вдалося виконати годування. Перевірте перемикач!" | | ❌ Вимкнення не вдалося | він увімкнувся, але не вимкнувся знову | „Несправність: годівниця не вимкнулася!" | > Повідомлення надсилається встановленою системною мовою ioBroker (за замовчуванням англійською). * **Перевіряти, чи вимикач дійсно вмикається та вимикається** — активує контроль. * **Таймаут контролю (секунди)** — як довго очікувати на підтвердження. * **Спроби перевірки** — скільки рознесених у часі повторних перевірок виконується перед повідомленням про несправність (за замовчуванням 3). Кожна спроба також активно зчитує поточний стан, тож затримка зворотного зв’язку (напр., радіо Homematic) більше не спричиняє хибну помилку. > **Важливо:** контроль працює лише тоді, коли вимикач **повертає свій фактичний > стан**, тобто цільовий об'єкт оновлюється з `ack=true` (типово для > розеток/реле зі зворотним зв'язком про статус). Простий допоміжний boolean, який ніхто не підтверджує, > завжди повідомляв би про несправність — тоді вимкніть контроль для цього вимикача. Результат також зберігається в точках даних `status.lastResult` (текст) і `status.error` (boolean), щоб ви могли на нього реагувати (наприклад, запустити власне сповіщення). #### Сповіщення Telegram Надсилає повідомлення контролю перемикання в Telegram — налаштовується **для кожного вимикача**: * **Екземпляр Telegram** — вибрати один із встановлених екземплярів `telegram.*` (або *Жоден*, щоб вимкнути Telegram для цього вимикача). Якщо жодного не встановлено, поле вказує на це. * **Отримувач Telegram (опціонально)** — певне ім'я користувача/чату, як налаштовано в адаптері telegram; залишити порожнім, щоб надсилати всім налаштованим отримувачам. * **Прапорці** — вибрати, які повідомлення надсилаються: успішне годування, неможливо виконати та/або несправність вимкнення. **Нагадування про зимову паузу** (якщо активовані, див. *Зимова пауза*) надсилаються до того самого екземпляра Telegram, незалежно від цих прапорців контролю. Повне налаштування описано в розділі [Сповіщення Telegram](#8-сповіщення-telegram). --- ## 6. Об'єкти / точки даних Адаптер створює наступні точки даних у своєму просторі імен (`automatic-feeder..`). **Глобальні** | Точка даних | Тип | Значення | |------------|-----|-----------| | `info.connection` | boolean (ro) | Адаптер працює, а конфігурація дійсна. | | `sunrise` / `sunset` | string (ro) | Розрахований схід/захід сонця на сьогодні. | **Для кожного вимикача під `switches..`** (`` — це внутрішній ID на кшталт `sw-0`) Безпосередньо під вимикачем розташовані ручний запуск і два підканали: * **`status`** (`switches..status.*`) — точки даних стану лише для читання, наведені нижче. * **`settings`** (`switches..settings.*`) — **редаговане** дзеркало конфігурації цього вимикача. Запис нового значення туди (з VIS або скрипту) змінює конфігурацію та перезапускає екземпляр, щоб зміна набула чинності. Кілька похідних полів доступні лише для читання (наприклад, `winterWindow`). | Точка даних | Тип | Значення | |------------|-----|-----------| | `feedNow` | boolean (rw) | Записати `true`, щоб погодувати вручну. | | `status.feedingActive` | boolean (ro) | Наразі триває годування. | | `status.lastFeeding` | string (ro) | Час останнього годування. | | `status.nextFeeding` | string (ro) | Час наступного запланованого годування. | | `status.blocked` | boolean (ro) | Остання спроба була заблокована. | | `status.blockReason` | string (ro) | Причина блокування (ніч/температура/кисень). | | `status.lastResult` | string (ro) | Текст результату останньої спроби годування. | | `status.error` | boolean (ro) | Остання спроба мала несправність перемикання. | | `status.winterActive` | boolean (ro) | Наразі активна зимова пауза. | | `status.winterLastStartReminder` | string (ro) | Дата останнього надісланого нагадування «зима починається». | | `status.winterLastEndReminder` | string (ro) | Дата останнього надісланого нагадування «зима завершується». | | `status.dynamicAvgTemperature` | number (ro) | Усереднена температура, яку використовує динамічне годування. | | `status.dynamicRate` | number (ro) | Коефіцієнт швидкості Q10, що наразі застосовується динамічним годуванням. | | `status.dynamicIntervalMin` | number (ro) | Наразі обчислений динамічний інтервал (хвилини). | | `status.dynamicDurationSec` | number (ro) | Наразі обчислена динамічна тривалість (секунди). | | `status.airTemperature` | number (ro) | Значення власного джерела температури повітря цього вимикача. | | `status.waterTemperature` | number (ro) | Значення власного джерела температури води цього вимикача. | | `status.oxygen` | number (ro) | Значення власного джерела розчиненого кисню цього вимикача. | Ці точки даних можна використовувати у VIS, скриптах або інших адаптерах — наприклад, відображати `status.nextFeeding` на дашборді або при `status.error = true` запускати власний сигнал тривоги. --- ## 7. Приклади / рецепти **Ставок з коропами кої, двічі на день, лише за достатнього тепла** * Режим *Фіксований час* → `08:00`, `18:00`; тривалість `6` с. * У вкладці вимикача, у розділі *Джерела температури та кисню*, увімкнути *Температуру води* і вибрати сенсор; потім *Блокувати за температурою води* → *Блокувати, якщо нижче* `8` °C (без годування при надто холодній воді). * Увімкнути *Не годувати вночі*. **Вольєр, часті малі порції протягом дня** * Режим *Інтервал у межах періоду* → 07:00–19:00, інтервал `90` хв; тривалість `3` с. **Ставок з коропами кої, з підлаштуванням до температури (динамічне годування)** * У вкладці вимикача, у розділі *Джерела температури та кисню*, увімкнути *Температуру води* і вибрати сенсор. * Потім відкрити *Динамічне годування*, увімкнути його, джерело *Температура води*. * Опорна `20` °C, Q10 `2.2`, базовий інтервал `60` хв (мін `30`, макс `480`), базова тривалість `5` с (мін `2`, макс `15`). Тоді годування відбувається частіше й трохи більше в теплу погоду, і менше в холодну. **Зимова перерва для ставка** * У вкладці вимикача відкрити *Зимова пауза*, увімкнути її, задати *Початок зими* `01.11` і *Кінець зими* `15.03`, режим *Призупинити годування*. * Опціонально позначити нагадування, щоб отримати повідомлення в Telegram за кілька днів до початку/завершення. **Ручна додаткова порція через кнопку VIS** * У VIS створити кнопку, яка записує `true` в `automatic-feeder.0.switches.sw-0.feedNow`. * Опціонально активувати *Ручний запуск ігнорує всі блокування*, щоб годування відбувалося завжди. --- ## 8. Сповіщення Telegram 1. Встановити та налаштувати адаптер **telegram** (створити бота через @BotFather, ввести токен, почати чат із ботом). Екземпляр Telegram має **бути запущений**. 2. У **вкладці вимикача** automatic-feeder відкрити розділ **Сповіщення Telegram**: * Вибрати **Екземпляр Telegram** у випадному списку (наприклад, `telegram.0`). * Опціонально ввести **отримувача** (ім'я користувача/чату, що відображається в адаптері telegram); залишити порожнім, щоб сповіщати всіх. * Позначити бажані повідомлення: *успішне годування*, *неможливо виконати*, *несправність вимкнення*. 3. Зберегти. Відтепер обрані результати контролю надсилаються в Telegram (з іменем вимикача попереду). Передумовою є те, що *Контроль перемикання* для цього вимикача активовано. 4. **Нагадування про зимову паузу** використовують той самий екземпляр Telegram і того самого отримувача. Вони керуються в розділі *Зимова пауза* (кількість днів до початку/завершення та година нагадування) і **не** потребують активованого контролю. --- ## 9. Усунення несправностей і поширені запитання **Сторінка налаштувань порожня / біла.** Перезавантажити браузер за допомогою **Strg+Shift+R**. Якщо це не допомагає, перезапустити екземпляр і знову відкрити налаштування. **Нова іконка / зміна не з'являється.** Кеш браузера. Жорстко перезавантажити браузер (Strg+Shift+R). **Годування взагалі не відбувається.** Перевірити по черзі: вимикач **Активний**; вибрано **Об'єкт-вимикач**; **Розклад** дійсний (`status.nextFeeding` показує час); не **заблоковано** (переглянути `status.blocked` / `status.blockReason`); **Сонячне вікно** не виключає цей час; встановити **рівень журналу** екземпляра на `debug` і спостерігати за журналом. **Уночі ніколи не годується, хоча я цього хочу.** Або деактивувати *Не годувати вночі* для цього вимикача, або скоригувати зміщення сонця. Без дійсних координат нічне блокування деактивовано (і в журнал записується попередження). **Контроль завжди повідомляє про несправність.** Ваш об'єкт-вимикач, ймовірно, не повертає свій фактичний стан (`ack=true`). Або використати вимикач зі зворотним зв'язком про статус, або деактивувати *Контроль перемикання* для цього вимикача. **Динамічне годування нічого не змінює.** Переконайтеся, що обране джерело температури (вода чи повітря) активоване у вкладці вимикача (*Джерела температури та кисню*) і надає значення. Одразу після перезапуску ковзне середнє ще заповнюється, тож воно починає з базових значень. Спостерігайте за `status.dynamicAvgTemperature` та `status.dynamicIntervalMin`. **Динамічне годування ввімкнено, але годування взагалі не відбувається (`status.nextFeeding` порожній).** **Базовий інтервал або максимальний інтервал дорівнює 0** (або часове вікно недійсне), тож інтервал не можна обчислити — тоді `status.blockReason` показує підказку. Задайте базовий інтервал і максимальний інтервал, більші за 0 (та дійсне вікно). Зауважте: якщо залишити *обидва* — і мінімальний, і максимальний інтервал — на 0, результат також примусово стане 0. **Годування не відбувається, хоча зараз не зима (або відбувається, хоча має бути пауза).** Перевірте дати *Зимової паузи* (`Початок зими` / `Кінець зими`, формат дд.мм) та режим. Точка даних `status.winterActive` показує, чи наразі активна пауза. **Пошук адреси повідомляє, що екземпляр має бути запущений.** Запустити екземпляр automatic-feeder — геокодування відбувається в бекенді. **Повідомлення Telegram не надходять.** Чи вибрано у вкладці вимикача екземпляр Telegram? Чи налаштовано та запущено адаптер telegram? Чи позначено принаймні один тип повідомлення та активовано *Контроль перемикання*? --- ## 10. Журналювання та пошук помилок Адаптер журналює на звичайних рівнях ioBroker. Для детальних повідомлень підняти рівень журналу екземпляра (Екземпляри → automatic-feeder.x → Рівень журналу) до **debug** або **silly**: * **error** — помилки, що потребують уваги (наприклад, запис на вимикач не вдався). * **warn** — неправильна конфігурація (немає координат, недійсний розклад …). * **info** — віхи (старт, виконане або заблоковане годування, ручний запуск). * **debug** — детальний перебіг (рішення щодо планування, оновлення температури, геокодування, значення УВІМК/ВИМК, верифікація підтверджена/таймаут). * **silly** — дуже докладне трасування (кожен таймер, кожна перевірка блокування, кожна зміна стану). --- 📖 [Основна документація (англійська)](../../README.md)