Computer

8 Beiträge

Ein Open Source Projekt aus Frust: Hugin Digital Signage

In den letzten Jahren habe ich mich immer öfter dabei ertappt, wie ich mich über Software geärgert habe. Nicht über schlechte Software – die gibt es natürlich auch – sondern über das ganze Ökosystem drumherum.

Für viele eigentlich banale Anwendungsfälle gibt es heute fast nur noch zwei Optionen:
Entweder man bezahlt absurd hohe Lizenzkosten für proprietäre Lösungen, oder man landet bei irgendeinem „Open Source“-Projekt, das am Ende doch hauptsächlich Werbung für eine SaaS-Plattform ist. Kostenlos ausprobieren darf man es vielleicht noch, aber sobald man etwas produktiv nutzen möchte, tauchen plötzlich Limits, Cloud-Zwang oder Abonnements auf. Software mit klassischer Lizenz mit ohne Abo gibt es kaum noch.

Und inzwischen scheint wirklich jede Software ein Abo zu brauchen. Gerade im öffentlichen Bereich merkt man zusätzlich den zunehmenden Kostendruck. Budgets werden kleiner, Anforderungen bleiben gleich oder steigen sogar. Gleichzeitig braucht man für viele alltägliche Probleme eigentlich gar keine riesigen Enterprise-Lösungen mit zehn Management-Portalen, KI-Features und Vertriebsgesprächen. Manchmal braucht man einfach nur eine Software, die genau eine Aufgabe erfüllt.  Lokal. Verständlich. Ohne Vendor Lock-in.

Aus diesem Frust – und ehrlich gesagt auch einfach aus Spaß am Entwickeln – ist schließlich Hugin entstanden.

Was ist Hugin?

Hugin ist eine einfache Open-Source-Lösung für Digital Signage.

Also: Inhalte auf Bildschirmen anzeigen. Nicht mehr und nicht weniger.

Die Idee dahinter war nie, die ultimative Enterprise-Plattform zu bauen. Hugin soll keine Allzwecklösung für jeden Betrieb werden. Aber für Einrichtungen, öffentliche Träger, Schulen, Mensen, Vereine oder Unternehmen, die einfach nur unkompliziert Inhalte auf Displays anzeigen möchten, kann es eine sehr praktische Lösung sein. Vor allem dann, wenn bereits etwas Infrastruktur für Selfhosting vorhanden ist. 

Warum der Name „Hugin“?

Der Name stammt aus der nordischen Mythologie. Hugin ist einer der beiden Raben Odins und steht sinngemäß für „Gedanke“. Irgendwie passte das ganz gut zu einer Software, die Informationen verteilt.

Was Hugin konkret kann

Hugin konzentriert sich bewusst auf die Dinge, die man für einfache Digital-Signage-Setups tatsächlich braucht — ohne unnötigen Ballast.

Zu den Funktionen gehören unter anderem:

  • Verwaltung mehrerer Displays über eine zentrale Weboberfläche
  • Anzeige von Webseiten, Bildern und Videos
  • Zeitgesteuerte Inhalte und automatische Wechsel
  • Playlists und rotierende Inhalte
  • Browserbasierte Anzeige ohne spezielle Client-Software
  • Plugin-System für individuelle Erweiterungen
  • Einfache Integration in bestehende Infrastruktur
  • Vollständiges Selfhosting ohne externe Cloud-Dienste

Die gesamte Software läuft webbasiert. Dadurch braucht man auf den Displays selbst praktisch nur einen Browser.

Hugin Dashboard im Adminbereich. Das Bild zeigt Status Information der Einzelnen Infobildschirme und Informationen über aktuelle Änderungen an den Slides etc an Hugin Playlists / Displays Verwaltung

Typisches Setup

Ein klassisches Setup könnte beispielsweise so aussehen:

  • Hugin läuft auf einem kleinen Server oder einer VM mit nginx + MariaDB
  • Hinter dem Bildschirm hängt z.B. ein Raspberry Pi
  • Chromium oder Firefox läuft im Kioskmodus
  • Der Browser öffnet automatisch die Display-URL von Hugin

Dadurch bleibt die gesamte Lösung extrem flexibel und günstig.

Gerade Raspberry Pis eignen sich dafür hervorragend, weil sie:

  • günstig sind
  • wenig Strom verbrauchen
  • und stabil genug für Dauerbetrieb laufen.

Natürlich funktioniert das Ganze genauso mit Mini-PCs, Thin Clients oder Smart Displays.

Besonderheit für Studierendenwerke: TL1-Speiseplanplugin

Da ich in einem Studentenwerk arbeite, lag ein spezieller Anwendungsfall relativ nahe: Speisepläne.

Deshalb besitzt Hugin ein Plugin für TL1.

TL1 wird in vielen deutschen Studierendenwerken eingesetzt und verwaltet unter anderem Mensa-Speisepläne. Das Plugin kann diese Daten abrufen und direkt auf Displays darstellen.

Das war tatsächlich einer die eigentliche Motivation zum Schreiben der Software.

Kein SaaS. Kein Cloud-Zwang.

Einer der wichtigsten Punkte für mich war:

Die Software soll den Nutzern gehören.

  • Keine Registrierung.
  • Kein externer Dienst.
  • Keine künstlichen Einschränkungen.
  • Keine „Community Edition“, die absichtlich kastriert wurde.

Wenn jemand Hugin nutzen möchte, dann soll das einfach möglich sein.

Natürlich bedeutet Selfhosting auch Verantwortung: Updates installieren, Backups machen, Server betreiben.

Aber viele Einrichtungen haben genau dafür ohnehin bereits Infrastruktur oder Know-how.

Und wenn nicht, dann ist vielleicht eine gehostete Lösung tatsächlich sinnvoller. Das ist völlig okay. Hugin versucht nicht, für alle die perfekte Lösung zu sein.

Ein Projekt aus Frust – aber auch aus Spaß

Am Ende war Hugin vor allem ein Spaßprojekt. Ein Projekt, das aus einem echten Bedarf entstanden ist und gleichzeitig aus dem Wunsch, wieder Software zu bauen, die unkompliziert ist. Nicht alles muss ein Unicorn-Startup werden. Nicht jede Anwendung braucht Investoren. Und nicht jede Software braucht monatliche Gebühren.

Manchmal reicht einfach ein kleines Tool, das ein Problem löst. Und ehrlich gesagt: Genau solche Projekte machen mir inzwischen am meisten Spaß.

Open Source heißt für mich echte Freiheit

Ich glaube, Open Source verliert manchmal ein wenig seinen ursprünglichen Gedanken.

Viele Projekte sind heute technisch zwar offen, praktisch aber eng an eine kommerzielle Plattform gekoppelt. Oft wirkt die freie Version eher wie eine Demo für das eigentliche Produkt.

Genau deshalb habe ich mich bei Hugin bewusst für die GNU Affero General Public License v3 (AGPL v3) entschieden. Wenn jemand die Software verändert und als gehosteten Dienst anbietet, müssen diese Änderungen ebenfalls offen bleiben. Damit soll verhindert werden, dass aus freier Software am Ende wieder ein geschlossenes SaaS-Produkt wird, das zwar auf Open Source basiert, aber der Community nichts zurückgibt.

Ich wollte mit Hugin bewusst den gegenteiligen Weg gehen: vollständig selbst hostbar, offen, nachvollziehbar, ohne versteckte Einschränkungen. Einfach Software, die man benutzen kann.

Das Projekt liegt auf GitHub: https://github.com/Serophos/hugin

Dort gibt es auch Dokumentation und Installationsanleitungen.

Wer Lust hat, kann sich das Projekt einfach anschauen, ausprobieren oder eigene Ideen beitragen.

 

Powerline font on console in Fedora

I use zsh with ohmyszsh on all my Linux systems. It requires the powerline fonts to be installed. To use it on the consoles (as in Ctrl+Alt+Fx) follow these steps in Fedora to activate it. First we need to download the fonts, we do that by cloning the git repository. Go to a folder where you want to save the repository.

git clone https://github.com/powerline/fonts powerline-fonts
cd powerline-fonts/Terminus/PSF
sudo cp *.psf.gz /usr/lib/kdb/consolefonts
sudo nano /etc/vconsole.conf

Set the Font size you like i.e.

FONT="ter-pwerline-v24b"

TO test it temporarily you can use

setfont ter-powerline-v24b.psf.gz

MS-DOS like Windows 10 Terminal

Windows 10 Terminal App DOS Theme für „Eingabeaufforderung“

So könnt ihr die Windows 10 Terminal App wie ein „echtes“ DOS aussehen lassen für ein wenig Retro-Feeling:

  1. VGA Font runterladen und installieren
  2. Die Einstellungen der Terminal App öffnen und folgendes Farbschema einfügen
    {
                "name" : "MS-DOS",
                "black" : "#0C0C0C",
                "brightBlack" : "#808080",
                "brightBlue" : "#0000ff",
                "brightCyan" : "#00ffff",
                "brightGreen" : "#00ff00",
                "brightPurple" : "#ff00ff",
                "brightRed" : "#ff0000",
                "brightWhite" : "#ffffff",
                "brightYellow" : "#ffff00",
                "blue" : "#000080",
                "cyan" : "#008080",
                "foreground" : "#c0c0c0",
                "green" : "#008000",
                "purple" : "#800080",
                "red" : "#800000",
                "white" : "#FFFFFF",
                "yellow" : "#808000"           
            }
    
  3. Im Profil für die „Eingabeaufforderung“ folgende Einstellungen vornehmen:
    "cursorColor" : "#c0c0c0",
    "cursorShape" : "vintage",
    "padding" : "5, 5, 5, 5",
    "fontFace" : "Perfect DOS VGA 437 Win",
    "fontSize" : 12,
    "experimental.retroTerminalEffect" : true,
    "closeOnExit" : true,
    "colorScheme" : "MS-DOS"
    
MS-DOS like Windows 10 Terminal
MS-DOS like Windows 10 Terminal

„Oh my zsh“ in der Windows 10 Terminal App nutzen mit Ubuntu Farbschema

Hier eine kurze Anleitung wie man „Oh my zsh“ in der neuen Windows Terminal App unter Windows 10 nutzen kann.

    1. Powerline Fonts installieren. Dazu Powershell öffnen (oder wenn ihr kein git installiert habt die ZIP Datei runterladen):
      git clone https://github.com/powerline/fonts.git
    2. Installationsskript für die Fonts ausführen (als Admin in Powershell):
      Set-ExecutionPolicy Bypass
      .\install.ps1
    3. Terminal App Öffnen und Einstellungen wählen.
    4. Das Ubuntu Farbschema einfügen unter „schemes“
      {
                  "name": "Ubuntu Terminal",
                  "black": "#2e3436",
                  "red": "#cc0000",
                  "green": "#4e9a06",
                  "yellow": "#c4a000",
                  "blue": "#3465a4",
                  "purple": "#75507b",
                  "cyan": "#06989a",
                  "white": "#d3d7cf",
                  "brightBlack": "#555753",
                  "brightRed": "#ef2929",
                  "brightGreen": "#8ae234",
                  "brightYellow": "#fce94f",
                  "brightBlue": "#729fcf",
                  "brightPurple": "#ad7fa8",
                  "brightCyan": "#34e2e2",
                  "brightWhite": "#eeeeec",
                  "background": "#300a24",
                  "foreground": "#eeeeec"
                }
    5.  In eurem Ubuntu Profil Farbschema und Font konfigurieren:
       "colorScheme" : "Ubuntu Terminal",
       "fontFace" : "Ubuntu Mono derivative Powerline",
    6. Benötigte Pakete in Ubuntu installieren:
      sudo apt-get install zsh git curl
    7. zsh einrichten
      which zsh

      und den Pfad in

      chsh

      nutzen

    8. Oh my zsh installieren:
      sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    9. Theme konfigurieren. Ich nutze z.B. gerne „agnoster“
      Dazu in der .zshrc die Zeile

      ZSH_THEME="<theme-name>"

      entsprechend anpassen

Oh my zsh

Ubuntuähnliches Farbschema für die Windows Terminal App

Nachfolgend ein Ubuntu nachempfundenes Farbschema für die Windows Terminal App, für Leute die zu faul sind das selbst zu bauen 😉

Farbschema:

        {

            "background" : "#000000",
            "black" : "#000000",
            "blue" : "#1818b2",
            "brightBlack" : "#686868",
            "brightBlue" : "#839496",
            "brightCyan" : "#54ffff",
            "brightGreen" : "#54ff54",
            "brightPurple" : "#ff54ff",
            "brightRed" : "#ff5454",
            "brightWhite" : "#ffffff",
            "brightYellow" : "#ffff54",
            "cyan" : "#18b2b2",
            "foreground" : "#18f018",
            "green" : "#18f018",
            "name" : "Ubuntu Green Konsole",
            "purple" : "#e11ee1",
            "red" : "#fa4b4b",
            "white" : "#ffffff",
            "yellow" : "#b26818"
        }
Und im Profil:
       {
            "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
            "hidden": false,
            "name": "Ubuntu",
            "source": "Windows.Terminal.Wsl",
            "fontFace":"Ubuntu Mono",
            "cursorColor" : "#00a300",
            "cursorShape" : "vintage",
            "historySize" : 9001,
            "colorScheme" : "Ubuntu Green Konsole",
            "useAcrylic" : true,
            "acrylicOpacity" : 0.2
        }

Den Ubuntu Mono Font gibt es hier.

Aussehen tut das ganze so:

 

Kodi Heimkino mit Hue Lichtsteuerung über CinemaVision oder Preshowexperience

Um zuhause ein wenig Kinoatmosphäre zu schaffen, setze ich Kodi auf dem Raspberry Pie mit dem Plugin Preshow Experience (CinemaVision) ein. Mit dem Plugin kann man Sequenzen wie Kinowerbung und Trailer vor den  Hauptfilm erstellen.

Der eigentlich interessante Part ist aber, dass über die Actions in CinemaVision nahezu beliebige Kommandos ausgeführt werden. Ich nutze dieses Feature für die Steuerung der Beleuchtung. Ich setze zuhause Philips Hue ein.

Die Actions sind normale Textdateien. Actions bestehen aus einem Kommando z.B. das Aufrufen einer URL und nachfolgenden Parametern. Mehrere aufeinanderfolgende Befehle werden durch eine Leerzeile getrennt. Eine Kommentarzeile fängt mit # an.

Damit die Hue Lampen über das HTTP/JSon API gesteuert werden können, müsst ihr euch erst einen API Benutzer auf der Hue Bridge einrichten. Dies könnt ihr z.B. über die eingebaute Debug-Schnittstelle tun: http://<bridge-ip>/debug/clip.html – eine vollständige API Dokumentation gibt es hier (kostenloser Hue Developer Account benötigt).

Ich setze drei Actions in meiner CinemaVision Sequenz ein. Am Anfang wird für die Länge des Vorprogramms eine bestimmte Lichtszene, die ich in Philips Hue angelegt habe aktiviert. Danach werden die Farbigen Lampen in Colorloop Modus gesetzt und die Helligkeit langsam verringert.

http://<bridge-ip>/api/<userid>/groups/<groupid>/action
PUT:{ "scene": "<scene-id>"}

http://<bridge-ip>/api/<userid>/groups/<groupid>/action
PUT:{ "effect": "colorloop", "bri": 110, "transitiontime": 20 }

Nachfolgende Action läuft vor dem Hauptfilm und dimmt das Licht langsam komplett ab:

http://<bridge-ip>/api/<userid>/groups/<groupid>/action
PUT:{ "on": false, "transitiontime": 20 }

und am Ende des Hauptfilms werden die Lampen auf die vordefinierte Szene „Tropendämmerung“ gesetzt.

http://<bridge-ip>/api/<userid>/groups/<groupid>/action
PUT: { "scene": "AsHe6xgTikjBhzd", "transitiontime": 20 }
  • <bridge-ip> muss durch die IP Adresse der Bridge ersetzt werden
  • <userid> muss durch die ID eures API Nutzers
  • <groupid> ist die ID der Lamepengruppe, die ihr steuern wollt
  • <sceneid> ist die ID der Szene, die für das Vorprogramm angelegt wurde

Die Actions müssen mit der Dateiendung .cvaction unter Actions im Content-Verzeichnis von CinameVisions abgelegt werden. Danach können Sie in dem Plugin in die Sequenz eingefügt werden.

 

30C3 „Wir sind aus einem Alptraum aufgewacht in eine Realität, die nochschlimmer ist.“

Der diesjährige Congress des CCC findet ohne Motto statt,  weil wir sprachlos sind.  „Wir sind aus einem Alptraum aufgewacht in eine Realität, die noch schlimmer ist,“ sagte der Berliner Podcaster Tim Pritlove bei der Auftaktveranstaltung.  Vieles auf dem 30. Chaos Communication Congress dreht sich um die staatliche Totalüberwachung. Auch viele Kunstinstallation muten geradezu dystopisch an.

 

KDE Connect: Zeug™ zwischen KDE und Android teilen

KDE Connect ist eine praktische Anwendung um Zeug™ zwischen Android und KDE zu teilen. Es besteht aus eine Android Applikation und einer KDE Anwendung. Außerdem gehört ein KDE Plasma Widget dazu, dass die Android Notifications im KDE Tray anzeigt. KDE Connect teilt die Zwischenablage zwischen KDE und Android, dient als Multimedia Fernbedienung und zeigt den Akkustand an. Demnächst kommt noch Dateiübertragung hinzu.

 

GIT Repositories:

 

git://anongit.kde.org/scratch/albertvaka/kdeconnect-kded
git://anongit.kde.org/scratch/albertvaka/kdeconnect-android

 

Fertige Pakete für OpenSUSE gibt es hier:

 

 

Damit KDE Connect auch eine Verbindung aufbauen kann, müsst ihr noch die Ports in der Firewall freigeben. KDE Connect benutzt die Ports 1714 bis 1764 sowohl via TCP und UDP. Unter Opensuse erstellt einfach eine Datei mit dem Namen kde-connect unter /etc/sysconfig/SuSEfirewall2.d/services/ mit folgendem Inhalt:
## Name: KDE connect
## Description: opens ports for KDE Connect in order to allow to connect phone

TCP=”1714:1764″
UDP=”1714:1764″
BROADCAST=”1714:1764″