TonUINO - Konflikt mit Webinterface / DF-Player Timing

Mit dieser Meldung wende ich mich primär an @Boerge1 . Vielleicht können aber auch andere User des Nano ESP32 gegenprüfen, um auszuschließen, dass es an mir oder meinem Aufbau liegt.

Ich habe ein Upgrade einer bestehenden Box aus Nano V3 und Classic Platine auf den Nano ESP32 gemacht. Mit den entsprechenden Anpassungen in der constants.hpp konnte der Austausch problemlos 1:1 vorgenommen werden. Der Nano ESP32 läuft also mir SW-serial.

Die neue Konfiguration ist:

TonUINO TNG Version

V3.3.2 15.11.25

TonUINO TNG Konfiguration

ESP32 Nano, 5 Tasten
DF-Player Chip NoAck (LKP Player)
Quiz Game
Memory Game
MFRC Gain = RxGain_33dB
Jukebox
Pause nach jedem Track

Beim Testen hat ich folgendes ergeben:

Karten können in beliebiger Reihenfolge aufgelegt werden, werden korrekt erkannt und abgespielt, wenn sich der TonUINO im Status “Play” oder “IDLE” befindet.

Anders sieht es aus, wenn eine neue Karte aufgelegt wird, wenn sich der TonUINO im Status “Pause” befindet:

dann kommt es sofort zu einem “missing OnPlayFinished” Fehler. Nach einer Verzögerung startet die angeforderte Wiedergabe. Das kann beliebig häufig wiederholt werden, solange das Webinterface nicht die “Home” Seite anzeigt.

Nach Auflegen einer Karte im Status “Play” oder “IDLE” ist alles wieder OK, auch kein “missing OnPlayFinished” mehr.

Um das festzustellen und den Fehler einzugrenzen habe ich das LOG im Webinterface beobachtet und bis auf die “missing OnPlayFinished” Einträge keine weiteren Anhaltspunkte gefunden.

Wenn man nun versucht, nach einem “missing OnPlayFinished” die “Home” Seite des Webinterface zu öffnen, geht der TonUINO in einen Zustand, in dem er weder auf Tasten- / Karteneingabe reagiert und auch das WLAN nicht mehr bedient. Hier hilft nur ein Neustart.

Macht man das gleiche ( Karte auflegen, wenn der TonUINO im Staus “Pause” ist) bei geöffneter “Home” Seite des Webinterface macht, wird im Meldungsfenster nicht (wie sonst) der Auftrag der Karte angezeigt sondern nur “StartPlay”. Der “Auftrag wird zwar noch ausgeführt, der TonUINO nimmt aber keine weiteren Eingaben mehr an.

Ich schaue mir das nächste Woche auf jeden Fall an.
Ich würde aber vermuten, das das eine Fehlfunktion des DFPlayer ist. Irgendwie bleibt der Tonuino im State Startplay hängen und wartet darauf, dass das Pling fertig wird.
Welchen Player hast du denn? Und kannst du bitte noch ein Log mit Zeitstempel posten?

Klasse, die schnelle Reaktion – DANKE :+1:

Bei einem Crosscheck mit einem anderen Aufbau bin ich auch auf den Player gekommen.

Ausgangssituation für die Fehlerbeschreibung oben war NanoESP32 auf Classic Platine mit Original LKP.
Hier kommt es zusätzlich dazu, dass bei Trackansage (Pause lang) die Titelnummer um 2(!) hochgezählt wird (1 zu Beginn der Ansage und 1 am Ende der Ansage), ohne dass wirklich ein anderer Titel gespielt wird.

Für den Crosscheck verwendet : Nano ESP32 auf Breadboard mit Player GD3200B
Ergebnis bisher ohne Auffälligkeit. Läuft nach Umstecken (natürlich!) auch auf der Classic Platine ohne Befund.

Weiterer Crosscheck mit Player MH2024K24SS auf Classic Platine.
Ergebnis: Es kommt nicht mehr zur Blockade, bei Titelansage erfolgt jedoch (manchmal) ein Sprung in der Titelzählung.

Hier nun das LOG mit der original LKP Konfiguration und dem LKP.

Wechsel der Karte im Play-Status und am Ende Wechsel im Pause-Status und nicht mehr “anspechbarem” TonUINO

Connected to ws://opibox:/ws_serial
[000 06.203] 
[000 06.203]  _____         _____ _____ _____ _____ 
[000 06.203] |_   _|___ ___|  |  |     |   | |     |
[000 06.203]   | | | . |   |  |  |-   -| | | |  |  |
[000 06.203]   |_| |___|_|_|_____|_____|_|___|_____|
[000 06.203] TonUINO Version 3.x - refactored by Boerge1
[000 06.203] 
[000 06.203] created by Thorsten Voß and licensed under GNU/GPL.
[000 06.204] Information and contribution at https://tonuino.de.
[000 06.204] 
[000 06.204] V3.3.2 15.11.25
[000 06.204] ESP32 Nano 5
[000 06.494] EEPROM begin: 1
[000 06.494] Ver:2
[000 06.494] Vol:25 5 15 25 5 15
[000 06.495] EQ:1
[000 06.495] ST:0
[000 06.495] IB:1
[000 06.495] AL:0
[000 06.495] AP:1111
[000 06.495] PCR:0
[000 06.500] wifi settings - ssid: WDG6, hostname: Opibox, st_ip: 0, st_ip_address: 0.0.0.0, st_ip_gw: 0.0.0.0, st_ip_subnet: 0.0.0.0, st_ip_dns1: 0.0.0.0, st_ip_dns2: 0.0.0.0
[000 06.562] Connecting to WiFi WDG6 ...
[000 07.062] Connected to WiFi WDG6 with IP: 192.168.0.157
[000 07.114] MFRC522:146
[000 07.145] Volume: 15
[000 07.267] track_count: 3428
[000 07.846] websocket [1] Connected!
[000 08.267] enter Idle
[000 08.267] btn/cmd: start/start
[000 08.267] enqueue mp3 262 0
[000 08.267] play mp3 262
[000 10.413] isPlaying: 1
[000 10.765] isPlaying: 0
[000 10.867] Track end: 2614
[000 14.078] Card Ins
[000 14.083] CardData: 13 37 b3 47 02 05 03 00 00 
[000 14.084] enter StartPlay
[000 14.084] enqueue mp3 262 0
[000 14.126] play mp3 262
[000 16.288] isPlaying: 1
[000 16.642] isPlaying: 0
[000 16.692] Track end: 2614
[000 18.116] 153 tr in folder 5
[000 18.116] enqueue 5-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  
[000 18.119] shuffled 89 110 13 71 134 124 150 41 122 117 63 18 69 127 33 148 126 21 61 93 34 70 12 42 104 4 65 11 101 129 143 91 79 46 131 38 77 132 145 17 83 57 40 86 106 96 28 94 60 107 123 25 80 109 133 58 76 47 125 59 119 98 116 120 75 95 138 100 82 39 147 74 103 14 111 140 52 97 22 45 135 92 64 19 88 115 66 51 84 48 15 153 78 35 81 112 118 130 26 142 32 36 144 128 151 23 108 99 152 7 27 121 73 6 9 85 29 30 113 146 49 50 55 54 24 8 43 102 136 141 20 37 62 72 149 114 67 5 139 44 3 56 87 68 16 105 53 10 1 31 90 2 137  
[000 18.146] play 5-89
[000 19.327] enter Play
[000 19.632] isPlaying: 1
[000 20.672] Card Rem
[000 31.851] Card Ins
[000 31.854] NTAG215
[000 31.865] CardData: 13 37 b3 47 02 17 05 00 00 
[000 31.865] enter StartPlay
[000 31.865] enqueue mp3 262 0
[000 31.896] play mp3 262
[000 31.981] isPlaying: 0
[000 34.136] isPlaying: 1
[000 34.437] isPlaying: 0
[000 34.538] Track end: 2614
[000 36.333] 222 tr in folder 23
[000 36.333] enqueue 23-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222  
[000 36.362] play 23-1
[000 36.475] Card Rem
[000 37.569] enter Play
[000 38.279] isPlaying: 1
[000 51.467] Card Ins
[000 51.472] CardData: 13 37 b3 47 02 05 03 00 00 
[000 51.473] enter StartPlay
[000 51.473] enqueue mp3 262 0
[000 51.515] play mp3 262
[000 51.650] isPlaying: 0
[000 53.722] isPlaying: 1
[000 54.076] isPlaying: 0
[000 54.178] Track end: 2614
[000 55.602] 153 tr in folder 5
[000 55.603] enqueue 5-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  
[000 55.605] shuffled 129 142 7 71 86 83 103 65 152 128 48 112 69 26 67 28 61 75 153 23 25 117 123 96 18 72 89 37 58 77 93 59 40 116 33 145 22 10 57 39 49 94 99 6 97 43 143 76 8 88 51 138 146 118 46 3 82 140 95 60 36 122 70 87 19 119 105 62 64 11 150 113 149 102 124 74 9 1 134 110 66 90 127 136 79 68 17 147 137 106 135 54 80 100 132 144 42 5 50 91 108 52 126 151 30 47 29 35 148 78 125 114 53 120 101 98 84 34 16 131 38 141 73 44 55 63 104 15 109 139 130 56 107 4 133 31 14 2 85 111 24 27 115 13 12 45 20 92 121 32 81 21 41  
[000 55.633] play 5-129
[000 56.814] enter Play
[000 57.068] isPlaying: 1
[001 01.748] btn/cmd: pause/pause
[001 01.748] enter Pause
[001 01.812] isPlaying: 0
[001 03.977] Card Rem
[001 07.710] Card Ins
[001 07.713] NTAG215
[001 07.724] CardData: 13 37 b3 47 02 17 05 00 00 
[001 07.724] enter StartPlay
[001 07.724] enqueue mp3 262 0
[001 07.755] play mp3 262
[001 10.248] missing OnPlayFinished
[001 16.668] 222 tr in folder 23
[001 16.668] enqueue 23-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222  
[001 16.678] play 23-1
[001 16.679] Track end: 2614

Wird denn das „Pling“ hier abgespielt?

Ja, das Pling wird in allen Fällen (zumindest akustisch) ordnungsgemäß abgespielt.

Erstaunlich für mich, dass das Problem nur aus dem Pause-State heraus auftritt.
Zur Blockade kommt es auch nur, wenn die “Home” Seite im Webinterface geöffnet ist

Das Problem ist nicht das Webinterface, sondern dass er im State „StartPlay“ hängen bleibt. Das liegt daran, dass der Player nicht ordentlich meldet, dass er das „Pling“ abspielt und damit fertig ist.
Bei mir kann ich den Fehler mit dem LKP Player nicht nachvollziehen.

Hier ist mein Log:

[000 23.223] btn/cmd: pause/pause
[000 23.225] enter Pause
[000 23.225] timer started
[000 23.302] isPlaying: 0
[000 27.338] Card Ins
[000 27.344] CardData: 13 37 b3 47 02 01 02 00 00 
[000 27.346] enter StartPlay
[000 27.346] enqueue mp3 262 0
[000 27.384] play mp3 262
[000 27.886] Card Rem
[000 29.108] isPlaying: 1
[000 29.458] isPlaying: 0
[000 29.508] Track end: 1950
[000 30.067] 14 tr in folder 1
[000 30.068] enqueue 1-1 2 3 4 5 6 7 8 9 10 11 12 13 14  
[000 30.096] play 1-1
[000 30.720] isPlaying: 1
[000 31.269] enter Play

Und hier dein Log:

[001 01.748] btn/cmd: pause/pause
[001 01.748] enter Pause
[001 01.812] isPlaying: 0
[001 03.977] Card Rem
[001 07.710] Card Ins
[001 07.713] NTAG215
[001 07.724] CardData: 13 37 b3 47 02 17 05 00 00 
[001 07.724] enter StartPlay
[001 07.724] enqueue mp3 262 0
[001 07.755] play mp3 262
[001 10.248] missing OnPlayFinished
[001 16.668] 222 tr in folder 23
[001 16.668] enqueue 23-1 2 3 4 5 6 7 8 9 10 ...  
[001 16.678] play 23-1
[001 16.679] Track end: 2614

Insbesondere fehlt bei dir

isPlaying: 1
isPlaying: 0

und

Track end: 2614

kommt viel zu spät.

Irgendwie hat der Player Probleme von Pause aus ein File im mp3 Ordner abzuspielen. Ich habe gesehen, dass dein Folder (in dem er gerade in der Pause steckt, sehr lang ist. Passiert das auch von anderen (kürzeren) Foldern?

Ja, nach einem “missing OnPlayFinished” braucht er schon eine “Bedenkzeit”, macht dann aber anstandlos weiter. Das kann ich beliebig oft machen, ohne dass es zu weitern Störungen kommt, wenn die “Home” Seite nicht angezeigt wird.

Einmaliger Wechsel aus dem “Play”-State bringt alles wieder in Ordnung und auch die “Home” Seite kann wieder geöffnet werden, ohne dass es zur Blockade kommt.

[001 10.925] btn/cmd: pause/pause
[001 10.926] enter Pause
[001 11.012] isPlaying: 0
[001 15.365] Card Ins
[001 15.372] CardData: 13 37 b3 47 02 05 03 00 00 
[001 15.372] enter StartPlay
[001 15.372] enqueue mp3 262 0
[001 15.413] play mp3 262
[001 17.908] missing OnPlayFinished
[001 23.894] 153 tr in folder 5
[001 23.896] enqueue 5-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  
[001 23.899] shuffled 56 86 1 6 16 29 92 134 63 25 65 77 19 23 66 17 45 36 12 48 88 72 59 31 143 71 132 91 39 61 131 151 50 62 117 42 114 107 149 44 68 144 116 70 94 100 10 99 22 85 138 64 102 46 47 145 136 89 76 111 74 112 109 87 122 146 40 97 98 49 32 14 11 137 41 37 27 81 24 20 38 141 83 104 118 13 60 110 57 106 103 26 9 3 15 153 21 128 120 150 75 52 51 121 142 130 90 28 152 139 79 119 95 115 93 133 135 54 105 7 8 33 35 84 126 113 5 67 140 108 148 127 34 123 18 69 96 125 58 78 147 73 80 43 4 2 101 55 53 129 82 30 124  
[001 23.905] play 5-56
[001 23.905] Track end: 2614
[001 25.149] enter Play
[001 25.352] isPlaying: 1
[001 28.883] Card Rem
[001 39.112] btn/cmd: pause/pause
[001 39.113] enter Pause
[001 39.199] isPlaying: 0
[001 41.505] Card Ins
[001 41.509] NTAG215
[001 41.520] CardData: 13 37 b3 47 02 17 05 00 00 
[001 41.520] enter StartPlay
[001 41.520] enqueue mp3 262 0
[001 41.549] play mp3 262
[001 44.036] missing OnPlayFinished
[001 50.447] 222 tr in folder 23
[001 50.448] enqueue 23-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222  
[001 50.477] play 23-33
[001 50.477] Track end: 2614
[001 50.564] Card Rem
[001 51.691] enter Play
[001 52.242] isPlaying: 1
[002 13.646] Card Ins
[002 13.653] CardData: 13 37 b3 47 02 05 03 00 00 
[002 13.653] enter StartPlay
[002 13.653] enqueue mp3 262 0
[002 13.694] play mp3 262
[002 13.830] isPlaying: 0
[002 15.064] Card Rem
[002 15.942] isPlaying: 1
[002 16.292] isPlaying: 0
[002 16.343] Track end: 2614
[002 17.768] 153 tr in folder 5
[002 17.769] enqueue 5-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  
[002 17.772] shuffled 136 146 37 5 117 125 38 23 105 106 145 55 74 101 64 84 110 58 29 132 94 134 44 67 46 9 135 91 43 63 109 50 2 92 49 93 8 152 27 28 128 13 35 48 89 96 75 122 131 12 142 139 130 108 11 68 100 71 88 86 10 121 34 111 24 120 65 6 137 80 95 70 83 40 144 81 126 115 69 61 90 60 97 39 123 3 127 102 45 147 30 79 57 20 25 87 59 116 78 99 129 26 36 15 41 112 32 16 76 82 140 33 113 4 72 98 104 51 14 73 47 56 53 153 119 1 42 151 148 138 77 31 7 114 150 54 18 85 149 107 66 118 17 19 52 62 143 22 141 133 103 124 21  
[002 17.799] play 5-136
[002 18.987] enter Play

Auch mit kürzeren Foldern kein andres Verhalten

[000 22.848] isPlaying: 1
[000 30.548] btn/cmd: pause/pause
[000 30.549] enter Pause
[000 30.635] isPlaying: 0
[000 33.689] Card Ins
[000 33.696] CardData: 13 37 b3 47 02 02 05 00 00 
[000 33.696] enter StartPlay
[000 33.696] enqueue mp3 262 0
[000 33.737] play mp3 262
[000 36.233] missing OnPlayFinished
[000 42.087] 30 tr in folder 2
[000 42.089] enqueue 2-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  
[000 42.093] play 2-2
[000 42.093] Track end: 2614
[000 43.333] enter Play
[000 43.383] isPlaying: 1
[000 49.473] Card Rem
[001 00.850] btn/cmd: pause/pause
[001 00.851] enter Pause
[001 00.937] isPlaying: 0
[001 04.344] Card Ins
[001 04.348] NTAG215
[001 04.359] CardData: 13 37 b3 47 02 13 02 00 00 
[001 04.359] enter StartPlay
[001 04.359] enqueue mp3 262 0
[001 04.388] play mp3 262
[001 06.874] missing OnPlayFinished
[001 13.226] 6 tr in folder 19
[001 13.228] enqueue 19-1 2 3 4 5 6  
[001 13.235] play 19-1
[001 13.235] Track end: 2614
[001 14.472] enter Play
[001 14.698] Card Rem
[001 15.025] isPlaying: 1
[001 30.675] btn/cmd: pause/pause
[001 30.676] enter Pause
[001 30.762] isPlaying: 0
[001 37.815] Card Ins
[001 37.822] CardData: 13 37 b3 47 02 02 05 00 00 
[001 37.822] enter StartPlay
[001 37.822] enqueue mp3 262 0
[001 37.863] play mp3 262
[001 40.362] missing OnPlayFinished
[001 46.213] 30 tr in folder 2
[001 46.215] enqueue 2-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  
[001 46.219] play 2-2
[001 46.219] Track end: 2614
[001 47.462] enter Play
[001 47.512] isPlaying: 1
[001 48.991] Card Rem
[002 07.624] Card Ins
[002 07.628] NTAG215
[002 07.639] CardData: 13 37 b3 47 02 13 02 00 00 
[002 07.639] enter StartPlay
[002 07.639] enqueue mp3 262 0
[002 07.668] play mp3 262
[002 07.804] isPlaying: 0
[002 09.906] isPlaying: 1
[002 10.256] isPlaying: 0
[002 10.306] Track end: 2614
[002 12.089] 6 tr in folder 19
[002 12.091] enqueue 19-1 2 3 4 5 6  
[002 12.117] play 19-1
[002 13.333] enter Play
[002 13.933] isPlaying: 1
[002 17.309] Card Rem

Edit Nachtrag:

Inzwischen habe ich eine neue SD-Karte aufgesetzt, neu formatiert, advert und mp3 kopiert und nur 2 “kurze” Ordner angelegt.

Damit läuft jetzt alles, wie es soll, auch die Titelansagen erfolgen ohne Sprünge.

[000 20.970] Card Ins
[000 20.973] NTAG215
[000 20.984] CardData: 13 37 b3 47 02 02 05 00 00 
[000 20.984] enter StartPlay
[000 20.984] enqueue mp3 262 0
[000 21.015] play mp3 262
[000 21.202] isPlaying: 1
[000 21.553] isPlaying: 0
[000 21.604] Track end: 258
[000 21.838] 6 tr in folder 2
[000 21.838] enqueue 2-1 2 3 4 5 6  
[000 21.845] play 2-2
[000 22.083] isPlaying: 1
[000 23.039] enter Play
[000 23.217] Card Rem
[000 30.688] websocket [1] Disconnected!
[000 50.464] btn/cmd: pause/pause
[000 50.465] enter Pause
[000 50.551] isPlaying: 0
[000 53.604] Card Ins
[000 53.611] CardData: 13 37 b3 47 02 01 02 00 00 
[000 53.611] enter StartPlay
[000 53.611] enqueue mp3 262 0
[000 53.652] play mp3 262
[000 54.391] isPlaying: 1
[000 54.742] isPlaying: 0
[000 54.842] Track end: 258
[000 55.068] 30 tr in folder 1
[000 55.069] enqueue 1-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  
[000 55.073] play 1-1
[000 55.311] isPlaying: 1
[000 56.316] enter Play
[000 59.354] Card Rem
[001 07.682] btn/cmd: pause/pause
[001 07.683] enter Pause
[001 07.769] isPlaying: 0
[001 09.875] Card Ins
[001 09.879] NTAG215
[001 09.890] CardData: 13 37 b3 47 02 02 05 00 00 
[001 09.890] enter StartPlay
[001 09.891] enqueue mp3 262 0
[001 09.919] play mp3 262
[001 10.655] isPlaying: 1
[001 11.006] isPlaying: 0
[001 11.055] Track end: 258
[001 11.257] 6 tr in folder 2
[001 11.259] enqueue 2-1 2 3 4 5 6  
[001 11.285] play 2-2
[001 11.502] isPlaying: 1
[001 12.503] enter Play

Mal sehen, wie es weiter geht, wenn die Karte weiter befüllt wird.

Entgegen von dem obigen Logs geht der TonUINO bei den letzten Logs immer schlussendlich in den Play State. Wäre das oben auch so gewesen, du hast bloß nicht lange genug gewartet?
Und das Problem ist, dass wenn man die Webseite aufruft und er noch nicht im Play State ist, dann bleibt er hängen?

Nein, nein. Die Wiedergabe lief schon, wird nur nicht im Webinterface angezeigt sondern ist dann blockiert.

Mit neu formatierter und nun auch vollständig befüllter Karte scheint der Spuk nun vorbei zu sein.

[000 15.815] NTAG215
[000 15.826] CardData: 13 37 b3 47 02 17 02 00 00 
[000 15.826] enter StartPlay
[000 15.826] enqueue mp3 262 0
[000 15.855] play mp3 262
[000 16.891] isPlaying: 1
[000 17.241] isPlaying: 0
[000 17.291] Track end: 258
[000 18.822] 221 tr in folder 23
[000 18.824] enqueue 23-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221  
[000 18.853] play 23-1
[000 20.070] enter Play
[000 20.421] isPlaying: 1
[000 34.371] btn/cmd: pause/pause
[000 34.372] enter Pause
[000 34.439] isPlaying: 0
[000 35.564] Card Rem
[000 38.894] Card Ins
[000 38.901] CardData: 13 37 b3 47 02 05 03 00 00 
[000 38.901] enter StartPlay
[000 38.901] enqueue mp3 262 0
[000 38.942] play mp3 262
[000 40.582] isPlaying: 1
[000 40.933] isPlaying: 0
[000 40.983] Track end: 258
[000 42.225] 153 tr in folder 5
[000 42.226] enqueue 5-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  
[000 42.229] shuffled 108 14 68 117 17 134 48 150 16 58 78 38 101 33 90 85 100 106 49 81 147 30 142 70 128 105 29 84 72 60 18 47 136 7 92 41 129 115 123 95 149 146 143 67 55 44 89 26 82 19 120 39 57 52 27 145 125 1 118 24 12 63 144 110 94 99 111 130 76 107 131 80 139 36 93 65 8 50 109 126 40 98 119 45 114 153 32 69 10 23 35 42 51 113 54 122 64 151 15 46 102 87 11 5 53 21 59 74 56 88 104 71 127 2 31 25 6 103 121 66 34 4 3 116 20 138 137 97 132 75 140 135 28 9 37 148 62 83 61 73 22 112 77 124 141 86 96 152 43 79 91 13 133  
[000 42.256] play 5-108
[000 43.473] isPlaying: 1
[000 43.474] enter Play
[000 58.506] btn/cmd: pause/pause
[000 58.507] enter Pause
[000 58.571] isPlaying: 0
[001 01.308] Card Rem
[001 04.842] Card Ins
[001 04.846] NTAG215
[001 04.857] CardData: 13 37 b3 47 02 17 02 00 00 
[001 04.857] enter StartPlay
[001 04.857] enqueue mp3 262 0
[001 04.886] play mp3 262
[001 06.522] isPlaying: 1
[001 06.873] isPlaying: 0
[001 06.923] Track end: 258
[001 08.454] 221 tr in folder 23
[001 08.456] enqueue 23-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221  
[001 08.485] play 23-1
[001 09.703] enter Play
[001 10.054] isPlaying: 1
[001 25.781] Card Rem
[001 28.411] Card Ins
[001 28.418] CardData: 13 37 b3 47 02 05 03 00 00 
[001 28.418] enter StartPlay
[001 28.418] enqueue mp3 262 0
[001 28.459] play mp3 262
[001 28.595] isPlaying: 0
[001 29.601] isPlaying: 1
[001 29.952] isPlaying: 0
[001 30.002] Track end: 258
[001 31.245] 153 tr in folder 5
[001 31.246] enqueue 5-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153  
[001 31.249] shuffled 36 16 60 2 20 24 94 102 132 31 140 73 49 124 9 54 51 25 149 91 14 95 113 92 43 110 150 105 32 97 143 58 137 52 80 78 19 134 44 69 70 82 65 121 71 29 21 146 61 123 127 93 100 136 55 66 104 42 15 11 85 41 68 151 76 145 111 8 90 57 48 128 6 147 46 112 99 126 67 81 84 75 101 87 96 47 50 141 27 153 63 39 135 45 23 12 56 88 3 38 108 152 142 62 79 131 129 116 35 98 120 26 72 1 10 106 18 17 5 37 13 144 22 130 138 34 77 4 122 114 86 28 119 109 40 89 107 59 30 83 103 74 133 118 117 53 115 125 7 139 64 33 148  
[001 31.277] play 5-36
[001 32.500] isPlaying: 1
[001 32.501] enter Play

Was bleibt ist, dass Trackansagen in Folder 05 einwandfrei funktionieren, in Folder 23 wird jedoch nach der Ansage aus advert um 1 hochgezählt.

Das hat jetzt aber überhaupt nicht meine Fragen beantwortet :wink:

Da habe ich vielleicht Deine Frage nicht richtig verstanden.

In allen Fehlersituationen habe ich gewartet, bis die Wiedergabe des neuen Auftrags gestartet war (zumindest akustisch) bevor ich die Seite im Webinterface umgeschaltet habe und es zur Blockierung kam. Die Wiedergabe läuft weiter, aber das macht der DF-Player ja autonom bis er andere Befehle erhält.

Womit genau kann ich Dich unterstützen??

Mich interessieren eher die State Übergänge (die man im Log sieht) und nicht, ob der Player angefangen hat zu spielen.
In allen oberen Logs, war der TonUINO zum Schluss im State „StartPlay“. In den Logs am Ende, ging der TonUINO am Schluss in den State „Play“.
Meine erste Frage war, ob du bei den Logs am Anfang nur nicht lange genug gewartet hattest, oder ob der TonUINO in „StartPlay“ lange hängen blieb.
Und die zweite Frage: In welchem State war der TonUINO, wenn er beim Aufrufen des Webinterfaces blockiert hat?
Hast du die alte SD-Karte noch, mit welcher du das Blockieren nachstellen konntest?

Die alte SD-Karte habe ich leider nicht mehr, so dass sich das Problem nicht mehr zuverlässig reproduzieren lässt.

Dennoch eine Beschreibung:
Das Fehlverhalten ist mir zuerst bei Beobachtung der Home-Seite des Webinterface aufgefallen, da dann im Meldungsfenster nur “StartPlay” angezeigt wurde und nichr, wie sonst üblich, die Anzeige der neuen Queue erfolgte.
Damit war der TonUINO dann blockiert. Die Umschaltung auf das LOG war zwar noch möglich, aber es erfolgten keine weiteren Einträge. Man konnte nur sehen, dass es zu einem “missing OnPlayFinished” bei 262.mp3 kam, die neu Queue zusammengestellt war. Der letzte Eintrag war dann “Track end: 2614”

Bei (nur) geöffneter LOG-Ansicht im Webinterface ging es dann ohne Probleme weiter bis “isPlaying: 1” ohne Blockade
Leider kann ich nicht mehr zuverlässig sagen, ob es bei Umschaltung zur Home-Seite vor oder nach “isPlaying:1” zur Blockde kam.

Trotz neu aufgesetzter SD-Karte kommt es bei den Trackansagen in einigen Foldern noch zu Fehlern. Da das immer in Zusammenhang mit “missing OnPlayFinished” auftritt, muss ich noch weitere Nachforschungen anstellen, um die SD-Karte ausschließen zu können.

Nachdem es mit einer neu formatierten und befüllten SD-Karte nicht mehr zu Blockierungen gekommen ist, habe ich noch einige Tests mit Karten verschiedener Hersteller durchgeführt, da es immer noch zu gelegentlichen “missing OnPlayFinished” Meldungen kam, wenn eine advert-Ansage der Tracknummer angefordert wurde. Eine Funktionsbeeinträchtigung oder spürbar verzögerte Reaktion konnte ich nicht feststellen.

Nun zu den Tests und Ergebnissen mit den SD-Karten:

  • alle getesteten Karten hatten eine Speicherkapazität von (nominell) 32 GB
  • es sind 50 Ordner auf der Karte angelegt
  • die Ordner sind mit sehr unterschiedlicher Anzahl an mp3-Dateien befüllt
  • einige Ordner sind “leer”, enthalten aber eine sehr kurze mp3-Datei mit Ansage “leer”, um Probleme bei Auswahl des Ordners zur Kartenprogrammierung über das Menü zu vermeiden.
  • Die Karte wurde entsprechend der Regeln mit insgesamt mit 25 GB an Daten befüllt.
    Die Dateinamen enthalten zusätzlich zur erforderlichen numerischen Bezeichnung auch weitere Alphazeichen im Dateinamen.
  • getestet wurde die Karte in 3 unterschiedlichen DF-Playern
    • LKP Player (den hatte ich bisher für das “Maß der Dinge” gehalten)
    • Player mit GD3200B Chip
    • Player mit MH2024K24SS Chip
  • Die TonUINO Firmware war natürlich immer auf den verwendeten Player-Chip angepasst.

Überraschend kam es (fast) ausschließlich beim LKP-Player zur Meldung “missing OnPlayFinished” wohingegen die Player mit den anderen Decoder-Chips die Karten klaglos akzeptierten.
Wohlgemerkt: diese Auffälligkeit war nur im LOG zu sehen, NICHT am Verhalten des TonUINO bemerkbar.

Damit wollte ich mich allerdings nicht zufrieden geben, erinnerte mich an einen Hinweis von @Gute_Laune und habe eine Karte aufgesetzt (gleiche Struktur und Füllgrad), bei der nun ALLE Dateinamen ausschließlich die erforderliche numerische Bezeichnung OHNE weitere Zeichen haben. Das nahm eine nicht unerhebliche Zeit in Anspruch, da ich zunächst viele der mp3-Dateien ordentlich taggen musste, um später wieder Schlüsse auf den Inhalt ziehen zu können.

Der Aufwand hat sich gelohnt. Auch beim LKP-Player kommt es nun nicht mehr zu “missing OnPlayFinished” Einträgen.

Ich habe es zwar nicht gemessen (an den Time Stamps im LOG), aber zumindest “gefühlt” haben sich die Zugriffszeiten auf die Dateien verkürzt - besonders der MH2024K24SS-Chip scheint spürbar schneller geworden zu sein. Im Normalbetrieb ist das zwar nahezu unerheblich, beim Quiz-Spiel jedoch macht es den Ablauf flüssiger und erhöht den Spielspass

Mit einer derart befüllten SD-Karte läuft der TonUINO mit allen getesteten DF-Playern (siehe oben) nun problemlos (auch bei Analyse des LOG), so dass eigentlich keine Anpassung der Software notwendig erscheint.

Sorry, wenn ich unnötige Unruhe gestiftet habe.

Schön, dass es damit jetzt funktioniert.
Mich hat das Blockieren aber doch nicht losgelassen und ich kann es mir nur dadurch erklären, dass da ein konkurrierender Zugriff auf die mp3 Track Queue vorgekommen ist. Im Main Task wird beim Auflegen einer Karte die Queue geleert und neu befüllt und im Webserver Task wir die Queue gelesen. Ich habe da mal einen Mutex gesetzt und damit sollte es nicht mehr vorkommen.
Das Ganze ist auf dem Branch issue_294 implementiert. Du kannst das ja mal testen.

Den Verdacht hatte ich auch schon, da es den Anschein hatte, dass die Queue für die Anzeige im Webinterface nicht gelesen werden konnte und es anschließend zur Blockade kam. Mit meinen Möglichkeiten konnte ich das jedoch nicht weiter verfolgen.

Beim Versuch issue_294 zu compilieren gab es eine Fehlermeldung:

In file included from C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:1:
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.hpp:318:8: error: 'mutex' in namespace 'std' does not name a type
   std::mutex           q_mtx{};
        ^~~~~
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.hpp:318:3: note: 'std::mutex' is defined in header '<mutex>'; did you forget to '#include <mutex>'?
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.hpp:20:1:
+#include <mutex>
 using SerialType = SoftwareSerial;
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.hpp:318:3:
   std::mutex           q_mtx{};
   ^~~
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp: In member function 'void Mp3::enqueueTrack(uint8_t, uint8_t, uint8_t, uint8_t)':
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:183:35: error: 'q_mtx' was not declared in this scope
   std::lock_guard<std::mutex> lck(q_mtx);
                                   ^~~~~
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:183:35: note: suggested alternative: '_max'
   std::lock_guard<std::mutex> lck(q_mtx);
                                   ^~~~~
                                   _max
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp: In member function 'void Mp3::shuffleQueue()':
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:207:35: error: 'q_mtx' was not declared in this scope
   std::lock_guard<std::mutex> lck(q_mtx);
                                   ^~~~~
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:207:35: note: suggested alternative: '_max'
   std::lock_guard<std::mutex> lck(q_mtx);
                                   ^~~~~
                                   _max
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp: In member function 'String Mp3::getQueue()':
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:409:37: error: 'q_mtx' was not declared in this scope
     std::lock_guard<std::mutex> lck(q_mtx);
                                     ^~~~~
C:\Daten\Arduino-Projekte\TonUINO_TNG_284_288_294_nobl\src\mp3.cpp:409:37: note: suggested alternative: '_max'
     std::lock_guard<std::mutex> lck(q_mtx);
                                     ^~~~~
                                     _max
exit status 1

Compilation error: 'mutex' in namespace 'std' does not name a type

Der Versuch, “mutex” durch Installation der Lib FreeRTOS zu aktivieren schlug fehl.

Erst als ich in der mp3.hpp das “#include ” vor die if-Abfrage gesetzt hatte konnte ich erfolgreich compilieren.

#include <Arduino.h>
//#define DfMiniMp3Debug Serial
#include <DFMiniMp3.h>
#include <mutex>

#ifdef TonUINO_Esp32
#include <mutex>
#endif

Da scheint die if-Abfrage nicht korrekt zu funktionieren.

Die Lib FreeRTOS konnte wieder deinstalliert werden, da “mutex” schon im Nano ESP32 Boardpaket integriert ist. Das wird mit obiger Lösung aber wohl zu anderen Fehlermeldungen führen, wenn nicht mit diesem Boardpaket compiliert wird.

Die SW ist compiliert und läuft nun, nach ersem Eindruck, störungsfrei. Das hatte ich auch erwartet, da ja schon mit der neu aufgesetzen SD-Karte keine Probleme mehr auftraten. Somit ist vermutlich “mutex” in dieser Konstellation nicht wirklich gefordert.

Oh ja, das #define ist ja erst nach der constants.hpp bekannt. Bei PlatformIO lief es, da ja das #define dort global gesetzt wird. Korrigiere ich.

1 „Gefällt mir“

Ist erledigt, jetzt kompiliert es auch ohne Änderung im Code.

1 „Gefällt mir“

Kann erst morgen prüfen, heute ist Opatag

Sorry wegen der späten Rückmeldung :sleepy_face:
SW compiliert jetzt ohne Probleme, Funktion(en) unverändert OK :+1: