Hallo zusammen,
ich habe ein Problem an dem ich mir gerade die Zähne ausbeisse und Eure Hilfe benötige.
Ich möchte beim betätigen meiner T25 Mobotix eine Audio Datei auf meinem raspberry pi 3B+ abspielen und über meine Russound den Gong im ganzen Haus verteilen.
Ich habe es geschafft, dass wenn es klingelt einen string «ding_dong» über das nw plugin in ein item zu schreiben. Dies löst erfolgreich eine Logik aus, die über das Russound plugin die Audio Quelle richtig setzt, die Laustärke erhöht und alle Lautsprecher im EG aktiviert. Das einzige welches nicht in der Logik funktioniert ist das abspielen der Audio Datei – obwohl der genau gleiche code ausserhalb von SmarthomeNG (direkt im Terminal) funktioniert.
test_audio_play.py
terminal (ausserhalb von SmarthomeNG)
Deshalb dachte ich es wäre nur ein Problem der Gruppen Rechte und habe diese erfolglos auf smarthome für cvlc und pulseaudio gestellt --> jedoch ohne Erfolg.
eg:
auch habe ich versucht es über sudo laufen zu lassen --> keine gute Idee VLC wird nicht erlaubt unter root laufen zu lassen
Hier ist meine Logik Datei "audio.py"
Log file
Hat jemand eine Idee warum ich innerhalb von SmarthomeNG in der Logik keine Verbindung zu VLC und pulseaudio aufbauen kann - Jedoch der gleiche code ausserhalb von SmarthomeNG funktioniert.
Hat jemand eine Idee was ich noch testen könnte?
LG
Sandro
image.pngimage.png
ich habe ein Problem an dem ich mir gerade die Zähne ausbeisse und Eure Hilfe benötige.
Ich möchte beim betätigen meiner T25 Mobotix eine Audio Datei auf meinem raspberry pi 3B+ abspielen und über meine Russound den Gong im ganzen Haus verteilen.
Ich habe es geschafft, dass wenn es klingelt einen string «ding_dong» über das nw plugin in ein item zu schreiben. Dies löst erfolgreich eine Logik aus, die über das Russound plugin die Audio Quelle richtig setzt, die Laustärke erhöht und alle Lautsprecher im EG aktiviert. Das einzige welches nicht in der Logik funktioniert ist das abspielen der Audio Datei – obwohl der genau gleiche code ausserhalb von SmarthomeNG (direkt im Terminal) funktioniert.
test_audio_play.py
Code:
import subprocess subprocess.Popen(["cvlc", "/usr/local/smarthome/media/audio/klingel/02_ding_dong.mp3", "--play-and-exit"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Code:
python3 test_audio_play.py
eg:
Code:
sudo chown -R smarthome:smarthome /usr/bin/cvlc
Code:
import subprocess subprocess.Popen(["sudo", "cvlc", "/usr/local/smarthome/media/audio/klingel/02_ding_dong.mp3", "--play-and-exit"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
Code:
import subprocess import time # start Logik loggen von triggers logger.warning("Logik '{}' (filename '{}') wurde getriggert at {} (WARNING)".format(logic.name, logic.filename, time.ctime())) logger.warning("Triggered: trigger['source'] = {}, trigger[by] = {}, trigger[value] = {}".format(trigger['source'], trigger['by'], trigger['value']) ) # anschalten von Russound für alle Lautsprecher im EG wenn geklingelt wurde if trigger['source'] == "haus.eg.flur.tuere.klingel": if "ding_dong" in sh.haus.eg.flur.tuere.klingel(): for item in sh.haus.eg.return_children(): logger.warning("ding_dong! Its ringing on the door - turn on speakers in {}".format(item)) try: item.audio.status.turnonvolume(30) # item.audio.status(1) item.audio.status.source(5) except Exception as e: logger.warning("Try except error! with item {} error: {}".format(item, e)) # abspielen von Audio Datei --> nur als test code,um zu schauen was falsch ist logger.warning("music played; time {}".format(time.time())) command = subprocess.Popen(["cvlc", "/usr/local/smarthome/media/audio/klingel/01_ding_dong.mp3", "--play-and-exit"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (result, err) = command.communicate() p_status = command.wait() logger.warning("result{},err{}".format(str(result, encoding='utf-8', errors='strict'), err)) logger.warning("music played next line; time {}".format(time.time())) # if sh.haus.eg.flur.tuere.zu() == False: # sh.haus.eg.flur.tuere.klingel('') # # time.sleep(40) # for item in sh.haus.eg.return_children(): # try: # item.audio.status.source(1) # item.audio.status.turnonvolume(10) # item.audio.status(0) # except: # logger.warning("Try except error by shut down - door opened in time! with item {}".format(item)) sh.haus.eg.flur.tuere.klingel('') for item in sh.haus.eg.return_children(): try: item.audio.status.source(1) item.audio.status.volume(10) item.audio.status(0) except: logger.warning("Try except error by shut down! with item {}".format(item)) logger.warning("play value of : {}".format(play))
Log file
2023-01-17 23:28:29 WARNING logics.audio Logik 'audio' (filename 'audio.py') wurde getriggert at Tue Jan 17 23:28:29 2023 (WARNING)
2023-01-17 23:28:29 WARNING logics.audio Triggered: trigger['source'] = haus.eg.flur.tuere.klingel, trigger[by] = Item, trigger[value] = ding_dong
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.kueche
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.wohn_esszimmer
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.buero
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.flur
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.wc
2023-01-17 23:28:29 WARNING logics.audio music played; time 1673994509.1389358
2023-01-17 23:28:39 WARNING logics.audio result,errb'[0057f400] vlcpulse audio output error: PulseAudio server connection failure: Verbindung verweigert\n[005bf5a0] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11\n[005bf5a0] main interface error: no suitable interface module\n[004fab58] main libvlc error: interface "dbus,none" initialization failed\n[005bb278] main interface error: no suitable interface module\n[004fab58] main libvlc error: interface "globalhotkeys,none" initialization failed\n[005bb278] dummy interface: using the dummy interface module...\n[005700b8] main playlist: end of playlist, exiting\n',p_status0
2023-01-17 23:28:39 WARNING logics.audio music played next line; time 1673994519.3874164
2023-01-17 23:28:44 WARNING logics.audio time start: 1673994524.3882947
2023-01-17 23:28:44 WARNING logics.audio time stop: 1673994524.4319692
2023-01-17 23:28:29 WARNING logics.audio Triggered: trigger['source'] = haus.eg.flur.tuere.klingel, trigger[by] = Item, trigger[value] = ding_dong
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.kueche
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.wohn_esszimmer
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.buero
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.flur
2023-01-17 23:28:29 WARNING logics.audio ding_dong! Its ringing on the door - turn on speakers in haus.eg.wc
2023-01-17 23:28:29 WARNING logics.audio music played; time 1673994509.1389358
2023-01-17 23:28:39 WARNING logics.audio result,errb'[0057f400] vlcpulse audio output error: PulseAudio server connection failure: Verbindung verweigert\n[005bf5a0] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11\n[005bf5a0] main interface error: no suitable interface module\n[004fab58] main libvlc error: interface "dbus,none" initialization failed\n[005bb278] main interface error: no suitable interface module\n[004fab58] main libvlc error: interface "globalhotkeys,none" initialization failed\n[005bb278] dummy interface: using the dummy interface module...\n[005700b8] main playlist: end of playlist, exiting\n',p_status0
2023-01-17 23:28:39 WARNING logics.audio music played next line; time 1673994519.3874164
2023-01-17 23:28:44 WARNING logics.audio time start: 1673994524.3882947
2023-01-17 23:28:44 WARNING logics.audio time stop: 1673994524.4319692
Hat jemand eine Idee warum ich innerhalb von SmarthomeNG in der Logik keine Verbindung zu VLC und pulseaudio aufbauen kann - Jedoch der gleiche code ausserhalb von SmarthomeNG funktioniert.
Hat jemand eine Idee was ich noch testen könnte?
LG
Sandro
image.pngimage.png
Kommentar