rss-Feed mit PNG-Grafiken auf dem C3

Odium

Neuer User
Mitglied seit
22 Sep 2007
Beiträge
54
Punkte für Reaktionen
10
Punkte
8
ich habe hier MRTG mit dem Script ng-upnp2mrtg am laufen und wollte mir jetzt per Script ein rss-Feed mit den MRTG-Daten und den MRTG-Grafiken generieren lassen. Da das C3 ja rss-Feeds unterstützt, wollte ich mir so quasi MRTG auf das C3 holen. Jetzt ist mir aufgefallen, dass die PNG-Grafiken nicht angezeigt werden.
Kann jmd. bestätigen, dass das C3 PNG-Grafiken nicht unterstützt?
 
Ich habe auch schon einige Zeit mit der Grafik-Anzeige bei RSS-Feeds auf MT-F und C3 gespielt und bin zu dem Ergebnis gekommen, dass nur richtige .-jpg-Dateien angezeigt werden können. Auch Hacks wie "www.irgendwas.de/bild.php?id=2&wurst=.jpg" um die Endung .jpg vozutäuschen konnte ich nicht zur Funktion bringen. Vermutlich liegt die Ursache im Parsing, welches die Fritzbox oder das Handheld macht, um HTML-Tags aus dem RSS-Feed los zu werden.

Ich hatte vor Grafiken aus meinem FHEM-Server im Display zu schauen, die nicht alle pauschal vorgeneriert auf dem Server liegen. Nächster Plan ist nun, .jpg als Handler für PHP zu setzen und weiter zu testen.
 
Zuletzt bearbeitet:
Ich hab es jetzt so gemacht:

Erst wandel ich die PNG in eine JPG um und reduziere die Größe um 40%. Das reduziert auch die Dateigröße, da anscheinend auch große JPG nicht angezeigt werden. So bis 15 KB sind ok.
Danach hole ich mir die aktuellen Übertragungsdaten aus der jeweiligen HTML mit grep und filter mit sed die Zeilenumbrüche und die beiden durch grep hinzugefügten Striche raus. Da ich mit grep auch noch den HTML Code für die Bilder erhalte, muss ich in diesem einfach mit sed nur das png in jpg umwandeln. Das ganze schreibe ich dann in eine xml Datei.

Code:
#! bin/bash
#
# Graphen konvertieren
convert /var/www/mrtg/fritz1box-day.png -resize 40% /var/www/mrtg/feed/fritz1box-day.jpg
chown -R www-data:www-data  /var/www/mrtg/feed/fritz1box-day.jpg
#
# Nur täglichen Graph verwenden, der reicht. Falls doch alle, die Beschränkung von grep durch "-m6" entfernen.
#
# convert /var/www/mrtg/fritz1box-week.png -resize 40% /var/www/mrtg/feed/fritz1box-week.jpg
# chown -R www-data:www-data  /var/www/mrtg/feed/fritz1box-week.jpg
# convert /var/www/mrtg/fritz1box-month.png -resize 40% /var/www/mrtg/feed/fritz1box-month.jpg
# chown -R www-data:www-data  /var/www/mrtg/feed/fritz1box-month.jpg
# convert /var/www/mrtg/fritz1box-year.png -resize 40% /var/www/mrtg/feed/fritz1box-year.jpg
# chown -R www-data:www-data  /var/www/mrtg/feed/fritz1box-year.jpg
#
# XML Zusammenbauen
echo '<?xml version="1.0" encoding="ISO-8859-1"?>                     ' > /var/www/mrtg/feed/mrtg.xml
echo '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">               ' >> /var/www/mrtg/feed/mrtg.xml
echo '                                       ' >> /var/www/mrtg/feed/mrtg.xml
echo '<channel>                                    ' >> /var/www/mrtg/feed/mrtg.xml
echo '<atom:link href="http://[ip-Adresse]/mrtg/feed/feed.rss" rel="self" type="application/rss+xml" />   ' >> /var/www/mrtg/feed/mrtg.xml
echo '<title>MRTG Feed</title>                              ' >> /var/www/mrtg/feed/mrtg.xml
echo '<link>http://[ip-Adresse]/mrtg/</link>                        ' >> /var/www/mrtg/feed/mrtg.xml
echo '<description>Die aktuellen Feeds von MRTG</description>                  ' >> /var/www/mrtg/feed/mrtg.xml
echo '<language>de-de</language>                           ' >> /var/www/mrtg/feed/mrtg.xml
echo '                                       ' >> /var/www/mrtg/feed/mrtg.xml
echo '   <item>                                    ' >> /var/www/mrtg/feed/mrtg.xml
echo '     <title><![CDATA[FritzBox]]></title>                  ' >> /var/www/mrtg/feed/mrtg.xml
echo '     <description><![CDATA[                           ' >> /var/www/mrtg/feed/mrtg.xml
grep -i -h -m6 -A2 -B10 'b/s' /var/www/mrtg/fritz1box.html | sed -e 'N;s/--//g;s/png/jpg/g;s/\n//g;s/\t//g' >> /var/www/mrtg/feed/mrtg.xml
echo '     ]]></description>                              ' >> /var/www/mrtg/feed/mrtg.xml
echo '     <link>http://[ip-Adresse]/mrtg/fritz1box.html</link>                  ' >> /var/www/mrtg/feed/mrtg.xml
echo '     <guid>http://[ip-Adresse]/mrtg/fritz1box.html</guid>                  ' >> /var/www/mrtg/feed/mrtg.xml
echo '     <enclosure url="http://[ip-Adresse]/mrtg/feed/fritz1box-day.jpg" type="image/jpeg" length="15000"/>   ' >> /var/www/mrtg/feed/mrtg.xml
echo '   </item>                                 ' >> /var/www/mrtg/feed/mrtg.xml
echo '                                       ' >> /var/www/mrtg/feed/mrtg.xml
echo '</channel>                                 ' >> /var/www/mrtg/feed/mrtg.xml
echo '</rss>                                    ' >> /var/www/mrtg/feed/mrtg.xml
#
# Erklärung zu grep:
# -i Groß- und Kleinschreibung ignorieren
# -h
# -m6 nur sechs mal die gesuchte Zeichenfolge ausgeben
# -A2 -B10 die zwei Zeilen nach und die 10 Zeilen vor der gesuchten Zeichenfolge ausgeben
# 'b/s' gesuchte Zeichenfolge (Bytes pro Sekunde)
#
# Erklärung von sed:
# -e sed-Script in Gänsefüßchen
# N Zeilenübergreifend
# s/--//g bedeutet: Ersetze (s) die beiden Striche durch nichts und das global (g) in der gesamten Ausgabe von grep
# s/png/jpg/g bedeutet: Ersetze (s) png durch jpg und das global (g) in der gesamten Ausgabe von grep
# s/\n//g beduetet: Ersetze (s) alle Zeilenumbrüche (\n) durch nichts und das global (g) in der gesamten Ausgabe von grep
# s/\t//g beduetet: Ersetze (s) alle Tabs (\t) durch nichts und das global (g) in der gesamten Ausgabe von grep
# Befehle werden durch Punktstrich (;) getrennt.
#
chown -R www-data:www-data  /var/www/mrtg/feed/mrtg.xml



Das Script wird alle fünf Minuten ausgeführt. Der Eintrag in der contrab sieht so aus:
Code:
*/5   *   *   *  *  root  /usr/local/bin/mrtg2feed.sh



Die Zeile:
Code:
 <enclosure url="http://[ip-Adresse]/mrtg/feed/fritz1box-day.jpg" type="image/jpeg" length="15000"/>
scheint wichtig zu sein, denn ohne diese wird die in <description> eingebettete JPG nicht auf dem Fritz!Fon angezeigt.
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,461
Beiträge
2,291,921
Mitglieder
377,885
Neuestes Mitglied
gooseman22383