Autor Thema: WLAN Lautsprecher auf ESP8266 Basis  (Gelesen 39522 mal)

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1368
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #225 am: 13 April 2018, 12:10:56 »
Schau dir doch mal die Quelltexte an, ob da viel mit delay(time) gearbeitet wird. Wenn nicht oder nur in einem Programm, hast du ja Glück.

Offline Bapt. Reverend Magersuppe

  • Full Member
  • ***
  • Beiträge: 404
  • Flipperball geschluckt!
    • Kotolette!
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #226 am: 16 April 2018, 09:48:36 »
Schade Hätte halt gerne einen Wlan Lautsprecher mit Matrix LED Display, zusammen könnte man es als Wecker, Uhr etc einsetzen.

Es gibt da ein schönes Projekt auf Basis des ESP32.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
https://www.kopp.eu/de/produkt/4008224141147
Manch einer hat die Weisheit mit Löffeln gefressen. Ich Vla.

Offline mark79

  • Full Member
  • ***
  • Beiträge: 472
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #227 am: 16 April 2018, 13:50:57 »
Es gibt da ein schönes Projekt auf Basis des ESP32.
Das hatte ich nachgebaut und ein paar Tage lang ausprobiert, mit einem ESP32 und VS1053. Allerdings mit diesem Sketch: https://github.com/karawin/Ka-Radio32
Das lief sehr gut und die Soundqualiät war sehr viel besser und ohne Störgeräusche, also kein Vergleich zu dem PAM8302A.

Leider habe ich es nicht wirklich hinbekommen, das mit FHEM TTS zu verbinden und mittlerweile habe ich den ESP32 auch für was anderes im Beschlag.
Aber man kann per HTTP Befehl ein MP3 Link an den ESP32 schicken, welcher dann abgespielt wird.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, DashButtons, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Offline Tueftler1983

  • Sr. Member
  • ****
  • Beiträge: 717
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #228 am: 16 April 2018, 20:58:38 »
Sieht auch gut aus, aber ich würde halt gerne die Dot Matrix verwenden da sie auch aus entfernung gut ablesbar ist. Zudem soll halt zum Wecken ein wechton ausgegeben weden und wenn man diesen bestätigt ein Stream von nem Internetradio wiedergegeben werden. Dann noch TTS ausgaben bei bestimmten ereignissen.

Vielleicht sollte ich da auch nen eigenes Thema für auf machen, ich denke mal Die Kombination aus TTS, Internetradio und LED Dot Matrix ist für Viele Interessant

Offline ianni89

  • Newbie
  • Beiträge: 2
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #229 am: 01 Mai 2018, 20:45:40 »
Hallo zusammen,

das ist ein interessantes Projekt. Ich werde es auch realisieren. Die Bauteile sind schon bestellt ;)

In der aktuellen Zeitschrift von "elektor" ist ein Bericht vom PAM8302. Falls es jemanden interessiert.
Hier der Link dazu:
https://www.elektormagazine.de/magazine/elektor-201805/41483

Offline mick6300

  • New Member
  • *
  • Beiträge: 15
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #230 am: 12 Mai 2018, 12:26:28 »
Hallo zusammen,
habe das Projekt nachgebaut und bin begeistert. Daher auch von mir noch einmal vielen Dank. Mir viel allerdings auf, dass sich im cash Ordner eine Menge Datenmüll ansammelte. Ich habe daraufhin das mplayer.sh script am Ende um die Zeile "rm $file" erweitert. Das mp3-File wird nun nach der Sprachausgabe wieder gelöscht. Weiterhin habe ich den avconv um die Option "-vol 1024" erweitert, da hierdurch die Lautstärke nun besser zu meinen Ansprüchen passt. Der Text wird weiterhin problemlos über fhem wiedergegeben. Spricht etwas gegen den "rm $file" Befehl?

# zum Test ausgeben
###echo $volume $file >> $logFile
#play -q -v $volume $file
echo "" >> $logFile
echo "" >> $logFile
avconv -i $file -vol 1024 -f s32be -acodec pcm_u8 -ac 1 -ar 33000 tcp://192.168.0.119:5522 2>> $logFile
rm $file
FHEM mit Raspberry PI und eine Menge an Arduinos

Offline ianni89

  • Newbie
  • Beiträge: 2
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #231 am: 14 Mai 2018, 20:37:39 »
Hallo zusammen,
habe das Projekt nachgebaut und bin begeistert. Daher auch von mir noch einmal vielen Dank. Mir viel allerdings auf, dass sich im cash Ordner eine Menge Datenmüll ansammelte. Ich habe daraufhin das mplayer.sh script am Ende um die Zeile "rm $file" erweitert. Das mp3-File wird nun nach der Sprachausgabe wieder gelöscht. Weiterhin habe ich den avconv um die Option "-vol 1024" erweitert, da hierdurch die Lautstärke nun besser zu meinen Ansprüchen passt. Der Text wird weiterhin problemlos über fhem wiedergegeben. Spricht etwas gegen den "rm $file" Befehl?

# zum Test ausgeben
###echo $volume $file >> $logFile
#play -q -v $volume $file
echo "" >> $logFile
echo "" >> $logFile
avconv -i $file -vol 1024 -f s32be -acodec pcm_u8 -ac 1 -ar 33000 tcp://192.168.0.119:5522 2>> $logFile
rm $file

Hallo,
gegen den Befehl "rm $file" ist nichts einzuwenden. Im Gegenteil, das ist sogar eine gute Idee.

Ich habe nun versucht den Lautsprecher als webradio zu nutzen. Das funktioniert prinzipiell.
Nur bin ich mit avconv nicht zufrieden. Die Verbindung bricht viel zu oft ab. Hat von euch jemand Erfahrungen den avconv-Befehl als Webradio zu nutzen?
Vielleicht fehlt mir nur der ein oder andere Paramter, der übergeben wird. Konnte das bisher nicht herausfinden.

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1368
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #232 am: 15 Mai 2018, 11:43:51 »
Vllt. sollte man den rm-Befehl mit RegEx verwenden und häufige Aussagen ("Waschmaschine fertig") so maskieren, dass diese erhalten bleiben.

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3580
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #233 am: 23 Juli 2018, 14:06:50 »
Das hatte ich nachgebaut und ein paar Tage lang ausprobiert, mit einem ESP32 und VS1053. Allerdings mit diesem Sketch: https://github.com/karawin/Ka-Radio32
Das lief sehr gut und die Soundqualiät war sehr viel besser und ohne Störgeräusche, also kein Vergleich zu dem PAM8302A.

Leider habe ich es nicht wirklich hinbekommen, das mit FHEM TTS zu verbinden und mittlerweile habe ich den ESP32 auch für was anderes im Beschlag.
Aber man kann per HTTP Befehl ein MP3 Link an den ESP32 schicken, welcher dann abgespielt wird.

Danke für den Link, das werde ich mal nachbauen / zusammenstecken.
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3580
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #234 am: 17 August 2018, 13:45:09 »
Ich habe mich mal am ESP32Radio probiert (https://github.com/Edzelf/ESP32-Radio)
Einfach nur den ESP32 mit dem VS1053 verbunden, Sketch drauf (incl einer Mini Anpassung von mir) und es läuft. Soundqualität ist an einer Aktivbox richtig gut :)
Habe dann noch mein Musik-Frontend von TabletUI drauf angepasst, ein paar WrapperFunktionen in meiner MyUtils.pm erstellt - und voila... die GrundFunktionen die man braucht funktionieren (die auch im TabletUI abgebildet sind)

Achso, die Playlisten von meinem NAS stelle ich mit dem Medialist Modul zusammen mit der ich dann das ESP32Radio füttere

« Letzte Änderung: 17 August 2018, 13:59:16 von Tobias »
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust

Offline tiwo85

  • Full Member
  • ***
  • Beiträge: 165
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #235 am: 17 August 2018, 13:59:58 »
@Tobias
Genau das habe ich auch versucht auszuprobieren. Bin durch den "Guy with the Swiss accent" drauf gekommen.
Darf man fragen, wie du die Wrapperfunktionen realisiert hast?

Gesendet von meinem Huawei P10 Plus mit Tapatalk


Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3580
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #236 am: 17 August 2018, 14:07:59 »
dadurch das man alles zum ESP32Radio mit zb: "command=volume 30" per MQTT schicken muss, habe ich im MQTTDevice Modul zum ESP32Radio alle notwendigen Funktionen definiert und dann die Wrapperfunktionen drumrum gesetzt

defmod ESP32Radio MQTT_DEVICE
attr ESP32Radio DbLogExclude .*
attr ESP32Radio IODev mqtt
attr ESP32Radio publishSet_command radio/command
attr ESP32Radio publishSet_mute /radio/dummy
attr ESP32Radio publishSet_next /radio/dummy
attr ESP32Radio publishSet_play /radio/dummy
attr ESP32Radio publishSet_posreq /radio/dummy
attr ESP32Radio publishSet_previous /radio/dummy
attr ESP32Radio publishSet_stop /radio/dummy
attr ESP32Radio publishSet_volume /radio/dummy
attr ESP32Radio room Audio
attr ESP32Radio stateFormat {ReadingsVal($name,"playing",0)eq"1"?"play":"stop"}
attr ESP32Radio subscribeReading_IP radio/ip
attr ESP32Radio subscribeReading_nowplaying radio/nowplaying
attr ESP32Radio subscribeReading_playing radio/playing
attr ESP32Radio subscribeReading_pos radio/playlist/pos
attr ESP32Radio subscribeReading_stationname radio/icy/name
attr ESP32Radio subscribeReading_streamtitle radio/icy/streamtitle
attr ESP32Radio subscribeReading_volume radio/volume

2 Notify´s
defmod NTFY_ESP32Radio_PosChange notify ESP32Radio:pos.* {ESP32Radio_PosChange($NAME)}
attr NTFY_ESP32Radio_PosChange DbLogExclude .*
attr NTFY_ESP32Radio_PosChange room Audio

defmod NTFY_ESP32Radio_command notify ESP32Radio:.* {ESP32Radio_setcommand($NAME,$EVENT)}
attr NTFY_ESP32Radio_command DbLogExclude .*
attr NTFY_ESP32Radio_command room Audio

99_Utils_ESP32Radio.pm
##############################################
# $Id:$
package main;

use strict;
use warnings;
use POSIX;

sub
Utils_ESP32Radio_Initialize($$)
{
  my ($hash) = @_;
}

# ####################################################################
# Wenn die Position in der Playlist sich ändert, suche Titelinformationen raus
# ####################################################################
sub ESP32Radio_PosChange($) {
  my ($device) = @_;
  my $cover = "";
  my $title = "";
  my $album = "";
  my $time = 0;

  my $track        = ReadingsVal($device, "pos", "");
  my $playlist     = ReadingsVal($device, "playlist_json", "");
  my @data         = @{JSON::XS->new->decode($playlist)};
  $cover           = $data[$track -1]->{Cover};
  $album           = $data[$track -1]->{Album};
  $title           = $data[$track -1]->{Title};
  $time            = $data[$track -1]->{Time};

  readingsBeginUpdate($defs{$device});
  readingsBulkUpdate($defs{$device}, "Cover", $cover);
  readingsBulkUpdate($defs{$device}, "Album", $album);
  readingsBulkUpdate($defs{$device}, "Title", $title);
  readingsBulkUpdate($defs{$device}, "Time", $time);
  readingsEndUpdate($defs{$device},1);
 
  return undef;
}

# ####################################################################
# Hauptfunktion ein Kommando zu übersetzen
# ####################################################################
sub ESP32Radio_setcommand($$) {
  my ($device, $event) = @_;
  #Log3 undef, 1, "command: $event";
 
  #ESP32Radio_setpos($device) if($event =~ m/posreq/);
  ESP32Radio_setvolume($device) if($event =~ m/volume:/);
  ESP32Radio_setnext($device) if($event =~ m/next/);
  ESP32Radio_setprevious($device) if($event =~ m/previous/);
  ESP32Radio_setstop($device) if($event =~ m/stop/);
  ESP32Radio_setmute($device) if($event =~ m/mute/);
  ESP32Radio_setplay($device) if($event =~ m/play:/);
}

sub  ESP32Radio_setplay($) {
  my ($device) = @_;
  my $play = ReadingsVal($device, "play", 0);
  ESP32Radio_setpos($device, $play+1); #Medialist Index ab 0
}

sub  ESP32Radio_setnext($) {
  my ($device) = @_;
  fhem ("set ".$device." command uppreset=1"); 
}

sub  ESP32Radio_setprevious($) {
  my ($device) = @_;
  fhem ("set ".$device." command downpreset=1"); 
}

sub  ESP32Radio_setstop($) {
  my ($device) = @_;
  fhem ("set ".$device." command stop"); 
}

sub  ESP32Radio_setmute($) {
  my ($device) = @_;
  my $mute = ReadingsVal($device, "mute", 0);
  my $volume = ReadingsVal($device, "volume", 0);
 
  fhem ("set ".$device." command volume=0") if ($mute =~ m/(on|On|1)/);
  fhem ("set ".$device." command volume=100") if ($mute =~ m/(off|Off|0)/);
}

sub  ESP32Radio_setvolume($) {
  my ($device) = @_;
  my $volume = ReadingsVal($device, "volume", 0);
  fhem ("set ".$device." command volume=".$volume); 
}

# ####################################################################
# springe zur Position in der Playlist
# ####################################################################
sub  ESP32Radio_setpos($$) {
  my ($device, $posreq) = @_;
  my $pos    = ReadingsVal($device, "pos", 0);
  my $newpos = 1;
  my $command = "";
 
  $posreq = $posreq *1;
  if ($pos<int($posreq)) {
    $command = "uppreset";
$newpos  = $posreq - $pos;
  } elsif ($pos>int($posreq)) {
    $command = "downpreset";
$newpos  = $pos - $posreq;
  }
  #Log3 undef, 1, "pos: $pos ; Newpos: $newpos";
 
  if($pos!=$newpos) {
    fhem ("set ".$device." command ".$command."=".$newpos);
fhem ("setreading ".$device." currentTrackProvider Bibliothek");
  }
 
  return undef;
}

1;
« Letzte Änderung: 17 August 2018, 14:10:14 von Tobias »
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline tiwo85

  • Full Member
  • ***
  • Beiträge: 165
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #237 am: 17 August 2018, 14:57:21 »
Asche auf mein Haupt. An die Mqtt Funktionen habe ich gar nicht gedacht.
@Tobias
Da kommt mir eine Idee:
https://github.com/schreibfaul1/ESP32-vs1053_ext Dort wird tts aufgegriffen.
Man könnte doch die esp8266-Google-tts library in deinen Sketch einbinden?


Gesendet von meinem Huawei P10 Plus mit Tapatalk


Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3580
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #238 am: 17 August 2018, 19:57:52 »
Ist nicht mein Sketch sondern der von Edzelf. Und ich denke TTS liegt definitiv nicht im Scope eines MP3/Radios ;)
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamp-Sensoren, RPi mit 2x 1wire, RPi mit Text2Speech.
Maintainer der Module: DbLog, Text2Speech, TrashCal, MediaList
Meine Projekte auf https://github.com/tobiasfaust

Offline tiwo85

  • Full Member
  • ***
  • Beiträge: 165
Antw:WLAN Lautsprecher auf ESP8266 Basis
« Antwort #239 am: 17 August 2018, 20:17:16 »
Ja hab ich gesehen. Aber soweit ich das hier verfolgt habe, geht es im Thread um TTS und weniger um MP3/Radio. Ich werde die Tage mich mal an den Sketch setzen von schreibfaul1 und Mqtt einpflegen, das sollte keine Kunst sein. Evtl krieg ich auch noch TTS in den Sketch von edzif eingebastelt.

Gesendet von meinem Huawei P10 Plus mit Tapatalk