Files
watch-watch-server/README.md
2025-12-16 18:52:09 +02:00

2.0 KiB
Raw Blame History

Серійний релеювальник Heartbeat

Цей репозиторій містить невеликий Pythonскрипт, який слухає серійний порт, шукає JSONheartbeat повідомлення та відповідає {"hb": 2} на {"hb": 1}. Його можна запускати як звичайну програму або як сервіс systemd із підтримкою watchdog.

Вимоги

  • Python 3.10+
  • pyserial
  • sdnotify (необов’язково, але потрібен для інтеграції з systemd)

Встановіть залежності в оточення:

python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt

Ручний запуск

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 і увімкніть сервіс:
sudo systemctl daemon-reload
sudo systemctl enable --now serial-heartbeat

Сервіс використовує Type=notify, тож systemd очікує сигнал готовності і контролює watchdog з таймаутом 20 секунд.

Розробка

  • python3 -m py_compile serial_heartbeat.py — швидка перевірка синтаксису.
  • Увімкніть рівень журналювання DEBUG, щоб переглядати JSONтрафік у серійному каналі.