Neues Feature: Sag' mir deine IP-Adresse!

Da ich hier mehrere ESPuinos habe, stehe ich, trotz Hostnamen, immer mal vor dem Problem, dass ich die aktuell verwendete IP-Adresse nicht kenne (da ich den Hostnamen vergessen habe) und damit nicht ohne Weiteres ins Webinterface komme. Dafür gibt es nun Abhilfe: Man kann Tasten nun die Aktion CMD_TELL_IP_ADDRESS zuweisen.

Was passiert dann?

Die aktuell verwendete IP-Addresse wird an die Methode connecttospeech() von der Audiolib von @Wolle übergeben. Diese sendet sie zu einem Google-Server, wo sie anschließend als Sprachdatei zurückkommt und abgespielt wird.

Was zeigt der Neopixel an?

Er zeigt die gleiche Formation wie im Pause-Modus an, jedoch sind die LEDs gelb. Einen neuen Playmodus habe ich diesem Feature jetzt nicht spendiert. Es ist also quasi Pause-mit-Zusatzfunktion.

Wie lange dauert es, bis die IP-Adresse angesagt wird?

In meinen Tests hat es so vier Sekunden gedauert. Ist halt so, kann man nicht ändern.

Was passiert mit der aktuell aktiven Playlist?

Diese wird pausiert. D.h. läuft ein Hörspiel, dann wird vorher die letzte Position gespeichert.

Was passiert nachdem die IP-Adresse angesagt wurde?

Wenn der ESPuino zuvor im IDLE-Modus war, dann geht er wieder zurück in den IDLE-Modus. War zuvor eine Playlist aktiv, so wird diese wieder gestartet. Im Falle eines Hörspiels wird die alte Position wieder aufgenommen. Das Verhalten ist exakt so, als würde man in dem Moment, wenn der Sprachvorgang beendet wird, die RFID-Karte vom letzten Mal auflegen.

Was passiert, wenn WLAN nicht aktiv ist?

Es kommt eine Fehlermeldung und der Neopixel zeigt kurz einen Fehler an.

Welches Problem wird bleiben?

Dass man sich jetzt noch eine Tastenkombination mehr merken muss :joy:.

2 „Gefällt mir“

Finde ich eine super Idee, aber wenn das Problem ist, dass man den hostnamen vergisst, warum nicht gleich ebendiesen ausgeben? :smiley:

Coole Idee :dark_sunglasses:

Nur aus interesse: Läuft das über Googles Wavenet? Ich mache immer gleich feste IPs und schreibe die mit auf das Gehäuse (Vorausgesetzt es gibt ein Gehäuse :rofl: :man_shrugging:)
Also für IOT Geräte. Ich habe nur einen ESPuino.

Soweit ich weiß läuft das über TTS.
@SZenglein Lokal sind mir IPs lieber :grin:

Ja, das ist das normaöe Google Translate TTS. Ich vermute, im Hintergrund läuft dieselbe Technik, wie bei Wavenet. Man sendet einen Text und erhält einen MP3 Datenstrom zurück. TTS ist gegenüber Wavenet in der Textlänge begrenzt, aber dafür kostenfrei.
Ich habe in connecttospeech() SSL entfernt um die Geschwindigkeit beim Verbindungsaufbau zu verbessern.

Das macht tatsächlich richtig viel aus. Glaube das ist jetzt nicht mal eine Sekunde latenz.
Coole Sache! :+1:

Habe das Pinning auf deine Lib jetzt mal entfernt. Da kommen ja doch ständig Änderungen, die total Sinn machen :smiley:.

@Wolle Eine Frage noch: Kann man da eigentlich was machen, dass das lauter ist? Weil das ist immer erheblich leiser als das, was ich sonst so abspiele. Müsste ich ansonsten vielleicht drüber nachdenken, ob ich für die Zeit des Speech die Lautstärke automatisch so um etwa vier Stufen erhöhe.

Der Signalweg bei TTS ist derselbe wie bei den üblichen MP3 Streams von Radiostationen. Um einen angemessenen Ausgangspegel zu erhalten müsste dann von außen nachgesteuert werden.

Ja ok. Dann stelle ich das von außen nach. Ist ja keine große Sache.
Danke für deine Infos und die Umstellung auf unverschlüsselt. Das hat hier doch nen ordentlichen Zeitvorteil gebracht und ich denke auf Verschlüsselung kann man an dieser Stelle gut verzichten (sowas sage ich selten, hehe).

Durch ein Issue in meinem Repo bin ich auf einen Fehler bei der Mono Wiedergabe im mp3 Dekoder gestoßen. Dieser äußert sich z.B. durch ein Knacken bei TTS. Mit dem Oszi habe ich ein Gleichspannungsoffset festgestellt der dort nicht sein sollte. Das ist nun beseitigt, das Knacken ist weg. Ich kann mir vorstellen, dass das nicht jeder DAC gleich gut wegsteckt. Vielleicht hat sich damit das Lautstärkeproblem erledigt.

1 „Gefällt mir“

OK, vielen Dank.
Werde ich mal testen. Hatte in dieser Sache auch noch nix unternommen.

Super Feature! Habe aber leider keinen Knopf dafür frei…

Wie wäre es denn wenn das beim Wechsel der IP-Adresse einmal automatisch kommt?
Beispiel: Ich bringe im AP-Modus erstmalig meinen ESPuino ins WLAN und der sagt mir dann die neue IP-Adresse an?
Bin da jetzt nicht so im Code drin, aber wenn sich die IP-Adresse geändert in writeWifiStatusToNVS das erkennen und die neue IP abspielen? Warscheinlich nur eine Zeile, nur so ein Vorschlag…

Finde ich irgendwie nicht so sinnig. Das kann ja irgendwann kommen und mein Sohnemann erinnert sich ziemlich wenig für eine IP :grin:. Außerdem geht man ja nicht ständig in das Webinterface. Ggf. hat man es dann eh wieder vergessen, wenn man es braucht.

Also ich habe das heute Morgen mal getestet. Kann sein, dass es ein bisschen lauter war. So ganz genau weiß ich es nicht mehr. Aber ich denke grundsätzlich passt das so und ich muss nicht extra was anpassen in Sachen Lautstärke.

Wir haben ja auch die Möglichkeit die Aktion auf Buttonkombinationen zu legen.
Ausser dein Gerät hat gar keine Buttons dann wäre aber auch ne Admin Karte zuweisbar.

Dafür wäre auf der Karte eine leuchtende Glühlampe der Burner :smiley:.

Ich habe noch eine Fehlermeldung bezüglich der vorgelesenen IP Adresse.

Nach dem Vorlesen der IP-Adresse vergisst der ESPuino die Playlist und da ich DONT_ACCEPT_SAME_RFID_TWICE aktiviert habe, lässt sich auch die selbe RFID-Karte nicht mehr auflegen. Dieses Problem besteht ist mir gerade zum ersten mal aufgefallen. Ich kann nicht sagen, seit wann es besteht. Vielleicht seit dem letzten Patch dies betreffend?

[ 880316 ]  RFID-Karte erkannt: (ISO-14443) ID: e5-55-96-2d
[ 880319 ]  RFID-Karte empfangen: 229085150045
[ 880353 ]  Playlist-Generierung: cached
[ 880396 ]  Freier Speicher: 56780
[ 880396 ]  Gebe Speicher der alten Playlist frei.
[ 880396 ]  Freier Speicher nach Aufräumen: 56780
[ 880398 ]  Anzahl gültiger Files/Webstreams: 29
[ 880401 ]  Modus: Hoerspiel
[ 880406 ]  Neue Playlist empfangen mit 29 Titel(n)
[ 880408 ]  Free heap: : 57624
[ 880500 ]  info        : buffers freed, free Heap: 82996 bytes
[ 880500 ]  info        : Reading file: "/Karneval der Tiere/03 - Camille Saint-Sa�nsPeter Stangel - Der k�nigliche Marsch des L�wen durch die Arena.mp3"
[ 880535 ]  info        : MP3Decoder has been initialized, free Heap: 59276 bytes
[ 880537 ]  Titel wird abgespielt ab Position 923437
[ 880543 ]  '/Karneval der Tiere/03 - Camille Saint-Sa�nsPeter Stangel - Der k�nigliche Marsch des L�wen durch die Arena.mp3' wird abgespielt (3 von 29)
[ 880554 ]  info        : Content-Length: 1548589
[ 880555 ]  info        : file has no mp3 tag, skip metadata
[ 880559 ]  info        : Audio-Length: 1548589
[ 880566 ]  info        : stream ready
[ 880567 ]  info        : syncword found at pos 0
[ 880574 ]  info        : MP3 decode error -2 : MAINDATA_UNDERFLOW
[ 880580 ]  info        : syncword found at pos 0
[ 880585 ]  info        : MP3 decode error -2 : MAINDATA_UNDERFLOW
[ 880591 ]  info        : syncword found at pos 0
[ 880599 ]  info        : Channels: 1
[ 880599 ]  info        : SampleRate: 48000
[ 880599 ]  info        : BitsPerSample: 16
[ 880603 ]  info        : BitRate: 128000
[ 882256 ]  Kontroll-Kommando empfangen via Queue: 3
[ 882257 ]  Kommando: Pause
[ 882257 ]  Titel pausiert bei Position: 1032237 (951853)
[ 882257 ]  Schreibe '#/Karneval der Tiere#951853#3#2' in NVS für RFID-Card-ID 229085150045 mit Abspielmodus 3 und letzter Track 2
[ 882269 ]  #/Karneval der Tiere#951853#3#2
[ 882276 ]  info        : Closing audio file
[ 882425 ]  info        : buffers freed, free Heap: 82996 bytes
[ 882545 ]  info        : chunked data transfer
[ 882554 ]  info        : MP3Decoder has been initialized, free Heap: 48768 bytes
[ 882554 ]  lasthost    : 10.10.8.57
[ 882560 ]  info        : stream ready
buffer filled in 30592 ms
[ 882560 ]  info        : file has no mp3 tag, skip metadata
[ 882565 ]  info        : Audio-Length: 20832
[ 882575 ]  info        : syncword found at pos 0
[ 882584 ]  info        : Channels: 1
[ 882585 ]  info        : SampleRate: 24000
[ 882585 ]  info        : BitsPerSample: 16
[ 882585 ]  info        : BitRate: 32000
[ 887829 ]  info        : End of speech: "10.10.8.57"
[ 887843 ]  RFID-Karte empfangen: 229085150045
[ 887845 ]  Aktuelle RFID-Karte erneut aufgelegt - abgelehnt! (229085150045)

Jetzt hab ich durch Zufall die Tastenkombo erwischt, da sagt mir die Box: „Zehnten Oktober Zehn Einhundertfünfundsechzig“. Hat ne Weile gedauert bis ich damit was anzufangen wusste :slight_smile:

Vermutlich könnte man bei der google API irgendwie angeben ob er zu einem Datum auflösen soll oder nicht, wenn man das fixen möchte. Wollte hier nur den Lacher teilen :slight_smile:

Haha, das ist ja geil :rofl:.
Tja, so ist das, wenn man nicht wirklich ALLES AUSPROBIERT. Ich habe das immer nur in 192.168 getestet.