NEWS
mpd-Ansteuerung nicht zuverlässig?
-
Hallo Forum,
ich hoffe, dass ich mit meiner Frage den richtigen und passenden Bereich im Forum erwischt habe.
Ich habe ein Problem mit dem mpd (Music Player Daemon), den ich aus ioBroker heraus ansteuere. Es kann allerdings auch sein, dass das Problem an ganz anderer Stelle auftritt. Lasst mich kurz mein Setup erläutern, dann wird meine Vermutung für Euch erkennbar werden. Naja, ich muss wohl leider doch etwas ausholen.....
Mein Setup besteht aus einem Hewlett-Packard HP Compaq Elite 8300 USDT, i7 CPU. Darauf läuft Proxmox 8.0.4. Für ioBroker setze ich darin eine VM mit Ubuntu 22.04.3 LTS ein. Dieses Konstrukt läuft sehr zuverlässig mit allen Vorteilen, die Proxmox so bietet.
Im ioBroker habe ich meine Türklingel mithilfe eines auseinandergebauten Xiaomi Aqara Tür-/Fensterkontaktes, den ich mit angelöteten Drähten an einen Klingeltaster angeschlossen habe, Smart gemacht. Dies war so in der Form notwendig, weil mein Haus ein Holzhaus ist, es "draußen" keine elektrische / elektonische Türklingel gab, sondern eine innenliegende Schiffsglocke, die mit einem nach außen geführten Seil betätigt wird. Die Tatsache, dass es ein Holzhaus ist, erschwert das nachträgliche unsichtbare Verlegen einer Klingel-Ansteuerung. Daher draußen einen Klingeltaster mit dem Xiaomi Tür-/Fensterkontakt angebracht und weiter geht's.
Ein Blockly Script wertet den Status des Klingeltasters aus und steuert einen lokalen mpd an, der dann eine mp3-Datei abspielt. Dazu hatte ich im Proxmox per Hardware-PassThrough die Onboard Soundkarte des HP Compaq Elite 8300 an die Proxmox VM durchgereicht und Lautsprecher angeschlossen.Klingeltaster gedrückt, Soundfile wurde abgespielt, ich war zufrieden.
Dachte ich.
Denn: irgendwann spielte nach Betätigen des Klingeltasters nur noch der erste Bruchteil der mp3-Datei ab, der Rest wurde verschluckt. Neustart ioBroker VM, Funktion war wieder da. Leider konnte ich in keinem Logfile irgendeinen Hinweis finden, was denn der Grund hierfür gewesen sein könnte.
Diese Fehler häuften sich dann, leider konnte ich keine Abhängigkeiten feststellen. Auch dachte ich, dass ein Backup der Proxmox-VM der Grund gewesen sein könnte, da das Backup einen Snapshot der VM macht, aber das war es auch nicht.Ich fand den Grund einfach nicht.
Da das aber unzufriedenstellend war, musste ich was ändern. Daher habe ich anstelle des durchgereichten Soundchips des Proxmox-Hosts einen USB-Sound-"Stecker" angeschlossen, die VM entsprechend umkonfiguriert, ioBroker gestartet und Funktion getestet: klappt.Nach einigen Tagen Betrieb erreicht mich aber leider das gleiche Fehlerbild: beim Betätigen des Klingeltasters wird nur ein Bruchteil des mp3-Files abgespielt. Neustart ioBroker löst dies wieder, aber das kann es ja auch nicht sein. Auch finde ich wieder weder in der VM, noch im Proxmox-Host einen Hinweis in irgendwelchen Logfiles.
Vielleicht hat hier ja jemand eine Idee, einen Hinweis. Auch das Nachvollziehen fällt schwer, da ich eigentlich jeden Tag mal klingeln müsste um zu sehen, ob der Fehler wieder da ist oder nicht; die Logfiles geben ja nichts her. Am ioBroker wird es nicht liegen, dann wenn ich rein im Betriebssystem den mpd ansteuere, erhalte ich dann das gleiche Ergebnis. Das war dann auch der Grund meiner Eingangs-Frage, ob ich hier richtig bin.
Puh, lange Frage, aber vielleicht hat ja jemand was für mich....
Grüße
Christian -
@cb1 sagte in mpd-Ansteuerung nicht zuverlässig?:
Puh, lange Frage, aber vielleicht hat ja jemand was für mich....
Moin,
ja, lange Erklärung, macht auch das Problem so annähernd Sichtbar, aber die wirklichen Dinge fehlen
Als das wären- das Skript
- was sagt das Log vom
mpd
- was sagt das Skript, im debug Modus
- ist das MP3 zu lang, irgendwo ein Puffer der nicht geleert wird
- ist es immer die gleiche Sequenz, die abgespielt wird?
VG
Bernd -
@dp20eic
Hallo,
das stimmt natürlich...
Hier das Blockly:
Das Logfile vom mpd (am 29. September hatte ich die Audio-Konfiguration wie im Text beschrieben abgeändert) :
Sep 29 12:05 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:08 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:08 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:08 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:53 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:54 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:54 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:54 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:56 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:56 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:56 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:57 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:58 : player: played "DoorBell-1-Cropped.mp3" Sep 29 17:59 : player: played "DoorBell-1-Cropped.mp3" Sep 29 18:05 : player: played "DoorBell-1-Cropped.mp3" Sep 29 18:05 : player: played "DoorBell-1-Cropped.mp3" ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Device Sep 29 18:13 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:13 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:13 : player: problems opening audio device while playing "DoorBell-1-Cropped.mp3" Sep 29 18:14 : player: played "DoorBell-1-Cropped.mp3" ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Device Sep 29 18:14 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:14 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:14 : player: problems opening audio device while playing "DoorBell-1-Cropped.mp3" Sep 29 18:14 : player: played "DoorBell-1-Cropped.mp3" ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Device Sep 29 18:14 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:14 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:14 : player: problems opening audio device while playing "DoorBell-1-Cropped.mp3" ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for Device Sep 29 18:15 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:15 : exception: Failed to open "My ALSA Device" (alsa); Failed to open ALSA device "plughw:Device": No such device Sep 29 18:15 : player: played "DoorBell-1-Cropped.mp3" Sep 29 18:16 : player: played "DoorBell-1-Cropped.mp3" Sep 29 18:16 : player: played "DoorBell-1-Cropped.mp3" Oct 02 19:01 : player: played "DoorBell-1-Cropped.mp3" Oct 10 13:21 : player: played "DoorBell-1-Cropped.mp3" Oct 11 12:15 : player: played "DoorBell-1-Cropped.mp3" Oct 11 12:15 : player: played "DoorBell-1-Cropped.mp3" Oct 13 11:12 : player: played "DoorBell-1-Cropped.mp3" Oct 13 11:13 : player: played "DoorBell-1-Cropped.mp3" Oct 14 11:31 : player: played "DoorBell-1-Cropped.mp3" Oct 28 11:20 : player: played "DoorBell-1-Cropped.mp3" Oct 28 11:44 : player: played "DoorBell-1-Cropped.mp3" Oct 28 11:44 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:24 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:24 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:24 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:24 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:25 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:27 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:28 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:28 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:29 : player: played "DoorBell-1-Cropped.mp3" Oct 28 12:42 : player: played "DoorBell-1-Cropped.mp3" Oct 31 16:37 : player: played "DoorBell-1-Cropped.mp3" Oct 31 19:49 : player: played "DoorBell-1-Cropped.mp3" Oct 31 19:49 : player: played "DoorBell-1-Cropped.mp3" Nov 02 09:19 : player: played "DoorBell-1-Cropped.mp3" Nov 02 09:19 : player: played "DoorBell-1-Cropped.mp3" Nov 02 09:19 : player: played "DoorBell-1-Cropped.mp3" Nov 02 17:45 : player: played "DoorBell-1-Cropped.mp3" Nov 04 10:49 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:22 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:22 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:23 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:23 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:24 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:30 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:30 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:30 : player: played "DoorBell-1-Cropped.mp3" Nov 04 11:38 : player: played "DoorBell-1-Cropped.mp3"
Mit dem Script im Debug-Modus kann ich derzeit (noch) nicht dienen, da ich bei der Arbeit bin, meine Frau aber zuhause ist, und wenn ich da jetzt anfange, die Türklingel zu testen..... Ich liefere das nach.
Das mp3-File habe ich angehängt: DoorBell-1-Cropped.mp3
Es ist immer das gleiche Bruchstück, welches im Fehlerfall abgespielt wird.
Ich vermute den Fehler aber auch außerhalb vom ioBroker. Vielleicht sollte ich das Problem auch mal im Proxmox-Forum ansprechen.Aktuell denke ich noch als Alternative darüber nach, einen omxplayer auf einem raspberry anzusteuern, wenn der Klingeltaster gedrückt wird; dann wäre das Proxmox-basierte erstmal raus, aber auch das muss ich erstmal testen.
Grüße
Christian -
@cb1 sagte in mpd-Ansteuerung nicht zuverlässig?:
Mit dem Script im Debug-Modus
Moin,
ich habe keine Ahnung vom Programmieren, aber ich hätte da mit Sicherheit einen DP der auf
true
geht, sobald der Klingeltaster betätigt wird, das nehme ich als Trigger um dann einen zweiten DP zu nutzen, in dem das steht, was zu machen ist, spiele die Musik ab, wenn das erledigt ist, dann setze ich den ersten DP wieder auffalse
.Aber das ist nur mal so ins Blaue gesprochen, bin wie gesagt kein Programmierer.
VG
Bernd -
@dp20eic
Und Sperrvariablen, damit ein Prellen unterdrückt wird.
Sieht für mich im Log nämlich nach 'Reizüberflutung' aus. -
@dp20eic sagte in mpd-Ansteuerung nicht zuverlässig?:
einen DP der auf true geht, sobald der Klingeltaster betätigt wird, das nehme ich als Trigger
Das mache ich auch erstmal so, der DP ist der vom Xiaomi Aqara Tür-/Fenstersensor, im Blockly als Is Open dargestellt.
@thomas-braun sagte in mpd-Ansteuerung nicht zuverlässig?:
Sieht für mich im Log nämlich nach 'Reizüberflutung' aus.
Ja, richtig, da waren aber auch viele Versuche via CommandLine dabei, wo ich das mal außerhalb vom ioBroker gestresst hatte. Sperrvariablen muss ich natürlich noch einbauen, da hast Du Recht. Aber das ist leider nicht das Problem hier.....
Zuletzt war das Problem am Samstag, 04. November 10:49h aufgetreten, alles danach war Testerei von mir.
Grüße
Christian -
Hallo, kurzes Update von meiner Seite....
Ich habe dieses Setup nun verworfen. Als Alternative habe ich jetzt einen ESP8266 mit einem YX5300 MP3 Player Modul eingesetzt.
Die Idee kam mir auf dieser Seite: MP3 player - Lets control it
Der ESP8266 erhält bei "Türklingeltaster gedrückt" über ein Blockly-Script einen http-Request, der einen GPIO-Pin schaltet, der am RX vom MP3-Player-Modul anliegt. Der YX5300 MP3-Player gibt dann einen entsprechenden Sound aus.
Klappt bislang problemlos, länger schon als das bisherige Setup.
Dennoch Danke an alle die hier weitergeholfen haben!Grüße
Christian