Beim Ali gibt es für teils nur 8 € einen "Mini-Fernseher" Namens Geek Magic Ultra, der aus einem ESP-Microcontroller und einem 240x240-Pixel-LCD besteht, und per USB-Port/-Netzteil mit Strom versorgt wird. Es gibt im Web zahlreiche Rezensionen vom dem Gadget und auch wie man es befreit und auf andere Firmware umflasht, damit es aus HomeAssistant heraus bespielt werden kann. Ich zeige euch im folgenden, wie man es mit der Originalfirmware als Anzeigegerät für FHEM nutzt! Weil sich der Access Point im Gerät mit GIFTV meldet, nenne ich das Gerät im folgenden GIFTV (es kann nämlich auch bewegte GIF-Animationen abspielen).
Prinzip
Das Gerät hat eine Funktion als Fotoalbum mit zeitgesteuertem Bildwechsler. Es ist auch möglich, eingebaute Funktionen wie z. B. die Anzeige von Wetter und Uhrzeit am Standort und irgendwelche Fotos im Wechsel zu zeigen. Um das GIFTV als Anzeigegerät für FHEM zu benutzen, muss man also "nur" in FHEM erzeugte Grafiken regelmäßig zum GIFTV hochladen, nachdem man die im GIFTV vorinstallierten Beispieldateien im Pictures-Menü mit CLEAR gelöscht hat.
Die Grafiken in FHEM werden mit meinem Modul RSS erzeugt und mit dem Perl-Befehl push2giftv() hochgeladen. Über ein wiederholendes at lassen sich dann aktualisierte Grafiken z. B. alle 10 Sekunden auf das GIFTV schieben. Mit mehreren RSS-Geräten können dann auch mehrere Anzeigen im Wechsel geschaltet werden.
push2giftv
Ich habe ein Modul 99_GIFTV.pm in /opt/fhem/FHEM erstellt mit folgendem Inhalt:
sub push2giftv($$) {
my ($name, $hostname) = @_;
# wrap code in eval to avoid lethal errors crashing FHEM
eval {
# make RSS generate the image
my $type = "jpg";
my ($mimetype, $image) = RSS_returnIMG($name, $type);
# parameters for GIFTV
my $url = "http://$hostname/doUpload?dir=%2Fimage%2F";
my $targetfilename = "$name.$type";
my $param = {
loglevel => 1,
url => $url,
method => "POST",
hideurl => 0,
noshutdown => 0,
callback => sub($$$) { Log3 $name, 1,"ERR:$_[1] DATA:".length($_[2]) },
};
# add image as multipart form data
HttpUtils_AddMultipartData($param, $image,
{"Content-Disposition" => "form-data; name=\"file\"; filename=\"$targetfilename\"", "Content-Type" => $mimetype }
);
# upload to GIFTV
HttpUtils_NonblockingGet($param);
};
if ($@) {
my $msg = $@;
chomp $msg;
Log3 $name, 2, $msg;
}
}
Dabei wird das seit 22.02.2026 um neue Funktionalität erweiterte (https://forum.fhem.de/index.php?topic=143975.0) HttpUtils verwendet.
Zu laden mit reload 99_GIFTV oder FHEM neu starten.
Der Befehl wird auf der FHEM-Kommandozeile wie folgt aufgerufen:
{ push2giftv("sensorfeed", "192.168.178.131") }
Das erste Argument ist der Name des RSS-Geräts und das zweite Argument die IP-Adresse oder der Hostname des GIFTV. Die JPEG-Datei auf dem GIFTV heißt dann so wie das RSS-Gerät.
RSS
Zum Testen habe ich ein simples RSS-Gerät angelegt.
define sensorfeed RSS jpg has.m11.saarlust.de /opt/fhem/conf/sensorfeed.layout
attr sensorfeed bgcolor ff0000
attr sensorfeed size 240x240
Die Konfigurationsdatei sensorfeed.layout sieht so aus:
# ------------------
# font
# ------------------
font /opt/fhem/conf/DroidSans.ttf
# ------------------
# bottom left corner
# ------------------
#
# date/time
#
rgb "c0c0c0"
pt 18
date 10 160
time 10 180
text 10 200 "Hallo, Welt!"
Damit wird das in der Anlage gezeigte Bild erzeugt.
Zukunft
Ich werde 99_GIFTV.pm gelegentlich im Contrib-Ordner bereitstellen.
Ich habe 4 von den Dingern und werde es vermutlich nutzen, um wesentliche Hausparameter an verschiedenen Stellen im Haus anzeigen zu lassen. Vermutlich muss ich dafür noch das RSS-Modul erweitern, um einfacher Widgets für so eine kleine Anzeige zeichnen zu können.