chrid / node-raumkernel Goto Github PK
View Code? Open in Web Editor NEWA nodeJs lib for controlling the raumfeld multiroom system
License: MIT License
A nodeJs lib for controlling the raumfeld multiroom system
License: MIT License
Create/Update/Delete native RF "Playlists" as given in the "My Playlists" node
create a combined state object for the zones which does contain the zone configuration and some renderer state information like the current mediaItem on the zone aso...
Hello,
first of all, thanks for your great library!
I encountered the following issue:
When trying to access the currently playing information, e.g. CurrentTrackMetaData
of a renderer, the rendererState is not up to date. I attached an example below, after some time, the rendererState
changes.
Is there a way to reliably access information within rendererState
? Any event I potentitally can rely on to get information about the currently playing media of a renderer?
I observed similar behaviour on the combinedZoneStateChanged
event, there as well _combinedZoneState.zones[2].rendererState
changes after some time.
Thank you for your help!
Code example 1, renderer state different after some time:
let RaumkernelLib = require('node-raumkernel');
let raumkernel = new RaumkernelLib.Raumkernel();
const testRendererUDN = 'uuid:e570d28c-172f-4aa9-9a91-aab8d974a9b0';
raumkernel.init();
raumkernel.on('systemReady', (_ready) => {
const renderer = raumkernel.managerDisposer.deviceManager.mediaRenderersVirtual.get(testRendererUDN);
console.log(JSON.stringify(renderer.rendererState));
setTimeout(() => {
console.log(JSON.stringify(renderer.rendererState)); // different output
}, 1000);
});
Code example 2, event payload differs after some time:
raumkernel.on('combinedZoneStateChanged', _combinedZoneState => {
console.log(JSON.stringify(_combinedZoneState.zones[2].rendererState));
setTimeout(() => {
console.log(JSON.stringify(_combinedZoneState.zones[2].rendererState)); // different output
}, 1000);
});
rediscovering does not work for bonjour discover.
rediscovering does not work for SSDP discover.
I may have to switch to another library?!
Generate the ability to load media lists in defined (small) parts.
For this there should be a general callback (no promise of course) which will occur whenever some more data for a list is ready.
load Methods should return a promise and resolve when complete list is loaded (but of course the method triggers the general callback of "partially" loading) and does have own anonymus callback
e.g
loadList(_objectId, _itemPackageCount = 20, _callback)
callback(_mediaItemdata, _start, _end)
{
...
}
we have to create and update the media list for each renderer. That happens when the "CurrentTrackUri" is changeing. Then we may have to recreate the list. The MediaServer-ContentManager will inform when data in the zone list changes. See #10
Add searching to media server.
But i have the problem that i cant sniff the xml adn upnp commands due my damn router.
So I have no ide how to achieve this...
Be sure the "online" state of the room on the renderer state will be set correctly.
Currently its always set to "true".
We do achieve this bei checking if room renderer is online when renderer state is beeing created or on updateing the state when renderer is going online/offline
the "rendererStateKeyValueChanged" changed event is not beeing called on unique virtual renderer states (such as romm transition states aso).
We have to change this so they will be called to, but should we provide the room Object as value or inroduce a "roomUDN" parameter to the "rendererStateKeyValueChanged" event?
I'm not sure about this.
I do not owe a soundbar so i can not investigate this. I have to ask the RF developers or someone else has to tell me!
Hi,
I finally started my implementation of node for node-red using your raumkernel to control some aspects of my Raumfeld system with Apples "Home" app. The real dependency is Node-Red -> MQTT Mosquitto -> homebridge-mqtt -> homebridge -> Home...
After some starting problems I think I got the trick how to achvie what I want so I started to implement my first nodes.
But I had one problem with the logger especially with this line:
node-raumkernel/lib/lib.logger.js
Line 64 in 0dd77eb
I think best would be to extend the logger creation with some addtional parameters to be able to select which logger end points should be created?
I just started testing how I can use your raumkernel for implementing nodes for node-red to control several aspects of my raumfeld system with node-red in connection with MQTT and homebridge and Apple Home.
It works so far but when I monitor some of the core events, on top the systemReady event, I always get all the stuff I expect when I first connect to a system like systemReady and host found and renderers found when I change the config of my system with the normal iOS app.
Is that an intended behaviour?
Because this seems not really right to me. When I monitor the systemReady state and I remove a speaker from a zone then the system is not ready and then ready again and all the renderers are rediscovered. This makes it hard to bind action to those events because they are triggered too often.
I thought this was because of my noob implementation of my first node, just started using js and node and that stuff. But then I tried just the test.js you provide and this does all the same I see with my implementation: events firing when I just remove a speaker to a zone or remove it it seems the whole kernel sets back as if it just connected again to the host...
Create "confirm" option eg. to be sure if you set play on a renderer it will return only if state has changed to play
With SetAvTransportUri we can set a non content directory uri to the Zone renderer
I have to test this again in theis kernel
So working with setting and getting volumes I based my work on the example in the README.
But as far as I can tell this does not work:
raumkernel.on("rendererStateKeyValueChanged", function(_mediaRenderer, _key, _oldValue, _newValue, _roomUdn){
if(key=="Volume")
console.log("Volume on " + _mediaRenderer.name() + " changed to " + _newValue.toString());
})
The parameter is "_key" but the function then uses "key".
The next example has the same problem.
Also the event does never pass "_roomUdn". I dug into the code and it is missing everywhere except at the very bottom. Here you set the room UDN on the virtual renderer:
node-raumkernel/lib/lib.raumkernel.js
Line 267 in 5f5c359
Finally I found that what the documentation says is not correct: "The _mediaRenderer is the virtual renderer in case if _roomUdn is filled"
Virtual media renderers do not give "Volume" as the key but "volume". Just normal raumfeld renderes emit the key with a capital "V".
I didn't create a PR for this because I am not absolutely sure how to fix this properly keeping the project's goals and design as I have no complete understanding of the whole project, just of some parts for now...
The New Speaker S will not be recognized by the system
loadUri should maybe set some dummy metadata. I have to check if this works
Add mediaList manager and functions to browse the contentDirectory
Consider all available types of media item
Currently only following are supported:
I want to have a device to play a playlist. That works fine also assigning it to a new zone if it has non yet works. But I have a problem if the device is in standby.
I used the "leaveStandby" function with the promise and when that succeeds I Ioad the playlist. But it seems to be a bit too fast for the device. I leaves standby but does not load the playlist.
If I debug that stuff it works because just that second I wait to execute the playlist load seems to be enough but in normal is does not.
So I could add some "waitTimeout" function which is called when the promise from "leaveStandby" executes and wait for one second and the load the playlist.
I just wanted to ask if there is something you can do in the kernel because all other promises I use just work out and the next thing is done when the previous one finished but in this case...
I am searching how I can get a room renderer.
I use getRoomObjectFromMediaRendererUdnOrName
to to get the "RoomObject" for a specified name. But that is not the renderer.
For other things after that I use the roomUdn
from that object to add that room to a virtual media renderer aka a zone.
I know must things should be done with that virtual thing, but for what I wanna do I need the room renderer to set the volume or mute in that room. If the room is in a virtual I can use the function of the virtual to set that for a room udn. But not if the room is not in a virtual.
The thing is that I want to add a room to a virtual but set its volume before adding it so that the volume does not overshoot over something.
Is that possible? For now I would be thankful for a hint in which array of the kernel I will find this, a function to do this seems not to exist. I browsed all the stuff but have no real idea what would be best to get this...
Hi,
I experience some strange behavior using node-raumkernel.
After running Raumkernel multiple hours in the background (often around 12-24 hours), all renderers get removed from my Raumfeld devices. This results, amongst other things, in the Raumfeld App not being usable anymore. (RFUPnP.RFUPnP Error-1)
The only option to recover from this state is to reboot the Raumfeld host.
I have tracked the event down in the logs, having LogLevel 4 set.
My guess is that its happening below at line 64 (Mar 21 11:12:03 )
Comparing to the events before, I would expect a log-line
AVTransport subscription callback triggered on device 'Wohnzimmer'
to appear, but instead this line appears:
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] Media Item on renderer changed
at this point in time, no other interaction happened with the devices as no one was at home.
Do you have any idea what the reason for this could be?
I use the standard node-raumkernel instance running in a docker container on a raspberry;
Thanks for your help!
Mar 21 10:26:59 homeassistant addon_f97079c8_spixradio[480]: '
Mar 21 10:26:59 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:26:59] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Next,Shuffle' to 'Play,Next,Shuffle'
Mar 21 10:26:59 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:26:59] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 10:26:59 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:26:59] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 10:26:59 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:26:59] [MediaRenderer|Wohnzimmer] Set new updateId to: 913229
Mar 21 10:26:59 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:26:59] [MediaRenderer|Wohnzimmer] Media Item on renderer changed
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:00] [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:42:00] [MediaRenderer|Wohnzimmer] CurrentTrackURI has changed from 'http://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=641982s0%230%23775qsn3qp0s6037s0rpr2po992orr036%23gharva&aw_0_1st.playerid=tunein&amsparams=playerid:tunein;skey:1679393520' to ''
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:42:00] [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '<?xml version="1.0"?>
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" lang="en"><item parentID="0/Playlists/MyPlaylists/Styrbar" id="0/Playlists/MyPlaylists/Styrbar/1763" restricted="1" refID="0/RadioTime/Search/s-s132954"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=mp3%2Cogg%2Caac&serial=d0%3A5f%3Ab8%3Ac7%3A55%3A20&id=s132954&c=ebrowse</raumfeld:ebrowse><dc:title>FluxFM</dc:title><upnp:albumArtURI dlna:profileID="JPEG_TN">https://cdn-radiotime-logos.tunein.com/s132954g.png</upnp:albumArtURI><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e65940766&sid=s132954&formats=mp3,ogg,aac&partnerId=7aJ9pvV5&serial=d0:5f:b8:c7:55:20</res></item></DIDL-Lite>
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: ' to ''
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:42:00] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Play,Next,Shuffle' to 'Next,Shuffle'
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:00] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:00] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 10:42:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:00] [MediaRenderer|Wohnzimmer] Set new updateId to: 913230
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] CurrentTrackURI has changed from '' to 'http://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=641989s8%230%23775qsn3qp0s6037s0rpr2po992orr036%23gharva&aw_0_1st.playerid=tunein&amsparams=playerid:tunein;skey:1679395320'
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '' to '<?xml version="1.0"?>
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" lang="en"><item parentID="0/Playlists/MyPlaylists/Styrbar" id="0/Playlists/MyPlaylists/Styrbar/1763" restricted="1" refID="0/RadioTime/Search/s-s132954"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=mp3%2Cogg%2Caac&serial=d0%3A5f%3Ab8%3Ac7%3A55%3A20&id=s132954&c=ebrowse</raumfeld:ebrowse><dc:title>FluxFM</dc:title><upnp:albumArtURI dlna:profileID="JPEG_TN">https://cdn-radiotime-logos.tunein.com/s132954g.png</upnp:albumArtURI><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e65940766&sid=s132954&formats=mp3,ogg,aac&partnerId=7aJ9pvV5&serial=d0:5f:b8:c7:55:20</res></item></DIDL-Lite>
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: '
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Next,Shuffle' to 'Play,Next,Shuffle'
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:02] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] Set new updateId to: 913231
Mar 21 10:42:02 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:02] [MediaRenderer|Wohnzimmer] Media Item on renderer changed
Mar 21 10:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 10:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:00] [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:57:00] [MediaRenderer|Wohnzimmer] CurrentTrackURI has changed from 'http://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=641989s8%230%23775qsn3qp0s6037s0rpr2po992orr036%23gharva&aw_0_1st.playerid=tunein&amsparams=playerid:tunein;skey:1679395320' to ''
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:57:00] [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '<?xml version="1.0"?>
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" lang="en"><item parentID="0/Playlists/MyPlaylists/Styrbar" id="0/Playlists/MyPlaylists/Styrbar/1763" restricted="1" refID="0/RadioTime/Search/s-s132954"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=mp3%2Cogg%2Caac&serial=d0%3A5f%3Ab8%3Ac7%3A55%3A20&id=s132954&c=ebrowse</raumfeld:ebrowse><dc:title>FluxFM</dc:title><upnp:albumArtURI dlna:profileID="JPEG_TN">https://cdn-radiotime-logos.tunein.com/s132954g.png</upnp:albumArtURI><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e65940766&sid=s132954&formats=mp3,ogg,aac&partnerId=7aJ9pvV5&serial=d0:5f:b8:c7:55:20</res></item></DIDL-Lite>
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: ' to ''
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:57:00] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Play,Next,Shuffle' to 'Next,Shuffle'
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:00] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:00] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 10:57:00 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:00] [MediaRenderer|Wohnzimmer] Set new updateId to: 913232
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] CurrentTrackURI has changed from '' to 'http://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=641989s8%230%23775qsn3qp0s6037s0rpr2po992orr036%23gharva&aw_0_1st.playerid=tunein&amsparams=playerid:tunein;skey:1679395320'
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '' to '<?xml version="1.0"?>
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" lang="en"><item parentID="0/Playlists/MyPlaylists/Styrbar" id="0/Playlists/MyPlaylists/Styrbar/1763" restricted="1" refID="0/RadioTime/Search/s-s132954"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=mp3%2Cogg%2Caac&serial=d0%3A5f%3Ab8%3Ac7%3A55%3A20&id=s132954&c=ebrowse</raumfeld:ebrowse><dc:title>FluxFM</dc:title><upnp:albumArtURI dlna:profileID="JPEG_TN">https://cdn-radiotime-logos.tunein.com/s132954g.png</upnp:albumArtURI><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e65940766&sid=s132954&formats=mp3,ogg,aac&partnerId=7aJ9pvV5&serial=d0:5f:b8:c7:55:20</res></item></DIDL-Lite>
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: '
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Next,Shuffle' to 'Play,Next,Shuffle'
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:01] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] Set new updateId to: 913233
Mar 21 10:57:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 11:57:01] [MediaRenderer|Wohnzimmer] Media Item on renderer changed
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:01] [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:12:01] [MediaRenderer|Wohnzimmer] CurrentTrackURI has changed from 'http://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=641989s8%230%23775qsn3qp0s6037s0rpr2po992orr036%23gharva&aw_0_1st.playerid=tunein&amsparams=playerid:tunein;skey:1679395320' to ''
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:12:01] [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '<?xml version="1.0"?>
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" lang="en"><item parentID="0/Playlists/MyPlaylists/Styrbar" id="0/Playlists/MyPlaylists/Styrbar/1763" restricted="1" refID="0/RadioTime/Search/s-s132954"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=mp3%2Cogg%2Caac&serial=d0%3A5f%3Ab8%3Ac7%3A55%3A20&id=s132954&c=ebrowse</raumfeld:ebrowse><dc:title>FluxFM</dc:title><upnp:albumArtURI dlna:profileID="JPEG_TN">https://cdn-radiotime-logos.tunein.com/s132954g.png</upnp:albumArtURI><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e65940766&sid=s132954&formats=mp3,ogg,aac&partnerId=7aJ9pvV5&serial=d0:5f:b8:c7:55:20</res></item></DIDL-Lite>
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: ' to ''
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:12:01] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Play,Next,Shuffle' to 'Next,Shuffle'
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:01] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:01] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 11:12:01 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:01] [MediaRenderer|Wohnzimmer] Set new updateId to: 913234
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] CurrentTrackURI has changed from '' to 'http://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=64199101%230%23775qsn3qp0s6037s0rpr2po992orr036%23gharva&aw_0_1st.playerid=tunein&amsparams=playerid:tunein;skey:1679397121'
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '' to '<?xml version="1.0"?>
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:pv="http://www.pv.com/pvns/" lang="en"><item parentID="0/Playlists/MyPlaylists/Styrbar" id="0/Playlists/MyPlaylists/Styrbar/1763" restricted="1" refID="0/RadioTime/Search/s-s132954"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=mp3%2Cogg%2Caac&serial=d0%3A5f%3Ab8%3Ac7%3A55%3A20&id=s132954&c=ebrowse</raumfeld:ebrowse><dc:title>FluxFM</dc:title><upnp:albumArtURI dlna:profileID="JPEG_TN">https://cdn-radiotime-logos.tunein.com/s132954g.png</upnp:albumArtURI><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e65940766&sid=s132954&formats=mp3,ogg,aac&partnerId=7aJ9pvV5&serial=d0:5f:b8:c7:55:20</res></item></DIDL-Lite>
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: '
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Next,Shuffle' to 'Play,Next,Shuffle'
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:03] [ZoneManager] Get room information object for: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] Room: uuid:93729fff-e1e7-4ab6-a032-d368cd1ed6c7: Set room renderer(s) ["uuid:2107070d-7dce-4bc3-828d-d24b7ca8767d"] online to :true
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] Set new updateId to: 913235
Mar 21 11:12:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:12:03] [MediaRenderer|Wohnzimmer] Media Item on renderer changed
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Device list request returns with updateId: '1098085778'
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Device list changed
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Cleaning up devices
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Cleaning up mediaServers
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Cleaning up virtual renderers
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [MediaRenderer|Wohnzimmer] Remove service subscriptions for device 'Wohnzimmer'
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-1][21.3.2023, 12:26:22] [DeviceManager] Virtual media renderer removed: Wohnzimmer
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Cleaning up renderers
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.98:55528/2107070d-7dce-4bc3-828d-d24b7ca8767d.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.121:58867/40ec5af4-284b-4dda-8f3c-857b2e67f4a8.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.121:59876/4fc35991-f606-42a2-a554-856c2e8dd55e.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.121:57695/5dc5701c-bbf2-4ca5-a246-f11db4a2ef7d.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.121:55878/6249847f-1f7d-4a1b-981b-9e0e9c775e46.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.121:58828/846851e1-0ad8-4664-b38a-5656ef1fb4ee.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.98:55022/a4fc1476-c164-4568-8de7-f3d7dcaf2398.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.23:57543/ad088247-2327-4545-8d11-ff573edf1bc3.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.121:54215/d0bb4d3f-ede7-46cc-8ae8-71bf9a07d9b1.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Get device description from http://192.168.178.23:57313/f3734234-b01b-4744-b594-2617a176cbe4.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Getting device list from http://192.168.178.121 with updateId: 1098085778
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.98:55022/a4fc1476-c164-4568-8de7-f3d7dcaf2398.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Device 'Teufel Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.23:57543/ad088247-2327-4545-8d11-ff573edf1bc3.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Device 'Teufel Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.98:55528/2107070d-7dce-4bc3-828d-d24b7ca8767d.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Media renderer 'Speaker Wohnzimmer' found
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Raumfeld media renderer 'Speaker Wohnzimmer' is useable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.23:57313/f3734234-b01b-4744-b594-2617a176cbe4.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Media renderer 'Speaker Schlafzimmer' found
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Raumfeld media renderer 'Speaker Schlafzimmer' is useable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.121:58867/40ec5af4-284b-4dda-8f3c-857b2e67f4a8.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Device 'Raumfeld ConfigDevice' of type 'urn:schemas-raumfeld-com:device:ConfigDevice:1' (undefined) not usable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.121:57695/5dc5701c-bbf2-4ca5-a246-f11db4a2ef7d.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Device 'Teufel Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.121:58828/846851e1-0ad8-4664-b38a-5656ef1fb4ee.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Media renderer 'Speaker Arbeitszimmer' found
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Raumfeld media renderer 'Speaker Arbeitszimmer' is useable
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-0][21.3.2023, 12:26:22] [MediaRenderer|Wohnzimmer] Error: UNSUBSCRIBE error
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-0][21.3.2023, 12:26:22] [MediaRenderer|Wohnzimmer] Error: UNSUBSCRIBE error
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:26:22] [DeviceManager] Got device description from http://192.168.178.121:54215/d0bb4d3f-ede7-46cc-8ae8-71bf9a07d9b1.xml
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Media server 'Raumfeld MediaServer' found
Mar 21 11:26:22 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-3][21.3.2023, 12:26:22] [DeviceManager] Media server 'Raumfeld MediaServer' is useable
Mar 21 11:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 11:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 12:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 12:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 13:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 12:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 13:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 13:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 14:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 13:42:03 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 14:42:03] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 14:42:05 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 15:42:05] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 14:42:05 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 15:42:05] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 15:42:07 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 16:42:07] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 15:42:07 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 16:42:07] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 16:42:05 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 17:42:05] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 16:42:05 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 17:42:05] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 17:42:05 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 18:42:05] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 17:42:05 homeassistant addon_f97079c8_spixradio[480]: [RAUMKERNEL][level-4][21.3.2023, 18:42:05] ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: tried to get non-virtual renderer for udn. uuid:386ee664-efcc-44da-b468-c359a9bfe44c undefined
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: Could not load zone renderer for UDN uuid:386ee664-efcc-44da-b468-c359a9bfe44c
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: file:///app/app/RaumkernelHelper/RaumkernelHelper.js:385
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: let rendererUDNs = _mediaRendererVirtual.getRoomRendererUDNs();
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: ^
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]:
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: TypeError: Cannot read properties of undefined (reading 'getRoomRendererUDNs')
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: at RaumkernelHelper.leaveStandby (file:///app/app/RaumkernelHelper/RaumkernelHelper.js:385:50)
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: at RaumkernelHelper.playFavourite (file:///app/app/RaumkernelHelper/RaumkernelHelper.js:335:14)
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]:
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: Node.js v19.8.1
Mar 21 18:39:26 homeassistant addon_f97079c8_spixradio[480]: error Command failed with exit code 1.
Add event when device list was filled for the fiirst time and the zone cinbfiguration is present too
Hello,
I have two seperate VLANs/subnets. Where the raumserver is one (ip range 10.10.20.x/24) and the Raumfeld Host is in another subnet (10.10.10.x/24). As mDNS (used by bonjour) by default only looks for devices (via multicast) in its own subnet you have to create some sort of bridge between those two subnets - the mDNS-repeater (the repeater runs on the router an has the IP 10.10.10.1 and 10.10.20.1). It will basically just forward (repeat) mDNS lookups as well as responses from one subnet to the other. In this setup an mDNS/bonjour response looks like so:
{
"addresses": [
"10.10.10.106"
],
"host": "stereo-l.local",
"referer": {
"address": "10.10.20.1",
"family": "IPv4",
"port": 5353,
"size": 203
},
"port": 47365,
...
}
The correct IP of the host is the one at the top (10.10.10.106). But in the code the IP from the referer is used, which in this case is the repeater and not the actual Raumfeld device. Hence "connecting" to the device fails.
Not sure if there are cases tho were using an address from the addresses-array might not work or where those are wrong. But would it make sense to just change the code to the following?
self.deviceFound(_service.addresses[0], _service.fqdn, _service, "BONJOUR")
Hello @ChriD,
what is the license for this package?
I would like to use node-raumkernel within a Mac App for controlling the Raumfeld Speakers. I plan to publish the code open source, but I need to publish binaries as well to make it easy for the users to use the Software.
Can I use node-raumkernel for that?
It would be great if you could add a license to this repository. (You can find descriptions here if you want: https://choosealicense.com)
Best
Uli
We have to consider the containerUpdateId state variable on the content directory of the media server (subcscribe).
Whenever we get a list id there we have to inform the mediaList manager that the list has updated and if the media list manager has the list in cache, he will go for an update and willemit the list afterwards. If the list is not in cache we do not have to do anything
Add the ability to create and load shufffle playlists
Create a nice Icon for the NPM package
I stumbled over this function:
node-raumkernel/lib/lib.discoverHostDevice.js
Lines 103 to 110 in a95e14e
Add ability to switch media renderes to lineIn mode
I have problems understanding how I can handle unassigned rooms and their devices.
This happens when I remove a room from a zone in the app.
The room is then unassigned and has no virtual renderer I can select.
I find the renderer on the zoneManager if I getRendererUdnsForRoomUdnOrName with the room name.
How is it possible to reactivate that room with the raumkernel?
Sometimes some data of the media item on the renderer is not always up to date.
I think this pops up when old states override new ones (UPNP messages)
Hi, impressive work, Thanks!
I have a problem of understanding.
I would like to apply loadUri to a specific device.
LoadUri is only available for virtual renderers.
How can I make a media renderer a virtual media renderer with raumkernel?
Alow standby requests for the whole system at once
We do want to create or modify the zone playlists.
This can be done by creating "queues"
queues can be created and modified in the "0/Zones" and "0/My Playlists" objects
Therefore we do need functions like:
CreateQueue
AddToQueue(
RemoveFromQueue
MoveInQueue
RenameQueue
???
mediaRenderer.SetQueue(_queueId)
mediaRenderer.GetQueueId(_queueId)
Should we create a queueManager?
Since an update from March 10 I see the above error with the following stacktrace:
Error: Text data outside of root node.
Line: 4
Column: 17
Char:
at error (/root/work/node_modules/sax/lib/sax.js:666:10)
at strictFail (/root/work/node_modules/sax/lib/sax.js:692:7)
at SAXParser.write (/root/work/node_modules/sax/lib/sax.js:1035:15)
at XMLParser.feed (/root/work/node_modules/elementtree/lib/parsers/sax.js:48:15)
at ElementTree.parse (/root/work/node_modules/elementtree/lib/elementtree.js:271:10)
at Object.parse (/root/work/node_modules/elementtree/lib/elementtree.js:584:8)
at parseEvents (/root/work/node_modules/node-raumkernel/lib/lib.external.upnp-device-client.js:423:16)
at /root/work/node_modules/node-raumkernel/lib/lib.external.upnp-device-client.js:340:22
at ConcatStream. (/root/work/node_modules/concat-stream/index.js:36:43)
at emitNone (events.js:91:20)
at ConcatStream.emit (events.js:188:7)
at finishMaybe (/root/work/node_modules/readable-stream/lib/_stream_writable.js:513:14)
at endWritable (/root/work/node_modules/readable-stream/lib/_stream_writable.js:523:3)
at ConcatStream.Writable.end (/root/work/node_modules/readable-stream/lib/_stream_writable.js:493:41)
at IncomingMessage.onend (_stream_readable.js:511:10)
at Object.onceWrapper (events.js:293:19)
Add manager for saving and loading renderer states and zone configurations
So I get this error trace when I drop each room with dropRoomFromZone and monitor "rendererStateKeyValueChanged".
I think this is because then there are no zones anymore:
TypeError: Cannot read property 'length' of undefined
at ZoneManager.getRoomObjectFromMediaRendererUdnOrName (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.manager.zoneManager.js:461:93)
at ZoneManager.getRoomNameForMediaRendererUDN (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.manager.zoneManager.js:391:28)
at UPNPMediaRendererRaumfeld.roomName (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.raumfeld.js:19:49)
at Raumkernel.handleEvent (/home/node/.node-red/node_modules/node-red-contrib-raumfeld/nodes/raumfeld-room-play-state-changed.js:18:43)
at Raumkernel.emit (events.js:164:20)
at Raumkernel.onRendererStateKeyValueChanged (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.raumkernel.js:268:14)
at DeviceManager.<anonymous> (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.raumkernel.js:99:158)
at DeviceManager.emit (events.js:159:13)
at UPNPMediaRendererRaumfeld.<anonymous> (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.manager.deviceManager.js:452:22)
at UPNPMediaRendererRaumfeld.emit (events.js:159:13)
at UPNPMediaRendererRaumfeld.updateRendererStateObject (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.js:152:22)
at UPNPMediaRendererRaumfeld.updateRendererState (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.js:121:14)
at UPNPMediaRendererRaumfeld.onRenderingControlSubscription (/home/node/.node-red/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.js:218:14)
at /home/node/.node-red/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.js:109:19
at /home/node/.node-red/node_modules/node-raumkernel/lib/lib.external.upnp-device-client.js:431:13
at Array.forEach (<anonymous>)
So playing with my node-red-contrib project and using it for a week now in my Home environment I realised that I might need something like a request broker managing all the calls to the kernel. Actions like adding a renderer to a zone or creating a new zone or dropping renderers from zones take "a lot of time". I managed to circumvent this on my nodes where I call an action on multiple room renderers at once by wating on the individual async calls and execute the next just when the last has finished but I have problems if I call actions against the kernel coming from different nodes at once. This can happen if I have multiple action and trigger them from the Home app or if I combine switches in the home app.
Thinking about creating an own broker where I register my nodes and queue the actions and the broker takes care of executing them all in the order they arrived I came to the conclusion that it might be better if the kernel would support this right away.
How do you handle this in your raumserver? Do you allow to send multiple requests at once or do you queue them there and send the call to the raumkernel in order? Or is that not possible with the raumserver?
Update Wiki
Introduce mediaItem object for media lists.
Additionally the each renderer should have an upToDate media Item on its object.
Use bonjour/zeroconf protocol to search for RF Host and if not found then use SSDP
The station buttons are defined in the content directory as far as i researched. (0/Renderers/[rendererUDN]/StationButtons)
Maybe we can change them with the content directory methods?
Are there some?
In fact we may add the request port for the host and some nameing conventions.
I have to reflect would be needed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.