/WoL_Telegrambot

Wake on Lan (WoL) mit einem Telegram Bot

Primary LanguagePythonMIT LicenseMIT

WoL_Telegrambot

Ziel des Projektes

Der WoL (Wake on Lan) Telegram Bot lässt Geräte mit Hilfe von Magic Pakete starten.

Ablauf

Nach senden eines Botkommandos an den Telegrambot erhält man eine Liste von allen in der wol_cfg.toml eingetragenen Geräte. Nach Auswahl eines Gerätes wird das Gerät mit Hilfe eines generierten Magic Paket gestartet. Anschließend wird mit Hilfe von arp die zugehörige IP Adresse ermittelt und versucht das Gerät zu pingen. Ist der Ping in einer bestimmten Zeit erfolgreich, oder nicht oder lässt sich die IP nicht ermitteln erhält man die entsprechende Nachricht.

Einrichtung

Das zu startende Gerät muss für Wake on Lan konfiguriert sein. Wie dies für das entsprechende Gerät einzurichten ist, kann an dieser Stelle nicht erklärt werden aufgrund der vielfalt an Geräten.

Bei Telegram Botfather einen neuen Telegrambot erstellen und den Bottoken für die Konfiguration bereithalten Zu regestrierende Botbefehler beim Botfather

/starte_pc - Sendet eine Liste der eingetragenen Geräte
/abbrechen - Bricht die Aktionen ab und verlässt alle Menüs

Installation

Zur Ausführung des Skriptes wird Python >= 3.6 vorausgesetzt Die Anleitung bezieht sich auf die Einrichtung auf einem Raspberry Pi mit Buster.

git clone https://github.com/Hofei90/WoL_Telegrambot.git /home/pi/wol_telegrambot
cd /home/pi/wol_telegrambot
pip3 install --user -r requirements.txt

Konfiguration

nano wol_cfg.toml

Die entsprechenden Felder ausfüllen. <> gehören ersetzt. "" Müssen stehen bleiben In dem Feld allowed_id werden alle Telegramids eingetragen, welche den Bot verwenden dürfen. Die ID kann beispielsweise mit dem Telegram Raw Bot ermittelt werden.

Inbetriebnahme

Erster Test:

python3 wol_bot.py ausführen

Wenn dieser erster Erfolgreich verläuft und man mit dem Bot Kontakt aufnehmen kann, so kann man als Abschluss noch einen Autostart mit Systemd vorbereiten.

Service Unit erstellen

Ausführung erfordert root Rechte

nano /etc/systemd/system/wol_telegrambot.service

[Unit]
Description=Service Unit zum starten des WoL Telegrambotes
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/pi/wol_telegrambot/wol_bot.py
User=pi


[Install]
WantedBy=multi-user.target
chmod 644 /etc/systemd/system/wol_telegrambot.service
systemctl start wol_telegrambot.service

Kontrolle ob Skript nun wieder aktiv ist, wenn ja automatische Ausführung anlegen:

systemctl enable wol_telegrambot.service