Posts by veloci

    Danke erstmal für die Info.

    Beim Wetterscreensaver muß ich noch nachbessern (da fehlt die initiale Wetterabfrage/-anzeige - spätestens 10 min nach Start des Screensavers ist das Wetter aber da...).

    Die Korrektur kommt dann in Beitrag #1833 als rev. 01 - also ab und zu mal nachschauen (heute aber nicht mehr)...


    Die Konfigurationsdatei '.newtron-radio.conf' wird immer im Verzeichnis des aufrufenden Benutzers erzeugt:

    Wenn ich das Radio über rc.local oder direkt via sudo newtron-radio starte (beides nicht empfohlen), dann wird sie unter /root/ erzeugt.

    Wenn das Radio dagegen direkt an der Touchscreen-Kommandozeile (als user pi), vom Desktop aus (als user pi) oder via systemd-service gestartet wird, dann wird sie unter /home/pi/ erzeugt.


    Gruß,

    veloci


    EDIT: Die korrigierte Version v3.2 Rev. 01 ist ab sofort in Beitrag #1833 zu finden.

    So, rev. 00 von Newtron-Radio v3.2 ist soweit fertig. Und wieder einmal hat sich jede Menge gegenüber der Vorversion geändert. Der größte Teil davon intern - ich bin endlich die 'global'-Deklarationen in den Funktionen und Klassen los. Zwar bin ich mit der Umstellung noch lange nicht soweit wie ich eigentlich wollte, aber in letzter Zeit hab ich einfach mal wieder zu wenig Zeit...

    Die nach außen sichtbaren Änderungen hier nun im einzelnen.

    • Die von kle vorgeschlagenen Änderungen bezüglich der Playlistenauswahl wurden implementiert.
    • Der Autostart im Konsolenmodus kann jetzt via systemd-Unit realisiert werden (mehr dazu weiter unten)
    • Ort und Name der Radio-Konfigurationsdatei wurde geändert. Diese befindet sich jetzt im Homeverzeichnis des jeweiligen Benutzers und heißt jetzt .newtron-radio.conf. Hier kann nun auch der Openweathermap API-Key und der Ort für die Wetteranzeige eingetragen werden (diese Änderung war nötig, damit der Autostart via systemd - als user pi - funktioniert).
    • Die Backlightsteuerung wurde vorerst entfernt, da RPi.gpio root-Rechte benötigte, was dem Autostart via systemd im Weg stand. Ein Umstieg auf gpiozero ist aber in Planung.
    • Die Skin-Konfig-Dateien akzeptieren keine symbolischen Farbnamen mehr sondern nur noch RGB-Tupel. Änderungen der Fontgröße können nur noch im Skript selbst vorgenommen werden.
    • Es gibt ein paar neue Button-Symbole. Damit sollen die Symbole eindeutiger und verständlicher werden.
    • Beim Clock-Screensaver wird nun auch der Name der Radiostation angezeigt.
    • ...

    Wie immer muß mindestens Raspbian Lite installiert sein. Netzwerk und Touchdisplay müssen vollständig funktionieren (vor allem der Touch). Bei Raspbian Lite letzteres auch auf der Konsole.


    Wer Probleme hat sein Touchdisplay für die Konsole einzurichten kann sich Beitrag #1778 (für Waveshare SPI LCD Touchdisplays) oder Beitrag #1824 (USB-Touchdisplays mit der USB-ID 0eef:0005 (D-Wav) u.A. für das Waveshare 5inch HDMI LCD (B) Display mal ansehen.


    Installer: newtron-radio-setup-v3.2.sh (rev. 01 vom 25.10.19)

    Installiert NewTron-Radio und alle nötigen weiteren Pakete


    Installation mit sh newtron-radio-setup-v3.2.sh


    Danach kann das Radio mit der Eingabe von newtron-radio direkt an der Touchscreen-Konsole (bzw. via ssh mit X11-Forwarding) oder mit sudo newtron-radio an der Kommandozeile (via putty/ssh ohne X11-Forwarding) gestartet werden.


    Autostart ist nun via systemd möglich.

    Hierzu wird eine entsprechende Unit vom Installationsskript nach /etc/systemd/system/ kopiert.

    Um zu überprüfen, ob der Autostart über systemd funktionieren würde gibt man als user pi an der (putty/ssh-)Kommandozeile einfach sudo systemctl start newtron-radio ein. Wenn alles Korrekt eingerichtet wurde sollte das Radio nun auf dem Touchdisplay zu sehen und zu bedienen sein. Sollte das nicht der Fall sein, kann man sich mit journalctl -u newtron-radio die Fehlermeldungen anzeigen lassen.

    Sollte alles wie erwartet funktionieren, kann man den Autostart mittels sudo systemctl enable newtron-radio aktivieren.

    Entsprechend kann man den Autostart mit sudo systemctl disable newtron-radio wieder deaktivieren oder das Radio mit sudo systemctl stop newtron-radio beenden. Ist der Autostart aktiv läuft die 'newtron-radio'-Instanz immer als User 'pi' und benutzt dessen Konfiguration.


    Das passende usbmount-Skript (Automatisches einhängen von USB-Datenträgern in den Zugriffsbereich von mpd) gibts in Beitrag #1760.


    Falls etwas nicht funktioniert, bitte ich darum, das Problem hier zu posten. Aber bitte nur mit möglichst genauen Fehlermeldungen und einer Beschreibung dessen was zum Fehler geführt hat.


    Gruß,

    veloci


    PS: Wie immer wurden einige Fehler beseitigt und wahrscheinlich einige neu eingefügt...

    Darüber hatte ich mir auch schon Gedanken gemacht.

    Wie soll sowas dann im "consume"-Modus von mpd aussehen, wo jeder gespielte Titel aus der Playliste gelöscht wird. Irgendwann ist die leer. Oder mit einer tatsächlich leeren Playlist (z.B. durch fehlerhaftes kopieren entstanden - Dateilänge 0)? Oder du löschst über das Radio nach und nach einzelne Einträge aus der aktuellen Playliste - auch die kann irgendwann leer sein.

    In allen Fällen wird z.Zt. die leere Playliste mit entsprechender Meldung "no playlist entries.." angezeigt. Also Immer dann, wenn die Playliste leer ist.


    Gruß,

    veloci

    Nochmal zum Ursprünglichen Fall:

    Eigentlich ist das kein Fehler. Wenn er "Radio BOB!" nicht findet startet das Radio mit einer leeren Playliste.

    Dann muß man halt in der Playlistenauswahl erst eine auswählen (der rechte Pfeil nach oben). Das Radio weiß ja beim (erst)Start nicht, welche deiner Playlisten du hören willst wenn die Defaultliste oder das state-file von mpd nicht existieren.

    Die Meldung "no playlistentries ..." (könnte man noch umbenennen zu "no entries in playlist...") heisst nur, dass in der aktuellen Playliste vom mpd keine Einträge vorhanden sind und das ist ja nicht gelogen. Wenn das Radio keine Playlisten oder Dateien findet meldet es "no playlists or files found..."


    Deinen zweiten Fehler konnte ich bisher allerdings noch nicht nachvollziehen bzw. ich konnte bisher immer eine neue Playliste auswählen.


    Übrigens, autostart via systemd funktioniert mit v3.2 auch schon (newtron-radio wird als user pi gestartet, Fehlerabfrage über journalctl -u newtron-radio, usw.)...


    Gruß,

    veloci

    In der bereits vorhandenen aber noch nicht veröffentlichten Version 3.2 ist das schon korrigiert.


    Das passiert übrigens, wenn im state-file von mpd noch nichts drin ist (also wenn mpd noch nie ein stück gespielt hat) aber eigene Playlisten bereits vorhanden sind - ein Fall, den ich bisher nie berücksichtigt hatte...


    Gruß,

    veloci

    Touchdisplays im Konsolenmodus (Teil 2)

    Wer wie ich eines der universelleren HDMI-Touchdisplays mit USB-Touch von Waveshare (oder auch von anderen Herstellern) besitzt, wünscht sich vielleicht, dass er den Touch auch im Konsolenmodus (ohne Desktopumgebung) benutzen kann. Dies ist bisher nur recht umständlich möglich. Waveshare unterstützt bei solchen Displays den Touch leider nur im Desktop-Modus...


    Daher habe ich ein kleines Skript geschrieben (vor allem für mich selbst...) das für alle(?) USB-Touchdisplays mit der USB-ID

    0eef:0005 die Touchfunktion im Konsolenmodus ermöglichen sollte. Diese Touchdisplays haben einen resistiven Touch - für Displays mit kapazitivem Touch ist das Skript nicht geeignet.


    Welche USB-ID das eigene Touchdisplay hat, kann man mit lsusb ermitteln.


    Ich selbst habe das Waveshare 5inch HDMI LCD (B) mit einer Auflösung von 800x480 Pixeln. Das Skript sollte aber auch mit dem einen oder anderen 7inch-Display mit 1024x600 Pixeln funktionieren - wenn die USB-ID übereinstimmt.


    Wie schon in Beitrag #1778 (Touchdisplays im Konsolenmodus) erläutert, reicht es, das Skript als user 'pi' auszuführen und den Anweisungen des Skriptes zu folgen.

    Danach sollte der Touchscreen für alle Anwendungen funktionieren die libts benutzen (z.B. Newtron-Radio, peppy-player, (kodi z. Zt. nur unter stretch) usw.)


    Download: waveshare-usb-touch-setup.sh


    Das Touchdisplay sollte vor dem Start des Skriptes bereits als Display funktionieren und mindestens die Bootmeldungen von Raspbian anzeigen können.


    Installation als user 'pi' mit sh waveshare-usb-touch-setup.sh


    Getestet unter Raspbian Buster Lite und Stretch Lite.


    Ob das Skript tatsächlich mit anderen Displays mit der USB-ID 0eef:0005 funktioniert kann ich nicht sagen, da ich nur dieses eine Display mit USB-Touch habe. Wenn jedoch jemand das Skript an seinem Display erfolgreich getestet hat, könnte ich ja eine Liste der Displays erstellen mit denen es funktioniert.


    Gruß,

    veloci

    1. musst du die Grafiken für dein Display neu erzeugen. Die jetzigen sind für eines mit 320x240 Pixeln.

    2. musst du die Touchpositionen im Skript anpassen. Da sind jede menge Angaben wie if 165 <= pos[0] <= 299 and... drin, die du alle auf deine Displayauflösung anpassen musst.

    Hier ist alles halt fest für die Auflösung von 320x240 Pixel vorgegeben.


    Kann sein dass noch deutlich mehr geändert werden muss...

    Fehlermeldungen verstehen und richtig interpretieren sollte man schon können...

    Es steht doch da:

    Quote

    Traceback (most recent call last):

    File "inet-radio.py", line 20, in <module>

    import pygame

    ImportError: No module named pygame

    Da fehlt das python-Modul pygame.

    Also: Installiere pygame!


    Da das Skript noch unter Python 2 läuft:

    Entweder mit

    sudo apt-get install python-pygame

    oder (falls pip installiert ist)

    sudo pip install pygame


    Dann erneut versuchen und auf die nächsten Fehlermeldungen warten...


    Das Teil auf neueren Raspbians zum Laufen zu bekommen dürfte schwierig werden.

    Es würde nichts bringen dir jetzt eine Anleitung zu geben, da ich dabei bin, das Radio nach und nach umzuschreiben. Was für diese Version noch geht, könnte in der Nächsten schon wieder ganz anders aussehen. So bin ich z.B. gerade dabei die Verarbeitung der Konfiguration und des Skin-Handlings zu verändern. Globale Konfigurationsvariablen werden in Dictionaries zusammengefasst, verschiedene, thematisch zusammenpassende Funktionen in Klassen zusammengeführt und der Autostart wird in eine systemd-unit verlagert.

    Diese Änderungen sollen vor allem dazu führen, dass ich Python besser verstehe - durchs Selbermachen...


    Gruß,

    veloci

    Beschäftige dich zunächst mit den Grundlagen der Python-Programmierung.

    Anleitungen hierzu gibt es jede Menge im Netz.

    Aber nicht nur lesen oder anschauen, sondern selbst ausprobieren!

    Klar, dass dabei nicht alles immer gleich funktioniert...

    Aber nur so erhält man das Verständnis um auch fremden Code zu verstehen und anzupassen.

    Wenn du dann noch Fragen zu Python und zum Programmieren hast, kannst du diese dann im Python-Unterforum hier stellen.


    Zu deinen Fragen: Editor reicht und ja, die originale .py kann einfach durch die geänderte ersetzt werden.


    Gruß,

    veloci

    Du kannst das Skript jederzeit nach deinen Wünschen verändern. Dafür ist es da. Es ist nur eine Variante der verschiedenen Tron-Radios die hier veröffentlicht wurden: das originale von 5voltjunkie, das von lema67, das von meigrafd und meins.

    Jedes hat seine Vorzüge und Nachteile.


    Ich hab bei meinem halt Wert darauf gelegt, dass es mit verschiedenen Displayauflösungen funktioniert und dabei sowenig CPU-Power benötigt wie möglich.


    Du kannst dir ja eines der Radios als Vorlage nehmen und daraus eines Basteln welches dir gefällt. So hab ich auch mit der Python-Programmierung angefangen und mir das Radio so zusammengestellt wie es mir gefällt.


    Das Radio von lema67 kannst du natürlich auch so verändern, dass es mit der höheren Auflösung des 3,5" Displays zusammenarbeitet (hier insbesonders die Touchkoordinaten im Skript und die Grafiken). Aber machen musst du es schon selbst...


    Gruß,

    veloci

    Das ist möglich, wenn du das Radio selbst modifizierst oder einen eigenen Handler, der den mpd entsprechend ansteuern kann, schreibst. Python-Kenntnisse und Erfahrung mit den GPIOs des Raspis sind aber vonnöten.

    Ansonsten kannst du das Radio auch mit dem Smartphone steuern (such mal nach MPDroid).


    Wenn du aber ein Radio willst, das so etwas von vornherein bietet, schau dir mal den Peppy Player an: Peppy Player (ist viel zu lesen).

    Quote

    7. sh newtron-radio-setup-v3.1.sh in Putty ausgeführt. OK

    Wenn das OK war, dann dürften die Punkte 8-10 überflüssig gewesen sein.

    Wenn das Skript aber Fehler gemeldet hat, dann sollte man sich die Ausgabe schon genau anschauen. Dann hättest du auch gewusst, was genau nicht funktioniert hat.


    Dass dies

    Quote

    Zwischen durch har er den fehler angezeigt:sudo dpkg -i libsdl1.2debian_1.2.15+veloci1-1_armhf.de

    dpkg: Fehler: Auf das Archiv »libsdl1.2debian_1.2.15+veloci1-1_armhf.de« kann ni cht zugegriffen werden: Datei oder Verzeichnis nicht gefunden.

    passiert wenn du das dpkg-Kommando per Hand eingibst ist klar, denn diese libSDL-Variante ist nur im Setupskript vorhanden (es sei denn du lädst sie dir vorher von meinem Dropboxaccount (siehe #1781)). Außerdem hast du den letzten Buchstaben (b) vergessen (die Datei heißt libsdl1.2debian_1.2.15+veloci1-1_armhf.deb).


    Aber trotzdem schön für dich dass es jetzt

    läuft.


    Gruß,

    veloci

    Hier nochmal extra für dich TSW68 :

    Quote
    • Raspbian Lite installieren / konfigurieren / aktualisieren
    • sh waveshare-spi-console-setup.sh, rebooten und sudo ts_calibrateausführen
    • sh newtron-radio-setup-v3.1.sh
    • Radio starten mit sudo newtron-radio oder
    • für Autostart einfach /usr/local/bin/newtron-radio& in /etc/rc.local vor dem exit 0 eintragen.

    konfigurieren heißt sudo raspi-config und zumindest die Lokalisierungsoptionen durchgehen.

    aktualisieren heißt sudo apt update und sudo apt upgrade danach eventuell rebooten.

    rebooten heißt sudo reboot.


    Und natürlich bei jedem Schritt genau beobachten, ob alles fehlerfrei durchgelaufen ist. Wenn nicht, hier melden und die Ausgabe der Kommandos mitposten.


    Noch genauer kann man es fast nicht erklären...


    Gruß,

    veloci

    Deine Schreibweise stört nicht.

    Aber beispielsweise hier

    Deine neue version von newtron Radio 3.1.sh habe ich nicht Installieren können

    es wurde ca. 15 mal gestartet und immer noch ein fehler angezeigt.

    hättest du dich bereits melden können und gleich noch die Ausgabe des Skriptes dazu Posten können. Nur dann kann dir weitergeholfen werden!


    Ich bin auf genaue Rückmeldungen angewiesen um auch die Skripte verbessern zu können. Vielleicht ist beim Skript was falsch, oder deine Netzwerkverbindung ist instabil oder kaputt. Ohne genauere Information ist sowas nur stochern im Nebel.

    Danach ich als absoluter anfänger habe ich das 2019-07-10-raspbian-buster-lite.img

    auf die SD gepackt Python 3.7 kommplet installiert.

    Wer hat gesagt, das du das machen sollst?

    Alles Notwendige ist mit dem Buster-lite Image bereits installiert. Was sonst noch benötigt wird kommt von den beiden Skripten. Und wenn dabei etwas nicht so funktioniert wie es sollte, dann meldest du dich hier mit einer möglichst genauen Beschreibung dessen was du gemacht hast und aller Ausgaben der Skripte.

    Ich möchte nur mal eine Anleitung von vorne bis hinten

    und nicht, sehe da und da und gehe auf die Seite .

    Genau so sollte es sein .

    Warum? Die Anleitungen existieren. Warum hältst du dich nicht daran?

    Eine explizite mehrfache Wiederholung der Anleitung nur für dich ändert daran nichts.


    Gruß,

    veloci

    Sag mal, willst du uns verarschen?


    kle und ich haben dir hier jetzt schon mehrfach geschrieben was du machen musst wenn du dich genau an die Vorgehensweise von Beitrag #1778 hälst.


    Wenn du weiterhin versuchst es doch wieder anders zu machen, kann und will ich dir nicht mehr weiterhelfen - auch weil du nie dazuschreibst, was du wie genau versucht hast und was das Ergebnis deiner Bemühungen war. Siehe auch: Wie frage ich um Hilfe?


    Gruß,

    veloci

    Kommt drauf an, ob du mein Waveshare-setup-skript verwendet hast oder LCD35-show.


    Bei meinem Skript reicht es, /usr/local/bin/newtron-radio& in die Zeile vor dem exit 0 in /etc/rc.local einzutragen.


    Bei LCD35-show musst du davor noch die richtigen Umgebungsvariablen setzen und exportieren. Welche das jetzt genau sind kann ich dir aber aus dem Kopf nicht sagen...


    veloci

    So, ich hab rev. 05 vom NewTron-Radio v3.1 in Beitrag #1781 eingestellt.

    Diese Version korrigiert einen Fauxpas von mir im Installationsskript, der alle Benutzer von Raspbian Stretch betrifft. Ich hatte beim Wechsel von 3.0 auf 3.1 versehentlich zuviel aus dem Installationsskript herausgelöscht, so dass die Installation von v3.1 unter Stretch fehlerhaft war: libSDL1.2debian_1.2.15-5 die für die korrekte Funktion des Touchscreens unter Pygame nötig ist wurde nicht installiert.


    Des weiteren habe ich den Installer so modifiziert, dass er eine Meldung am Ende der Installation ausgibt, wenn während der Installation der Abhängigkeiten Fehler aufgetreten sind.

    Das Skript fordert dann zur erneuten Ausführung auf.


    Gruß,

    veloci

    Das wundert mich jetzt aber - oder du warst zu schnell mit dem Download. Ich meine, ich hätte das vor ein paar Tagen, als ich auf daselbe Problem gestoßen war, im Skript korrigiert (zusätzliche Einträge in /etc/environment).

    sudo ts_calibrate sollte jetzt auch ohne zusätzliche Angabe von TSLIB_FBDEV usw. funktionieren.


    TSW68

    Wenn beim Ausführen des Newtron-Radio Installers solche komischen Meldungen auftauchen (E: failed to fetch ....) , dann war irgendwo im Netz was faul. Du kannst den Installer dann einfach nochmal Starten und zwar sooft du willst oder bis keine Fehler mehr auftauchen. Das schadet nichts und macht normal auch nichts kaputt. Also nur Mut...


    Und nun zum LCD35-show von Waveshare: Das funktioniert prinzipiell auch, vergisst aber einige Sachen mitzukonfigurieren, was letztendlich händische Nacharbeit bedeutet.

    Deshalb anstelle von LCD35-show besser mein Waveshareskript verwenden.


    Gruß,

    veloci