Peppy WebRadio

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • So hab nun ein wenig geschaut, aber leider reichte es nicht aus. Ich hab mal angefangen meine Python Kenntnisse aufzufrischen. Werde vielleicht mal ein zusätzliches Menü schreiben, um mit den NFC Karten zu arbeiten. Dies wird zwar nun ein wenig dauern, aber hab grad wieder DEN Spaß daran gefunden.

    Eine Frage noch, hast du bereits was vorgesehen für User plugins oder User Menüs?

    Danke

  • Hallo Shoex,

    Wenn Sie erklären könnten, was fehlt, könnte ich wahrscheinlich helfen. Sie können auf jeden Fall versuchen, selbst neue Funktionalität hinzuzufügen. Leider gibt es außer den Quelldateien selbst keine Dokumentation, die den Player-Code erklärt. Ich bin schon lange im Softwaregeschäft tätig und erinnere mich, dass UML-Diagramme eine unabdingbare Voraussetzung für die Arbeit an einem Softwareprojekt waren. Ich fürchte, heutzutage erinnert sich niemand mehr daran, was UML bedeutet :)

    Ich hatte nicht vor, die Funktionalität von RFID-Karten hinzuzufügen. Wenn Sie das tun könnten, wäre es wahrscheinlich für einige andere Leute nützlich. Bitte lassen Sie mich wissen, wenn Sie Fragen zum Code haben.

    Vor einiger Zeit wollte ich eine ähnliche Funktionalität hinzufügen - ein Strichcode-Lesegerät. Man scannt zum Beispiel den Code von einer CD-Box und der Player beginnt mit der Wiedergabe der Dateien von dieser CD. Die CD sollte im Voraus gerippt werden. Das könnte etwas Zeit für die Auswahl der CD aus dem Menü sparen und es würde wie ein echter CD-Player aussehen, aber ohne die CD aus der Box zu extrahieren :) Aber diese Idee habe ich aufgegeben.

    Ich habe oft darüber nachgedacht, den Plugin-Ansatz für Home und Bildschirmschoner zu verwenden. Das wurde für Audio-Player gemacht. Ich habe das fast für den Bildschirmschoner implementiert, aber schließlich wurden die Dateien des Bildschirmschoners auf verschiedene Ordner (Bilder, Labels) verteilt. Für das Home-Menü ist es nicht getan. Hoffentlich werde ich das irgendwann einmal tun.

    Mit freundlichen Grüßen

    ----------------------------------------------------------------------------------------------------

    Hi Shoex,

    If you could explain what is missing I could probably help. You can definitely try to add new functionality yourself. Unfortunately there is no any documentation explaining the player code except the source files themselves. I'm in a software business for a long time and remember that UML diagrams was a must-have requirement before you start working on a software project. I'm afraid nowadays nobody remembers what UML means :)

    I didn't plan to add RFID cards functionality. If you could do that it would be probably useful for some other people. Please let me know if you will have any questions regarding the code.

    Some time ago I wanted to add similar functionality - bar-code reader. For example you scan code from CD box and player starts playing the files from that CD. The CD should be ripped in advance. That could save some time for selecting disk from menu and it would look like a real CD player but without extracting CD from the box :) But I abandoned that idea.

    I was thinking many times to use plugin approach for Home and Screensaver. It was done for audio players. I almost implemented that for Screensaver but eventually the files from screensaver were spread across different folders (images, labels). It's not done for the Home menu. Hopefully at some point I'll do that.

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Uff uml, dunkel erinner ich mich. Wie gesagt mir mach es einfach Spaß u d python ist ja ganz gut lesbar. Ich werde mich mal mit auseinander setzen und wenn ich fragen hab melde ich mich. Danke schon mal für die Hilfe.

    Letztendlich ist ja alles da ausser das einlesen und verknüpfen mit einem Titel. Wenn ich was gebastelt habe, kann ich es dir ja zeigen und vielleicht kannst du es ja dann übernehmen. Hoffe nur das du mit meiner Hobby Programmierung zurecht kommst. Versuche es weitgehenst auszulagern, damit man eindeutig erkennt was passiert.

  • Hier ist der Neuzugang in der Galerie - das zweite Projekt von Dee (USA) und das zweite Originalgehäuse - Holzkasten mit Ahorndekor:

    https://github.com/project-owner/…oc/wiki/Gallery

    ---------------------------------------------------------------------

    Here is the new arrival in the Gallery - the second project by Dee (USA) and second original enclosure - wooden case with maple finish

    https://github.com/project-owner/…oc/wiki/Gallery

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • So ich arbeite im Hintergrund noch fleißig an der integration der (Phoniebox) RFID Funktionalität in Peppy.

    Ich habe aktuell noch ein kleines Problem. Denke ein Verständnis Problem. Im dispatcher werden mouse events, sprich Touchscreen events auf Keyboard Events umgeleitet (handle_keyboard_event / handle_single_touch ggf ja auch LIRC events). Ist dies korrekt so oder interpretiere ich da etwas falsch?

    Denn ich versuche aktuell im Prinzip das Keyboard zu deaktivieren, da der RFID Reader eine ID sendet gefolgt von einem Enter. Dieses "Enter" führt natürlich zu einer Aktion, die ich nicht möchte (Enter hat ja auch eine Funktion in Peppy). Der RFID Reader fungiert somit als Keyboard.

    Versuche dies irgendwie sauber zu trennen aber irgendwie hab ich mich verrannt oder nicht verstanden. Viellleicht hat ja einer eine Idee wie ich dies sauber trennen kann.

    Danke

    Edit: Hab es nun verstanden, nach dem ich mal ein Kaffe getrunken habe. Nun funktioniert es. Somit kann ich nun mit dem Keyboard Enter mein eigenes Event erstellen. Muss mir nun mal die config anschauen wie ich diese erweitern kann.

    Danke

    Einmal editiert, zuletzt von Shoex (26. März 2020 um 21:51)

  • Um die Ereignisverarbeitung zu vereinfachen, werden alle Ereignistypen in Tastaturereignisse verpackt, die wiederum als Benutzerereignistyp gepostet werden:

    https://github.com/project-owner/…patcher.py#L252

    Was wollen Sie erreichen? Wollen Sie RFID-Ereignisse im Player deaktivieren? Oder möchten Sie diese Ereignisse im Player behandeln? Im letzteren Fall wäre es am besten, die Eigenschaft 'source' des Ereignisses auf etwas wie 'rfid' zu setzen. Dies wird zum Beispiel bei LIRC (IR-Fernbedienung) Ereignissen so gemacht:

    https://github.com/project-owner/…patcher.py#L229

    Die Frage ist also - ist es möglich, RFID-Ereignisse von Tastatur-Ereignissen zu unterscheiden oder nicht?

    Mit freundlichen Grüßen

    ----------------------------------------------------------------

    To simplify event processing all event types wrapped into keyboard events which in turn will be posted as a user event type:

    https://github.com/project-owner/…patcher.py#L252

    What do you want to achieve? Do you want to disable RFID events in the player? Or you want to handle those events in the player? If the latter, the best way would be to set 'source' property of the event to something like 'rfid'. For example it's done this way for LIRC (IR remote) events:

    https://github.com/project-owner/…patcher.py#L229

    So the question is - is it possible to distinguish RFID events from keyboard events or not?

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Danke, habe mich bereits and der LIRC Integration orientiert. Die Unterscheidung zu einem Tastatur Ereignis ist schwierig, da ein string übertragen, welcher string enthält gefolgt von einem Enter. Da es als HID eingebunden ist, sehe ich keine einfache bzw. mir bekannte Möglichkeit.

    Was ich erreichen möchte, das beim Enter des RFIDs ein extra Player auf geht, der anzeigt was mpd gerade wiedergibt.

    Die Verarbeitung der RFIDs lass ich zunächst von Scripts der Phoniebox erledigen.

    Die Wiedergabe funktioniert nun auch schon ohne Probleme. Muss nur das Handling mit dem Enter hinbekommen und dann ein Zusatzplayer (Rfid Player) anzeigen lassen.

    Eine Frage hätte ich aber, wie du ein schnelles debugging realisiert. Nutze zwar Pycharm zum editieren. Muss dann aber jedesmal ein reboot durchführen zum testen. Des Weiteren hab ich somit auch kein debugging.

    Für Selbsterstelle Projekte bekomm ich remote Debugging hin, beim Peppy Player Weiss 8ch nicht wie ich dies am besten mache. Hast du ggf einen Tipp.

    Danke

  • Aktivieren Sie zunächst das Debugging, indem Sie diese Eigenschaft auf True setzen:

    https://github.com/project-owner/…/config.txt#L31

    Deaktivieren Sie dann den Player-Start in der Datei /etc/rc.local.

    Wenn Sie Ereignisse debuggen müssen, würde ich empfehlen, den Headless-Modus auf True zu setzen:

    https://github.com/project-owner/…/config.txt#L20

    Im Headless-Modus können Sie den Player über einen Webbrowser steuern. In diesem Modus benötigen Sie keinen grafischen Kontext und können den Player mit SSH/putty starten. Gehen Sie also einfach in den Ordner /home/pi/Peppy und führen Sie den Befehl

    python3 peppy.py

    Auf diese Weise können Sie debuggen, ohne den Player jedes Mal neu zu starten. Dies ist der einfachste Weg zum Debuggen - fügen Sie einfach Debug-Anweisungen in den Code ein und starten Sie den Player von der Kommandozeile aus.

    Die gleichen Schritte können helfen, wenn Sie PiCharm verwenden. Ich würde empfehlen, es auf Pi (Raspbian Desktop) zu installieren und über VNC darauf zuzugreifen. Oder Sie können das Remote-Debugging von Ihrem Desktop-Rechner aus einrichten.

    Mit freundlichen Grüßen

    --------------------------------------------------------------------------

    First of all enable debugging by setting this property to True:

    https://github.com/project-owner/…/config.txt#L31

    Then disable player start in the file /etc/rc.local.

    If you need to debug events I would recommend to set the headless mode to True:

    https://github.com/project-owner/…/config.txt#L20

    In the headless mode you can control player from a web browser. In this mode you don't need graphical context and you can start player using SSH/putty. So just go to the folder /home/pi/Peppy and run command

    python3 peppy.py

    This way you can debug without rebooting player every time. This is the easiest way to debug - just add debug statements to the code and start player from command line.

    The same steps can help if you use PiCharm. I would recommend to install it on Pi (Raspbian Desktop) and access it over VNC. Or you can setup remote debugging from your desktop machine.

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Hallo, Sie haben Recht, es gibt kein Disk-Image für die 3,2-Zoll-Anzeige. Es ist unmöglich, Disk-Images für alle Touchscreen-Größen zu erstellen.

    Die Waveshare 3.2"-Anzeige sollte funktionieren. Der Benutzer kle hat es für einen seiner Spieler benutzt:

    https://github.com/project-owner/…y-klaus-germany

    Mit freundlichen Grüßen

    ---------------------------------------------------

    Hi, you are right there is no disk image for 3.2" display. It's impossible to create disk images for all touchscreen sizes.

    Waveshare 3.2" display should work. User kle used it for one of his players:

    https://github.com/project-owner/…y-klaus-germany

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Hallo peppy.player vielen Dank für die Nachricht. Das mit dem Display muss ich die nächsten Tage mal ausprobieren.

    Ich habe gestern mit einem Raspi 3B das Headless Image ausprobiert.

    Hier ist mir aufgefallen, dass Wlan nicht funktioniert.

    "wlan0 interface doesn't support scanning"

    Dann wollte ich mich per ssh auf den Pi einloggen, und habe festgestellt, dass der User "pi" und Passwort "raspberry" oder "raspberrz" nicht funktioniert.

    Gibt es hierzu eine Lösung?

  • Hallo,

    Das Kennwort hängt von dem installierten Diskettenabbild ab. Wenn Sie die neueste Hogarth-Edition installiert haben, lautet das Passwort Hogarth. Es wird auf dieser Seite unterhalb der Tabelle mit den Links zu den Disk-Images erwähnt:

    https://github.com/project-owner/…iki/Disk-Images

    Wo haben Sie die Meldung über wlan0 gesehen?

    Beste Grüße

    -------------------------------------------------------------------

    Hi,

    The password depends on the disk image which you installed. If you installed the latest Hogarth Edition then the password is Hogarth. It's mentioned on this page below the table with links to disk images:

    https://github.com/project-owner/…iki/Disk-Images

    Where did you see the message about wlan0?

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Vielen Dank für das Passwort.

    Ich habe in der Doku diese Seite gefunden: https://github.com/project-owner/Peppy.doc/wiki/Expert

    Daher habe ich "pi" und "raspberry" probiert.

    Ich habe mich per Webbrowser auf den Headless Peppy Webradio verbunden.

    Dann bin ich auf die Einstellungen gegangen und habe versucht die Wlan Netze zu durchsuchen.

    Leider ist kein Wlan Netz gekommen, mit dem ich mich verbinden kann.

    Ich habe dann an dem Headless Pi ein HDMI Kabel angeschlossen und nachgesehen, welche Meldungen kommen.

    Nachdem ich es über den Webbrowser nochmals versucht habe, mich mit einem Wlan zu verbinden, habe ich über den lokal angeschlossen Bildschirm diese Meldung gesehen.

    "wlan0 interface doesn't support scanning" "Network is down"

    Da es sich um einen Pi 3 handelt, is Wlan eigentlich integriert.

    Danke für die Hilfe

  • Hallo,

    ich habe noch eine frage zum debugging. Keyboard Events in der dispatcher.py lassen sich im headless nicht remote debuggen, da sie dann ignoriert werden?

    Habe auch mit einer Tastatur direkt am py getestet. Ich starte das debugging per ssh.

    Danke

    Edit. Ich lass das logfile erstellen und lese es mit tail -f aus. Danke

    Einmal editiert, zuletzt von Shoex (28. März 2020 um 12:35)

  • ich habe ein 3.2 WaveShare Display zuhause.

    im NewTron-Radio von veloci gibt es Skripte um Touch-Displays für Konsolenmodus zu konfigurieren

    *1: damit ist die HDMI-Buchse unten, wenn man das Display anschaut.
    Das kannst Du in /boot/config.txt ändern mit der rotate-Option.
    Mit (z.B. für 3.2" Waveshare LCD(B)) dtoverlay=waveshare32b:rotate=270 ist die HDMI-Buchse wieder oben.

    das NewTron-Radio muß man ja nicht verwenden...

    Schönen Gruß, kle

    2 Mal editiert, zuletzt von kle (28. März 2020 um 14:03)

  • Hallo,

    ich nutze ein 5" DSI-Display, welches ich gerne in der Helligkeit regulieren möchte. Zum Einen die generelle Helligkeit, zum Anderen ein Dimmen sobald der Screensaver startet. Ich habe schon RPI_Backlight gefunden und wollte die Funktionen aus der Screensaverdispatcher.py aufrufen, aber meine Python-Kenntnisse sind etwas eingerostet...

    Eine andere Frage habe ich noch: Gibt es die Möglichkeit eine Art Standby zu implementieren? Wenn ich PeppyPlayer über den Button beende fährt der Pi herunter und ich muss den Strom komplett trennen um wieder hochfahren zu können.


    Vielen Dank!

    Mattes

  • Hallo wusa,

    Es sieht so aus, als ob das neue Raspbian Buster-OS explizite Country für die Wi-Fi-Konfiguration benötigt. Bitte folgen Sie den hier beschriebenen Anweisungen:

    https://github.com/project-owner/Peppy.doc/wiki/WiFi

    Vielen Dank für die Berichterstattung über das Thema!

    Mit freundlichen Grüßen

    ----------------------------------------------------------

    Hi wusa,

    It looks like new Raspbian Buster OS needs explicit Country parameter for Wi-Fi Configuration. Please follow the instructions described here:

    https://github.com/project-owner/Peppy.doc/wiki/WiFi

    Thank you for reporting about the issue!

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Hallo,

    ich habe noch eine frage zum debugging. Keyboard Events in der dispatcher.py lassen sich im headless nicht remote debuggen, da sie dann ignoriert werden?

    Habe auch mit einer Tastatur direkt am py getestet. Ich starte das debugging per ssh.

    Danke

    Edit. Ich lass das logfile erstellen und lese es mit tail -f aus. Danke

    Hallo Shoex,

    Sie haben Recht, die USB-Tastatur sollte zum Erzeugen/Testen von Tastaturereignissen angeschlossen werden.

    Sicher, 'tail -f' kann zur Überwachung der Log-Datei verwendet werden.

    Viel Erfolg!

    ----------------------------------------------------

    Hi Shoex,

    You are right, the USB keyboard should be connected for generating/testing keyboard events.

    Sure, 'tail -f' can be used for monitoring the log file.

    Good luck!

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

  • Hallo,

    ich nutze ein 5" DSI-Display, welches ich gerne in der Helligkeit regulieren möchte. Zum Einen die generelle Helligkeit, zum Anderen ein Dimmen sobald der Screensaver startet. Ich habe schon RPI_Backlight gefunden und wollte die Funktionen aus der Screensaverdispatcher.py aufrufen, aber meine Python-Kenntnisse sind etwas eingerostet...

    Eine andere Frage habe ich noch: Gibt es die Möglichkeit eine Art Standby zu implementieren? Wenn ich PeppyPlayer über den Button beende fährt der Pi herunter und ich muss den Strom komplett trennen um wieder hochfahren zu können.


    Vielen Dank!

    Mattes

    Hallo Mattes,

    Soweit ich der Dokumentation entnehme, arbeitet rpi-backlight mit 7"-Display.

    https://buildmedia.readthedocs.org/media/pdf/rpi-…i-backlight.pdf

    Sind Sie sicher, dass es auch mit einem 5"-Display funktioniert? Das können Sie testen. Installieren Sie einfach diese Bibliothek wie in der Dokumentation beschrieben und versuchen Sie dann, das folgende Programm von der Kommandozeile aus zu starten:

    python3

    >>> from rpi_backlight import Backlight

    >>> backlight = Backlight()

    >>> backlight.brightness = 50

    Das sollte die Helligkeit auf die Hälfte (50%) reduzieren.

    Bitte lassen Sie mich wissen, ob es funktioniert. Wenn es funktioniert, lasse ich Sie wissen, wie Sie es in den Bildschirmschoner integrieren können.

    Was den Standby-Modus betrifft, so ist die nächstliegende Funktionalität der 'Sleep Now'-Modus:

    https://github.com/project-owner/Peppy.doc/wiki/Timer

    Mit freundlichen Grüßen

    ---------------------------------------------------------------------------------------------

    Hi Mattes,

    As far as I understand from the documentation rpi-backlight works with 7" display.

    https://buildmedia.readthedocs.org/media/pdf/rpi-…i-backlight.pdf

    Are you sure that it also works with 5" display? You can test that. Just install that library as described in that doc and then try to run the following program from command line:

    python3

    >>> from rpi_backlight import Backlight

    >>> backlight = Backlight()

    >>> backlight.brightness = 50

    That should decrease the brightness in half (50%)

    Please let me know if it works. If it works I'll let you know how to integrate it into screensaver.

    Regarding standby, the closest functionality to that is 'Sleep Now' mode:

    https://github.com/project-owner/Peppy.doc/wiki/Timer

    Best regards

    Peppy Player Entwickler. Ehemaliger DESY (Hamburg) Entwickler :)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!