This commit is contained in:
2025-12-16 18:52:09 +02:00
commit f462fec86f
5 changed files with 250 additions and 0 deletions

51
README.md Normal file
View File

@@ -0,0 +1,51 @@
# Серійний релеювальник Heartbeat
Цей репозиторій містить невеликий Pythonскрипт, який слухає серійний порт,
шукає JSONheartbeat повідомлення та відповідає `{"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трафік у серійному каналі.