# Серійний релеювальник Heartbeat Цей репозиторій містить невеликий Python‑скрипт, який слухає серійний порт, шукає JSON‑heartbeat повідомлення та відповідає `{"hb": 2}` на `{"hb": 1}`. Його можна запускати як звичайну програму або як сервіс systemd із підтримкою watchdog. ## Вимоги - Python 3.10+ - `pyserial` - `sdnotify` (необов’язково, але потрібен для інтеграції з systemd) Встановіть залежності в оточення: ```bash python3 -m venv .venv . .venv/bin/activate pip install -r requirements.txt ``` ## Ручний запуск ```bash python3 serial_heartbeat.py --port /dev/ttyUSB0 --baudrate 115200 --log-level DEBUG ``` Аргументи: - `--port` (обов’язково): шлях до серійного пристрою (наприклад, `/dev/ttyUSB0`). - `--baudrate`: за замовчуванням 9600. - `--log-level`: будь-який рівень `logging`, типово `INFO`. ## Сервіс systemd 1. Скопіюйте `serial-heartbeat.service` в `/etc/systemd/system/serial-heartbeat.service`. 2. Відкоригуйте шляхи, швидкість та пристрій за потреби. 3. Перезавантажте systemd і увімкніть сервіс: ```bash sudo systemctl daemon-reload sudo systemctl enable --now serial-heartbeat ``` Сервіс використовує `Type=notify`, тож systemd очікує сигнал готовності і контролює watchdog з таймаутом 20 секунд. ## Розробка - `python3 -m py_compile serial_heartbeat.py` — швидка перевірка синтаксису. - Увімкніть рівень журналювання DEBUG, щоб переглядати JSON‑трафік у серійному каналі.