đź“— Die Betriebsmodi des ESPuino

Grundsätzlich sind zwei Modi zu unterscheiden:

  1. Der „normale“ Modus. Hier gibt es WLAN (und damit auch FTP, MQTT und WebGUI) und es können Dateien von SD-Karte abgespielt werden. Auch Webradio ist möglich.
  2. Der Bluetooth-Modus. Hier gibt es WLAN nicht, dafür jedoch, Trommelwirbel, Bluetooth. Genauer gesagt sind es sogar zwei: Bluetooth Sink (hier kann man z.B. mit einem Handy via a2dp auf den ESPuino streamen) oder Bluetooth Source (hier kann ESPuino z.B. auf einen externen Lautsprecher oder einen Kopfhörer streamen).
  • Vom „normalen“ kann jeweils in einen der Bluetooth-Modi (und wieder zurĂĽck) mit einer Modifikationskarte gewechselt werden. Alternativ kannst du in settings.h auch einem Button (oder einer Button-Kombination) die Aktion CMD_TOGGLE_BLUETOOTH_SINK_MODE oder CMD_TOGGLE_BLUETOOTH_SOURCE_MODE zuweisen.
  • Beim Wechsel zwischen dem normalen Modus und einem der Bluetooth-Modi ist jeweils (aus technischen GrĂĽnden) ein Neustart notwendig, der jedoch automatisch erfolgt und in 2-4 Sekunden erledigt ist .
  • Der ESPuino merkt sich den Modus, der zuletzt aktiv war und aktiviert diesen nach einem erfolgten Neustart automatisch.
  • (1) wird im IDLE-Zustand durch vier langsam zirkulierende LEDs repräsentiert. Ist WLAN aktiv, so sind diese weiĂź. Ist das Gegenteil der Fall, so leuchten sie grĂĽn. Wird WLAN noch gesucht, so sind sie orange.
  • (2) wird immer durch vier langsam zirkulierende LEDs repräsentiert, die blau leuchten.
  • Ist (2) aktiv, so wird ein sog. a2dp-sink gestartet. D.h. es kann via Bluetooth darauf gestreamt werden. Der Name, unter dem sich der ESPuino als Bluetooth-Gerät zeigt, wird in settings.h in der Variable nameBluetoothDevice konfiguriert.
  • Ist (2) aktiv, so kann die Lautstärke nur via Bluetooth-Sender reguliert werden und auch die Buttons (abgesehen von jenem des Drehencoders) können nicht genutzt werden.

Es wäre natürlich ein Stück weit erstrebenswert, alle Modi gleichzeitig verfügbar zu haben - ganz ohne Neustart. Dies geht jedoch schon alleine aufgrund von Speicherlimitierungen nicht. Wie auch immer, ich denke es ist keine allzu große Einschränkung.

:exclamation: Um den BT-Modus zu erreichen, muss man eine Aktion vom Typ „Modifikation“ auslösen. Im Normalfall ist dies eine RFID-Karte, es ist jedoch auch möglich, diese über das Webinterface oder MQTT auszulösen. Das Problem ist nun, dass sich der ESP32 den aktivierten BT-Modus merkt (über Neustarts hinweg) und wenn man keine RFID-Karte für BT-Modus angelernt hat, dann kommt man aus diesem Modus eigentlich nur noch raus, indem man „Flash Erase“ in Platformio ausführt.
Da das mehreren Leuten passiert ist, haben wir einen „Notausgang“ geschaffen: Legt man im aktiven BT-Modus eine RFID-Karte auf, die der ESP32 nicht kennt (sie wurde noch nicht angelernt), so wechselt ESPuino sofort in den normalen Modus zurück. :exclamation:

1 „Gefällt mir“