Du siehst die Lautstärke in %, z.B. Vol.: 75%?
oder etwa Vol.: -1?
was sagt Kommando mpc status nach "Mute" und nach "Unmute"?
Benutzt Du die Raspi 3.5mm-Klinkenbuchse?
Du siehst die Lautstärke in %, z.B. Vol.: 75%?
oder etwa Vol.: -1?
was sagt Kommando mpc status nach "Mute" und nach "Unmute"?
Benutzt Du die Raspi 3.5mm-Klinkenbuchse?
ja ich benutze die 3,5er buchse...
im display steht bei mute dann 2% bei mpc status 0%.
drücke ich einmal auf lauter taste dann steht im display 7% und mpc status 35%
Quoteim display steht bei mute dann 2% bei mpc status 0%.
Hallo Holger,
bitte sei genau, sonst kann ich dir nicht helfen.
Ich nehme mal an, Du meinst: "Nach drücken der Taste 'Mute' steht im Display Vol.: 2%".
Korrekt muß nach Taste "Mute" im Display Vol.: 0% stehen und
nach Taste "Unmute" im Display Vol.: <Lautstärke vor mute>%.
Wenn newtron-radio.py nicht verändert wurde, kann das nur sein, wenn ein Fehler aufgetreten ist.
Hast Du /etc/mpd.conf editiert? Die Syntax muß korrekt sein.
Du kannst mal im mpd Log-File: /var/log/mpd/mpd.log nachschauen, was (am Ende) drin steht.
Schau auch in state mit cat /var/lib/mpd/state nach.
Weißt Du, daß Du zusätzlich zur Lautstärke-Regelung am Display mit Kommando alsamixer mit den Cursor-Tasten (Up und Down) die Lautstärke regeln kannst?
Gruß kle
Hallo kle,
Danke für deine Schützenhilfe
das del ... den Inhalt bzw. auch die Variable löscht hab ich auch im Wiki gelesen.
Aber bei praktischen Versuchen bin ich darüber gestolpert das die Variable bzw. deren Inhalt nicht gelöscht wird.
Es wird nur durch das Wallpaper überdeckt!
paulaner meinst du vielleicht mich? kle hat soweit ich das sehe nix zum del geschrieben
Anyway, ohne jetzt in den Code geschaut zu haben (das verlinkte tar(?) wurde irgendwie zu nem Bash-Script) kann ich dir trotzdem vielleicht helfen:
Du malst ja schon auf den pygame-internen Buffer, der mit flip auf den Bildschirm gemalt wird. Nur durch löschen des (anderen) Buffers wirst du da nicht viel erreichen können, du musst irgendwie verhindern, dass überhaupt der Buffer, den du löschen willst, auf den Pygame-Buffer gezeichnet wird. Hoffe das ist verständlich ausgedrückt
das del ... den Inhalt bzw. auch die Variable löscht hab ich auch im Wiki gelesen.
Hallo paulaner,
entschuldigung, aber wie Du es beschreibst, stimmt das nicht. linusg hat es im Post #1517 kurz und präzise beschrieben:
del löscht die Variable aus dem Namensraum, in dem sie sich befindet. Wenn keine Referenzen mehr auf ein Objekt existieren, kommt die Garbage Collection früher oder später vorbei und gibt den Speicherbereich frei.
Wenn jemand Fragen zu newtron-radio hat, helfe ich doch gern.
Gruß kle
Hallo linusg und kle,
danke euch Beide. es ist etwas verständlicher geworden und ich lass es mir noch mal durch den Kopf gehen.
Linus, kle hat zwar nicht direkt etwas zum Thema del geschrieben, doch indirekt hat er dich zu dem Code des newtron-radios geführt, ist ja auch der Titel dieses Threads.
5.2. Die del-Anweisung
Es gibt einen Weg ein Listenelement durch seinen Index, statt durch seinen Wert zu löschen: Die del-Anweisung. Sie unterscheidet sich von der pop()-Methode, da sie keinen Wert zurückgibt. Die del-Anweisung kann auch dazu benutzt werden Abschnitte einer Liste zu löschen oder sie ganz zu leeren (was wir vorhin durch die Zuweisung einer leeren Liste an einen Abschnitt getan haben). Zum Beispiel:
>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]
del kann auch dazu benutzt werden, ganze Variablen zu löschen:
>>> del a
Danach den Namen a zu referenzieren führt zu einer Fehlermeldung (zumindest bis dem Namen ein anderer Wert zugewiesen wird). Später werden werden wir noch andere Einsatzmöglichkeiten besprechen.
Display More
aus dem Tutorial
Hallo paulaner,
das von Dir verwendeten Tutorial enthält etwas zu Kapitel 9.2 Gültigkeitsbereichen und Namensräumen in Python (ich geb zu das ist Informatik) und mit Kapitel 11.6 Weak References die Beschreibung der automatischen Speicherverwaltung in Python, die linusg angesprochen hat. Generell ist Kapitel 11 interessant.
Gruß kle
Hallo kle,
Danke werde es mir reinziehen.
sorry, dass ich mich nach deinem Post 1510 (07.11.) nicht mehr gemeldet habe, hatte keine Zeit mich weiter mit der Materie zu befassen.
Aber um deine Frage, warum ich ein so altes System nutze, zu beantworten - ganz einfach ich stehe auf dem Standpunkt "never change a running system", und meine langjährige Erfahrung gibt mir Recht. Ich hatte seinerzeit dieses System installiert, weil ich es zusammen mit meinem 2,8" Watterrot-Display installiert habe und dieses System von Anfang an vernünftig funktionierte. Updates werden regelmäßig gemacht. Probeweise habe ich die von dir angesprochene "Lite-Version" getestet, aber hier hatte ich nur Probleme und hab dann wieder mit meiner ursprünglichen Version gearbeitet.
So nun zu meinem eigentlichen Problem: die Wetterseite. Nach langwierigen Recherchen im Netz habe ich jetzt eine Lösung für das Problem gefunden.
Die Internetseite http://weather.tuxnet24.de liefert die gewünschten Informationen in einem Rutsch im wählbaren Format json, text oder xml. Sinnigerweise werden auch hier die Orts- und Userkeys von opernweather.com benötigt.
Nach der Analyse :)der empfangenen Daten habe ich das Python-Programm ab ca. Zeile 1310 (Wetterdaten) geändert, den 2. Lesezugriff rausgenommen und die Anzeigen modifiziert.
###########
# aktuelle Wetterdaten holen
###########
OpenWeather_Base = 'http://weather.tuxnet24.de/' #--!--#
try:
weather = urllib2.urlopen(OpenWeather_Base + '?id=' + OWM_ID + '&mode=json&apikey='+ OWM_KEY) #--!--#
weather_data = json.load(weather) #--!--#
Stadt = weather_data['city'] #--!--#
Temperatur = weather_data['current_temp'] #--!--#
Luftdruck = weather_data['pressure'] #--!--#
Luftfeuchte = weather_data['humidity'] #--!--#
Wetterlage = weather_data['current_image'] #--!--#
Heute_min = weather_data['current_temp_low'] #--!--#
Heute_max = weather_data['current_temp_high'] #--!--#
Morgen_min = weather_data['forecast0_temp_low'] #--!--#
Morgen_max = weather_data['forecast0_temp_high'] #--!--#
Vorschau = weather_data['forecast0_image'] #--!--#
except:
print datetime.datetime.now().strftime('%H:%M') + ': No Weather Data.'
ss_weather_win.fill(weather_bg_color)
if weather_bg_buf:
ss_weather_win.blit(weather_bg_buf,(0,0),area=ss_weather_rect)
fc_height = title_font.get_height()/4
draw_text(screen,u'Wetter für ' + Stadt,title_font,weather_font_color,align='centerx',pos=(0,fc_height))
fc_height = title_font.get_height()*5/4
draw_text(screen,'Jetzt: ' + Temperatur + ' / ' + Luftdruck + ' / ' + Luftfeuchte + 'rel.',title_font,weather_font_color,align='centerx',pos=(0,fc_height)) #--!--#
fc_height = fc_height + title_font.get_height()
draw_text(screen,'Heute',status_font,weather_font_color,align='centerx',pos=(-ss_weather_win.get_width()/4,fc_height))
draw_text(screen,'Morgen',status_font,weather_font_color,align='centerx',pos=(ss_weather_win.get_width()/4,fc_height))
icon = os.path.join(WeatherPath,Wetterlage) #--!--#
if not os.path.exists(icon):
icon = os.path.join(WeatherPath,'na.png')
icon2 = os.path.join(WeatherPath,Vorschau) #--!--#
if not os.path.exists(icon2):
icon2 = os.path.join(WeatherPath,'na.png')
icon = pygame.image.load(icon).convert_alpha()
icon2 = pygame.image.load(icon2).convert_alpha()
icon = pygame.transform.smoothscale(icon,(ss_weather_win.get_height()*8/16, ss_weather_win.get_height()*8/16))
icon2 = pygame.transform.smoothscale(icon2,(ss_weather_win.get_height()*8/16, ss_weather_win.get_height()*8/16))
fc_height = fc_height + status_font.get_height()
screen.blit(icon, (ss_weather_win.get_width()/4 - icon.get_width()/2, fc_height))
screen.blit(icon2, (ss_weather_win.get_width()*3/4 - icon.get_width()/2, fc_height))
fc_height = fc_height + icon.get_height()
heute_text=Heute_min + ' / ' + Heute_max #--!--#
draw_text(screen,heute_text,status_font,weather_font_color,align='centerx',pos=(-ss_weather_win.get_width()/4,fc_height))
morgen_text=Morgen_min + ' / ' + Morgen_max #--!--#
draw_text(screen,morgen_text,status_font,weather_font_color,align='centerx',pos=(ss_weather_win.get_width()/4,fc_height))
pygame.display.update(ss_weather_rect)
Display More
Die ersten Tests funktionieren und ich bin zufrieden. Problem gelöst. Danke für dieses Forum.
@kapputtnix53
Danke für deine Antwort und den Code.
Den werd ich dann mal probieren, obwohl mein Wheater auf jeden, egal welches OS (ca. 20) funktioniert.
Hallo kaputtnix53,
toll, daß Du das Ergebnis Deiner Forschungen und Experimente mit uns teilst.
Ich hatte seinerzeit dieses System installiert, weil ich es zusammen mit meinem 2,8" Watterrot-Display installiert habe und dieses System von Anfang an vernünftig funktionierte. Updates werden regelmäßig gemacht. Probeweise habe ich die von dir angesprochene "Lite-Version" getestet, aber hier hatte ich nur Probleme und hab dann wieder mit meiner ursprünglichen Version gearbeitet.
Aber bezüglich "never change a running system", möchte ich auf die Konsequenzen hinweisen:
Das System wird alt, das dazu gehörige Wissen haben dann immer weniger Leute. Es wird schwieriger aktuelle Programme zum Laufen zu bringen...
Ich habe Notebooks mit Win2000Pro und WinXP, Win7Pro. Aber benutzt wird fast nur das Win7-Notebook. (ich habe auch noch eine SSD mit Win10Pro, aber für die alten WLAN-Chips und SD-Card-Reader gibt es keine Win10-Treiber)
Ich habe seit wheezy alle raspbian Versionen verfolgt, habe "minibian 2016-03-12" ausprobiert, habe pipaOS (4.6 und 5.0) verwendet. Das newtron-radio verfolge ich seit Version v2.2.
Das 2.8" Touchsreen Display von Watterott hat mit newtron-radio überall funktioniert.
Weiter viel Spaß beim Tüfteln, kle
Eigentlich ist es ein separater Beitrag aber da es um das verwendete OS für das Newtron Radio geht, schmeiss ich es hier mit rein.
Viele verwenden ein aktuelles Image, Jessie, Jessie lite, Stretch oder Stretch lite. Wenn man aber nur Radio hören möchte benötigt man so manches Programm/Modul/Datei nicht, denn wer braucht schon die vorinstallierte Programme eines Noob Images?
Da es 'kle' selbst hier angesprochen hat, möchte ich mal auf den 'Unterbau', das OS eingehen.
Man muss sich die Frage stellen 'Möchte ich noch mehr als nur damit Radio hören?', 'Was kann der Raspberry leisten?'. Das muss jeder für sich entscheiden und danach eventuell das Raspberry Modell und die Software wählen, oder darauf verzichten.
Hier steht nur das Radiohören im Vordergrund, wer mehr möchte muß selbst experimentieren.
Kommen wir zu den OS für die Raspberry Familie.
Wheezy, Jessie, Stretch, die lite's, Noobs, minimal Versionen wie z.B. minibian oder weil es mit dem Ausschalten Probleme geben kann und es eventuellen zu
Schreib/Lesefehlern der SD Karte kommt, ein readonly System wie z.B. pipaOS.
Letzteres lege ich Jedem ans Herz der seinen Raspberry ausschliesslich zum Radio hören nutzt, damit will ich aber nicht sagen, das da nicht auch andere Sachen gehen.
Ich habe schon zu Beginn der Suche nach einen minimalistischen und schnellem OS, pipaOS probiert, bin aber erst in den letzten Monaten verstärkt durch 'kle' wieder zu diesen OS zurückgekehrt.
Als Unterbau ein voller Ersatz, hier nur ein paar entscheidende Argumente für ein pipaOS:
- klein
- sehr schnell
- readonly
Gerade die letzte Eigenschaft macht es für alle interessant.
Readonly, d.h. die Programme laufen im Speicher ab und es werden Schreibzugriffe auf die SD-Karte stark reduziert. (kann man auch bei anderen OSe reduzieren, die Log Funktionen abschalten, virtuelle (Auslagerungsdatei) ausschalten etc..
Natürlich kann es nicht alles mitbringen, aber die 2-3 Sachen sind fix installiert und dafür wird man belohnt.
Es gibt viele Versionen davon, aber getestet habe ich die 4.6, 4.7 und 5.0. Ich selbst nehme meist die 4.7.
Image auf die SD-Karte, da dann eine leere 'ssh' Datei und eine geänderte 'interfaces', WLAN Stick an den Pi und starten. Nun sollte der RPi per WLAN eine IP zugewiesen bekommen und sollte auch per SSH erreichbar sein. Dann 'raspi-config' aufrufen und seine Einstellungen machen.
Wer wget braucht muss es installieren.
sudo apt-get install wget
Einen User 'pi' anlegen und Rechte vergeben etc..
Display einrichten, Radio installieren fertig. Wenn es mit dem Radio-Setup nicht 'solange' dauern würde benötigt die Installation 10-15 Minuten.
Bei Fragen bitte stellen.
Eventuell schreibt kle noch etwas dazu.
Hallo paulaner,
danke für die Info, klingt interessant! Ich habe mal noch ein paar Fragen: Meinst Du interfaces oder wpa_supplicant.conf und ist es raspi-config oder pipaos-config? Die zweite Frage deshalb, weil auf http://pipaos.mitako.eu steht was von pipaos-config oder ist das evtl. Versionsabhängig?
Noch eine Frage: Ist der Hauptuser root oder ein Sudoer, analog zu pi bei einem "normalen" Raspbian? Man muss ja das System wenigstens kurzzeitig als rw mounten können, um dauerhaft eine Software installieren zu können.
Hallo, danke für das Interesse.
Die 'interfaces' ist verschieden in den Versionen, mal 'interfaces' mal 'interfaces.txt'. Meine vor Stunden gemachte Installation 4.7 beinhaltete eine 'interfaces.txt', wobei ich aber kein IP bekommen habe, also nur 'interfaces' genommen mit meinen 2 Daten und es ging.
raspi-config oder pipaos-config egal, ich nehm raspi-config, da brauch ich mich nicht an einem neuen Namen gewöhnen.
Darum musst du auch den User 'pi' anlegen. Nur unter dem kannst du ja auch das Installationskript ausführen.
hier mal die Einzelnen Schritte, z.B.:
RPi B+, 16GB Class10, 2.2inchTFT, 802.11n 150kBit/s
# pipaos-tamarillo-4.7_25_09_2017.img # jessie
# hostname: pipaos #
# login: sysop/posys #
sysop@pipaos:~$ uname -a
Linux pipaos 4.9.35+ #1014 Fri Jun 30 14:34:49 BST 2017 armv6l GNU/Linux
*sudo apt-get update
--------------------------------------------------------------------------------
#### SSH #
ssh # einfügen
#### WLAN Konfiguration #
interfaces.txt !!!
ssid und password ändern
"pipaos" und "pipa123pass" ändern
oder geänderte interfaces einfügen
---------------------------------
Hilfen !!!
sudo ifdown wlan0
sudo ifup wlan0
sudo ip addr
sudo iw dev wlan0 scan|egrep "SSID:"
dmesg
ifconfig
------------------------------------------
*sudo raspi-config
<locale>
<tzdata>
<tastatur>
<wifi-country>
<hostname> # pipaos47-22TFT
<expand filesystem>
-------------------------
*sudo adduser pi
*sudo adduser pi sudo # das newtron-radio script braucht 'sudo'
*sudo adduser pi audio # wright access user pi to playlist dir
*sudo visudo
#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
-------------------------
SSH User pi
--------------------------------------------------------------------------------
#### DISPLAY + SOUND #
----------------------------------------------------------
- Attention: Please ignore the step 3 and 4 if you use the latest official
jessie system, only deploy the config.txt file
- Deploy config.txt file to enable I2C and SPI interface
*sudo nano /boot/config.txt
#Apend the follwoing line:
dtparam=i2c_arm=on,spi=on
- Deploy modules, and start up the screen
*sudo nano /etc/modules
fbtft_device name=pitft rotate=270 speed=48000000 fps=30
--------------------------------------------------------------------------------
*sudo nano /boot/config.txt
dtparam=i2c_arm=on,spi=on
dtoverlay=pitft22,rotate=270,speed=48000000,fps=30
disable_audio_dither=1
dtparam=audio=on
max_usb_current=1
- Deploy cmdline.txt file to show the console
*sudo nano /boot/cmdline.txt
#add this line before "rootwait"
fbcon=map:10 fbcon=font:VGA10x8 *fbcon=rotate:1
*sudo reboot
--------------------------------------------------------------------------------
#### RADIO #
#### Installerversion #
*sh ./newtron-radio-setup-v2.7.5.sh
sh ./newtron-radio-setup-v2.7.5.sh > newtron-radio-setup-v2.7.5.sh.log.txt 2>&1
Autostart
/usr/local/bin/newtron-radio &
Konsolenstart
*sudo /usr/local/bin/newtron-radio
---------------------------------
#### Archivversion #
Installiere erst Abhänigkeiten !!! oder führe die Installationsversion aus
cd
#=== für alle ===
sudo apt-get install mpd mpc
sudo apt-get install python-pip
sudo apt-get install python-rpi.gpio
sudo apt-get install python2.7-dev
sudo apt-get install python-pygame
sudo apt-get install libimlib2-dev
sudo apt-get install librsvg2-dev
sudo apt-get install libts-bin
sudo apt-get -y purge python-kaa-imlib2 python-kaa-base python-mpd
sudo pip install python-mpd2
#=== nur für jessie ===
wget http://archive.raspbian.org/raspbian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.15-5_armhf.deb
sudo dpkg -i ./libsdl1.2debian_1.2.15-5_armhf.deb
sudo apt-mark hold libsdl1.2debian
sudo pip install --pre --upgrade kaa-base
sudo pip install --pre --upgrade kaa-imlib2
sudo apt-get install wget
wget https://www.dropbox.com/s/h81y942ev4o7fwl/newtron-radio-v2.7.5.tgz
tar xvzf newtron-radio-v2.7.5.tgz
cd /home/pi/newtron-v2
sudo python newtron-radio.py
Display More
ich hoffe habe nicht vergessen.
Hallo,
ich möchte mal meine Playliste hier zu verfügung stellen. Vieleicht kann der eine oder andere diese mal testen oder sogar ein paar Streams davon gebrauchen . Bei mir gehen leider einige Streams auf dem Newtron-Radio nicht. So z.b. RTL. dort werden alle Streams nur kurz angespielt. Aber 95% der Streams laufen. In den Adressen der Streams kann ich keinen Fehler fnden.
Ich habe das Newtron Radio auf einem Raspberry Pi2 und einmal mit Wheezy einmal mit Jessie installiert und bei beiden ist es das gleiche. Das Problem habe ich schon länger und ich habe auch gelesen das es wohl öfters der Fall ist aber vielleicht hat jemand eine Lösung die ich nicht gelesen oder gefunden habe.
Danke, werd ich probieren.
Danke hm_krause für die Playlist.
Ich bin hier ebenso an manchen Adressen am verzweifeln und bekomme es einfach nicht hin (WDR 5, Deutschlandfunk, KiRaKa).
Aber der import deiner Playlist zeigt mir, dass ich es eigentlich nicht falsch mache. Die meisten von deiner Liste funktionieren.
Ich schaffe es aber einfach nicht, von den z.B. genannten Sendern einen funktionierenden Streamlink zu kreieren.
Hab jetzt hier schon rauf und runter gelesen aber der Fehler hat sich mir noch nicht offenbart.
Hat einer einen Schubs in die richtige Richtung?
Vielen Dank schon mal
Hallo Termi66,
versuch mal folgende...
Deutschlandfunk: http://st01.dlf.de/dlf/01/128/mp3/stream.mp3
WDR 5: http://wdr-wdr5-live.cast.addradio.de/wdr/wdr5/live/mp3/128/stream.mp3
KiRaKa: http://wdr-kiraka-live.cast.addradio.de/wdr/kiraka/live/mp3/128/stream.mp3
Ich schaffe es aber einfach nicht, von den z.B. genannten Sendern einen funktionierenden Streamlink zu kreieren
Hallo Termi66,
machst Du das mit ssh auf dem Raspi oder auf einem Windows Rechner?
Hintergrund ist: die m3u-Dateien für die Playlists müssen Unix-Zeilenende habe (also: <LF>).
Auf Windows erzeugte Textdateien haben Windows-Zeilenende (<CR><LF>).
Schönen Gruß, kle