Literatur
Den Autostart Ordner anlegen, falls er nicht existiert. Danach eine Startdatei anlegen.
mkdir ~/.config/autostart
nano .config/autostart/wnfjukebox.desktop
Das Programm im Terminal starten, damit man eventuelle Fehlermeldungen sehen kann.
[Desktop Entry]
Type=Application
Name=wnfJukebox-Anzeige
Exec=xterm -hold -e '/home/bernd/bin/wnfjukenbox'
Das Programm arbeitet als Anzeige für MQTT. Da das Netzwerk beim Autostart noch nicht hochgefahren ist, muss auf das Netzwerk gewartet werden
from time import sleep
import paho.mqtt.client as mqtt
cMQTT_HOST = '192.168.80.107'
cMQTT_TOPIC = '/c2023/wnfPlay'
aMusikAnzeige = None
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe(cMQTT_TOPIC)
def on_message(client, userdata, msg):
global aMusikAnzeige
# print(client)
# print(userdata)
# aJetzt = datetime.datetime.now().strftime("%H:%M")
# print(aJetzt + " " + msg.topic + " " + str(msg.payload))
if aMusikAnzeige:
aMusikAnzeige.anzeige(msg)
def starteAnzeige(aAnzeige):
global aMusikAnzeige
aMusikAnzeige = aAnzeige
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
# auf dem Raspi mit LXQT wird das Programm von Autostart gestartet
# es kann sein, dass das Netzwerk noch nicht hochgefahren wurde.
# Deshalb wir hier auf das Netzwerk gewartet.
aConnected = False
aAnz = 0
while not aConnected and (aAnz < 10):
try:
client.connect(cMQTT_HOST, 1883, 60)
aConnected = True
client.loop_start()
except Exception as E:
print(E)
sleep(5)
aAnz += 1
Tags: LQXT Raspi Autostart
Änderung gegen über der Original-Quelle (Deprecated since version 3.6: OpenSSL has deprecated all version specific protocols.)
PROTOCOL_TLSv1_2 wird zu PROTOCOL_TLS_SERVER
from bottle import ServerAdapter,run,get
class SecureAdapter(ServerAdapter):
def run(self, handler):
from wsgiref.simple_server import make_server, WSGIRequestHandler, WSGIServer
from socketserver import ThreadingMixIn
import ssl
if self.quiet:
class QuietHandler(WSGIRequestHandler):
def log_request(*args, **kw):
pass
self.options['handler_class'] = QuietHandler
#Setup SSL context for 'A+' rating from Qualys SSL Labs.
context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile='server.pem')
context.set_ciphers('EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH')
class ThreadAdapter(ThreadingMixIn, WSGIServer): pass
ssl_server = make_server(self.host, self.port, handler, server_class=ThreadAdapter, **self.options)
ssl_server.socket = context.wrap_socket(ssl_server.socket, server_side=True)
ssl_server.serve_forever()
@get("/x")
def get_x():
return "Hi there"
run(server=SecureAdapter, host="0.0.0.0", port=8090)
Tags:
Auch unter Raspberry Pi OS Lite läuft der Music Player Daemon (mpd).
zur Beachtung:
Nachdem auf dem Raspi Zero das Soundsystem funktioniert, kann ich den mpd installieren.
sudo apt install mpd
Der User mpd muss zur Gruppe audio hinzugefügt werden
sudo usermod -aG audio mpd
Anzeige der vorhandenen Soundkarten
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
Subdevices: 0/1
Subdevice #0: subdevice #0
Die Datei /etc/mpd.conf anpassen:
sudo nano /etc/mpd.conf
Die Zeile kommentieren, damit der Zugriff über das Handy funktioniert:
# bind_to_address "localhost"
audio_output {
type "alsa"
name "Hifi Berry DAC"
device "hw:1,0" # optional
mixer_type "software" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
}
sudo systemctl enable mpd
sudo service mpd restart
sudo service mpd status
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
Bei Problemen das journalctl anzeigen:
journalctl -f -u mpd
Meine Fehlermeldungen:
Tags: Raspi mpdRaspberry Pi Zero 2 W Rev 1.0 mit Soundkarte hifiberry-dac
Da das Soundsystem unter Linux nicht trivial zu installieren ist, installiere ich ein komplettes Raspbian.
Auf dem Raspi die Soundkarte eintragen:
$ sudo nano /boot/firmware/config.txt
dtoverlay=hifiberry-dac
Nicht benötigte Programme deinstallieren
$ sudo apt purge firefox
mkdir bin
nano bin/wls_update
#!/bin/bash
sudo apt update && sudo apt dist-upgrade
sudo apt-get autoremove --purge
sudo apt-get autoclean
sudo chmod +x bin/wls_update
Das Soundsystem aktivieren
sudo raspi-config
6 - Advanced Options
A7 - Audio Config
1 - Pulse Audio
Den Raspi neustarten.
Die Soundausgabe testen:
aplay /usr/share/sounds/alsa/Front_Center.wav
aplay /usr/share/sounds/alsa/Front_Left.wav
aplay /usr/share/sounds/alsa/Front_Right.wav
aplay /usr/share/sounds/alsa/Front_Center.wav
oder mit
speaker-test -t wav -c 2
Tags: Raspi hifiberry-dac alsa sound
Eine mit PGP verschlüsselte Datei hat normalerweise die folgenden Komponenten:
Diese Komponenten werden vom Client bereitgestellt und wir müssen sie zum Entschlüsseln der Dateien verwenden.
Jetzt erstelle ich ein Schlüsselpaar für info@wlsoft.de Alle Fragen beantworte ich mit den Default-Werten.
$ gpg --full-generate-key
Anzeigen des erzeugten Schlüssels:
$ gpg --list-secret-keys --keyid-format=long
sec rsa3072/7DF93BFA6A2E11DA 2024-12-31 [SC]
863B3A7B59C550547E4AD75C7DF93BFA6A2E11DA
uid [ultimate] Information <info@wlsoft.de>
ssb rsa3072/1AE18982CFBE2926 2024-12-31 [E]
Den Public-Key ausgeben:
$ gpg --armor --export 863B3A7B59C550547E4AD75C7DF93BFA6A2E11DA > info-wlsoft-de-public-key.asc
Jetzt in Thunderbird diesen Schlüssel importieren:
Testen der Verschlüsselung und Entschlüsselung. Für das Entschlüsseln miuss einmalig die Passphrase für den privaten Schlüssel eingegeben werden.
#! /bin/bash
DATEI=/tmp/dk_bilddestages.txt
if [ -f $DATEI'.gpg' ]; then
echo "Datei $DATEI.gpg exists."
rm $DATEI'.gpg'
fi
echo Schlüssel auflisten
gpg --list-public-keys
echo für mich selbst Verschlüsseln
gpg -e --recipient info@wlsoft.de --verbose $DATEI
echo Entschluesseln
gpg -d --verbose $DATEI'.gpg' > $DATEI.decrypted
Tags: gpg gnupg thunderbird