I am looking at integration my Raumfeld / Teufel speakers into HA. I did some research and found out that Teufel does not offer a specific way of controlling its devices, but has implemented the DLNA standards to work with the devices outside its own apps.
I am not an expert at DLNA and how to get this working, even after reading lots of posts here and there, this is why I hoped someone has already figured this out.
What I try to accomplish is basic control, like pause and play.
Also triggering to play a jingle with an automation would be great, and if even possible, to let some start a spotify playlist on a specific box with a click (but this is “a dream comes true” scenario).
Consider taking a look at teufel_raumfeld. It hasn’t been extensively tested and doesn’t have all the features yet, but it should offer what you’re looking for.
Now, I just need a documentation how to use it so I can start testing
Btw. is this integration also working if HA is not in the same subnet as the teufel/raumfeld devices because this would be the case in my setup.
I will see to write some documentation snippets soon. In my setup the speaker reside also in a separate VLAN - hence i have not implemented (yet) discovery but rely on providing the address of the Raumfeld host when adding the integration
ok too much of a nutshell
what needs to be added to the configuration.yaml
installing was easy, but after having it installed whats next. I think a more step by step approach would benefit most of us or just me
Ok I got further, by RTFM
I do have my 3 raumfeld devices listet in the integration added.
I also added the media control cards, but the host seems “empty” and the other two also do not show up much of information.
Update
It is needed to open up some ports if a firewall is in between, which ones I do not know right now but I see traffich hitting
TCP 53618
TCP 47365
Now the “master” is working, the other two are still more or less “grey”. Interesting fact, if something is getting started with spotify connect on the raumfeld devices, the media player is grey and does not allow me to change volume or anything else.
If I start a radio station, even the other devices show me what is happening and let me control them.
Would be great if media control like volume ist also working if something is streamed via spotify, or is this on purpose to use different media control cards then. the one with spotify and the other if not using spotify on the boxes ?
If the Media Player Card is just showing the entity name but no buttons (like in the first image), then this is indicating an error, resp. missing implementation. Feeding incomplete data for playing may for instance result in such behavior. Playing a valid media configuration via the Raumfeld App usually unblocks such cases again.
The web service port is static. The UPNP/DLNA control interfaces for the various devices to control are dynamic though.
So far I have only tested successfully with Tidal, Samba shares and TuneIn.
Good, I figured out the one without a button and it went away after I extended the firewall ruleset.
Spotify seems not to show up in the media card linked to the devices, I must use the media card with the spotify entity linked to it (which is kinda stupid to handle).
What also would be great to know / understand is how to create rooms and use them with HA, some of my ideas are to start a spotify playlist to a group of two speaker.
Another playlist only starts on one box (room with a single speaker)
And how to start a Radio Stream on another speaker.
I think this would allow most people to start working with your integration on a daily basis
Rooms are usually created, resp. extended during setup of a new speaker. Although, with speaker groups you can achive what is described. Consider your setup of three rooms A, B and C each with one speaker. You can group rooms A and B to play a playlist and play on the remaining room C a radio stream. To add the group of speaker A and B to Home Assistant just created it via the Raumfeld app and reload the integration.
As for Spotify, in case you’re referring to the media browser, then it is (currently) limited to “Demo tracks” and local music resources.
Well, I don’t have Spotify available hence haven’t implemented it. Iirc the implementation is also different to e.g. Tidal as the control is still with the Spotify app which is just using the Teufel speakers as a backend. However, I don’t know finally - as I don’t have it. I just think to remember that this was one of the main reasons I once decided for Tidal and against Spotify.
i do have a question of my own in terms of this integration: do you require a Teufel Streamer for it to work?
My setup is rather simple: i only have 2 Teufel One S, in two different rooms. in such a small setup, one of the two speakers (the one that was set up first) has the job of distributing and managing both speakers. only larger setups require a dedicated streamer. My setup works well, with the app.
However, when i enter the IP address of the first speaker during setup, the integration does not continue and ends up showing an error. I can ping the speaker from Home Assistant, they are in the same network. But the integration never gets to the point where it is supposed to execute the setup routine.
Unless I misunderstand, it should actually work as you describe - the first speaker acting as Raumfeld host.
There is a not unlikely possibility that you’re facing a bug. I suggest to file an issue and including debug log information and we’ll follow-up on it there.
Before you do so though, it might be worth to double check whether you’re still facing the issue with release 0.1.8-alpha, what is the current version at the time of writing this comment.
Thank you for your feedback.
Here is an interesting observation: i had not checked my home assistant for 2 days, and when i did so today it showed me the integration was working, but with only one device (and 4 entities). it was the “main-speaker” that is supposed to play host to my second speaker. i was very excited and added the media card in Lovelace, which seems to have worked. However, when i tried to play something, i got an error (could not connect, i believe).
and now the integration tells me “not loaded”.
i rebooted several times, reloaded the integration, no change. 1 device and 4 entities show up, but as “mot loaded”.
i tried to update the integration but cannot find this option anywhere.
i also tried to find the log for this integration, without success. all i found was several entries in Configuration/Logs:
Logger: hassfeld
Source: /usr/local/lib/python3.8/site-packages/hassfeld/common.py:36
First occurred: 7:23:13 PM (3 occurrences)
Last logged: 7:27:51 PM
Long-polling failed with error: <class 'TypeError'>list indices must be integers or slices, not str
Logger: homeassistant.bootstrap
Source: bootstrap.py:409
First occurred: 7:23:33 PM (4 occurrences)
Last logged: 7:26:33 PM
Waiting on integrations to complete setup: teufel_raumfeld
If you tell me where to find further information, and how to update, i can certainly provide that.
Let’s start by checking your integration is on a current version.
In the assumption the integration was installed via HACS, you have to update it there (HACS → Integrations → Teufel Raumfeld). Normally it should indicate there, if updates are available. The current version of 0.1.8a is commit “66b77c9” (The integration does currently show the commit instead of a version/release tag).
Amazing integration, it has been breathing new life into my Raumfeld speaker setup!
I would love to write an automation to my the One S speakers in the kids’ room work as an alarm. What parameters do I use to have it turn on to a particular radio station (Radio Teddy in my case)? How do I call specific music services such as Tidal or TuneIn and specific playlists/artists/stations within said services? Sorry if there’s documentation that I’ve overlooked.
It seems that development of this integration has stopped. I also would like to use this integration with my Raumfeld Speakers.
But for now there are a few errors and problems. So I decided to uninstall and wait until we get some reaction from the developer.