Posts by mollo

    Ich habe nur wenig Ahnung von Python, aber habe aus einer Abfalltermine.ics Datei

    per Python einen Datei mit Datum, Farben und Bezeichnungen erzeugt.

    12.11.2021 gelbe Wertstofftonne

    23.11.2021 schwarze Restmülltonne

    09.11.2021 grüne Biotonne

    10.11.2021 blaue Papiertonne

    usw.


    Dies Datei müßte nun aufsteigend nach Datum sortiert werden und

    soll über MQTT, ESPHOME auf einem ESP32 Display die nächsten

    3 Abfuhrtermine anzeigen.

    Ich habe nun ein Beispiel gefunden und verstehe das Sortieren in der lezte Zeile) nicht:

    Python
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from datetime import datetime
    infile = open("Tonnen1.txt", "r")
    outfile = open("TonnenSort.txt", "w")
    liste = infile.readlines()
    liste.sort(key=lambda tup: datetime.strptime(tup[3], '%d.%m.%Y'))

    Fehlermeldung:

    Code
    raceback (most recent call last):
      File "readabfuhr5.py", line 12, in <module>
        liste.sort(key=lambda tup: datetime.strptime(tup[3], '%d.%m.%Y'))
      File "readabfuhr5.py", line 12, in <lambda>
        liste.sort(key=lambda tup: datetime.strptime(tup[3], '%d.%m.%Y'))
      File "/usr/lib/python2.7/_strptime.py", line 332, in _strptime
        (data_string, format))
    ValueError: time data '/' does not match format '%d.%m.%Y'

    Ist der Ansatz überhaupt richtig?
    Ich würde mich über eine Unterstützung freuen.

    Grüsse,

    Thomas

    Hallo Peppy,

    die vorgeschlagene Änderung #793 funktioniert.

    Einfügen nach in peppy.py Zeile 2180

    Code
    def mute(self):
            """ Mute """
            self.config[PLAYER_SETTINGS][MUTE] = not self.config[PLAYER_SETTINGS][MUTE]
            subprocess.call("sudo /usr/local/bin/backlight.sh", shell=True)   #<<<<<<<
            self.player.mute()

    Danke

    Hallo Peppy,

    vieleicht kann Du mir ja einen Tipp geben, wo ich in Deinem Code die Mute Taste finde um von dort meinen Script zu starten.

    Grüße

    Thomas

    Hallo Peppy,

    mein Ziel ist eine einfache Headles Bedienung über die Fernsteuerung, so dass ich das Radio im Schlafzimmer, auch ohne Sichtkontakt, im Dunkeln bedienen kann.

    Ich nutze ein Hauppauge DSE-0112 Fernsteuerung, die ich noch nachkaufen konnte.

    Als Player wird noch Constable mit Adafruit LCD eingesetzt.

    Ich beziehe mich her auf die Einträge: #758




    Zifferntaste zur Senderwahl: Es sollten nur die ersten 10 Sender einer Liste mit einem Klick ausgewählt werden. Einen zusätzlich ok Klick sollte man vermeiden.


    Ansage des laufenden Senders per IR Taste z.B. mit Text2Speetch.


    Sleep-Timer: Auch hier geht es um die einfache Bedienung. Mit jedem Klick auf eine IR Taste, sollte sich der Timer in z.B. 10 Min Schritten erhöhen. Ich würde erstmal die TV Taste verwenden. Währent des countdowns, sollte auch noch weiter erhöhen können. Mit Sleep sollte dann auch das Backlight ausgeschaltet werde.


    Hierzu eine Frage:

    Wiki, Radio UI. Wo ist der Unterschied von Play/Pause Button und Mute Button in dem Programm.


    Adafruit TFT Backlight on/off. Mein Übergangs-Versuch mit der KEY_STOP Taste, IREXEC und backlight.sh:

    /etc/lirc/lircrc                    

    Code
    begin
    button=KEY_STOP
    prog=irexec
    config=/usr/local/bin/backlight.sh
    end

    Start irexec: In ~/.profile   /usr/bin/irexec -d einfügen.

    /usr/local/bin/backlight.sh

    Bash
    #!/bin/bash
    # Backlight wird mit jedem Tastendruck ein und aus geschaltet
    LICHT=$(sudo cat /sys/class/backlight/soc\:backlight/brightness)
    if [[ $LICHT -eq "1" ]]; then
        sudo sh -c 'echo "0" > /sys/class/backlight/soc\:backlight/brightness'
    else
       if [[ $LICHT -eq "0" ]]; then
          sudo sh -c 'echo "1" > /sys/class/backlight/soc\:backlight/brightness'
       fi
    fi

    Power off mit Backlight aus:

    Eingefügt hinter peppy.py Zeile 2284 (Constable)


    Code
    subprocess.call("sudo /usr/local/bin/backlightoff.sh", shell=True)


    /usr/local/bin/backlightoff.sh

    Code
        #!/bin/bash
        # Backlight wird aus geschaltet
        sudo sh -c 'echo "0" > /sys/class/backlight/soc\:backlight/brightness'

    Power off von der IR Fernsteuerung sollte erst nach zweimaligem drücken ausgeführt werden.

    Es wäre schön, wenn Du einiges berücksichtigen könntest oder mir einen Tipp für eigene Erweiterungen geben könntest.


    Grüße aus Hamburg

    Thomas

    Hallo Peppy,

    ich hoffe, Sie habe trotz Corona ein schönes Weihnachtsfest gehabt und freuen sich schon auf 2021 mit einer baldigen Coronaimpfung.

    Danke auch für die neue Version des Players.


    Die Codeänderung aus #749 funktioniert im Airplay-Modus nicht und ich gebe erstmal auf, die Lautsprecher der alten Stereoanlage zu nutzen.


    Zur Zeit verwende ich den Constable Player mit Adafruit LCD und einer IR Fernbedienung.

    Die Lautsprecher sind über einen kleinen Verstärker am Audio-Ausgang angeschlossen.

    Da ich meistens nur Radio höre, wird fast nur per Fernbedienung geschaltet.


    Ich versuche noch mal meine Wishlist aus #52 zu präzisieren:

    Adafruit TFT Backlight on/off:

    Da ich keinen HifiBerry nutze, würde ich gerne mit der Mute Taste das Backlight aus und einschalten. Mit der Power Taste sollte das Backlight nur ausgeschaltet werden.


    Meine eigenen Versuche den off Befehl in peppy.py einzufügen scheiterte.

      On: sudo sh -c 'echo "1" > /sys/class/backlight/soc\:backlight/brightness'

    OFF: sudo sh -c 'echo "0" > /sys/class/backlight/soc\:backlight/brightness'


    Wo die Mute Taste der Fernsteuerung verarbeitet wird, habe ich nicht gefunden.


    Mute sollte mit den Num. Tasten, KEY_Left/RIGHT/UP/DOWN beendet werden, ohne den Bildschirm einzuschalten.

    Der Bildschirm wird mit Mute auch wieder eingeschaltet.


    0-9 Tasten:

    Ich habe mir einen eigenen Genre Ordner ‚MyStations‘ angelegt und würde hier gerne die Tasten 0-9 zur Auswahl der ersten 10 Sender nutzen.

    Das sollte dann auch für die ersten Einträge aller anderen Ordner gelten.


    Sleeptimer aus #51, #52

    Sleeptimer sollte eine Taste auf der Fernsteuerung sein, die den Ausschaltzeitpunkt (Mute + Hintergrundbeleuchtung aus + Ansage per Text2Speetch) in 10 Min Steps erhöht.

    Während der Sleeptimer läuft kann der Timer weiter in 10 Min. Schritten erhöht werden.


    Der Player wird nicht heruntergefahren sondern mit Mute wird Ton und Backlight ausgeschaltet.


    Beendet wird der Timer mit Senderwechsel und Mute d.H der Sleeptimermuß ggf. neu gestartet werden.


    Vielleicht können Sie sich ja nochmal mit meinen Wünschen beschäftigen.

    Schon jetzt mit allen guten Wünschen fürs neue Jahr

    Thomas

    Mit:

    sudo -H -u shairport-sync alsamixer -D default

    erscheint der alsamixer und ich kann die Headphone Lautstäke regeln.

    Grüße

    Thomas

    Hallo Peppy,

    Danke für die schnelle Antwort,

    players.txt und shairport-sync.conf sind auch nach der Installation unverändert und gleichen Ihren obrigen Links.

    Mir fällt nur der Fehler bei folgendem Kommando auf:

    sudo -H -u shairport-sync alsamixer -D equal

    ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL equal

    cannot open mixer: No such file or directory


    Kann dieser Hinweis weiterhelfen?

    Mit freundlichen Grüßen

    Thomas

    Frage zu AirPlay, Shareport-sync und Equalizer


    Nach einem neuen Anlauf den Peppy Player Constable Headless per IR Fernbedienung zu nutzen, habe ich gleich wieder eine Frage:

    Ich habe meinen RPi 3+ mit dem Peppy Player über den 3,5 Klinkenstecker an meine alte Stereoanlage angeschlossen.

    Bei der Wiedergabe eines Internetradios kann man mit dem Equalizer Bässe wegregeln, die Höhen betonen, so dass ein Klang die bei dem alten UKW Radio erzeugt wird.

    Wenn ich nun aber vom iPad über AirPlay Internetsende oder Podcasts hören möchte

    werden der Basse viel zu stark wiedergeben und der Equalizer wird nicht angesprochen.


    Gibt es einen Tipp wie man die shareport-sync Ausgabe auch über den Equalizer leiten kann?


    Grüße aus Hamburg

    Thomas


    Auf dem gleichen RPi mit etwas älterem Buster lite und

    raspiBackup 0.6.5.1 funktioniert das Backup auch mit NTFS formatiertem USB Stick.

    Für v0.6.6 findet man in: https://github.com/framps/raspiBackup/releases

    Quote

    Enhancements:

    For rsync backup mode any filesystem on the backup partition which does not support Linux ownerships and fileattributes and will create a crappy backup is refused (in particular NTFS). dd and tar backup mode still accepts NTFS.

    Bisher habe ich immer in NTFS Formatiert .

    In welchem Format soll man Formatieren und welche Backup Art sollte man für gelegentliche Backups nutzen?

    Nach Neuinstallation von Buster lite 2020.12.02 wollte ich auf einen RPi 3B

    ein raspiBackup per Schnellinstallation durchführen.

    Es wird ein NTFS Formatierter USB-Stick gemountet

    sudo mount /dev/sda1 /backup


    raspiBackup Endet mit: sudo raspiBackup.sh -a : -o : -m detailed

    ??? RBK0263E: Dateisystem auf /backup unterstützt keine Linux Dateiattribute.


    --- RBK0009I: raspberrypi: raspiBackup.sh V0.6.6 (7989828) Do 17. Dez 10:35:55 CET 2020 gestartet.

    --- RBK0031I: Prüfe ob eine neue Version von raspiBackup.sh verfügbar ist.

    ??? RBK0263E: Dateisystem auf /backup unterstützt keine Linux Dateiattribute.

    --- RBK0033I: Bitte warten bis aufgeräumt wurde.

    --- RBK0043I: Unvollständiges Backup /backup/raspberrypi/raspberrypi-rsync-backup-20201217-103554 in wird gelöscht. Das kann etwas dauern. Bitte Geduld.

    --- RBK0049I: Meldungen wurden in /home/pi/raspiBackup.msg gesichert.

    --- RBK0026I: Debug Logdatei wurde in /home/pi/raspiBackup.log gesichert.

    --- RBK0010I: raspberrypi: raspiBackup.sh V0.6.6 (7989828) Do 17. Dez 10:36:00 CET 2020 beendet mit Returncode 102.


    Auf dem Stick wird ein /raspberripi Verzeichnis angelegt.


    Was mache ich falsch?

    Grüße

    Thomas

    Peppy Constable-headless auf RPi Zero mit HifiBerry miniAmp installiert und einige Anpassungen vorgenommen:


    Raspi-conf: PW, Wi-fi, Locale, Timezone Keyboard eingerichtet.

    sudo api-get update, dist-upgrade


    Booten vom RPi Zero:

    .asoundrc gelöscht

    /etc/asound.conf hinzugeführt

    pcm.hifiberryMiniAmp {

    type softvol

    slave.pcm "plughw:0"

    control.name "Master"

    control.card 0 }

    pcm.!default {

    type plug

    slave.pcm "hifiberryMiniAmp" }


    /boot/config.txt

    #dtparam=audio=on

    dtoverlay=hifiberry-dacplus


    /home/pi/Peppy/config.txt

    [volume.control]

    type = amixer

    amixer.scale = linear

    amixer.control = Digital


    HifiBery miniAmp wird erkannt:

    aplay -l

    **** Liste der Hardware-Geräte (PLAYBACK) ****

    Karte 0: sndrpihifiberry [snd_rpi_hifiberry_dac], Gerät 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]

    Sub-Geräte: 1/1

    Sub-Gerät #0: subdevice #0


    Ein Eintrag der hier geholfen hat : HIFIberry miniAmp aktivieren - Soundkarten - Deutsches Raspberry Pi Forum #11

    Peppy UI:htpp://192.168.178.50:8000/  sehr laut und nicht regelbar

    Mit alsamixer die Grundlautstärke angepasst.

    Über den Web Browser können verschiedene Sender ausgewählt werden,

    aber die Lautstärke kann nicht geregelt werden .

    Über amixer sset Master 50% kann geregelt werden! 

    Vielen Dank schon mal im Voraus für ein Denkanstoß

    Thomas

    Hallo Peppy,
    habe mal wieder das WebRadio (Constable Edition) installiert und bin begeistert.
    Ich nutze ein Adafruit 3,5" LCD Display und frage mich warum
    der Touchscreen ohne Kalibrierung funktioniert?
    Meine eigenen Versuche mit Python scheitern gerade an der Touchscreen-Kalibrierung


    Grüße aus Hamburg
    Thomas

    in deiner Ereignisbehandlung kannst du doch auch den Wert speichern.

    Mir ist nicht klar was eine Ereignisbehandlung ist.

    Ist on_message(client) das Ereignis?


    Code
    def on_message(client, userdata, msg):
       print(msg.topic + " " + str(msg.payload))  # Alle 5 Minuten kommen die Preise

    Wie kommt dann str(msg.payload) all 5 Minuten zur Anzeige?

    Eine Zwischenspeicherung muß erfolgen, weil immer all Zeilen geschrieben werden.

    D.H. ein Sender oder Titel könnte sich ändern und sollte sofort angezeigt werden.

    Ich weiß also immer noch nicht, wie ich die Preise in die Pgm, Loop bekomme?

    Vielleicht git es da eine konkreteren Tipp.

    Grüße, Thomas

    Auf einem 1,3“ OLED Display möchte ich mit meinem LIRC gesteuerten Internet-Radio Programm auch Benzinpreise anzeigen. Diese Preise werden auf einem anderen RPi mit Node-Red mit einem

    http-Request, alle 5 Minuten, geholt und über MQTT out auch an einem ESP8266 mit ESPEasy angezeigt.

    Noch benutze ich für mein Internet-Radio-Programm Python 2.7 und Jessi. Mit der Umstellung auf Buster und Python 3 bin ich wegen LIRC bisher gescheitert.


    Mein Testprogram mqtt_test.py zeigt die all 5 Minute in

    Code
     def on_message(client, userdata, msg):

    den Preis als: Bpreise = „E10: Jet 1,179 Oil! 1,189“

    Als gelegtlicher Python trial and error Benutzer brauche ich mal eine Hinweis, wie die Preise

    in der while True(): Loop

    ankommen und verabeitet werden können.

    Grüße aus Hamburg bei 29°C, Thomas

    Wishlist:

    Sleeptimer ist bei mir eine Taste auf der Fernsteuerung, die den Ausschaltzeitpunkt (Mute + Hintergrundbeleuchtung aus + Ansage per Text2Speetch) in 10 Min Steps erhöht. Unterbrochen wird der Timer z.B. bei erneutem Senderwechsel und muß ggf. neu gestartet werden.

    Bildschirmschoner, per Taste auf der Fernsteuerung einschalten und zwischen Clock, Slideshow und Weather umschalten.

    Beschreibungen in den verschiednen Quelldateien würden den Aufwand zum Verständnis des ganzen Players erleichtern.

    Leider beherrsche ich Python nur so nach der try and error Methode. Auch komme ich mit Objektorientierter Programmierung nicht zurecht. Würde mir aber eine Beschreibung des Plugins der Bildschirmschoner anschauen. Vielleicht könnten diese Beschreibungen auch anderen helfen.

    Grüße, Thomas

    Nach dem Ausprobieren von NewTron-Radio und Peppy WebRadio würde ich mir für das eigene

    in Python geschriebene Internet-Radio mit IR Steuerung eine eigen Oberfläche (Menues und Screens) schreiben wollen.

    Bei Peppy fehlt mir ein über IR Fernsteuerung geschalteter Sleeptimer, der auch die Hintergrunbeleuchtung

    des Adafruit PiTFT 3.5" Touch Screen steuert.

    Die Screensaver ich gerne per IR steuern z.B. direkt zum Wetter oder zur DiaShow.

    Ich würde auch eigene Screens einbauen wie z.B. Kalender, Benzinpreise, Fahrplan usw.

    Die Programmierung der Menus und Screens in den beiden erwähnten Programme habe ich wegen der

    Komplexität nicht verstanden und eigene Änderungen sind misslungen also möchte ich das eigen Programm

    mit TFT Menus und Screens erweitern.

    Frage: Gibt es ein brauchbares Hilfsprogramm zur Erstellung eigener Python TFT Menus und Screens

    Grüße, Thomas