Webradio führt teilweise zu einem freeze

Hallo zusammen,

ich hab seit kurzem das Problem, dass das Starten von Webstreams sehr häufig dazu führt, dass der ESP einfach nichts mehr macht, bzw. fast nichts, die LED’s drehen lustig weiter, aber z.B. der Sleep Button tut nicht mehr, Karten werden nicht erkannt, per WLAN verbinden geht nicht usw. Die Probleme sind erst mit der refactoring firmware aufgetreten, aber kann nicht sagen ob das ein Zusammenhang hat.

In der Konfiguration hab ich:

#define MDNS_ENABLE 
#define NEOPIXEL_ENABLE 
#define LANGUAGE 1  
#define PLAY_MONO_SPEAKER 
#define SHUTDOWN_IF_SD_BOOT_FAILS 
#define PLAY_LAST_RFID_AFTER_REBOOT 
#define BLUETOOTH_ENABLE 

Das ist die Ausgabe wenn es hängt:

rst:0x5 (DEEPSLEEP_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
Maximale Inaktivitätszeit wurde aus NVS geladen: 30
Initiale LED-Helligkeit wurde aus NVS geladen: 30
LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2

  _____   ____    ____            _                 
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___  
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/ 
 Rfid-controlled musicplayer

 Rev 20210502-1

Wakeup caused by push button
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Initiale Lautstärke wurde aus NVS geladen: 8
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 8
Hostname aus NVS geladen: radio
.Aktuelle IP: 192.168.11.184
Freier Heap-Speicher nach Setup-Routine: 135196
PSRAM: 4194204 bytes
Firmware version=4.1
RFID-Tags koennen jetzt gescannt werden...
Letzte RFID wurde aus NVS geladen: 228255109040
RFID-Karte empfangen: 228255109040
Modus: Webstream
Neue Playlist empfangen mit 1 Titel(n)
Free heap: 116204
info        : buffers freed, free Heap: 116204 bytes
info        : Connect to new host: "http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u"
info        : Connect to "metafiles.gl-systemhaus.de" on port 80, extension "/hr/hr3_2.m3u"
info        : Connected to server in 81 ms
info        : Read from playlist
info        : Playlistheader: HTTP/1.1 200 OK
info        : Playlistheader: Accept-Ranges: bytes
info        : Playlistheader: Content-Type: audio/x-mpegurl
info        : Playlistheader: ETag: "3116a7f7531521df08a374bc20b55d1a:1507125291"
info        : Playlistheader: Last-Modified: Wed, 04 Oct 2017 13:54:50 GMT
info        : Playlistheader: Server: AkamaiNetStorage
info        : Playlistheader: Content-Length: 66
info        : Playlistheader: Expires: Sat, 29 May 2021 12:34:08 GMT
info        : Playlistheader: Cache-Control: max-age=0, no-cache, no-store
info        : Playlistheader: Pragma: no-cache
info        : Playlistheader: Date: Sat, 29 May 2021 12:34:08 GMT
info        : Playlistheader: Connection: close
info        : Playlistheader: Access-Control-Max-Age: 86400
info        : Playlistheader: Access-Control-Allow-Credentials: false
info        : Playlistheader: Access-Control-Allow-Headers: *
info        : Playlistheader: Access-Control-Allow-Methods: GET,POST
info        : Playlistheader: Access-Control-Allow-Origin: *
info        : Playlistheader: Content-Type: audio/x-mpegurl
info        : Switch to PLAYLISTDATA
info        : Playlistdata: http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3
info        : Entry in playlist found: http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3
info        : buffers freed, free Heap: 114844 bytes
info        : Connect to new host: "http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3"
info        : Connect to "hr-hr3-live.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3"
info        : Connected to server in 70 ms
info        : HTTP/1.1 302 Found
info        : server: nginx
info        : date: Sat, 29 May 2021 12:34:08 GMT
info        : Content-Length: 0
info        : access-control-allow-origin: *
info        : access-control-allow-headers: Origin, Accept, X-Requested-With, Content-Type
info        : access-control-allow-methods: GET, OPTIONS, HEAD
info        : redirect to new host "http://hr-edge-3049-dus-ts-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MDQ4JnM9Nzg
info        : buffers freed, free Heap: 114608 bytes
info        : Connect to new host: "http://hr-edge-3049-dus-ts-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MDQ4JnM9Nzg
info        : Connect to "hr-edge-3049-dus-ts-cdn.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MDQ
info        : Connected to server in 48 ms
info        : HTTP/1.0 403 Account already in use
info        : Stream lost -> try new connection
info        : buffers freed, free Heap: 114920 bytes
info        : Connect to new host: "hr-edge-3049-dus-ts-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MDQ4JnM9Nzg2NmYyOW
info        : Connect to "hr-edge-3049-dus-ts-cdn.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MDQ
info        : Connected to server in 37 ms

Oder hier:

rst:0x5 (DEEPSLEEP_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
Maximale Inaktivitätszeit wurde aus NVS geladen: 30
Initiale LED-Helligkeit wurde aus NVS geladen: 30
LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2

  _____   ____    ____            _                 
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___  
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/ 
 Rfid-controlled musicplayer

 Rev 20210502-1

Wakeup caused by push button
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Initiale Lautstärke wurde aus NVS geladen: 8
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 8
Hostname aus NVS geladen: radio
.Aktuelle IP: 192.168.11.184
Freier Heap-Speicher nach Setup-Routine: 135336
PSRAM: 4194204 bytes
Firmware version=4.1
RFID-Tags koennen jetzt gescannt werden...
Letzte RFID wurde aus NVS geladen: 228255109040
RFID-Karte empfangen: 228255109040
Modus: Webstream
Neue Playlist empfangen mit 1 Titel(n)
Free heap: 116336
info        : buffers freed, free Heap: 116240 bytes
info        : Connect to new host: "http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u"
info        : Connect to "metafiles.gl-systemhaus.de" on port 80, extension "/hr/hr3_2.m3u"
info        : Connected to server in 359 ms
info        : Read from playlist
info        : Playlistheader: HTTP/1.1 200 OK
info        : Playlistheader: Accept-Ranges: bytes
info        : Playlistheader: Content-Type: audio/x-mpegurl
info        : Playlistheader: ETag: "3116a7f7531521df08a374bc20b55d1a:1507125291"
info        : Playlistheader: Last-Modified: Wed, 04 Oct 2017 13:54:50 GMT
info        : Playlistheader: Server: AkamaiNetStorage
info        : Playlistheader: Content-Length: 66
info        : Playlistheader: Expires: Sat, 29 May 2021 12:36:03 GMT
info        : Playlistheader: Cache-Control: max-age=0, no-cache, no-store
info        : Playlistheader: Pragma: no-cache
info        : Playlistheader: Date: Sat, 29 May 2021 12:36:03 GMT
info        : Playlistheader: Connection: close
info        : Playlistheader: Access-Control-Max-Age: 86400
info        : Playlistheader: Access-Control-Allow-Credentials: false
info        : Playlistheader: Access-Control-Allow-Headers: *
info        : Playlistheader: Access-Control-Allow-Methods: GET,POST
info        : Playlistheader: Access-Control-Allow-Origin: *
info        : Playlistheader: Content-Type: audio/x-mpegurl
info        : Switch to PLAYLISTDATA
info        : Playlistdata: http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3
info        : Entry in playlist found: http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3
info        : buffers freed, free Heap: 115248 bytes
info        : Connect to new host: "http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3"
info        : Connect to "hr-hr3-live.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3"
info        : Connected to server in 44 ms
info        : HTTP/1.1 302 Found
info        : server: nginx
info        : date: Sat, 29 May 2021 12:36:03 GMT
info        : Content-Length: 0
info        : access-control-allow-origin: *
info        : access-control-allow-headers: Origin, Accept, X-Requested-With, Content-Type
info        : access-control-allow-methods: GET, OPTIONS, HEAD
info        : redirect to new host "http://hr-edge-204a-fra-lg-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MTYzJnM9Nzg
info        : buffers freed, free Heap: 115012 bytes
info        : Connect to new host: "http://hr-edge-204a-fra-lg-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MTYzJnM9Nzg
info        : Connect to "hr-edge-204a-fra-lg-cdn.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTEwOS4yNTAuMjUwLjk0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjIyMzc4MTY
info        : Connected to server in 63 ms

Ca. jeder zweite Versuch schlägt fehl, manchmal dauert es auch nur länger bis der Stream startet, oft bleibt der ESP aber einfach hängen.

Habt ihr eine Idee woran das liegen könnte? Kann natürlich auch sein, dass an dem Webstream etwas geändert wurde… Aber zumindest der ESP sollte dann ja nicht hängen.

Ich lehne mich mal weit aus dem Fenster und behaupte, dass der ESPuino unschuldig ist :rofl:. Also es ist so, dass der Status von der Lib von @Wolle von ESPuino ausgewertet wird. Das habe ich auch schon öfter gesehen, dass ein Stream abgerissen ist und der ESPuino dann wieder in den Status idle zurückgeht. Ursprünglich war das nicht so, das habe ich erst vor ein paar Monaten hinzugefügt (war aber auch dringend notwendig). Also meine Vermutung ist an dieser Stelle, dass die Lib den Abriss nicht erkennt.

Ich hab jetzt mit beiden Versionen (master und refactoring) einige Tests gemacht: bei der Masterversion findet bei Webstreams zuverlässig ein Reconnect statt, bei Problemen Stream lost -> try new connection, bei der refactoring Version leider i.d.R. nicht.
Wie kann ich herausfinden, welche Version der Lib von @Wolle genutzt wird? Sind da ggf. unterschiedliche Versionen mit den Branches verknüpft?

Das ist bisher nicht fest verknüpft. D.h. in Platformio.ini wird auf den Master-Branch der Lib referenziert, aber nicht eine spezielle Version festgepinnt.

Welche Version verwendet wurde kriegst du ggf. über .pio/libdeps raus (das befindet sich im Verzeichnis von ESPuino lokal bei dir auf dem Rechner).

1 „Gefällt mir“

Die Funktion „Stream lost“ gibt es schon sehr lange um einen 24/7 Webradiobetrieb zu gewährleisten. Sie wird ausgelöst, wenn mehrere Sekunden keine Daten vom Host empfangen werden. Dann werden die Buffer und der Dekoder zurückgesetzt und die Verbindung neu aufgenommen. Das funktioniert nur wenn die physikalische Verbindung noch existiert. Bei einer guten Internetverbindung wird „Stream lost“ sehr selten aktiviert.

Ich hab jetzt den neuen Master geladen und leider tritt das Problem immer noch auf, ab und zu startet der Webstream nicht. Folgende Meldung wird dabei ausgegeben:


  _____   ____    ____            _                 
 | ____| / ___|  |  _ \   _   _  (_)  _ __     ___  
 |  _|   \__  \  | |_) | | | | | | | | '_ \   / _ \
 | |___   ___) | |  __/  | |_| | | | | | | | | (_) |
 |_____| |____/  |_|      \__,_| |_| |_| |_|  \___/ 
 Rfid-controlled musicplayer
 Software-revision: 20210725-1

Wakeup caused by push button
Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten...
SD card type: SDHC
FTP-User wurde aus NVS geladen: esp32
FTP-Passwort wurde aus NVS geladen: esp32
Initiale Lautstärke wurde aus NVS geladen: 8
Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 15
Hostname aus NVS geladen: radio
.Aktuelle IP: 192.168.11.184
Freier Heap-Speicher nach Setup-Routine: 130956
PSRAM: 4194204 bytes
Flash-size: 4194304 bytes
RSSI: -71 dBm
Firmware version=4.1
RFID-Tags koennen jetzt gescannt werden...
Letzte RFID wurde aus NVS geladen: 134075240041
RFID-Karte empfangen: 134075240041
Freier Speicher: 111112
Anzahl gültiger Files/Webstreams: 7
Modus: Webstream (lokale .m3u-Datei)
Neue Playlist empfangen mit 7 Titel(n)
Free heap: 111436
info        : PSRAM found, inputBufferSize: 283615 bytes
info        : buffers freed, free Heap: 111300 bytes
info        : Connect to new host: "http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3"
info        : Connect to "hr-hr3-live.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3"
info        : Connected to server in 53 ms
'http://hr-hr3-live.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3' wird abgespielt (1 von 7)
info        : HTTP/1.1 302 Found
info        : server: nginx
info        : date: Mon, 26 Jul 2021 10:16:08 GMT
info        : Content-Length: 0
info        : access-control-allow-origin: *
info        : access-control-allow-headers: Origin, Accept, X-Requested-With, Content-Type
info        : access-control-allow-methods: GET, OPTIONS, HEAD
info        : redirect to new host "http://hr-edge-104c-fra-dtag-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTg3LjEyMi4yMDUuMTY0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjI3MzgwOTY4JnM9N
info        : buffers freed, free Heap: 110404 bytes
info        : Connect to new host: "http://hr-edge-104c-fra-dtag-cdn.cast.addradio.de/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTg3LjEyMi4yMDUuMTY0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjI3MzgwOTY4JnM9N
info        : Connect to "hr-edge-104c-fra-dtag-cdn.cast.addradio.de" on port 80, extension "/hr/hr3/live/mp3/128/stream.mp3?_art=dj0yJmlwPTg3LjEyMi4yMDUuMTY0JmlkPWljc2N4bC1mM29qeGpsbGImdD0xNjI3MzgwO
info        : Connected to server in 45 ms
info        : HTTP/1.0 403 Account already in use
[E][Audio.cpp:2605] processAudioHeaderData(): can't see content in audioHeaderData

Da muss @Wolle was zu sagen.

Kleine Ergänzung: Der Titel passt eigentlich nicht mehr, denn das Verhalten führt nicht mehr zu einem freeze, sondern der espuino geht dann einfach in den Leerlauf über, die vier weißen LED’s drehen dann einfach munter im Kreis und er reagiert auch auf andere Eingaben. Zuvor musste er dann komplett einmal hard resetet werden, ist also schon wesentlich besser. Schöner wär’s natürlich wenn das Starten des Webstreams noch mal versucht würde.

Erwartest du bei einem zweiten Versuch eine Besserung? Ich irgendwie nicht. Also ja, ich könnte mir vorstellen, dass es in Einzelfällen mal was bringt. Aber es gibt sicherlich auch Fälle, wo die Kontaktaufnahme zum Streamserver (aus welchen Gründen auch immer) hakelig ist und dann lange dauert. Ein Retry würde das dann verlängern.
Also ich kann deine Motivation verstehen, aber ich habe Bedenken.

Die Besserung zum Zustand vorher mit dem Freeze hat ggf. mit meinem Änderungen zu tun, die ich vor ein paar Tagen in AudioPlayer.cpp eingecheckt habe. Bei den gemischten m3u-Playlisten bin ich da nämlich auch in einen Fehler gelaufen, der mit gPlayProperties.currentRelPos zu tun hatte.

Ja bei einem erneuten Versuch hat es dann immer wieder funktioniert. Aber ich gebe dir recht, unschön war der freeze des ESP, so ist es eigentlich kein Problem mehr, insbesondere wenn es nur noch sporadisch auftritt. Werde es mal noch beobachten.

Wenn eine URL aufgerufen wird, die den wirklichen Audiostream überträgt (also die keine Playlist sendet oder ein „redirection“), wird zunächst vom Server der AudioHeader übermittelt. In AudioHeader stehen indormationen über den kommenden Audiostream, wie:

  • Bitrate
  • icy-url           das ist die Homepage der Station
  • icy-name      das ist der Stationsname
  • icy-metaint   das ist der Abstand zwischen den StreamTitel (Künstler, Liedtitel…)
  • content-type mpeg, aac, ogg, flac, m4a…
    und anderes …

Der Audioheader wird von Server mit „/r/n/r/n“ beendet. Danach hängt der Server den Audiostream ein. Nachdem die ersten Audiodaten empfangen wurden gibt es eine Funktion, die einen leeren Audibuffer über mehrere Sekunden erkennt und die Verbindung neu aufbaut.
Das ist notwendig, weil es manchmal passieren kann, dass die Verbindung abbricht, aus welchen Gründen auch immer. So wird eine 24/7 Übertragung garantiert.

vG Wolle

Hallo , gerade Update auf neue Version gemacht .
Webradio läuft bei mir mit der Version 20210725-1 überhaupt nicht . Rev 20210713-3 läuft einwandfrei .
Meine Lieblingskarte mit WDR2 www.wdr.de/wdrlive/media/wdr2.m3u wird meist nicht erkannt , manchmal startet Webstream für 1-2 Sekunden , dann Restart . Habe im Moment keine Zeit und werde es später versuchen einzugrenzen .

VG

Hi @biologist
Habe heute nochmals probiert mit Rev 20210727-2 .
Dieser Stream http://streamtdy.ir-media-tec.com/disco/mp3-128/web/play.mp3 funktioniert , dieser nicht http://www.wdr.de/wdrlive/media/wdr2.m3u
Mit Rev 20210713-3 läuft es einwandfrei .
Anbei die Konsolenausgabe:
20210727-2.txt (14,8 KB)

VG

Zwei Anmerkungen dazu:

  1. Könntest du es mal ohne Neopixel testen? Also nicht mit einkompilieren. Ich hatte hier und hier wegen m3u ein paar größere Änderungen gemacht. Wenn, dann müsste es am ehesten damit zu tun haben.
  2. Vielleicht kannst du das Ganze mal in den Stacktrace-Decoder stecken: GitHub - me-no-dev/EspExceptionDecoder: Exception Stack Trace Decoder for ESP8266 and ESP32. Da muss man einfach ne .jar in das passende Verzeichnis kopieren und erhält dann einen Menüpunkt in der Arduino-IDE. Ruft man den auf, dann geht ein Fenster auf, welches zwei Sachen möchte:
    a) Den Stacktrace
    b) Die verwendete .bin-Datei vom Flashen (findest du dann in .pio in Platformio).
    Wenn man das beides geliefert hat, dann kriegt man einen Stacktrace, den man auch lesen kann. Oft bringt er mich nicht weiter, aber kommt schon mal vor :slight_smile:
1 „Gefällt mir“

Hi @biologist
Liegt an Neopixel , ohne geht es .

Edit: Habe mal meine "Single_Led.cpp " vom 8.7.2021 kompiliert . Das funktioniert auch . Allerdings habe ich bisher , weil es ja nicht läuft , das neue Feature nicht ausprobiert .

Meinst du das m3u-Feature?
Ich hatte bei meinen kürzlichen Änderungen die LED.cpp angepasst. Aber war nur ganz wenig.
Ich schaue einfach mal, dass ich es bei mir nachstelle.

Hab den Stream auch mal getestet, bei mir läuft es. Habe aber auch den Stack erhöht, wie hier beschrieben: Abspielen von https Streams? - #8 von biologist

Keine Ahnung ob das einen Zusammenhang hat.

P.S.: ich hab aber auch weder MQTT, FTP noch Drehencoder mit drin.

Ja, das meine ich . Ich habe gesehen dass die Änderung in der led.cpp minimal ist und genau das ist in meiner led.cpp natürlich nicht drin . Heute ist schlecht werde es morgen mal checken
VG

Der Stream (WDR) läuft bei mir auf lolin32 und lolin32 d32 pro auch.

Ok , dann muss es ja irgendwie bei mir liegen .