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