Installation als Debian Service
August 30, 2020 · View on GitHub
Raspberry Pi Images basieren oft auf Debian. Hier wird erläutert wie man den Analyzer als Systemd-Service unter Strech installieren kann.
-
Node.js installieren
Falls noch nicht vorhanden wird zuerst curl installiert, anschließend Node.js (Version 12).
sudo apt-get update sudo apt-get install curl curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejsNun sollte
nodeundnpmvorhanden sein# node -v v12.16.1 # npm -v v6.13.4 -
AskSin Analyzer XS installieren
Die Installation erfolgt über npm als "global" womit die ausführbare Datei
asksin-analyzer-xsdirekt zur Verfügung steht.sudo npm install -g --unsafe asksin-analyzer-xs -
Benutzer anlegen
Aus Sicherheitsgründen legt man einen eigenen Benutzer an unter dem der Analyzer später betrieben wird.
sudo useradd -M -N -r -s /bin/false -c "AskSin Analyzer user" -G dialout analyzerDer Benutzer muss das UART-Device öffnen können. Je nach Anschlussvariante
/dev/ttyUSB0,/dev/ttyS1oder ähnlich.ls -l /dev/ttyUSB0 crw-rw---- 1 root dialout 4, 65 Mär 14 10:43 /dev/ttyUSB0In der obigen beispielhaften Ausgabe sieht man, dass
ttyUSB0der Gruppedialoutangehört welche wir beim Erstellen des Users mit angegeben habe. -
Datenverzeichnis erstellen
Für die persistente Speicherung der Konfiguration und der Nutzdaten wird ein Verzeichnis anlegen mit entsprechenden Berechtigungen. Dies könnte man auch auf eine SD-Karte auslagern.
sudo mkdir -p /opt/analyzer sudo chown analyzer /opt/analyzer -
Systemd Unit erstellen
Da der Analyzer als Systemdienst betrieben werden soll wird ein Systemd Unit File erstellt unter
/etc/systemd/system/analyzer.servicemit folgendem Inhalt:[Unit] Description=Analyzer for radio telegrams in a HomeMatic environment Documentation=https://github.com/psi-4ward/AskSinAnalyzerXS After=network-online.target [Service] Environment="PORT=8088" ExecStart=/usr/local/bin/asksin-analyzer-xs -d /opt/analyzer Type=simple User=analyzer Restart=on-failure [Install] WantedBy=multi-user.targetGgf. liegt die ausführbare
asksin-analyzer-xsDatei auch nur unter/user/bin. Dies kann mitwhich asksin-analyzer-xsüberprüft werden.In diesem Unit-File gibt die Env-Vart
PORTden Port für den Analyzer an. Dieser muss aufgrund von Sicherheitsbestimmungen über 1024 sein (privileged ports). Das Argument-dgibt den Speicherort der persistenten Daten an, dieser kann natürlich nach belieben angepasst werden. Wichtig ist nur, dass der Benutzeranalyzerhier Lese- und Schreibrechte hat. -
Service aktivieren und starten
Zum Schluss wird der Service gestartet und der autostart beim Booten enabled.
# AskSin Analyzer Service starten sudo systemctl start analyzer # Status des Service überprüfen sudo systemctl status analyzer # Autostart nach dem Bootvorgang aktivieren sudo systemctl enable analyzer # Autostart ggf. deaktivieren sudo systemctl disable analyzerDie Logs von Systemd Services landen standardmäßig bei journald:
sudo journalctl -u analyzer