02_FRAMEBUFFER.pm

Begonnen von mober, 29 März 2025, 15:45:33

Vorheriges Thema - Nächstes Thema

mober

Hallo!

Nachdem ich meinen Raspberry neu aufsetzen musste und so zu einem Update gezwungen war funktionierte mein Display (Admatec C-Berry28) leider nicht mehr. Das für das Modul FRAMEBUFFER nötige fbvs ließ sich zwar kompilieren, funktionierte aber leider nicht mehr. Nach langem herumprobieren mit verschiedenen Tools bin ich auf eine Lösung gekommen und habe diese ins Modul integriert (siehe patch unten). Die für die vorliegende Lösung notwendigen Tools sind im Code beschrieben (netpbm und ein kleines C-Programm aus dem Git-Repo des Blogs Raspberry Compote).

Vielleicht kann einer der Entwickler meinen Patch integrieren?

Grüße,
Max

--- 02_FRAMEBUFFER.pm    2025-03-29 15:08:18.373638178 +0100
+++ /opt/fhem/FHEM/02_FRAMEBUFFER.pm    2025-03-29 15:32:13.190926387 +0100
@@ -3,6 +3,7 @@
 # 02_FRAMEBUFFER.pm
 # written by Kai Stuke
 # based on 02_RSS.pm
+# updated 2025/03 by Max Ober
 #
 ##############################################
 # $Id: 02_FRAMEBUFFER.pm 12126 2016-09-06 18:35:26Z kaihs $
@@ -137,6 +138,8 @@
   my ($hash, $timeout) = @_;
   my $name = $hash->{NAME};
   my $fbv = '/usr/local/bin/fbvs';
+  my $pngtopam = '/usr/bin/pngtopam';
+  my $ppmtorgb565 = '/usr/local/bin/ppmtorgb565';
   my $fd = $hash->{fd};
  
   if (defined $fd) {
@@ -171,8 +174,17 @@
         #close FBV;
     }
   } else {
-    Log3 $name, 1, "$fbv doesn't exist or isn't executable, please install it";
-   
+    #Log3 $name, 1, "$fbv doesn't exist or isn't executable, please install it";
+    #use pngtopam and ppmtorgb565 instead
+    if (-x $pngtopam and -x $ppmtorgb565) {
+        if (FRAMEBUFFER_readLayout($hash)) {
+            open($fd, "|".$pngtopam.' | '.$ppmtorgb565.' > '. $hash->{fhem}{fb_device});
+            binmode $fd;
+            print $fd FRAMEBUFFER_returnPNG($name);
+        }
+    } else {
+        Log3 $name, 1, "$pngtopam or $ppmtorgb565 does not exist or is not executable, please install it (netpbm and https://github.com/rst-/raspberry-compote/blob/820183a0a0dfe4b942d3ecfa2eedf906bdeb8c2c/img/ppmtorgb565.c)";
+    }
   }
 }