Ich bin mit dem 'Peppy Radio' weitergekommen.
Die Kandinsky Version (Buster) erkennt mein 3,5 Zoll Display ohne weitere Eingriffe.
Grüße
Thomas
Posts by mollo
-
-
Inzwischen habe ich festgestell, das x11 installiert wurde.
/boo/config.txt:Code
Display More# For more options and information see # http://rptl.io/configtxt # Some settings may impact device functionality. See link above for details # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on #dtparam=spi=on # Enable audio (loads snd_bcm2835) dtparam=audio=on # Additional overlays and parameters are documented # /boot/firmware/overlays/README # Automatically load overlays for detected cameras camera_auto_detect=1 # Automatically load overlays for detected DSI displays display_auto_detect=1 # Automatically load initramfs files, if found auto_initramfs=1 # Enable DRM VC4 V3D driver #dtoverlay=vc4-kms-v3d max_framebuffers=2 # Don't have the firmware create an initial video= setting in cmdline.txt. # Use the kernel's default instead. disable_fw_kms_setup=1 # Disable compensation for displays with overscan disable_overscan=1 # Run as fast as firmware / board allows arm_boost=1 [cm4] # Enable host mode on the 2711 built-in X [all] hdmi_force_hotplug=1 dtparam=i2c_arm=on dtparam=spi=on enable_uart=1 dtoverlay=tft35a:rotate=90 hdmi_group=2 hdmi_mode=1 hdmi_mode=87 hdmi_cvt 480 320 60 6 0 0 0 hdmi_drive=2
Wie kann ich hier die systemausgabe beenden, um dann eine python ausgabe über pygame anzuzeigen.
Is diese Beispiel ein Weg zum weitermachen: https://stackoverflow.com/questions/3293…-on-tft-displayGrüße aus Hamburg
Thomas
-
Ich habe für eine alten RPi mit Jessy Lite und Python ein Internetradio zusammen getippt.
Hier wurde die Ausgabe mit Pygame erzeugt.Vor kurzem habe ich den Script auf ein 1.77"Display versucht umzustellen.
Das ist ein ST7735 Display, mit Pygame 'from luma.lcd.device import st7735'
konnte ich die Anzeige nutzen.
Meine Vorstellung war nun das 3,,5" Zoll Display auch ähnlich einfach zu nutzen. -
Ich habe mir ein preiswertes 3,5" Display mit Gehäuse für einen RPi 3B bestellt.
3,5 zoll Raspberry Pi 3 B Plus Touchscreen TFT LCD 480*320 GPIO Display Monitor ABS Fall Box für Raspberry Pi 4 Modell B 3B + 3B
Nach der Anleitung: http://www.lcdwiki.com/3.5inch_RPi_Display konnte ich Treiber( RPi3B, Bullseye) installieren und nach einem Neustart wurde der Linux Start angezeigt.Ich möchte nun das display über Python betreiben und suche ein beispiel
MPI3501 scheint der Display Controller zu sein und die GPIO Anschlüsse werde in der Anleitung gezeigt:
Ich suche nun nach einem Python Beispiel, das mir einfachen Text anzeigt.
Mein Versuch mit Beispielen zu ili9486, ili9341 Controller Code funktionierten nicht.
Ich würde mich über Hilfe zur Inbetriebnahme des Displays freuen.
Vielen Dank,
Thomas -
Ich möchte über eine DynDNS Adresse auf mein Nodet-RED Dashboard zugreifen.
Ich habe über die FritzBox und die Portfreigaben eine Weiterleitung auf Port:1883 eingerichtet.
Nun kann ich über xxx.dnshome.de:9999/ui auf das Dashboard zugreifen.
Da nun nich jeder Veränderungen machen sollte, muß verhindert werden, dass
xxx.dnshome.de:9999/ ohne weiteren Parameter eingegeben werden kann oder das immer auf xxx.dnshome.de:9999/ui umgeleitet wird.
Wer kann mir da einen Tipp geben
Grüße
Thomas
-
Hätte ich die richtigen Angaben gemacht und die richtigen Fragen gestellt,
hätte ich auch die richtigen Antworten bekommen.
Ich habe nur /cherrypy/tutorial/tutorial.conf geändert:
und schon kann ich mit:
python3 -m cherrypy.tutorial.tut01_helloworldüber http://192.168.178.44:8089/ Hallo World anzeigen.
Vielen Dank für eure Hilfe
Thomas
-
Sorry, ich nutze ein neu installiertes Bullseye (Python3) aber auch auf Jessi, Stretch läß sich das
Tutorial starten, aber nicht aufrufen.
Django habe ich nur als Test installier und ebenso erfolglos getestet.
Wenn du von einem anderen Rechner zugreifen willst musst du den Server des Frameworks an die IP-Adresse des Pi binden. Wie das geht steht in der Doku.
Die CherryPy Doku habe ich gelesen, aber nichts gefunden?
-
Unter Buster ist nur Python 3 installiert, somit zeigt der Aufruf von Python:
CodePython 3.9.2 (default, Mar 12 2021, 04:06:34) [GCC 10.2.1 20210110] on linux Type "help", "copyright", "credits" or "license" for more information.
Auf den älteren RPi's wird auch immer Python 3 genutzt.
Bottle wird gestartet, kann aber nicht aufgerufen werden.
-
Hier wurde letztens CherryPy als web framework empfohlen.
Ich bin mit der Installation gescheitert.
Nach https://docs.cherrypy.dev/en/latest/install.html habe ichoder auch
Ich habe dann helloword gestartet:
Codepython -m cherrypy.tutorial.tut01_helloworld [18/Feb/2022:10:43:52] ENGINE Listening for SIGTERM. [18/Feb/2022:10:43:52] ENGINE Listening for SIGHUP. [18/Feb/2022:10:43:52] ENGINE Listening for SIGUSR1. [18/Feb/2022:10:43:52] ENGINE Bus STARTING [18/Feb/2022:10:43:52] ENGINE Started monitor thread 'Autoreloader'. [18/Feb/2022:10:43:52] ENGINE Serving on http://127.0.0.1:8080 [18/Feb/2022:10:43:52] ENGINE Bus STARTED
Beim Aufruf von meinem Windows Rechner: 192.168.178.xx:8080 wird ein Fehler angezeigt:
CodeFehler: Verbindung fehlgeschlagen Firefox kann keine Verbindung zu dem Server unter 192.168.178.42:8080 aufbauen.
Getestet habe ich auf verschiedenen RPi's mit Jessi, Stretch und
extra neu installiertem Buster (alle immer mit Python3)
Auch ein Versuch mit bottle unter (buster):
zeigt:
CodeBottle v0.12.19 server starting up (using WSGIRefServer())... Listening on http://localhost:8080/ Hit Ctrl-C to quit.
Node-RED 192.168.178.42:1880 kann ich starten.
Hatt den jemand eine Idee wie ich eine Verbindung zum Python Framework aunutzen kann?
Danke, Thomas
-
Danke Tell, es ist erstaunlich, mit wie wenig Code (habe ich aber noch nicht verstanden) man viel erreichen kann.
Vielen Dank
Thomas
-
Das war ein Schreibfehler: Ich nuzte nur noch Python3 mit gleichem Output.
Das mit dem replace hab ich schon mal gehört, aber die verschachtelnen Loops bekomm ich nicht hin. -
Die Hamburger Stadtreinigung hat den Abfallkalender geändert und ich brauche monatlichen daten für meinen Node-Red Abfallkalender.
Auf einem RPi hole ich per lynx die Webseite und filter die Abholzeiten per grep und sed, so daß die Datei wie folgt erzeugt wird.
Mi 02. Februar 2022
* Schwarze Restmülltonne
Fr 04. Februar 2022
* Grüne Biotonne
Di 08. Februar 2022
* Gelbe Wertstofftonne/-sack
Mi 09. Februar 2022
* Schwarze Restmülltonne
Mi 16. Februar 2022
* Schwarze Restmülltonne
* Blaue Papiertonne
Fr 18. Februar 2022
* Grüne Biotonne
Um dies Daten per MQTT an Node-Red zu übergeben, sollten Einzeiler erzeugt werden.
Mi 02. Februar 2022 Schwarze Restmülltonne
Fr 04. Februar 2022 Grüne Biotonne
Mi 16. Februar 2022 Schwarze Restmülltonne
Mi 16. Februar 2022 Blaue Papiertonne
'*' muß entfernt werden
Am 16. Februar werden 2 Tonnen abgeholt, das Datum müßte übernommen werden.
Mein Versuche lassen mich gerade verzweifeln.
Python
Display More#!/usr/bin/python # -*- coding: utf-8 -*- day_words = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'] text1 = "" text2 = "" with open('hugooutoutout.txt') as oldfile, open('hugooutoutoutout.txt', 'w') as newfile: for line in oldfile: for word in day_words: if word in line: #Zeile mit Datum suchen text1 = line.strip() #print(text1) if '*' in line: #Zeile mit Tonnen text2 = line.strip() print(text1 + text2)
Mi 02. Februar 2022* Schwarze Restmülltonne
Mi 02. Februar 2022* Schwarze Restmülltonne
Mi 02. Februar 2022* Schwarze Restmülltonne
Mi 02. Februar 2022* Schwarze Restmülltonne
Mi 02. Februar 2022* Schwarze Restmülltonne
Mi 02. Februar 2022* Schwarze Restmülltonne
Mi 02. Februar 2022* Schwarze Restmülltonne
Fr 04. Februar 2022* Grüne Biotonne
Fr 04. Februar 2022* Grüne Biotonne
Fr 04. Februar 2022* Grüne Biotonne
Fr 04. Februar 2022* Grüne Biotonne
Fr 04. Februar 2022* Grüne Biotonne
Fr 04. Februar 2022* Grüne Biotonne
Fr 04. Februar 2022* Grüne Biotonne
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Di 08. Februar 2022* Gelbe Wertstofftonne/-sack
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 09. Februar 2022* Schwarze Restmülltonne
Mi 16. Februar 2022* Schwarze Restmülltonne
Ich würde mich über einen Denkanstoß zur Programmlogik freuen.
Grüße aus Hamburg
Thomas
-
-
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:
Coderaceback (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
Codedef 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,
bei mir funktioniert das Schalten des Backlights mit KEY_OFF und auch bei Poweroff.
Grüsse
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
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)
/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