Maak van je Raspberry Pi een bluetooth radio

Aangezien je een Raspberry Pi voor zowat alles kunt gebruiken gaan we hem ook maar inzetten als radio. Gewoon omdat het kan ;). Op de Raspberry Pi zelf zit bluetooth, het enige wat je moet aanschaffen is een degelijke bluetooth speaker. Ik heb gekozen voor de JBL Go 2 Speaker, lekker compact, goed betaalbaar en een uitstekend geluid!

 

Benodigdheden

 

Software

Allereerst gaan we een aantal packages installeren op de Pi. Voer onderstaande commando’s uit in de terminal:


Nadat de Pi herstart is gaan we een bluetooth-verbinding maken. Eerst moet je het bluetooth MAC-adres van de speaker zien te achterhalen. Dit kan met een app (op je telefoon) als Bluetooth Discovery. Zorg ervoor dat de JBL Go 2 speaker voldoende opgeladen is en zet hem aan (knopje helemaal links). Daarna druk je op het 2e knop, zodat de speaker in connectie-modus staat. Het MAC-adres van mijn speaker is 70:69:2D:40:B6:81, schrijf dit ergens op (of kopieer het naar kladblok.

Om verbinding tussen de Raspberry Pi en de speaker te maken voer onderstaande commando’s in de terminal in:


Na het connect-commando zal je iets als onderstaande zien, de speaker heeft dan verbinding met de Raspberry.

pi@raspberrypi:~ $ sudo bluetoothctl
[NEW] Controller B9:31:EB:AC:7B:E1 raspberrypi [default]
[NEW] Device 70:69:2D:40:B6:81 JBL GO 2
[JBL GO 2]# connect 70:69:2D:40:B6:81
Attempting to connect to 70:69:2D:40:B6:81
Connection successful
[JBL GO 2]#

Om te testen of het allemaal goed werkt geef je onderstaand commando in, je moet dan Q-Music te horen krijgen.


Het kan voorkomen dat de verbinding een keer weg valt, maar daar is een oplossing voor. We maken een crontask aan:


En voeg onderstaande regel toe.


Druk op CTRL+X en bevestig dat je de wijziging wilt opslaan.

Dan is er nog een ander probleem: van de EU moet tegenwoordig alles energiezuinig zijn, een bluetooth speaker dus ook. Indien er 10 minuten geen geluid afgespeeld wordt dan zal de speaker zichzelf uitschakelen. Dat is niet handig. Hier vind je MP3-bestand met geluid dat niet te horen is. Met het script, later in de artikel, laten we dit MP3-bestand iedere 5 minuten afspelen indien je geen radio-zender geselecteerd hebt in Domoticz. Pak het bestand uit met een extractor als WinRar en plaats het bestand in de folder /home/pi/domoticz/

Radio switch aanmaken

De volgende stap is om een radio switch aan te maken. Ga naar Setup -> Hardware en kies bij Type voor Dummy. Je mag zeg een herkenbare naam kiezen:

Zodra de Dummy Hardware toegevoegd is kunnen de radio switch gaan aanmaken. Klik hiervoor op Create Virtual Sensors (in het donkerblauw).

Maak nu de radio switch aan van het type “Selector Switch” en geef “Radio” als naam van de sensor in:

Ga nu naar het tabblad Switches en klik op “Edit” bij de Selector Switch. Bij Selector Style kies je voor “Select menu”, wijzig de huidige Selector Levels naar radio-zenders naar keuze. Indien je meer dan 3 radio-zenders wilt hebben dan kun je deze één voor één toevoegen bij Level name. Zodra je alle radio-zenders toegevoegd heb klik je op “Save”.

 

Script

Op regel 21, 26 en 31 vind je de streams van de radio-zenders. Als je meer radio-zenders hebt aangemaakt dan moet je deze uiteraard ook in het script toevoegen. Hier of hier vind je URL’s van streams. Ga nu in Domoticz naar Setup > More Options > Events en maak een dzVents script aan met de trigger “All”. Haal alle tekst/code weg en plak onderstaand script erin. Activeer het script en klik op “Save”.

Je kunt nu met de selector switch een radio-zender kiezen. Als je niet meer naar de radio wilt luisteren selecteer je “Off”. Het script zal dan iedere 5 minuten een MP3-bestand afspelen dat voor mensen niet te horen is, zodat wordt voorkomen dat de JBL Go 2 Speaker zichzelf uitzet. Ik heb de speaker aangesloten op een bureaulamp dit een USB-poort heeft, zodat de batterij van de speaker nooit leeg is.

  

 


 

Veel luisterplezier!

 

UPDATE:

Mocht de JBL Go 2 Speaker wel verbinding maken, maar er komt geen geluid uit, volg dan onderstaande stappen:


Er zal nu een leeg bestand geopend worden. Plak onderstaande tekst erin (uiteraard wel het MAC-adres even aanpassen!):


De Raspberry Pi even rebooten:


De muziek-stream van bv. Skyradio start je met onderstaand commando:


Indien je deze stappen hebt uitgevoerd moet je ook in het script de regels met mplayer blablabla  aanpassen naar bovenstaand format.

14 gedachten over “Maak van je Raspberry Pi een bluetooth radio

  • 28 januari 2019 om 12:48
    Permalink

    Leuk idee.!! Maar zou dit ook afgespeeld kunnen worden via Chromecast Audio die in het zelfde netwerkt hangt.?

    Beantwoorden
  • 28 januari 2019 om 21:34
    Permalink

    Precies bovenstaande stappen doorlopen. Configureren binnen Domoticz is ook succesvol. Alleen krijg ik geen geluid. Ook niet als ik via CLI handmatig een stream open middels mplayer.

    Dit is waar het waarschijnlijk door komt:

    Audio only file format detected.
    ==========================================================================
    Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
    AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
    Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
    ==========================================================================
    AO: [pulse] Init failed: Connection refused <<======
    Failed to initialize audio driver 'pulse' <<======
    AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
    Video: no video
    Starting playback…
    A: 12.3 (12.2) of 0.0 (unknown) 2.5% 41%

    Iemand die hier ook last van heeft / een oplossing voor heeft?!

    Beantwoorden
  • 16 februari 2019 om 17:41
    Permalink

    ik heb alles uitgevoerd, ik krijg bluetooth verbinding met mijn speaker maar er komt geen geluid uit

    Is er iemand die mij kan helpen.

    Alvast bedankt met vriendelijke groet

    Rene

    Beantwoorden
    • 17 februari 2019 om 11:28
      Permalink

      Beste Rene,

      Ik had hetzelfde probleem. Onderstaande info heeft het probleem bij mij opgelost!

      —-
      The solution is to set a default config:
      – sudo nano ~/.asoundrc

      And insert:

      pcm.bt_speaker {
         type plug
         slave {
            pcm {
               type bluealsa
               device 88:C6:26:A8:32:C9
               profile “a2dp”
            }
         }
         hint {
            show on
            description “BT Speaker”
         }
      }

      – Waarbij “device 88:C6:26:A8:32:C9” natuurlijk het bluetooth MAC moet zijn van de speaker. Daarna evt een sudo reboot.

      – Daarna de volgende syntax gebruiken voor je radiostreams (voorbeeld met SKYRADIO):

      mplayer -ao alsa:device=bt_speaker -noconsolecontrols http://playerservices.streamtheworld.com/api/livestream-redirect/SKYRADIO.mp3 -volume 100

      Beantwoorden
  • 23 maart 2019 om 21:19
    Permalink

    ik krijg wel geluid als de mplayer wordt gestart vanaf de cli.
    Wanneer ik het probeer via domoticz dan wordt er wel een stream gestart maar heb ik geen geluid…

    Weet iemand waar dat aan kan liggen?

    Alvast bedankt met vriendelijke groet,

    Tjerk

    Beantwoorden
  • 24 maart 2019 om 23:16
    Permalink

    Ik heb het probleem gevonden.
    Domoticz start mplayer als root i.p.v. user pi.
    Door, in het dzVents, voor elk commando ‘sudo -u pi’ te plaatsen werkt het wel.

    os.execute(“sudo -u pi mplayer -noconsolecontrols http://play………

    met vriendelijke groet,

    Tjerk

    Beantwoorden
  • 21 mei 2019 om 10:09
    Permalink

    Ik krijg 1 seconde geluid van de stream en dan gaat hij op pauze? Iemand enig idee hoe dit te verhelpen?

    Starting playback…
    ../../../src/asound/bluealsa-pcm.c:226: Starting
    ../../../src/asound/../shared/ctl-client.c:443: Requesting PCM resume for F8:DF:15:05:C1:A7
    ../../../src/asound/bluealsa-pcm.c:122: Starting IO loop
    ../../../src/asound/../shared/ctl-client.c:219: Getting transport for F8:DF:15:05:C1:A7 type 1
    ../../../src/asound/bluealsa-pcm.c:429: BlueALSA delay: 274.9 ms (13195 frames)
    ../../../src/asound/bluealsa-pcm.c:133: IO thread paused: 4
    A: -0.7 (unknown) of 0.0 (00.0) ??,?% 94%

    MPlayer interrupted by signal 2 in module: unknown

    MPlayer interrupted by signal 2 in module: enable_cache
    ../../../src/asound/bluealsa-pcm.c:266: Stopping
    ../../../src/asound/bluealsa-pcm.c:330: Freeing HW
    ../../../src/asound/../shared/ctl-client.c:417: Closing PCM for F8:DF:15:05:C1:A7
    ../../../src/asound/bluealsa-pcm.c:284: Closing plugin

    Beantwoorden
  • 25 augustus 2019 om 21:57
    Permalink

    Hallo,

    Is er ook een manier om vanuit domoticz het volume te regelen?

    Beantwoorden
  • 9 november 2019 om 14:53
    Permalink

    Ik krijg ook geen geluid op mijn Beats pill
    – sudo nano ~/.asoundrc en script met mijn MAC adress geplaatst en een file bij de testsound gezet en het volgende commando ingegeven, maar er is toch iets misgegaan

    pi@raspberrypi:~ $ mplayer -noconsolecontrols /home/pi/domoticz/Editors.mp3 -volume 100
    MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
    do_connect: could not connect to socket
    connect: No such file or directory
    Failed to open LIRC support. You will not be able to use your remote control.

    Playing /home/pi/domoticz/Editors.mp3.
    libavformat version 58.20.100 (external)
    Mismatching header version 58.12.100
    Audio only file format detected.
    Clip info:

    Beantwoorden
  • 7 januari 2020 om 19:58
    Permalink

    Ik had e.e.a goed werkend totdat ik mijn bluetooth speaker, die ineens op vol volume stond, vanwege de herrie uit moest zetten. Ik heb nu de volgende foutmelding: Audio device got stuck!
    Ik krijg het geluid niet meer aan de praat, steeds dezelfde foutmelding.
    Is er iemand die mij hiermee kan helpen?
    Gr. Piet

    Beantwoorden
    • 8 juni 2020 om 23:53
      Permalink

      Beste Piet,

      deze regel in typen
      sudo service bluetooth restart
      De bluetooth service loopt waarschijnlijk vast.

      Vriendelijke groeten,

      Jos

      Beantwoorden
  • 29 november 2020 om 19:02
    Permalink

    He Hoi
    Leuk project..
    Kan dit mss met elke bt luidspeaker?

    Beantwoorden
  • 24 januari 2022 om 16:28
    Permalink

    Hi, de laatste reactie op dit project is al van enige tijd geleden, dus ik hoop dat iemand deze post nog beheert 🙂 Afgelopen tijd probeer ik mijn Raspberry met Domoticz wat meer te leren kennen en zag deze erg leuke post. Heb sinds kort ook een HiFiBerry DAC+ Standard – RCA aangeschaft en rechtstreeks aangesloten op (actieve) speakers. Hoopte dus radio via Domoticz aan te sturen. Alle stappen uitgevoerd exclusief de Bluetooth speaker acties. Helaas ik krijg “de radio niet werkend” (met recht een beginner op dit gebied). Van alles geprobeerd zoals gemeld in de reacties (sudo -u pi, etc). Als ik het MPLAYER commando direct op de command prompt uitvoer werkt het evenals in een script. Echter vanuit Domoticz, geen geluid. Het dsVentz script wordt uitgevoerd….. heeft iemand een tip waar ik de oorzaak moet zoeken of mee kan vinden?

    Beantwoorden

Laat een antwoord achter aan Jos Reactie annuleren

Het e-mailadres wordt niet gepubliceerd.