265 lines
12 KiB
Markdown
265 lines
12 KiB
Markdown
# Wachalarm-Kiosk
|
|
|
|
Hier finden Sie ein einfach zu nutzendes SD-Karten-Image für einen **Raspberry Pi**, mit dem GroupAlarm (oder eine andere Webseite) direkt im Vollbild z.B. auf einem Monitor anzeigt werden kann.
|
|
|
|
|
|
## Funktionen
|
|
|
|
- **Startet unmittelbar im Vollbild** - Chromium Web-Browser mit allen wichtigen Funktionen
|
|
- **Automatatische Sicherheitsupdates** - wichtige Updates werden automatisch installiert, bei Bedarf erfolgt in der Nacht ein automatischer Neustart
|
|
- **Automatische Wiederherstellung** - bei Neustart oder Stromausfall startet das System im vorherigen Zustand eigenständig neu
|
|
- *Optional:* **Stromsparfunktion** - liegt kein Alarm an, kann der Monitor ausgeschaltet werden
|
|
- **Maus wird ausgeblendet** - sofern eine Maus angeschlossen ist, wird diese nach inaktivität ausgeblendet
|
|
|
|
---
|
|
|
|
## Inbetriebnahme
|
|
|
|
> **Hinweis**
|
|
>
|
|
> Benötigt wird ein Raspberry Pi ([kompatible Hardware](#hardware)).
|
|
|
|
1. Lade das [aktuelle Image](https://git.heko-technik.de/mkrieger/wachalarm/releases) aus dem Release-Bereich herunter.
|
|
2. Entpacke die komprimierte Datei auf dem Computer (z.B. dem Programm [7Zip](https://7-zip.de/index.html)).
|
|
3. Schreibe das Image mit Hilfe eines SD-Karten-Lesegeräts auf eine SD-Karte. Hierzu kann unter Windows die Anwendung [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/) genutzt werden.
|
|
4. Lege die anzuzeigende [Webseite und die weitere Optionen fest](#konfigurations-datei).
|
|
5. *Optional*: Lege fest, ob der Raspberry Pi sich automatisch mit einem [WLAN verbinden](#wlan-setup) soll.
|
|
6. *Optional*: Setze eine [feste IP-Adresse](#ip-adresse) für das System.
|
|
7. Setze die SD-Karte in den Raspberry Pi. Verbinde Ihn mit dem Monitor und dem Internet (Netzwerkkabel oder WLAN). Starte das Gerät.
|
|
|
|
---
|
|
|
|
## Einstellungen
|
|
|
|
### Konfigurations-Datei
|
|
|
|
Die wichtigsten Einstellungen lassen sich ohne vorkenntnisse (von z.B. Linux) direkt mit einem normalen PC anpassen.
|
|
|
|
Benötigt wird ein SD-Karten-Lesegerät und ein Text-Editor.
|
|
|
|
1. Schließe die zuvor mit dem Image beschriebene SD-Karte an ihren PC an (z.B. per USB-Adapter).
|
|
2. Im Datei-Explorer sollte jetzt ein neues Laufwerk erscheinen. In der Partition "Boot" der SD-Karte findet sich die Datei *[wachalarm_einstellungen.txt](https://git.heko-technik.de/mkrieger/wachalarm/blob/custom/home/wachalarm_einstellungen.txt)*.
|
|
3. folgende Einstellungen können gesetzt werden:
|
|
|
|
|
|
#### Webseite beim Start
|
|
|
|
Legt fest, welche Webseite beim Start geöffnet werden soll. Für Groupalarm wäre dies z.B. die Adresse https://app.groupalarm.com/de/monitor/12345?view_token=meingeheimertoken&theme=dark-theme
|
|
|
|
```
|
|
startup_url=https://app.groupalarm.com/de/monitor/12345
|
|
```
|
|
|
|
#### Standby - Funktion ein-/ausschalten
|
|
|
|
Legt fest ob der Bildschirm automatisch ausgeschaltet werden soll, wenn kein Einsatz anliegt.
|
|
|
|
Es gibt folgende Optionen:
|
|
- 1 = aktiviert diese Funktion (Monitor geht aus sobald kein Alarm mehr angzeigt wird)
|
|
- 0 = deaktivert diese Funktion (Monitor bleibt immer an)
|
|
|
|
```
|
|
standby_enable=1
|
|
```
|
|
|
|
#### Standby - Art des Monitors festlegen
|
|
*(gilt nur wenn die Standby-Funktion aktiviert wurde)*
|
|
|
|
Legt fest, was für ein Monitor verwendet wird. Je nach Typ (PC-Monitor oder Fernseher mit HDMI-CEC), sind unterschiedliche Befehle notwendig um den Monitor ein- oder auszuschalten.
|
|
|
|
Es gibt folgende Optionen:
|
|
- t = Typ "TV", nutzt [CEC-Befehle](https://de.wikipedia.org/wiki/Consumer_Electronics_Control) um den Fernseher ein- oder auszuschalten
|
|
- m = Typ "Monitor", nutzt den Befehlssatz `xrandr --output HDMI-*` um einen PC-Monitor ein- oder auszuschalten
|
|
|
|
```
|
|
screen_type=t
|
|
```
|
|
|
|
> Achtung!
|
|
>
|
|
> Wird ein PC-Monitor verwendet, kann es zu Problemen bei der Sound-Ausgabe kommen. Lösungsansätze finden Sie im Abschnitt ["Bekannte Fehler"](#kein-ton-über-hdmi-raspberry-pi-4)
|
|
|
|
#### Standby - Websocket-URL
|
|
*(gilt nur wenn die Standby-Funktion aktiviert wurde)*
|
|
|
|
Dieser Wert sollte normalerweise nicht geändert werden. Es handelt sich um die URL des Wachalarm-Servers, über welche Websocket-Befehle empfangen und verarbeitet werden. Nur mit dieser URL kann das Standby-Signal korrekt ausgewertet werden.
|
|
|
|
|
|
```
|
|
standby_waipurl=https://wachalarm.heko-technik.de/waip
|
|
```
|
|
|
|
> **Achtung!**
|
|
>
|
|
> Es handelt sich hierbei nicht die URL des einzelnen Alarmmonitors!
|
|
|
|
#### Standby - Wachennummer
|
|
*(gilt nur wenn die Standby-Funktion aktiviert wurde)*
|
|
|
|
Nummer der Wache, für die bei Alarmen der Monitor angeschaltet werden soll, z.B. 52511 für FW GK LE Geilenkirchen
|
|
|
|
```
|
|
standby_wachennr=52511
|
|
```
|
|
|
|
#### System-Statusmeldungen aktivieren
|
|
|
|
Hiermit kann ein automatisches Senden von Status-Meldungen aktiviert werden.
|
|
|
|
Es handelt sich um allgemeine Systeminforamtionen wie z.B. Kernel-Version, Hardwaremerkmale & Udpatestatus. Personenbezogene Daten werden nicht verarbeitet.
|
|
|
|
- 1 = an
|
|
- 0 = aus
|
|
|
|
```
|
|
report_enable=1
|
|
```
|
|
|
|
#### System-Statusmeldungen - Status-URL
|
|
*(gilt nur wenn System-Statusmeldungen aktiviert wurden)*
|
|
|
|
URL an welche Status-Meldungen durch das System gesendet werden.
|
|
|
|
```
|
|
report_url=https://wachalarm.heko-technik.de/client_statusmessage
|
|
```
|
|
|
|
#### automatische Neustarts
|
|
|
|
Legt fest, ob und wenn ja wann, ein automatischer Neustart des Raspberry Pi erfolgen soll. Diese Funktion ist hilfreich um z.B. bei schlechten WLAN-Verbindungen das System automatisch neuzustarten.
|
|
|
|
Es gibt folgende Optionen:
|
|
- 0 = automatischer Neustart ist deaktiviert.
|
|
- w = Neustart jeden Montag um 3:00 Uhr.
|
|
- z = Neustart jeden Dienstag und jeden Freitag um 3:00 Uhr.
|
|
- t = Neustart jeden Tag um 3:00 Uhr.
|
|
|
|
```
|
|
restart_type=w
|
|
```
|
|
|
|
---
|
|
|
|
### WLAN einstellen
|
|
|
|
WLAN-Verbindungen lassen Sich beim Raspberry über eine spezielle Datei vorgeben, ohne weitere Einstellungen am System zu tätigen. Gehen Sie wie folgt vor, um WLAN zu aktivieren:
|
|
|
|
1. Schließe die zuvor mit dem Image beschriebene SD-Karte an ihren PC an (z.B. per USB-Adapter).
|
|
2. Im Datei-Explorer sollte jetzt ein neues Laufwerk erscheinen. In der Partition "Boot" der SD-Karte eine Datei mit dem Namen `wpa_supplicant.conf` erstellen.
|
|
3. Eine fertige Vorlage findet sich hier: [wpa_supplicant.conf](https://git.heko-technik.de/mkrieger/wachalarm/blob/custom/optional_boot_config/wpa_supplicant.conf)
|
|
4. Ersetze `Name-des-WLANs` und `ganz-geheimes-kennwort` mit den eigenen WLAN-Einstellungen.
|
|
5. Speicher die Datei auf der SD-Karte und setze diese wieder in den Raspberry Pi ein. Nach Abschluss des Startvorgangs sollte sich das Gerät eigenständig mit dem WLAN verbinden.
|
|
|
|
#### Beispiel wpa_supplicant.conf für WLAN _mit Kennwort_
|
|
```
|
|
country=DE
|
|
update_config=1
|
|
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
|
network={
|
|
key_mgmt=WPA-PSK
|
|
ssid="Name-des-WLANs"
|
|
psk="ganz-geheimes-kennwort"
|
|
}
|
|
```
|
|
|
|
#### Beispiel wpa_supplicant.conf für WLAN _ohne Kennwort_
|
|
```
|
|
country=DE
|
|
update_config=1
|
|
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
|
network={
|
|
ssid="Name-des-WLANs"
|
|
key_mgmt=NONE
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### IP-Adresse vorgeben
|
|
|
|
Mittels der Datei `cmdline.txt` kann direkt eine feste IP-Adresse für den Raspberry Pi vorgegeben werden.
|
|
|
|
1. SD-Karte in PC einsetzen.
|
|
2. In der Boot-Partition die Datei `cmdline.txt` finden und mit einem Editor öffnen.
|
|
3. Am ende der ersten Zeile folgenden Text hinzufügen (keine neue Ziele):
|
|
|
|
```ip=192.168.2.20::192.168.2.1:255.255.255.0:wachalarm:eth0:off:192.168.2.1```
|
|
|
|
Damit wird die IP-Adresse für die Schnittstelle `eth0` auf 192.168.2.20 festlegt. Einstellungen für das Gateway (`192.168.2.1`), das Subnetz (`255.255.255.0`), den Hostnamen (`wachalarm`) und den DNS-Server (`192.168.2.1`) werden ebenfalls definiert.
|
|
|
|
Bereits angepasste `cmdline.txt`-Dateien findet man hier: [optional_boot_config](https://git.heko-technik.de/mkrieger/wachalarm/tree/custom/optional_boot_config)
|
|
|
|
---
|
|
|
|
## Hardware
|
|
|
|
Dieses Image sollte mit allen bekannten [Raspberry Pi's](https://www.raspberrypi.org/products/) funktionieren. Die Versionen 3 und 4 werden empfohlen, da die älteren Varianten zu wenig Leistung bieten. Raspberry 3 und 4 haben zudem ein eingebautes WLAN-Modul.
|
|
|
|
Stelle sicher, dass Sie eine [kompatible SD-Karte](http://elinux.org/RPi_SD_cards) verwenden (mind. 4 GB). `Class 10`-Karten sollten in jedem Fall funktionieren.
|
|
|
|
Ein Raspberry Pi benötigt ein [2.5 A USB-Netzteil](https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md).
|
|
|
|
---
|
|
|
|
## Tastenkombinationen
|
|
|
|
Wenn eine Tastatur (z.B. per USB) angeschlossen ist, stehen folgende Tastenkombination zur Verfügung:
|
|
- `STRG` + `i` -> schaltet den Monitor ein (I)
|
|
- `STRG` + `o` -> schaltet den Monitor aus (O)
|
|
- `STRG` + `ALT` + `r` -> startet den Raspberry Pi neu (`reboot`)
|
|
- `STRG` + `ALT` + `F1` -> wechselt zum Webbrowser (Standardansicht ohne Login)
|
|
- `STRG` + `ALT` + `F2` -> wechselt zum Konfigutaions-Programm des Raspberry pi (Login notwendig, startet `sudo raspi-config`)
|
|
- `STRG` + `ALT` + `F3` -> wechselt zur Konsole (Login notwendig, Eingabekonsole für Wartung)
|
|
|
|
---
|
|
|
|
## Bekannte Fehler
|
|
|
|
### kein Ton über HDMI (Raspberry Pi 4)
|
|
- stelle sicher, dass das HDMI-Kabel am HDMI-Port 0 des Raspberrys angeschlossen ist (direkt neben dem USB-C-Stromanschluss)
|
|
- prüfe ob der Monitor / Fernseher über den angeschlossenen HDMI-Port auch wirklich einen Ton ausgegeben kann
|
|
- wechsel mit der [Tastenkombination](#tastenkombinationen) `STRG` + `ALT` + `F3` (Login notwendig) in die Wartungskonsole und prüfe mit dem Befehl `speaker-test` ob ein Test-Ton ausgegeben wird
|
|
|
|
#### Lösungsvariante 1 - Audio-Quelle bei HDMI-Fernseher festlegen
|
|
- wechsel mit der [Tastenkombination](#tastenkombinationen) `STRG` + `ALT` + `F2` (Login notwendig) in die Konfigurationsoberfläche des Raspberrys und prüfe ob HDMI-0 als Audio-Ausgabequelle eingestellt wurde
|
|
- verlasse die Konfigurationsoberfläche und starte den Raspberry neu (`sudo reboot`)
|
|
|
|
#### Lösungsvariante 2 - Audio-Quelle bei PC-Monitor mit integrierten Lautsprechern
|
|
- wechsel mit der [Tastenkombination](#tastenkombinationen) `STRG` + `ALT` + `F3` (Login notwendig) in die Wartungskonsole
|
|
- führe den Befehl `sudo nano /boot/config.txt` aus umd die Konfigurationsdatei des Raspberrys zu bearbeiten
|
|
- aktiviere den Parameter `dtparam=audio=on` indem das `#` davor entfernt wird
|
|
- deaktiviere den Parameter `dtoverlay=vc4-kms-v3d` indem ein `#` davor gesetzt wird
|
|
- speicher die Datei (`STRG` + `x` und mit `ja` bestätigen) und starte den Raspberry neu (`sudo reboot`)
|
|
- öffnen nach dem Neustart erneut die Wartungskonsole (`STRG` + `ALT` + `F3`) und prüfe mit dem Befehl `speaker-test` ob ein Test-Ton ausgegeben wird
|
|
- prüfe alternativ noch, welche Audio-Quelle in den Systemeinstellungen gesetzt wurde (siehe [Lösungsvariante 1](#lösungsvariante-1---audio-quelle-bei-hdmi-fernseher-festlegen))
|
|
|
|
### ich benötige ein anderes Kennwort
|
|
- wechsel mit der [Tastenkombination](#tastenkombinationen) `STRG` + `ALT` + `F2` (Login notwendig) in die Konfigurationsoberfläche des Raspberrys
|
|
- Navigieren zu `Change User Password`
|
|
- gebe ein neues Passwort ein und bestätige es
|
|
- das eingegebene Kennwort gilt für den Benutzer `pi`
|
|
|
|
### Monitor geht nicht in Standby
|
|
- stelle sicher, dass das HDMI-Kabel am HDMI-Port 0 des Raspberrys angeschlossen ist (direkt neben dem USB-C-Stromanschluss)
|
|
- prüfe ob in den [Standby-Einstellungen zur Art des Monitors](#standby---art-des-monitors-festlegen) der richtige Monitor-Typ hinterlegt wurde (`m` für PC-Monitor, `t` für TV-Gerät)
|
|
- mit den [Tastenkombination](#tastenkombinationen) `STRG` + `I` bzw. `STRG` + `O` kann geprüft werden, ob die Standby-Funktion generell funktioniert
|
|
- prüfe ob in den [Standby-Einstellungen zur Wachennummer](#standby---wachennummer) die richtige Wachennummer hinterlegt wurde
|
|
|
|
### Monitor / Fernseher aus Standby erwecken
|
|
- wenn die Standby-Funktion aktiviert wurde, schaltet sich der angeschlossene Monitor oder Fernseher aus, solange kein Alarm angezeigt wird
|
|
- mit der beschriebenen [Tastenkombination](#tastenkombinationen) `STRG` + `i` können Sie den Monitor wieder einschalten
|
|
|
|
---
|
|
|
|
## Sonstiges
|
|
|
|
### Image-Erstellung
|
|
Mit dem Skript `image-setup.sh` kann eigenständig ein aktuelles Image für den Raspberry Pi erstellt werden. Benötigt wird ein PC mit aktuellem Linux (z.B. Ubuntu, oder zweiter Raspberry Pi).
|
|
|
|
Das Skript selbst liefert alle notwendigen Informationen.
|
|
|
|
Der Linux-PC auf dem das Skript ausgeführt wird (`chmod +x image-setup.sh` und dann `./image-setup.sh`) und der Raspberry Pi welcher konfiguriert werden soll, müssen sich im Netzwerk erreichen können.
|
|
|
|
### Fork
|
|
Dieses Projekt ist ein Fork von [chilipie-kiosk](https://github.com/jareware/chilipie-kiosk). Dort finden sich weitere Informationen und Antworten zu vielen Detailfragen.
|