Coder Social home page Coder Social logo

chrid / node-raumserver Goto Github PK

View Code? Open in Web Editor NEW
58.0 25.0 14.0 201 KB

A nodejs module/server to control the raumfeld multiroomsystem via HTTP-Requests

JavaScript 88.38% HTML 10.51% CSS 1.11%
node-raumserver raumfeld raumkernel raumserver node-raumkernel

node-raumserver's People

Contributors

chrid avatar davie2000 avatar dependabot[bot] avatar gahujipo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-raumserver's Issues

Add LoadContainer Request

LoadContainer
With this request you can load a container id into a zone playlist
A container id is a id which is used by a upnp media server to define for example playlists, albums, artists aso.
/raumserver/controller/loadContainer?id=Wohnzimmer&value=[urlencoded container id]
/raumserver/controller/loadContainer?id=Wohnzimmer&value=0%2FFavorites%2FMyFavorites%2F20433

add a save for loaduri playing

hello,

i did finish now the migration from tunein to my local radio stations to be not dependent on the internet nor a 3rd party service.

i have one issue now - i can not save the playing streams within playlists or on the device's buttons.
so it would be nice to have a request - so i can store my own radio stations on the device and within playlists.

if try this through the app - the playlist is generated but empty...
if i try to save the playing stream on a button (f.ex. oe3 on 3) i get the sound for nothing assigned...

any idea if this will be possible?

thanks
holli

node-raumserver direkt auf einem Raumfeld-Gerät installieren

Hallo!

Wird es eigentlich auch möglich sein, den neuen node-raumserver direkt auf einem Raumfeld-Gerät zu installieren?

Hintergrund ist folgender: Ich möchte Raumfeld über meinen Echo Dot in Verbindung mit dem AutoVoice Skill (Tasker Plugin für Android) steuern. Da wäre es gut wenn der Raumserver auf einem Gerät läuft, welches eh 24/7 eingeschaltet ist.

Außer meinem Raumfeld One S sind das bei mir nur eine Synology Diskstation 211j und diverse Android Geräte. Für das Synology gibt es für den Prozessor nur ein ganz veraltetes node.js Paket, 0.10 glaube ich.
In Android kann man mit Termux das node.js Paket installieren,, allerdings auch nur Version 6.10.2.

Vielen Dank!
Stefan

HowTo install node-raumserver on Raspberry Pi 3?

Hallo @ChriD ,

as the C++-raumserver will be discontinued, is there any HowTo guide for newbies in NodeJS and Raspberry how to install the node-raumserver on a Raspberry PI 3? I'm very eager to use this tool but I have some issues installing the C++-raumserver on my RP3 (with runing KNX IP gateway and openhab2 on it) and don't want to invest here more time.

Thanks
Dom-Perignon

async fadeToVolume... SyntaxError: Unexpected identifier starting node-raumserver

After a full Fedora 25 system re-install I'm trying to re-install node-raumserver. After installing npm, nodejs and node-raumserver I got this error starting node-raumserver. Any idea how to solve this?

[root@area51 ~]# node node_modules/node-raumserver/raumserver.js
WARNING: No configurations found in configuration directory:/root/config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
/root/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.raumfeld.js:37
async fadeToVolume(_desiredVolume, _duration = 2000)
^^^^^^^^^^^^

SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (/root/node_modules/node-raumkernel/lib/lib.manager.deviceManager.js:13:33)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
[root@area51 ~]#

installation synology

Hi,

I tried a a installation on my synology, unfortunatly there is only Node v4 available.

During the installation I got some warnings about the node version, when I try to start I got the following:

tino@DiskStation:/usr/local/rf$ node node_modules/node-raumserver/test.js
/usr/local/rf/node_modules/node-raumserver/lib/lib.raumserver.js:27
createLogger(_logLevel = 2, _path = "./logs")
^

SyntaxError: Unexpected token =
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object. (/usr/local/rf/node_modules/node-raumserver/test.js:2:18)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)

Is the node version too old for your package?

Best Regards, Tino.

Webinterface

Hallo @ChriD ,

dein Angebot annehmend möchte ich gerne ein Feature-Request absetzen.
Ein schönes Webinterface! :)

Die einzigen Geräte mit denen ich das Raumfeld-System nicht steuern kann sind die PCs.

Gruß
mee0n

Playlist laden mit TuneIn-Track

Hallo @ChriD ,

ein anderes Problem habe ich momentan noch mit dem Laden einer Playlist.
Habe eine Playlist deren erster und einziger Track ein TuneIn-Radiosender ist, da ich nicht wusste wie ich den Radiosender direkt laden kann. Unter dem alten raumserver hat das so einwandfrei funktioniert.
Nun aber nicht mehr. Die Befehle werden fehlerfrei abgesetzt, etc. aber er lädt sie einfach nicht. Schaue ich parallel in die App lädt er kurz was und zeigt dann "This music is not available" an und macht dann nichts weiter.
Mit einer Test-Playlist deren erster und einziger Track ein Tidal-Titel ist funktioniert es einwandfrei.

Hast du dazu eine Idee?
mee0n

listen, push or notify

Hallo,

ich bastle gerade an einem Gateway zum smarthomeNG projekt.
Die Steuerung läuft soweit gut und stabil über http requests. An dieser Stelle vielen Dank für die Mühen und Implementierung!

Jetzt geht es darum, möglichst in Echtzeit "Systemänderungen" mitzubekommen. Zwar kann man über getRendererState zyklisch pollen, aber das ist nicht gerade schick.

Im Konsolen-Output sieht man sehr schön, dass Änderungen dem Server bekannt werden. Die Frage ist nur, wie man sich auf diesen "Livestream" über http dranhängen kann? Timeouts könnten über keep-alive Messages oder reconnects gelöst werden. Es wäre gut, wenn der RendererState "gepusht" würde, sobald sich ein Wert ändert. Auf Seite des Gateways würde ich dann den json block durch den parser lassen und die entsprechenden Variablen im SmartHome System updaten.

Was meinst Du?

Playlist in mehreren Räumen starten

Hallo,

langsam arbeite ich mich vor... Ich möchte gerne in zwei Räumen gleichzeitig eine Playlist starten. Das Ganze mache ich über einen openHAB trigger, der folgendes tut:

	// neue Zone aus allen Geräten erstellen
	sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/createZone?id=Küche")
	Thread::sleep(1)
	sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/addToZone?id=Küche&zoneId=Wohnzimmer")
	Thread::sleep(1)
	sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/loadPlaylist?id=Küche&value=zzMDRJump")

Leider funktioniert das so nicht, Log hänge ich an. Wenn ich die Requests einzeln im Browser absetze, dann wiederum funktioniert es.

Woran könnte das liegen?

Hier das Log zu dem Versuch:

verbose: [Raumserver] Request received: GET /raumserver/controller/stop?id=Küche
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/stop?id=Küche
debug: [Raumserver] Handle action 'stop' with query: {"id":"Küche"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Küche
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
debug: [Request.stop] Calling action 'stop' for renderer Küche
debug: [MediaRenderer|Küche] Call Stop from Küche
debug: [MediaRenderer|Küche] Result of Stop for Küche is {}
debug: [Request.stop] Request was accepted and was successfully executed
verbose: [Raumserver] Request received: GET /raumserver/controller/stop?id=Wohnzimmer
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/stop?id=Wohnzimmer
debug: [Raumserver] Handle action 'stop' with query: {"id":"Wohnzimmer"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Wohnzimmer
debug: [DeviceManager] Trying to get media renderer for id name : Wohnzimmer
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [DeviceManager] Media renderer for id : Wohnzimmer found
debug: [Request.stop] Calling action 'stop' for renderer Wohnzimmer
debug: [MediaRenderer|Wohnzimmer] Call Stop from Wohnzimmer
debug: [MediaRenderer|Wohnzimmer] Result of Stop for Wohnzimmer is {}
debug: [Request.stop] Request was accepted and was successfully executed
debug: [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
verbose: [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '<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/" lang="en"><item parentID="0/Playlists/MyPlaylists/zzMDRJump" id="0/Playlists/MyPlaylists/zzMDRJump/3793" restricted="1" refID="0/RadioTime/Search/s-s6634"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><dc:title>MDR JUMP</dc:title><upnp:signalStrength>98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s6634q.png</upnp:albumArtURI><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&amp;formats=wma%2Cmp3%2Cogg&amp;serial=6c%3Aec%3Aeb%3A64%3Ad8%3A3e&amp;id=s6634&amp;c=ebrowse</raumfeld:ebrowse><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e1636714&amp;sid=s6634&amp;formats=wma,mp3,ogg&amp;partnerId=7aJ9pvV5&amp;serial=6c:ec:eb:64:d8:3e</res><res bitrate="56" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e1636715&amp;sid=s6634&amp;formats=wma,mp3,ogg&amp;partnerId=7aJ9pvV5&amp;serial=6c:ec:eb:64:d8:3e</res></item></DIDL-Lite>' to ''
verbose: [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Play' to 'Repeat'
debug: [ZoneManager] Get room information object for: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a
debug: [MediaRenderer|Wohnzimmer] Room: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a: Set room renderer(s) ["uuid:23edaa33-b6db-4a29-b298-99a555a7f45b"] online to :true
debug: [MediaRenderer|Wohnzimmer] Set new updateId to: 315136
verbose: [Raumserver] Request received: GET /raumserver/controller/createZone?id=Küche
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/createZone?id=Küche
debug: [Raumserver] Handle action 'createZone' with query: {"id":"Küche"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Küche
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
debug: [Request.createZone] Calling action 'createZone' for renderer Küche
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
verbose: [ZoneManager] Connecting room uuid:1341d05b-496a-4c78-9282-8de75310836f to zone
debug: [ZoneManager] ConnectRoomToZone request was successful'
debug: [Request.createZone] Request was accepted and was successfully executed
verbose: [Raumserver] Request received: GET /raumserver/controller/addToZone?id=Küche&zoneId=Wohnzimmer
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/addToZone?id=Küche&zoneId=Wohnzimmer
debug: [Raumserver] Handle action 'addToZone' with query: {"id":"Küche","zoneId":"Wohnzimmer"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Küche
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
debug: [Request.addToZone] Calling action 'addToZone' for renderer Küche
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Wohnzimmer
debug: [DeviceManager] Trying to get media renderer for id name : Wohnzimmer
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [DeviceManager] Media renderer for id : Wohnzimmer found
verbose: [ZoneManager] Connecting room uuid:1341d05b-496a-4c78-9282-8de75310836f to zone uuid:89e90b17-01b6-4e93-920d-e03ae758e1cb
debug: [ZoneManager] Zone configuration request returns with updateId: '2843516322'
verbose: [ZoneManager] Zone configuration changed
debug: [ZoneManager] Zone Configuration changed to: {"zoneConfig":{"$":{"numRooms":"2","spotifyMode":"singleRoom"},"zones":[{"zone":[{"$":{"udn":"uuid:89e90b17-01b6-4e93-920d-e03ae758e1cb"},"room":[{"$":{"name":"Wohnzimmer","udn":"uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a","powerState":"ACTIVE"},"renderer":[{"$":{"udn":"uuid:23edaa33-b6db-4a29-b298-99a555a7f45b","name":"Connector Wohnzimmer"}}]}]},{"$":{"udn":"uuid:b6b4ef18-6e88-4e7d-a640-4e988760350b"},"room":[{"$":{"name":"Küche","color":"#C64D51","udn":"uuid:1341d05b-496a-4c78-9282-8de75310836f"},"renderer":[{"$":{"udn":"uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0","name":"Speaker Küche"}}]}]}]}]}}
verbose: [ZoneManager] Getting zone configuration information from http://192.168.178.21 with updateId: 2843516322
debug: [ZoneManager] ConnectRoomToZone request was successful'
debug: [Request.addToZone] Request was accepted and was successfully executed
verbose: [Raumserver] Request received: GET /raumserver/controller/loadPlaylist?id=Küche&value=zzMDRJump
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/loadPlaylist?id=Küche&value=zzMDRJump
debug: [Raumserver] Handle action 'loadPlaylist' with query: {"id":"Küche","value":"zzMDRJump"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Küche
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
error: [Request.loadPlaylist] VirtualMediaRenderer for id 'Küche' not found
error: [Request.loadPlaylist] Some renderers had exceptions:  Error: VirtualMediaRenderer for id 'Küche' not found
    at Request_LoadPlaylist.run (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:86:27)
    at Raumserver.handleRequestObject (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.raumserver.js:136:28)
    at Raumserver.requestReceived (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.raumserver.js:99:22)
    at Server.<anonymous> (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.raumserver.js:73:26)
    at emitTwo (events.js:106:13)
    at Server.emit (events.js:194:7)
    at parserOnIncoming (_http_server.js:563:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
error: [Raumserver] Request was rejected:  errorMessage=Error: VirtualMediaRenderer for id 'Küche' not found, errorData=null
verbose: [Raumserver] Request received: GET /raumserver/controller/play?id=Küche
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/play?id=Küche
debug: [Raumserver] Handle action 'play' with query: {"id":"Küche"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Küche
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
error: [Request.play] VirtualMediaRenderer for id 'Küche' not found
error: [Request.play] Some renderers had exceptions:  Error: VirtualMediaRenderer for id 'Küche' not found
    at Request_Play.run (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:86:27)
    at Raumserver.handleRequestObject (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.raumserver.js:136:28)
    at Raumserver.requestReceived (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.raumserver.js:99:22)
    at Server.<anonymous> (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.raumserver.js:73:26)
    at emitTwo (events.js:106:13)
    at Server.emit (events.js:194:7)
    at parserOnIncoming (_http_server.js:563:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
error: [Raumserver] Request was rejected:  errorMessage=Error: VirtualMediaRenderer for id 'Küche' not found, errorData=null
debug: [DeviceManager] Device list request returns with updateId: '4021014608'
verbose: [DeviceManager] Device list changed
verbose: [DeviceManager] Cleaning up devices
debug: [DeviceManager] Cleaning up mediaServers
debug: [DeviceManager] Cleaning up virtual renderers
verbose: [MediaRenderer|Küche] Remove service subscriptions for device 'Küche'
warn: [DeviceManager] Virtual media renderer removed: Küche
debug: [DeviceManager] Cleaning up renderers
debug: [DeviceManager] Get device description from http://192.168.178.4:49152/wps_device.xml
debug: [DeviceManager] Get device description from http://192.168.178.2:50001/desc/device.xml
debug: [DeviceManager] Get device description from http://192.168.178.4:1900/igd.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
debug: [DeviceManager] Get device description from http://192.168.178.106:80/description.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
debug: [DeviceManager] Get device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
debug: [DeviceManager] Get device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
debug: [DeviceManager] Get device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
debug: [DeviceManager] Get device description from http://192.168.178.6:49152/wps_device.xml
debug: [ZoneManager] Zone configuration request returns with updateId: '188550663'
verbose: [ZoneManager] Zone configuration changed
debug: [ZoneManager] Zone Configuration changed to: {"zoneConfig":{"$":{"numRooms":"2","spotifyMode":"singleRoom"},"zones":[{"zone":[{"$":{"udn":"uuid:89e90b17-01b6-4e93-920d-e03ae758e1cb"},"room":[{"$":{"name":"Küche","color":"#C64D51","udn":"uuid:1341d05b-496a-4c78-9282-8de75310836f"},"renderer":[{"$":{"udn":"uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0","name":"Speaker Küche"}}]},{"$":{"name":"Wohnzimmer","udn":"uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a","powerState":"ACTIVE"},"renderer":[{"$":{"udn":"uuid:23edaa33-b6db-4a29-b298-99a555a7f45b","name":"Connector Wohnzimmer"}}]}]}]}]}}
verbose: [DeviceManager] Getting device list from http://192.168.178.21 with updateId: 4021014608
verbose: [ZoneManager] Getting zone configuration information from http://192.168.178.21 with updateId: 188550663
debug: [DeviceManager] Got device description from http://192.168.178.4:49152/wps_device.xml
verbose: [DeviceManager] Device 'WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless N Router) not usable
debug: [DeviceManager] Got device description from http://192.168.178.2:50001/desc/device.xml
verbose: [DeviceManager] Media server 'DiskStation' found
verbose: [DeviceManager] Media server 'DiskStation' is useable
debug: [DeviceManager] Got device description from http://192.168.178.4:1900/igd.xml
verbose: [DeviceManager] Device 'Wireless Router TL-WR841N' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (Wireless Router TL-WR841N) not usable
debug: [DeviceManager] Got device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
verbose: [DeviceManager] Device 'DIR-615' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (D-Link DIR-615) not usable
debug: [DeviceManager] Got device description from http://192.168.178.6:49152/wps_device.xml
verbose: [DeviceManager] Device 'DD-WRT WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless Access Point) not usable
debug: [DeviceManager] Got device description from http://192.168.178.106:80/description.xml
verbose: [DeviceManager] Device 'Philips hue (192.168.178.106)' of type 'urn:schemas-upnp-org:device:Basic:1' (Philips hue Personal Wireless Lighting) not usable
debug: [DeviceManager] Got device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
verbose: [DeviceManager] Device 'Marco's Fire TV stick' of type 'urn:dial-multiscreen-org:device:dial:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
verbose: [DeviceManager] Media renderer 'Connector Wohnzimmer' found
verbose: [DeviceManager] Raumfeld media renderer 'Connector Wohnzimmer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
verbose: [DeviceManager] Media renderer 'Speaker Küche' found
verbose: [DeviceManager] Raumfeld media renderer 'Speaker Küche' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
verbose: [DeviceManager] Media renderer 'Wohnzimmer' found
verbose: [DeviceManager] Media Renderer 'Wohnzimmer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
verbose: [DeviceManager] Device 'Raumfeld ConfigDevice' of type 'urn:schemas-raumfeld-com:device:ConfigDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' found
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' is useable
debug: [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
verbose: [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from 'Repeat' to ''
debug: [ZoneManager] Get room information object for: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a
debug: [MediaRenderer|Wohnzimmer] Room: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a: Set room renderer(s) ["uuid:23edaa33-b6db-4a29-b298-99a555a7f45b"] online to :true
debug: [MediaRenderer|Wohnzimmer] Set new updateId to: 315137
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: [DeviceManager] Device list request returns with updateId: '4021014609'
verbose: [DeviceManager] Device list changed
verbose: [DeviceManager] Cleaning up devices
debug: [DeviceManager] Cleaning up mediaServers
debug: [DeviceManager] Cleaning up virtual renderers
debug: [DeviceManager] Cleaning up renderers
debug: [DeviceManager] Get device description from http://192.168.178.4:49152/wps_device.xml
debug: [DeviceManager] Get device description from http://192.168.178.2:50001/desc/device.xml
debug: [DeviceManager] Get device description from http://192.168.178.4:1900/igd.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
debug: [DeviceManager] Get device description from http://192.168.178.106:80/description.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
debug: [DeviceManager] Get device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
debug: [DeviceManager] Get device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
debug: [DeviceManager] Get device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:51438/b6b4ef18-6e88-4e7d-a640-4e988760350b.xml
debug: [DeviceManager] Get device description from http://192.168.178.6:49152/wps_device.xml
verbose: [DeviceManager] Getting device list from http://192.168.178.21 with updateId: 4021014609
debug: [DeviceManager] Got device description from http://192.168.178.4:49152/wps_device.xml
verbose: [DeviceManager] Device 'WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless N Router) not usable
debug: [DeviceManager] Got device description from http://192.168.178.2:50001/desc/device.xml
verbose: [DeviceManager] Media server 'DiskStation' found
verbose: [DeviceManager] Media server 'DiskStation' is useable
debug: [DeviceManager] Got device description from http://192.168.178.4:1900/igd.xml
verbose: [DeviceManager] Device 'Wireless Router TL-WR841N' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (Wireless Router TL-WR841N) not usable
debug: [DeviceManager] Got device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
verbose: [DeviceManager] Device 'DIR-615' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (D-Link DIR-615) not usable
debug: [DeviceManager] Got device description from http://192.168.178.6:49152/wps_device.xml
verbose: [DeviceManager] Device 'DD-WRT WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless Access Point) not usable
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
verbose: [MediaListManager] Get media list for objectId: 0/Line In
debug: Call Search from Raumfeld MediaServer
debug: [DeviceManager] Got device description from http://192.168.178.106:80/description.xml
verbose: [DeviceManager] Device 'Philips hue (192.168.178.106)' of type 'urn:schemas-upnp-org:device:Basic:1' (Philips hue Personal Wireless Lighting) not usable
debug: [DeviceManager] Got device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
verbose: [DeviceManager] Device 'Marco's Fire TV stick' of type 'urn:dial-multiscreen-org:device:dial:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
verbose: [DeviceManager] Media renderer 'Speaker Küche' found
verbose: [DeviceManager] Raumfeld media renderer 'Speaker Küche' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
verbose: [DeviceManager] Device 'Raumfeld ConfigDevice' of type 'urn:schemas-raumfeld-com:device:ConfigDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
verbose: [DeviceManager] Media renderer 'Connector Wohnzimmer' found
verbose: [DeviceManager] Raumfeld media renderer 'Connector Wohnzimmer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
verbose: [DeviceManager] Media renderer 'Wohnzimmer' found
verbose: [DeviceManager] Media Renderer 'Wohnzimmer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:51438/b6b4ef18-6e88-4e7d-a640-4e988760350b.xml
verbose: [DeviceManager] Media renderer 'Küche' found
verbose: [DeviceManager] Media Renderer 'Küche' is useable
verbose: [MediaRenderer|Küche] Set up AVTransport subscription on device 'Küche'
verbose: [MediaRenderer|Küche] Set up RenderingControl subscription on device 'Küche'
info: [DeviceManager] Virtual media renderer added: Küche (uuid:b6b4ef18-6e88-4e7d-a640-4e988760350b)
debug: [DeviceManager] Got device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' found
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' is useable
debug: [MediaRenderer|Küche] AVTransport subscription callback triggered on device 'Küche'
verbose: [MediaRenderer|Küche] InstanceID has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] CurrentTrackMetaData has changed from 'undefined' to ''
verbose: [MediaRenderer|Küche] CurrentRecordQualityMode has changed from 'undefined' to 'NOT_IMPLEMENTED'
verbose: [MediaRenderer|Küche] AbsoluteTimePosition has changed from 'undefined' to '00:00:00'
verbose: [MediaRenderer|Küche] SecondsUntilSleep has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] CurrentTrack has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] AVTransportURIMetaData has changed from 'undefined' to ''
verbose: [MediaRenderer|Küche] PossiblePlaybackStorageMedia has changed from 'undefined' to 'NETWORK'
verbose: [MediaRenderer|Küche] TransportPlaySpeed has changed from 'undefined' to '1'
verbose: [MediaRenderer|Küche] CurrentTrackDuration has changed from 'undefined' to '00:00:00'
verbose: [MediaRenderer|Küche] PossibleRecordQualityModes has changed from 'undefined' to 'NOT_IMPLEMENTED'
verbose: [MediaRenderer|Küche] TransportError has changed from 'undefined' to ''
verbose: [MediaRenderer|Küche] PossibleRecordStorageMedia has changed from 'undefined' to 'NONE'
verbose: [MediaRenderer|Küche] AVTransportURI has changed from 'undefined' to ''
verbose: [MediaRenderer|Küche] RelativeTimePosition has changed from 'undefined' to '00:00:00'
verbose: [MediaRenderer|Küche] RelativeCounterPosition has changed from 'undefined' to '1'
verbose: [MediaRenderer|Küche] CurrentPlayMode has changed from 'undefined' to 'NORMAL'
verbose: [MediaRenderer|Küche] Bitrate has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] TransportState has changed from 'undefined' to 'NO_MEDIA_PRESENT'
verbose: [MediaRenderer|Küche] AbsoluteCounterPosition has changed from 'undefined' to '1'
verbose: [MediaRenderer|Küche] CurrentTransportActions has changed from 'undefined' to ''
verbose: [MediaRenderer|Küche] RoomStates has changed from 'undefined' to 'uuid:1341d05b-496a-4c78-9282-8de75310836f=STOPPED'
verbose: [MediaRenderer|Küche] ContentType has changed from 'undefined' to ''
verbose: [MediaRenderer|Küche] NumberOfTracks has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] SleepTimerActive has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] TransportStatus has changed from 'undefined' to 'OK'
verbose: [MediaRenderer|Küche] CurrentTrackURI has changed from 'undefined' to ''
debug: [ZoneManager] Get room information object for: uuid:1341d05b-496a-4c78-9282-8de75310836f
debug: [MediaRenderer|Küche] Room: uuid:1341d05b-496a-4c78-9282-8de75310836f: Set room renderer(s) ["uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0"] online to :true
verbose: [MediaRenderer|Küche] roomUDN has changed from '' to 'uuid:1341d05b-496a-4c78-9282-8de75310836f' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
verbose: [MediaRenderer|Küche] transportState has changed from '' to 'STOPPED' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
verbose: [MediaRenderer|Küche] online has changed from '' to 'true' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
debug: [MediaRenderer|Küche] Set new updateId to: 140956
debug: [MediaRenderer|Küche] RenderingControl subscription callback triggered on device 'Küche'
verbose: [MediaRenderer|Küche] RoomVolumes has changed from 'undefined' to 'uuid:1341d05b-496a-4c78-9282-8de75310836f=38'
verbose: [MediaRenderer|Küche] Volume has changed from 'undefined' to '38'
verbose: [MediaRenderer|Küche] Mute has changed from 'undefined' to '0'
verbose: [MediaRenderer|Küche] RoomMutes has changed from 'undefined' to 'uuid:1341d05b-496a-4c78-9282-8de75310836f=0'
debug: [ZoneManager] Get room information object for: uuid:1341d05b-496a-4c78-9282-8de75310836f
debug: [MediaRenderer|Küche] Room: uuid:1341d05b-496a-4c78-9282-8de75310836f: Set room renderer(s) ["uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0"] online to :true
verbose: [MediaRenderer|Küche] volume has changed from 'undefined' to '38' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
verbose: [MediaRenderer|Küche] mute has changed from 'undefined' to '0' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
debug: [MediaRenderer|Küche] Set new updateId to: 140957
debug: Result of Search for Raumfeld MediaServer is {"Result":"<DIDL-Lite xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\" xmlns:raumfeld=\"urn:schemas-raumfeld-com:meta-data/raumfeld\" lang=\"en\"/>","NumberReturned":"0","TotalMatches":"0","UpdateID":"37247193"}
debug: [MediaDataConverter] Got empty list
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
verbose: [MediaListManager] Get media list for objectId: 0/Line In
debug: Call Search from Raumfeld MediaServer
debug: Result of Search for Raumfeld MediaServer is {"Result":"<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/\" lang=\"en\"><item parentID=\"0/Line In\" id=\"0/Line In/uuid%3A23edaa33-b6db-4a29-b298-99a555a7f45b\" restricted=\"1\"><raumfeld:name>Line In</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.lineIn</upnp:class><raumfeld:section>Line In</raumfeld:section><dc:title>Connector Wohnzimmer</dc:title><res protocolInfo=\"http-get:*:audio/x-flac:*\">http://192.168.178.21:8888/stream.flac</res></item><item parentID=\"0/Line In\" id=\"0/Line In/uuid%3A48c57453-aa3c-48c1-a3a9-875cc5c436f0\" restricted=\"1\"><raumfeld:name>Line In</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.lineIn</upnp:class><raumfeld:section>Line In</raumfeld:section><dc:title>Speaker Küche</dc:title><res protocolInfo=\"http-get:*:audio/x-flac:*\">http://192.168.178.22:8888/stream.flac</res></item></DIDL-Lite>","NumberReturned":"2","TotalMatches":"2","UpdateID":"37247195"}
debug: [DeviceManager] Device list request returns with updateId: '4021014610'
verbose: [DeviceManager] Device list changed
verbose: [DeviceManager] Cleaning up devices
debug: [DeviceManager] Cleaning up mediaServers
debug: [DeviceManager] Cleaning up virtual renderers
verbose: [MediaRenderer|Küche] Remove service subscriptions for device 'Küche'
warn: [DeviceManager] Virtual media renderer removed: Küche
debug: [DeviceManager] Cleaning up renderers
debug: [DeviceManager] Get device description from http://192.168.178.4:49152/wps_device.xml
debug: [DeviceManager] Get device description from http://192.168.178.2:50001/desc/device.xml
debug: [DeviceManager] Get device description from http://192.168.178.4:1900/igd.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
debug: [DeviceManager] Get device description from http://192.168.178.106:80/description.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
debug: [DeviceManager] Get device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
debug: [DeviceManager] Get device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
debug: [DeviceManager] Get device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
debug: [DeviceManager] Get device description from http://192.168.178.6:49152/wps_device.xml
debug: [DeviceManager] Got device description from http://192.168.178.4:49152/wps_device.xml
verbose: [DeviceManager] Device 'WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless N Router) not usable
verbose: [DeviceManager] Getting device list from http://192.168.178.21 with updateId: 4021014610
debug: [DeviceManager] Got device description from http://192.168.178.106:80/description.xml
verbose: [DeviceManager] Device 'Philips hue (192.168.178.106)' of type 'urn:schemas-upnp-org:device:Basic:1' (Philips hue Personal Wireless Lighting) not usable
debug: [DeviceManager] Got device description from http://192.168.178.4:1900/igd.xml
verbose: [DeviceManager] Device 'Wireless Router TL-WR841N' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (Wireless Router TL-WR841N) not usable
debug: [DeviceManager] Got device description from http://192.168.178.6:49152/wps_device.xml
verbose: [DeviceManager] Device 'DD-WRT WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless Access Point) not usable
debug: [DeviceManager] Got device description from http://192.168.178.2:50001/desc/device.xml
verbose: [DeviceManager] Media server 'DiskStation' found
verbose: [DeviceManager] Media server 'DiskStation' is useable
debug: [DeviceManager] Got device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
verbose: [DeviceManager] Device 'DIR-615' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (D-Link DIR-615) not usable
debug: [MediaRenderer|Wohnzimmer] RenderingControl subscription callback triggered on device 'Wohnzimmer'
verbose: [MediaRenderer|Wohnzimmer] RoomVolumes has changed from 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=29' to 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=29,uuid:1341d05b-496a-4c78-9282-8de75310836f=38'
verbose: [MediaRenderer|Wohnzimmer] Volume has changed from '29' to '38'
verbose: [MediaRenderer|Wohnzimmer] RoomMutes has changed from 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=0' to 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=0,uuid:1341d05b-496a-4c78-9282-8de75310836f=0'
debug: [ZoneManager] Get room information object for: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a
debug: [MediaRenderer|Wohnzimmer] Room: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a: Set room renderer(s) ["uuid:23edaa33-b6db-4a29-b298-99a555a7f45b"] online to :true
debug: [ZoneManager] Get room information object for: uuid:1341d05b-496a-4c78-9282-8de75310836f
debug: [MediaRenderer|Wohnzimmer] Room: uuid:1341d05b-496a-4c78-9282-8de75310836f: Set room renderer(s) ["uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0"] online to :true
verbose: [MediaRenderer|Wohnzimmer] roomUDN has changed from '' to 'uuid:1341d05b-496a-4c78-9282-8de75310836f' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
verbose: [MediaRenderer|Wohnzimmer] volume has changed from '' to '38' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
verbose: [MediaRenderer|Wohnzimmer] mute has changed from '' to '0' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
verbose: [MediaRenderer|Wohnzimmer] online has changed from '' to 'true' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
debug: [MediaRenderer|Wohnzimmer] Set new updateId to: 315138
debug: [MediaRenderer|Wohnzimmer] AVTransport subscription callback triggered on device 'Wohnzimmer'
verbose: [MediaRenderer|Wohnzimmer] CurrentTrackMetaData has changed from '' to '<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/" lang="en"><item parentID="0/Playlists/MyPlaylists/zzMDRJump" id="0/Playlists/MyPlaylists/zzMDRJump/3793" restricted="1" refID="0/RadioTime/Search/s-s6634"><raumfeld:name>Station</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.radio</upnp:class><raumfeld:section>RadioTime</raumfeld:section><raumfeld:durability>120</raumfeld:durability><dc:title>MDR JUMP</dc:title><upnp:signalStrength>98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s6634q.png</upnp:albumArtURI><raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&amp;formats=wma%2Cmp3%2Cogg&amp;serial=6c%3Aec%3Aeb%3A64%3Ad8%3A3e&amp;id=s6634&amp;c=ebrowse</raumfeld:ebrowse><res bitrate="128" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e1636714&amp;sid=s6634&amp;formats=wma,mp3,ogg&amp;partnerId=7aJ9pvV5&amp;serial=6c:ec:eb:64:d8:3e</res><res bitrate="56" protocolInfo="http-get:*:audio/x-mpegurl:*">http://opml.radiotime.com/Tune.ashx?id=e1636715&amp;sid=s6634&amp;formats=wma,mp3,ogg&amp;partnerId=7aJ9pvV5&amp;serial=6c:ec:eb:64:d8:3e</res></item></DIDL-Lite>'
verbose: [MediaRenderer|Wohnzimmer] RoomStates has changed from 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=STOPPED' to 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=STOPPED,uuid:1341d05b-496a-4c78-9282-8de75310836f=STOPPED'
verbose: [MediaRenderer|Wohnzimmer] CurrentTransportActions has changed from '' to 'Play'
debug: [ZoneManager] Get room information object for: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a
debug: [MediaRenderer|Wohnzimmer] Room: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a: Set room renderer(s) ["uuid:23edaa33-b6db-4a29-b298-99a555a7f45b"] online to :true
debug: [ZoneManager] Get room information object for: uuid:1341d05b-496a-4c78-9282-8de75310836f
debug: [MediaRenderer|Wohnzimmer] Room: uuid:1341d05b-496a-4c78-9282-8de75310836f: Set room renderer(s) ["uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0"] online to :true
verbose: [MediaRenderer|Wohnzimmer] transportState has changed from 'undefined' to 'STOPPED' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
debug: [MediaRenderer|Wohnzimmer] Set new updateId to: 315139
debug: [MediaRenderer|Wohnzimmer] Media Item on renderer changed class=object.item.audioItem.audioBroadcast.radio, section=RadioTime, name=Station, durability=120, childCount=null, parentID=0/Playlists/MyPlaylists/zzMDRJump, id=0/Playlists/MyPlaylists/zzMDRJump/3793, restricted=1, refID=0/RadioTime/Search/s-s6634, title=MDR JUMP, description=null, artist=null, albumArtURI=http://d1i6vahw24eb07.cloudfront.net/s6634q.png, genre=null, album=null, date=null, creator=null, originalTrackNumber=null, bitrate=128, protocolInfo=http-get:*:audio/x-mpegurl:*, signalStrength=98, ebrowse=http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=6c%3Aec%3Aeb%3A64%3Ad8%3A3e&id=s6634&c=ebrowse
debug: [DeviceManager] Got device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
verbose: [DeviceManager] Device 'Marco's Fire TV stick' of type 'urn:dial-multiscreen-org:device:dial:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
verbose: [DeviceManager] Device 'Raumfeld ConfigDevice' of type 'urn:schemas-raumfeld-com:device:ConfigDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
verbose: [DeviceManager] Media renderer 'Connector Wohnzimmer' found
verbose: [DeviceManager] Raumfeld media renderer 'Connector Wohnzimmer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
verbose: [DeviceManager] Media renderer 'Speaker Küche' found
verbose: [DeviceManager] Raumfeld media renderer 'Speaker Küche' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
verbose: [DeviceManager] Media renderer 'Wohnzimmer,Küche' found
verbose: [DeviceManager] Media Renderer 'Wohnzimmer,Küche' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' found
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' is useable
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
verbose: [MediaListManager] Get media list for objectId: 0/Line In
debug: Call Search from Raumfeld MediaServer
debug: Result of Search for Raumfeld MediaServer is {"Result":"<DIDL-Lite xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\" xmlns:raumfeld=\"urn:schemas-raumfeld-com:meta-data/raumfeld\" lang=\"en\"/>","NumberReturned":"0","TotalMatches":"0","UpdateID":"37247197"}
debug: [MediaDataConverter] Got empty list
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
verbose: [MediaListManager] Get media list for objectId: 0/Line In
debug: Call Search from Raumfeld MediaServer
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: Result of Search for Raumfeld MediaServer is {"Result":"<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/\" lang=\"en\"><item parentID=\"0/Line In\" id=\"0/Line In/uuid%3A23edaa33-b6db-4a29-b298-99a555a7f45b\" restricted=\"1\"><raumfeld:name>Line In</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.lineIn</upnp:class><raumfeld:section>Line In</raumfeld:section><dc:title>Connector Wohnzimmer</dc:title><res protocolInfo=\"http-get:*:audio/x-flac:*\">http://192.168.178.21:8888/stream.flac</res></item><item parentID=\"0/Line In\" id=\"0/Line In/uuid%3A48c57453-aa3c-48c1-a3a9-875cc5c436f0\" restricted=\"1\"><raumfeld:name>Line In</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.lineIn</upnp:class><raumfeld:section>Line In</raumfeld:section><dc:title>Speaker Küche</dc:title><res protocolInfo=\"http-get:*:audio/x-flac:*\">http://192.168.178.22:8888/stream.flac</res></item></DIDL-Lite>","NumberReturned":"2","TotalMatches":"2","UpdateID":"37247199"}
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
verbose: [MediaListManager] Get media list for objectId: 0/Line In
debug: Call Search from Raumfeld MediaServer
debug: Result of Search for Raumfeld MediaServer is {"Result":"<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/\" lang=\"en\"><item parentID=\"0/Line In\" id=\"0/Line In/uuid%3A23edaa33-b6db-4a29-b298-99a555a7f45b\" restricted=\"1\"><raumfeld:name>Line In</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.lineIn</upnp:class><raumfeld:section>Line In</raumfeld:section><dc:title>Connector Wohnzimmer</dc:title><res protocolInfo=\"http-get:*:audio/x-flac:*\">http://192.168.178.21:8888/stream.flac</res></item><item parentID=\"0/Line In\" id=\"0/Line In/uuid%3A48c57453-aa3c-48c1-a3a9-875cc5c436f0\" restricted=\"1\"><raumfeld:name>Line In</raumfeld:name><upnp:class>object.item.audioItem.audioBroadcast.lineIn</upnp:class><raumfeld:section>Line In</raumfeld:section><dc:title>Speaker Küche</dc:title><res protocolInfo=\"http-get:*:audio/x-flac:*\">http://192.168.178.22:8888/stream.flac</res></item></DIDL-Lite>","NumberReturned":"2","TotalMatches":"2","UpdateID":"37247199"}
debug: [DeviceManager] Device list request returns with updateId: '4021014611'
verbose: [DeviceManager] Device list changed
verbose: [DeviceManager] Cleaning up devices
debug: [DeviceManager] Cleaning up mediaServers
debug: [DeviceManager] Cleaning up virtual renderers
debug: [DeviceManager] Cleaning up renderers
debug: [DeviceManager] Get device description from http://192.168.178.4:49152/wps_device.xml
debug: [DeviceManager] Get device description from http://192.168.178.2:50001/desc/device.xml
debug: [DeviceManager] Get device description from http://192.168.178.4:1900/igd.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
debug: [DeviceManager] Get device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
debug: [DeviceManager] Get device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
debug: [DeviceManager] Get device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
debug: [DeviceManager] Get device description from http://192.168.178.6:49152/wps_device.xml
debug: [DeviceManager] Got device description from http://192.168.178.4:49152/wps_device.xml
verbose: [DeviceManager] Device 'WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless N Router) not usable
debug: [DeviceManager] Got device description from http://192.168.178.2:50001/desc/device.xml
verbose: [DeviceManager] Media server 'DiskStation' found
verbose: [DeviceManager] Media server 'DiskStation' is useable
debug: [DeviceManager] Got device description from http://192.168.178.4:1900/igd.xml
verbose: [DeviceManager] Device 'Wireless Router TL-WR841N' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (Wireless Router TL-WR841N) not usable
verbose: [DeviceManager] Getting device list from http://192.168.178.21 with updateId: 4021014611
debug: [DeviceManager] Got device description from http://192.168.178.11:49152/xmldoc/InternetGatewayDevice.xml
verbose: [DeviceManager] Device 'DIR-615' of type 'urn:schemas-upnp-org:device:InternetGatewayDevice:1' (D-Link DIR-615) not usable
debug: [DeviceManager] Got device description from http://192.168.178.6:49152/wps_device.xml
verbose: [DeviceManager] Device 'DD-WRT WPS Access Point' of type 'urn:schemas-wifialliance-org:device:WFADevice:1' (Wireless Access Point) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:58378/75b3773d-5f7d-466b-8990-56227d314966.xml
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' found
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.22:57564/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:53912/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
verbose: [DeviceManager] Media renderer 'Connector Wohnzimmer' found
verbose: [DeviceManager] Raumfeld media renderer 'Connector Wohnzimmer' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:52355/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
verbose: [DeviceManager] Device 'Raumfeld ConfigDevice' of type 'urn:schemas-raumfeld-com:device:ConfigDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.21:50321/8e46f382-de12-443d-9800-7d755486aa14.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: [DeviceManager] Got device description from http://192.168.178.22:60478/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
verbose: [DeviceManager] Media renderer 'Speaker Küche' found
verbose: [DeviceManager] Raumfeld media renderer 'Speaker Küche' is useable
debug: [DeviceManager] Got device description from http://192.168.178.21:60002/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
verbose: [DeviceManager] Media renderer 'Wohnzimmer,Küche' found
verbose: [DeviceManager] Media Renderer 'Wohnzimmer,Küche' is useable
debug: [DeviceManager] Got device description from http://192.168.178.28:49985/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
verbose: [DeviceManager] Device 'Marco's Fire TV stick' of type 'urn:dial-multiscreen-org:device:dial:1' (undefined) not usable
error: [MediaRenderer|Küche] Error: connect ECONNREFUSED 192.168.178.21:58460
error: [MediaRenderer|Küche] Error: connect ECONNREFUSED 192.168.178.21:58460

Nutzbarkeit der lokalen Buttons

Hallo @ChriD ,

ist es möglich die lokalen Buttons (1-4) an einem Lautsprecher mit einem HTTP Befehl an den Raumserver zu belegen? Unter Umständen über einen "virtuellen Titel" wenn es nicht direkt geht.
Ich nutze so einen Workaround beispielsweise auch mit der Wecker-App "Alarmdroid". hier kann man sich auch per Internetradiosender wecken lassen. Nur statt dessen habe ich eine HTTP-Anfrage an den raumserver als URL eingetragen. und schon habe ich einen Raumfeld-Wecker. :D

Hintergrund ist eine kleine Schwäche der "OnlyApp"-Bedienung. Wenn Jemand an der Tür klingelt oder das Telefon läutet oder sonst was und man laut Musik hört, dann dauert es teils sehr lange (Handy entsperren > App öffnen > Warten bis Verbunden mit Host > Räume finden > Lautstärke öffnen > Mute) mit einem naheliegenden Smartphone, o.Ä. die Wohnung Stumm zu schalten. Wäre schön wenn ich in jedem Raum einfach auf Button 1 drücken könnte um einen "ToggleMuteAll" auszulösen.

Gruß
mee0n

node-raumserver can not change volume but old windows raumserver is working

hello,

for my new app i'm using the the new node way - but i do have an issue with some task - they do not work as expected - once i restart the rf device the node app is working again - but why is not working when the old raumserver on windows doesn't suffer from this error?

f.ex. - just setting the volume up returns:

{"requestUrl":"/raumserver/controller/setVolume?id=Kueche&value=17","action":"setVolume","error":true,"msg":"Action was rejected","data":{"errorMessage":"Error: connect ECONNREFUSED 192.168.251.200:56421","errorData":null}}

the get renderstate for this room shows:

{
requestUrl :  "/raumserver/controller/getRendererState?id=Kueche&_=1503220418150",
action :  "getRendererState",
error :  false,
msg :  "",
data : [
{
mute :  0,
InstanceID :  0,
CurrentTrackMetaData :  "",
CurrentRecordQualityMode :  "NOT_IMPLEMENTED",
AbsoluteTimePosition :  "00:00:00",
SecondsUntilSleep :  "0",
CurrentTrack :  "1",
AVTransportURIMetaData :  "",
PossiblePlaybackStorageMedia :  "NETWORK",
TransportPlaySpeed :  "1",
CurrentTrackDuration :  "00:00:00",
PossibleRecordQualityModes :  "NOT_IMPLEMENTED",
TransportError :  "",
PossibleRecordStorageMedia :  "NONE",
AVTransportURI :  "dlna-playcontainer://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FOE3&md=0&fii=0",
RelativeTimePosition :  "00:00:00",
RelativeCounterPosition :  "1",
CurrentPlayMode :  "NORMAL",
Bitrate :  "128",
TransportState :  "PLAYING",
AbsoluteCounterPosition :  "1",
CurrentTransportActions :  "Repeat,Stop",
RoomStates :  "uuid:8d10c182-e6e5-4c54-817e-9313877877f7=STOPPED",
ContentType :  "MP3",
NumberOfTracks :  "1",
SleepTimerActive :  "0",
TransportStatus :  "buffer underrun in Kueche",
CurrentTrackURI :  "http://mp3stream7.apasf.apa.at:8000",
RoomVolumes :  "uuid:8d10c182-e6e5-4c54-817e-9313877877f7=16",
Volume :  "16",
Mute :  "0",
RoomMutes :  "uuid:8d10c182-e6e5-4c54-817e-9313877877f7=0",
rooms : [
{
roomUDN :  "uuid:8d10c182-e6e5-4c54-817e-9313877877f7",
transportState :  "STOPPED",
online :  true,
volume :  "16",
mute :  "0",
name :  "Kueche",
udn :  "uuid:8d10c182-e6e5-4c54-817e-9313877877f7",
powerState :  "ACTIVE",
renderer : [
{
udn :  "uuid:f2db5ae9-8926-4dcf-9ada-f52f2b9240b1",
name :  "Speaker Kueche"
}
]
}
],
udn :  "uuid:94A96919-D9AB-4550-A850-C24B749082CE",
mediaItem :  null,
friendlyName :  "Kueche",
host :  "192.168.251.200",
manufacturer :  "Raumfeld GmbH",
modelNumber :  "2"
}
]
}

any idea?

thanks
holli

Zonen Lautstärkeregelung

Hallo @ChriD ,

in Erweiterung zur Problemstellung in Issue #21 habe ich noch eine andere Idee die du mit dem raumserver umsetzen könntest. Wichtig ist mir ja quasi nur, recht schnell und am liebsten ohne App die Lautstärke über mehrere Räume hinweg runterdrehen bzw muten zu können.
Also folgende Idee:
Man sollte auf eine Zone eine Option setzen können die dann dafür sorgt, dass wenn man an einem Lautsprecher (egal welchem in der Zone) am Lautstärkeregler dreht, dieser quasi die Funktion des Lautstärkereglers einer Zone, analog des App-Reglers, übernimmt und somit auch alle anderen Lausprecher regelt. Somit könnte man die Lautstärke auch sehr schnell runter bringen bis zum mute was für meine Zwecke eine fast genauso gute Lösung darstellt wie der in Issue #21 beschriebenen Ansatz.
Hierbei ist der bekannte Minusbereich pro Lautsprecher tatsächlich nützlich damit nach dem wieder aufdrehen alle wieder die selbe Lautstärke haben wie vorher und nicht durch eine Limitierung bei 0 gleichgezogen wurden.

Würde sich das so umsetzen lassen?

Gruß
mee0n

Fehler beim Lautsärke setzen

Hi Chris,

nachdem der Raumserver nun läuft, folgender Effekt. Ich habe eine Zone aus 2 Räumen, Küche und Wohnzimmer erstellt und spiele eine Playlist. Das klappt. Wenn ich nun die Läutstärke für die Räume einzeln setzen will, werden immer beide Räume geregelt.

Das ist mein Request:

http://192.168.178.8:8080/raumserver/controller/setVolume?id=Küche&value=XX

und folgende passiert

verbose: [Raumserver] Request received: GET /raumserver/controller/setVolume?id=Küche&value=26
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/setVolume?id=Küche&value=26
debug: [Raumserver] Handle action 'setVolume' with query: {"id":"Küche","value":"26"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Küche
debug: [DeviceManager] Trying to get media renderer for id name : Küche
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
debug: [Request.setVolume] Calling action 'setVolume' for renderer Wohnzimmer
debug: [MediaRenderer|Wohnzimmer] Set volume to 26 on on room Wohnzimmer
debug: [MediaRenderer|Wohnzimmer] Call SetVolume from Wohnzimmer
debug: [MediaRenderer|Wohnzimmer] Result of SetVolume for Wohnzimmer is {}
debug: [Request.setVolume] Request was accepted and was successfully executed
debug: [MediaRenderer|Connector Wohnzimmer] RenderingControl subscription callback triggered on device 'Connector Wohnzimmer'
verbose: [MediaRenderer|Connector Wohnzimmer] Volume has changed from '40' to '26'
verbose: [MediaRenderer|Connector Wohnzimmer] VolumeDB has changed from '-9216' to '-11264'
debug: [MediaRenderer|Connector Wohnzimmer] Set new updateId to: 768988
debug: [MediaRenderer|Speaker Küche #3] RenderingControl subscription callback triggered on device 'Speaker Küche #3'
verbose: [MediaRenderer|Speaker Küche #3] Volume has changed from '35' to '21'
verbose: [MediaRenderer|Speaker Küche #3] VolumeDB has changed from '-10112' to '-12416'
debug: [MediaRenderer|Speaker Küche #3] Set new updateId to: 823392
debug: [MediaRenderer|Wohnzimmer] RenderingControl subscription callback triggered on device 'Wohnzimmer'
verbose: [MediaRenderer|Wohnzimmer] RoomVolumes has changed from 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=40,uuid:1341d05b-496a-4c78-9282-8de75310836f=35' to 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a=26,uuid:1341d05b-496a-4c78-9282-8de75310836f=21'
verbose: [MediaRenderer|Wohnzimmer] Volume has changed from '40' to '26'
debug: [ZoneManager] Get room information object for: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a
debug: [MediaRenderer|Wohnzimmer] Room: uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a: Set room renderer(s) ["uuid:23edaa33-b6db-4a29-b298-99a555a7f45b"] online to :true
debug: [ZoneManager] Get room information object for: uuid:1341d05b-496a-4c78-9282-8de75310836f
debug: [MediaRenderer|Wohnzimmer] Room: uuid:1341d05b-496a-4c78-9282-8de75310836f: Set room renderer(s) ["uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0"] online to :true
verbose: [MediaRenderer|Wohnzimmer] volume has changed from '40' to '26' on room 'uuid:7a2565a9-a03f-4bdb-aa29-6a4416568b6a'
verbose: [MediaRenderer|Wohnzimmer] volume has changed from '35' to '21' on room 'uuid:1341d05b-496a-4c78-9282-8de75310836f'
debug: [MediaRenderer|Wohnzimmer] Set new updateId to: 200343

Wie setze ich die Lautstärke separat pro Gerät? Oder liegt es am "ü"? Obwohl, Play, Stop usw. geht ja.

Danke und Gruß
Marco

Problems by installing on Raspi

Hallo,

ich habe versucht, den node-raumserver auf meinen Raspi3 zu installieren.
Dazu bin ich der Anleitung auf Issue #12 gefolgt.
Beim Starten erhalte ich jedoch eine Fehlermeldung:

pi@raspberrypi:~/node_modules/node-raumserver $ node raumserver.js
/home/pi/node_modules/node-raumkernel/lib/lib.device.upnp.mediaRenderer.raumfeld.js:37
async fadeToVolume(_desiredVolume, _duration = 2000)
^^^^^^^^^^^^

SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (/home/pi/node_modules/node-raumkernel/lib/lib.manager.deviceManager.js:13:33)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)

Leider habe ich nicht die Kenntnisse, damit was anzufangen.
Was mache ich falsch?
Nur zur Vollständigkeit- denke aber, das ist noch nicht wichtig: Habe einen Raumfeld Connector als Host und ein paar One S.

Node-Raumserver Lautstärke

Hallo
Ich habe node-raumserver erfolgreich installiert
habe aber Probleme mit der Lautstärke
Folgendes wird in einem Script abgesetzt
on({id: "javascript.0.Radio_Lauter", val: true}, function(dp) {
var url10 = "http://192.168.178.64:8080/raumserver/controller/volumeUp?value=5&id=Kueche";
request(url10);
setState(dp.id, false);
});
bekomme folgende Fehlermeldung zurück

debug: [DeviceManager] Media renderer for id : Kueche found
debug: [Request.volumeUp] Calling action 'volumeUp' for renderer Kueche
debug: [MediaRenderer|Kueche] Call GetVolume from Kueche
debug: [MediaRenderer|Kueche] Result of GetVolume for Kueche is {"CurrentVolume":"26"}
(node:2631) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 45): ReferenceError: _data is not defined

Add loadPlaylist request

loadPlaylist
With this request you can load a stored playlist id into a zone playlist
/raumserver/controller/loadPlaylist?id=Wohnzimmer&value=[urlencoded playlist name]
/raumserver/controller/loadPlaylist?id=Wohnzimmer&value=Rock

Ein-/Ausschalten (enterManualStanby/leaveStandby)

Hallo Chris,

Ich habe heute mal wieder den node Raumserver installiert und wollte alles wie zuvor in Betrieb nehmen, dabei ist mir aufgefallen das wenn ich folgendes request nutze: "/raumserver/controller/enterAutomaticStandby?id=Bad" alle Lautsprecher ausgeschalten werden statt nur der der sich im Bad befindet, das gleiche gilt auch fürs einschalten.

Gruß, Adrian

FadeToVolume bei Zone ungleichmäßig

Hallo @ChriD ,

wenn ich via
/raumserver/controller/setVolume?value=1&id=Schlafzimmer&scope=zone
einer ganzen Zone die gleiche Lautstärke verpasse, danach via
/raumserver/controller/play?id=Schlafzimmer
die Wiedergabe starte und danach via
/raumserver/controller/fadeToVolume?value=25&id=Schlafzimmer&scope=zone&duration=60000
die Lautstärke hochfahren möchte ist es oft so, dass nicht alle Lautsprecher in der Zone die gleiche Lautstärke haben. Wenn ich parallel mit der App zusehe, bleiben Laustprecher "hängen" und steigen erst verzögert sodass am Ende aber nicht der gleiche Lautstärkenwert erreicht wird.

Lässt sich das beheben?
Ich schätze mal du lässt die Lautstärke gerade pro Lautsprecher relativ ansteigen; die Frage ist nur warum es manchmal zu Hängern und Verzögerungen kommt ... falls Diese nicht wegzubekommen sind (da Raumfeld-bedingt o.Ä.) müsste man evtl. dafür sorgen das sie trotzdem weiter ansteigen (auch wenn die eingestellte duration dabei quasi überschritten wird; aber ja eben theoretisch nicht für den verzögerten Lautsprecher) sodass am Ende alle Lautsprecher den eingestellten Wert erreicht haben.

Danke für deine Mühen!
mee0n

Add current track to Playlist

Es wäre klasse, wenn man den aktuell in einem Raum abgespielten Track einer existierenden playlist hinzufügen könnte, unabhängig von der Quelle (also ob Medienserver, Napster, Tidal,...).

Eventuell ist der Request eine Erweiterung des Request #48.

Teufel One S: Action was rejected

I installed another Raumfeld Streaming Speaker: the new Teufel One S (not the Raumfeld One) in my bathroom (Bad). The zone config gives me:

{
	requestUrl: "/raumserver/data/getZoneConfig?_=1513625399487",
	action: "getZoneConfig",
	error: false,
	msg: "",
	data: {
		zoneConfig: {
			$: {
				numRooms: "2",
				spotifyMode: "multiRoom"
			},
			zones: [{
				zone: [{
					$: {
						udn: "uuid:ffffffff-8d8b-fce1-ffff-ffff8d8bfce1",
						spotifyConnect: "active"
					},
					room: [{
							$: {
								name: "Zimmer",
								udn: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
								powerState: "ACTIVE"
							},
							renderer: [{
								$: {
									udn: "uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c",
									name: "Speaker Zimmer"
								}
							}]
						},
						{
							$: {
								name: "Bad",
								udn: "uuid:cc02eb36-b0d8-40ef-8743-0078cfb4d9c5",
								powerState: "ACTIVE"
							},
							renderer: [{
								$: {
									udn: "uuid:645f498e-4840-46b1-9305-a4dc2a62a439",
									name: "Speaker Bad #3"
								}
							}]
						}
					]
				}]
			}]
		}
	}
}

I can control "(Speaker) Zimmer" perfectly as always. But when I send zone specific GETs for the bathroom to the raumserver it gives me always

{
	requestUrl: "/raumserver/controller/pause?id=Bad&_=1513625399488",
	action: "pause",
	error: true,
	msg: "Action was rejected",
	data: {
		errorMessage: "Error: VirtualMediaRenderer for id 'Bad' not found",
		errorData: null
	}
}

The Raumfeld One S never had that problems. It seems to me as an incompatibility with the newer devices?

Log shows:

verbose: [Raumserver] Request received: GET /raumserver/controller/pause?id=Bad&_=1513625399490
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/pause?id=Bad&_=1513625399490
debug: [Raumserver] Handle action 'pause' with query: {"_":"1513625399490","id":"Bad"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Bad
debug: [DeviceManager] Trying to get media renderer for id name : Bad
debug: [ZoneManager] Get room information object for: uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c
error: [Request.pause] VirtualMediaRenderer for id 'Bad' not found
error: [Request.pause] Some renderers had exceptions:  Error: VirtualMediaRenderer for id 'Bad' not found
    at Request_Pause.run (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:95:27)
    at Raumserver.handleRequestObject (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.raumserver.js:143:28)
    at Raumserver.requestReceived (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.raumserver.js:106:22)
    at Server.<anonymous> (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.raumserver.js:80:26)
    at emitTwo (events.js:126:13)
    at Server.emit (events.js:214:7)
    at parserOnIncoming (_http_server.js:602:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:117:23)
error: [Raumserver] Request was rejected:  errorMessage=Error: VirtualMediaRenderer for id 'Bad' not found, errorData=null

@ChriD do you have an idea? Let me know if you need further infos.

Slow on Fedora 25, crashes after several hours & many network connections

I have 0.0.10 running on Fedora 25. After boot everything works fine for a few hours, then node-raumserver becomes slower and slower, and after 20-24 hours node-raumserver crashes and is not responding anymore to port 8080 requests. When I then restart the server, the same behaviour occurs. Does this sound familiar to anybody? And is this solveable?

Regards, Ron

getrenderstate has multiple items for same room and even this can have different states...s

i'm rewriting my doorbell shell script from the old windows raumserver actions to the a new sailsjs app using the new node-raumserver but i have an issue with the result from getrenderstate.

i need all room's and the state - because on all rooms playing something i will play the door information and restore to what was played before (most of the time it is just a playlist with one item (radio station)).

here is the getrenderstate from my env.:

{
requestUrl : "/raumserver/data/getRendererState?_=1499600468991",
action : "getRendererState",
error : false,
msg : "",
data : [
{
mute : 0,
InstanceID : 0,
CurrentTrackMetaData : "",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "192:16:45",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playsingle://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&iid=",
RelativeTimePosition : "192:16:45",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "192",
TransportState : "STOPPED",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "",
RoomStates : "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63=STOPPED",
ContentType : "MP3",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "",
RoomVolumes : "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63=40",
Volume : "40",
Mute : "0",
RoomMutes : "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63=0",
rooms : [
{
roomUDN : "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63",
transportState : "STOPPED",
online : true,
volume : "40",
mute : "0",
name : "Sauna",
color : "#009998",
udn : "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:a193f9a9-84c5-4193-9e50-bfd4396dcf86",
name : "Speaker Sauna"
}
]
}
],
udn : "uuid:a3317ec1-5302-4e16-a8c3-f4c00f63cabd",
mediaItem : null,
friendlyName : "Sauna",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
mute : 0,
InstanceID : 0,
CurrentTrackMetaData : "",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playsingle://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&iid=",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "0",
TransportState : "STOPPED",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "",
RoomStates : "uuid:1a0c63af-481d-41e3-859b-b777616ee63e=STOPPED",
ContentType : "",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "",
RoomVolumes : "uuid:1a0c63af-481d-41e3-859b-b777616ee63e=-1",
Volume : "0",
Mute : "0",
RoomMutes : "uuid:1a0c63af-481d-41e3-859b-b777616ee63e=0",
rooms : [
{
roomUDN : "uuid:1a0c63af-481d-41e3-859b-b777616ee63e",
transportState : "STOPPED",
online : true,
volume : "-1",
mute : "0",
name : "KellerStueberl",
udn : "uuid:1a0c63af-481d-41e3-859b-b777616ee63e",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:a2bc2f63-5ceb-48fc-af92-d4a7fa33e547",
name : "Speaker KellerStueberl"
}
]
}
],
udn : "uuid:F05BAEF4-7E5D-4B75-9FAC-D596C3A86E3A",
mediaItem : null,
friendlyName : "KellerStueberl",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
mute : 0,
InstanceID : 0,
CurrentTrackMetaData : "raumfeld:nameStation</raumfeld:name>upnp:classobject.item.audioItem.audioBroadcast.radio</upnp:class>raumfeld:sectionRadioTime</raumfeld:section>raumfeld:durability120</raumfeld:durability>dc:titleHitradio Ö3</dc:title>upnp:signalStrength98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s15552q.png</upnp:albumArtURI>raumfeld:ebrowsehttp://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse</raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?id=e1190145&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:eehttp://opml.radiotime.com/Tune.ashx?id=e2919168&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:eehttp://opml.radiotime.com/Tune.ashx?id=e50214223&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:ee",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playcontainer://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FOE3&md=0&fii=0",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "0",
TransportState : "STOPPED",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "Play",
RoomStates : "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa=STOPPED",
ContentType : "",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "http://mp3stream7.apasf.apa.at:8000",
RoomVolumes : "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa=29",
Volume : "29",
Mute : "0",
RoomMutes : "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa=0",
rooms : [
{
roomUDN : "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa",
transportState : "STOPPED",
online : true,
volume : "29",
mute : "0",
name : "Bad",
color : "#0099CC",
udn : "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:67e59017-9893-47a3-b42e-487bb57d2243",
name : "Speaker Bad #2"
}
]
}
],
udn : "uuid:B0F537C8-C46A-450D-9C43-77F5C389C156",
mediaItem : {
class : "object.item.audioItem.audioBroadcast.radio",
section : "RadioTime",
name : "Station",
durability : "120",
childCount : null,
parentID : "0/Playlists/MyPlaylists/OE3",
id : "0/Playlists/MyPlaylists/OE3/1563",
restricted : "1",
refID : "0/RadioTime/LocalRadio/AllLocations/l-r101217/l-r101221/l-r101406/s-s15552",
title : "Hitradio Ö3",
description : null,
artist : null,
albumArtURI : "http://d1i6vahw24eb07.cloudfront.net/s15552q.png",
genre : null,
album : null,
date : null,
creator : null,
originalTrackNumber : null,
bitrate : "120",
protocolInfo : "http-get::audio/x-mpegurl:",
signalStrength : "98",
ebrowse : "http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse"
},
friendlyName : "Bad",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
mute : 0,
InstanceID : 0,
CurrentTrackMetaData : "",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playcontainer://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FOE3&md=0&fii=0",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "0",
TransportState : "STOPPED",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "Repeat",
RoomStates : "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac=STOPPED",
ContentType : "",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "http://mp3stream7.apasf.apa.at:8000",
RoomVolumes : "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac=0",
Volume : "0",
Mute : "0",
RoomMutes : "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac=0",
rooms : [
{
roomUDN : "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac",
transportState : "STOPPED",
online : true,
volume : "0",
mute : "0",
name : "LaubeAussen",
udn : "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:137ea741-1abf-4acb-b40e-f159c9bda2e1",
name : "Connector LaubeAussen #2"
}
]
}
],
udn : "uuid:689F2BAD-2058-4FDF-9C92-B614050AC35B",
mediaItem : null,
friendlyName : "LaubeAussen",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
CurrentTrackMetaData : "",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playsingle://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&iid=",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "0",
TransportState : "STOPPED",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "",
RoomStates : "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e=STOPPED",
ContentType : "",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "",
mute : 0,
RoomVolumes : "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e=48",
Volume : "48",
Mute : "0",
RoomMutes : "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e=0",
rooms : [
{
roomUDN : "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e",
volume : "48",
mute : "0",
online : true,
transportState : "STOPPED",
name : "SchlafZimmer",
color : "#862C30",
udn : "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e",
powerState : "ACTIVE",
renderer : [
{
udn : "uuid:7abc79a3-910d-410e-b93b-0621833e6755",
name : "Speaker SchlafZimmer"
}
]
}
],
udn : "uuid:d0b26cce-d070-4c59-8db4-817871a5ec27",
mediaItem : null,
friendlyName : "SchlafZimmer",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
CurrentTrackMetaData : "upnp:classobject.container.playlistContainer</upnp:class>raumfeld:sectionPlaylists</raumfeld:section>raumfeld:nameMyPlaylist</raumfeld:name>dc:titleOE3</dc:title>",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "upnp:classobject.container.playlistContainer</upnp:class>raumfeld:sectionPlaylists</raumfeld:section>raumfeld:nameMyPlaylist</raumfeld:name>dc:titleOE3</dc:title>",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playcontainer://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FOE3&md=0",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "128",
TransportState : "PLAYING",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "Repeat,Stop",
RoomStates : "uuid:9cef5b69-eda3-4ca3-9200-c3d4512f5628=STOPPED",
ContentType : "MP3",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "buffer underrun in WohnZimmer",
CurrentTrackURI : "http://mp3stream7.apasf.apa.at:8000",
mute : 0,
RoomVolumes : "uuid:9cef5b69-eda3-4ca3-9200-c3d4512f5628=33",
Volume : "33",
Mute : "0",
RoomMutes : "uuid:9cef5b69-eda3-4ca3-9200-c3d4512f5628=0",
rooms : [
{
roomUDN : "uuid:9cef5b69-eda3-4ca3-9200-c3d4512f5628",
transportState : "STOPPED",
online : true,
volume : "33",
mute : "0",
name : "WohnZimmer",
color : "#862C30",
udn : "uuid:9cef5b69-eda3-4ca3-9200-c3d4512f5628",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:431961ef-c07e-4013-8cf9-7d359c4f82a6",
name : "Connector WohnZimmer"
}
]
}
],
udn : "uuid:1EBC7D10-19F7-4BE2-82B9-0F0B1E702F12",
mediaItem : {
class : "object.container.playlistContainer",
section : "Playlists",
name : "MyPlaylist",
durability : null,
childCount : "1",
parentID : "0/Playlists/MyPlaylists",
restricted : "0",
id : "0/Playlists/MyPlaylists/OE3",
title : "OE3",
description : null
},
friendlyName : "WohnZimmer",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
CurrentTrackMetaData : " raumfeld:nameStation</raumfeld:name>upnp:classobject.item.audioItem.audioBroadcast.radio</upnp:class>raumfeld:sectionRadioTime</raumfeld:section>raumfeld:durability120</raumfeld:durability>dc:titleJack Johnson - You And Your Heart </dc:title>upnp:signalStrength98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s15552q.png</upnp:albumArtURI>raumfeld:ebrowsehttp://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse</raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?id=e1190145&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:eehttp://opml.radiotime.com/Tune.ashx?id=e2919168&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:eehttp://opml.radiotime.com/Tune.ashx?id=e50214223&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:ee ",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playcontainer://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FOE3&md=0&fii=0",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "0",
TransportState : "PLAYING",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "Stop",
RoomStates : "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78=PLAYING",
ContentType : "",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "http://mp3stream7.apasf.apa.at:8000",
mute : 0,
RoomVolumes : "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78=33",
Volume : "33",
Mute : "0",
RoomMutes : "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78=0",
rooms : [
{
roomUDN : "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78",
transportState : "PLAYING",
online : true,
volume : "33",
mute : "0",
name : "Wc-Og",
color : "#0099CC",
udn : "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78",
powerState : "ACTIVE",
renderer : [
{
udn : "uuid:c80fefa9-84dd-4282-8977-4f9976a25872",
name : "Connector Wc-Og"
}
]
}
],
udn : "uuid:e26f7ae0-a794-41e9-8d4d-f010e1d7c7a6",
mediaItem : {
class : "object.item.audioItem.audioBroadcast.radio",
section : "RadioTime",
name : "Station",
durability : "120",
childCount : null,
parentID : "0/Playlists/MyPlaylists/OE3",
id : "0/Playlists/MyPlaylists/OE3/1563",
restricted : "1",
refID : "0/RadioTime/LocalRadio/AllLocations/l-r101217/l-r101221/l-r101406/s-s15552",
title : "Jack Johnson - You And Your Heart ",
description : null,
artist : null,
albumArtURI : "http://d1i6vahw24eb07.cloudfront.net/s15552q.png",
genre : null,
album : null,
date : null,
creator : null,
originalTrackNumber : null,
bitrate : "120",
protocolInfo : "http-get::audio/x-mpegurl:",
signalStrength : "98",
ebrowse : "http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse"
},
friendlyName : "Wc-Og",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
CurrentTrackMetaData : "raumfeld:nameStation</raumfeld:name>upnp:classobject.item.audioItem.audioBroadcast.radio</upnp:class>raumfeld:sectionRadioTime</raumfeld:section>raumfeld:durability120</raumfeld:durability>dc:titleHitradio Ö3</dc:title>upnp:signalStrength98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s15552q.png</upnp:albumArtURI>raumfeld:ebrowsehttp://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse</raumfeld:ebrowse>http://opml.radiotime.com/Tune.ashx?id=e1190145&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:eehttp://opml.radiotime.com/Tune.ashx?id=e2919168&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:eehttp://opml.radiotime.com/Tune.ashx?id=e50214223&sid=s8007&formats=wma,mp3,ogg&partnerId=7aJ9pvV5&serial=78:a5:04:f1:82:ee",
CurrentRecordQualityMode : "NOT_IMPLEMENTED",
AbsoluteTimePosition : "00:00:00",
SecondsUntilSleep : "0",
CurrentTrack : "1",
AVTransportURIMetaData : "",
PossiblePlaybackStorageMedia : "NETWORK",
TransportPlaySpeed : "1",
CurrentTrackDuration : "00:00:00",
PossibleRecordQualityModes : "NOT_IMPLEMENTED",
TransportError : "",
PossibleRecordStorageMedia : "NONE",
AVTransportURI : "dlna-playcontainer://uuid%3A2fe2f1b7-8578-47c7-9a59-f60706cc265d?sid=urn%3Aupnp-org%3AserviceId%3AContentDirectory&cid=0%2FPlaylists%2FMyPlaylists%2FOE3&md=0&fii=0",
RelativeTimePosition : "00:00:00",
RelativeCounterPosition : "1",
CurrentPlayMode : "NORMAL",
Bitrate : "128",
TransportState : "PLAYING",
AbsoluteCounterPosition : "1",
CurrentTransportActions : "Stop",
RoomStates : "uuid:8d10c182-e6e5-4c54-817e-9313877877f7=PLAYING",
ContentType : "MP3",
NumberOfTracks : "1",
SleepTimerActive : "0",
TransportStatus : "OK",
CurrentTrackURI : "http://mp3stream7.apasf.apa.at:8000",
mute : 0,
RoomVolumes : "uuid:8d10c182-e6e5-4c54-817e-9313877877f7=21",
Volume : "21",
Mute : "0",
RoomMutes : "uuid:8d10c182-e6e5-4c54-817e-9313877877f7=0",
rooms : [
{
roomUDN : "uuid:8d10c182-e6e5-4c54-817e-9313877877f7",
transportState : "PLAYING",
online : true,
volume : "21",
mute : "0",
name : "Kueche",
udn : "uuid:8d10c182-e6e5-4c54-817e-9313877877f7",
powerState : "ACTIVE",
renderer : [
{
udn : "uuid:f2db5ae9-8926-4dcf-9ada-f52f2b9240b1",
name : "Speaker Kueche"
}
]
}
],
udn : "uuid:1FAE349A-DBD3-4F40-9589-1E3AF5BCD65D",
mediaItem : {
class : "object.item.audioItem.audioBroadcast.radio",
section : "RadioTime",
name : "Station",
durability : "120",
childCount : null,
parentID : "0/Playlists/MyPlaylists/OE3",
id : "0/Playlists/MyPlaylists/OE3/1563",
restricted : "1",
refID : "0/RadioTime/LocalRadio/AllLocations/l-r101217/l-r101221/l-r101406/s-s15552",
title : "Hitradio Ö3",
description : null,
artist : null,
albumArtURI : "http://d1i6vahw24eb07.cloudfront.net/s15552q.png",
genre : null,
album : null,
date : null,
creator : null,
originalTrackNumber : null,
bitrate : "120",
protocolInfo : "http-get::audio/x-mpegurl:",
signalStrength : "98",
ebrowse : "http://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse"
},
friendlyName : "Kueche",
host : "192.168.250.151",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "AUTOMATIC_STANDBY",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "OK",
LowDB : "2.480469",
Mute : "0",
MidDB : "1.398438",
Volume : "0",
VolumeDB : "-32640",
HighDB : "2.113281",
rooms : [
{
name : "LaubeAussen",
udn : "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:137ea741-1abf-4acb-b40e-f159c9bda2e1",
name : "Connector LaubeAussen #2"
}
]
}
],
udn : "uuid:137ea741-1abf-4acb-b40e-f159c9bda2e1",
mediaItem : null,
friendlyName : "Connector LaubeAussen #2",
host : "192.168.250.153",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
AVTransportURIMetaData : " raumfeld:nameStation</raumfeld:name>upnp:classobject.item.audioItem.audioBroadcast.radio</upnp:class>raumfeld:sectionRadioTime</raumfeld:section>raumfeld:durability120</raumfeld:durability>dc:titleHitradio Ö3</dc:title>upnp:signalStrength98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s15552q.png</upnp:albumArtURI>raumfeld:ebrowsehttp://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse</raumfeld:ebrowse> ",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "ACTIVE",
AVTransportURI : "http://192.168.250.151:52904/1FAE349A-DBD3-4F40-9589-1E3AF5BCD65D/8d10c182-e6e5-4c54-817e-9313877877f7/f2db5ae9-8926-4dcf-9ada-f52f2b9240b1/ef34f7702c4a0d2fe15d13b33b16c373-689947388-0-0.mp3",
CurrentPlayMode : "NORMAL",
TransportState : "PLAYING",
CurrentTransportActions : "Stop",
TransportStatus : "OK",
LowDB : "1.777344",
Mute : "0",
MidDB : "2.031250",
HighDB : "4.472656",
Volume : "21",
VolumeDB : "-6144",
Balance : "0",
rooms : [
{
name : "Kueche",
udn : "uuid:8d10c182-e6e5-4c54-817e-9313877877f7",
powerState : "ACTIVE",
renderer : [
{
udn : "uuid:f2db5ae9-8926-4dcf-9ada-f52f2b9240b1",
name : "Speaker Kueche"
}
]
}
],
udn : "uuid:f2db5ae9-8926-4dcf-9ada-f52f2b9240b1",
mediaItem : null,
friendlyName : "Speaker Kueche",
host : "192.168.250.152",
manufacturer : "Raumfeld GmbH",
modelNumber : "1"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "AUTOMATIC_STANDBY",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "buffer underrun",
LowDB : "-2.761719",
Mute : "0",
MidDB : "2.093750",
Volume : "40",
VolumeDB : "-5376",
HighDB : "1.617188",
rooms : [
{
name : "Sauna",
color : "#009998",
udn : "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:a193f9a9-84c5-4193-9e50-bfd4396dcf86",
name : "Speaker Sauna"
}
]
}
],
udn : "uuid:a193f9a9-84c5-4193-9e50-bfd4396dcf86",
mediaItem : null,
friendlyName : "Speaker Sauna",
host : "192.168.250.171",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "AUTOMATIC_STANDBY",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "OK",
LowDB : "0.000000",
Mute : "0",
MidDB : "1.742188",
Volume : "62",
VolumeDB : "-6528",
HighDB : "3.109375",
rooms : [
{
name : "Pool",
udn : "uuid:95ffde14-a056-452e-a4fb-4d9c068fdf4b",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:e9eaa5fd-37af-4d10-b7e1-287aaa7e0c20",
name : "Speaker Pool"
}
]
}
],
udn : "uuid:e9eaa5fd-37af-4d10-b7e1-287aaa7e0c20",
mediaItem : null,
friendlyName : "Speaker Pool",
host : "192.168.250.165",
manufacturer : "Raumfeld GmbH",
modelNumber : "1"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "AUTOMATIC_STANDBY",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "OK",
LowDB : "0.000000",
Mute : "0",
MidDB : "1.523438",
Volume : "29",
VolumeDB : "-12160",
HighDB : "2.617188",
rooms : [
{
name : "Bad",
color : "#0099CC",
udn : "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:67e59017-9893-47a3-b42e-487bb57d2243",
name : "Speaker Bad #2"
}
]
}
],
udn : "uuid:67e59017-9893-47a3-b42e-487bb57d2243",
mediaItem : null,
friendlyName : "Speaker Bad #2",
host : "192.168.250.150",
manufacturer : "Raumfeld GmbH",
modelNumber : "1"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "AUTOMATIC_STANDBY",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "OK",
LowDB : "0.000000",
Mute : "0",
MidDB : "1.570312",
Volume : "0",
VolumeDB : "-32640",
HighDB : "1.718750",
rooms : [
{
name : "KellerStueberl",
udn : "uuid:1a0c63af-481d-41e3-859b-b777616ee63e",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:a2bc2f63-5ceb-48fc-af92-d4a7fa33e547",
name : "Speaker KellerStueberl"
}
]
}
],
udn : "uuid:a2bc2f63-5ceb-48fc-af92-d4a7fa33e547",
mediaItem : null,
friendlyName : "Speaker KellerStueberl",
host : "192.168.250.190",
manufacturer : "Raumfeld GmbH",
modelNumber : "1"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "ACTIVE",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "OK",
LowDB : "1.324219",
Volume : "48",
SettingValue : "140Hz",
Mute : "0",
HighDB : "2.457031",
MidDB : "2.218750",
VolumeDB : "-6976",
rooms : [
{
name : "SchlafZimmer",
color : "#862C30",
udn : "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e",
powerState : "ACTIVE",
renderer : [
{
udn : "uuid:7abc79a3-910d-410e-b93b-0621833e6755",
name : "Speaker SchlafZimmer"
}
]
}
],
udn : "uuid:7abc79a3-910d-410e-b93b-0621833e6755",
mediaItem : null,
friendlyName : "Speaker SchlafZimmer",
host : "192.168.250.178",
manufacturer : "Raumfeld GmbH",
modelNumber : "1"
},
{
InstanceID : 0,
AVTransportURIMetaData : "",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "AUTOMATIC_STANDBY",
AVTransportURI : "",
CurrentPlayMode : "NORMAL",
TransportState : "NO_MEDIA_PRESENT",
CurrentTransportActions : "",
TransportStatus : "buffer underrun",
LowDB : "0.000000",
Mute : "0",
MidDB : "0.000000",
Volume : "33",
VolumeDB : "-10240",
HighDB : "0.000000",
rooms : [
{
name : "WohnZimmer",
color : "#862C30",
udn : "uuid:9cef5b69-eda3-4ca3-9200-c3d4512f5628",
powerState : "AUTOMATIC_STANDBY",
renderer : [
{
udn : "uuid:431961ef-c07e-4013-8cf9-7d359c4f82a6",
name : "Connector WohnZimmer"
}
]
}
],
udn : "uuid:431961ef-c07e-4013-8cf9-7d359c4f82a6",
mediaItem : null,
friendlyName : "Connector WohnZimmer",
host : "192.168.250.180",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
},
{
InstanceID : 0,
AVTransportURIMetaData : " raumfeld:nameStation</raumfeld:name>upnp:classobject.item.audioItem.audioBroadcast.radio</upnp:class>raumfeld:sectionRadioTime</raumfeld:section>raumfeld:durability120</raumfeld:durability>dc:titleHitradio Ö3</dc:title>upnp:signalStrength98</upnp:signalStrength><upnp:albumArtURI dlna:profileID="JPEG_TN">http://d1i6vahw24eb07.cloudfront.net/s15552q.png</upnp:albumArtURI>raumfeld:ebrowsehttp://opml.radiotime.com/Tune.ashx?partnerId=7aJ9pvV5&formats=wma%2Cmp3%2Cogg&serial=78%3Aa5%3A04%3Af1%3A82%3Aee&id=s15552&c=ebrowse</raumfeld:ebrowse> ",
CurrentTrackDuration : "NOT_IMPLEMENTED",
PowerState : "ACTIVE",
AVTransportURI : "http://192.168.250.151:60486/e26f7ae0-a794-41e9-8d4d-f010e1d7c7a6/b463e62d-b87a-4b4a-ab4d-bdee80821f78/c80fefa9-84dd-4282-8977-4f9976a25872/ef34f7702c4a0d2fe15d13b33b16c373--2081721902-0-0.mp3",
CurrentPlayMode : "NORMAL",
TransportState : "PLAYING",
CurrentTransportActions : "Stop",
TransportStatus : "OK",
LowDB : "0.000000",
Mute : "0",
MidDB : "0.000000",
Volume : "33",
VolumeDB : "-10240",
HighDB : "0.000000",
rooms : [
{
name : "Wc-Og",
color : "#0099CC",
udn : "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78",
powerState : "ACTIVE",
renderer : [
{
udn : "uuid:c80fefa9-84dd-4282-8977-4f9976a25872",
name : "Connector Wc-Og"
}
]
}
],
udn : "uuid:c80fefa9-84dd-4282-8977-4f9976a25872",
mediaItem : null,
friendlyName : "Connector Wc-Og",
host : "192.168.250.157",
manufacturer : "Raumfeld GmbH",
modelNumber : "2"
}
]
}
so why do i have information twice for rooms?
it makes it hard to parse and get what i need..
and even more complicated because sometimes the information to not match (1-9 might not have the same state as 9-18...
and it would be nice to sort this list f.ex by friendlyName or roomName..

thanks
holli

Automatic rediscover after power restore

I use only one speaker (1 zone) which I control via node-raumserver. Overnight I disconnect the power so the speaker isn’t available during that period. I realized that without a restart of the server, node-raumserver isn’t able to send it’s commands to the speaker once the power gets restored the morning after. I think that node-raumserver has to do a rediscover to get all new used ports and description XMLs.

  • Which is the recommended way to trigger a rediscover within node-raumserver?
  • Is there a command (e.g. /raumserver/rediscover) that can be called to trigger a rediscover?
  • Is there a parameter that can be lowered to reduce the interval between possible automatic rediscovers?

Anfrage Queue oder Presets

Hallo @ChriD ,

irgendwo hatte ich mal aufgeschnappt das die Befehle die man an den raumserver sendet von einer Queue aufgefangen werden. Ich weiß nur nicht ob du die Queue schon implementierst oder erst das Raumfeld-System. Ich weiß nicht ob das tatsächlich so ist, denn ich hatte schon immer Schwierigkeiten mit dem Timing.
Ich steuere einige Abläufe über ein SmartHome-System namens "domoticz". Hier habe ich Abläufe in lua-scripts geschrieben um beispielsweise ein automatisiertes "Aufwachen mit Musik via Bewegungserkennung" umzusetzen. Dort bin ich auf das Problem gestoßen, dass ich nicht einfach alle Befehle hintereinander wegfeuern konnte. Ich musste mir künstliche Leerlaufzeiten zwischen den Befehlen einfallen lassen, damit das System korrekt initialisiert.
Ist es nun also möglich, eine solche Queue, falls nicht schon vorhanden, zu implementieren?
Gab es nicht "früher" auch eine Möglichkeit Presets zu hinterlegen die eine Sammlung von Anfragen enthält, welche man dann per HTTP anfragen kann?

Gruß
mee0n

Zonen-Befehle funktionieren nicht

Hallo @ChriD ,

Wenn ich CreateZone (gleich bei AddToZone) verwende wie ich es mit deinem raumserver schon immer getan habe oder es mittels deines test-html versuche führt das immer zu folgendem Fehler.

Rückmeldung des test-html für CreateZone (das &_=1492180822922 kommt nicht von mir):

{
requestUrl :  "/raumserver/controller/createZone?id=Flur&_=1492180822922",
action :  "createZone",
error :  true,
msg :  "Action was rejected",
data : {
errorMessage :  "TypeError: Cannot read property 'getSettings' of undefined",
errorData :  null
}
}

Kannst du mir da weiterhelfen?

Vielen Dank schon mal im Voraus!
mee0n

LoadUri is not working

Hi,
i try to load an URI and get this message:
(The file setUriMetadata.template exisits in the directory "C:\Peter\Install\node_modules\node-raumkernel\lib", but not in the directory "C:\Peter\Install\node_modules\node-raumserver\node_modules\node-raumkernel\lib")

{
requestUrl : "/raumserver/controller/loadUri?id=WohnzimmerL&value=http%3A%2F%2Fschwarze-welle.de:7500&_=1510051244642",
action : "loadUri",
error : true,
msg : "Action was rejected",
data : {
errorMessage : "Error: ENOENT: no such file or directory, open 'C:\Peter\Install\node_modules\node-raumserver\node_modules\node-raumkernel\lib\setUriMetadata.template'",
errorData : null
}
}

Here is the callstack:

verbose: [Raumserver] Request received: GET /raumserver/controller/loadUri?id=WohnzimmerL&value=http%3A%2F%2Fschwarze-welle.de:7500&=1510051244651
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/loadUri?id=WohnzimmerL&value=http%3A%2F%2Fschwarze-welle.de:7500&
=1510051244651
debug: [Raumserver] Handle action 'loadUri' with query: {"_":"1510051244651","id":"WohnzimmerL","value":"http://schwarze-welle.de:7500"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : WohnzimmerL
debug: [DeviceManager] Trying to get media renderer for id name : WohnzimmerL
debug: [ZoneManager] Get room information object for: uuid:b8ef0730-b7a9-4d02-abca-4c42bac78b0b
debug: [DeviceManager] Media renderer for id : WohnzimmerL found
debug: [Request.loadUri] Calling action 'loadUri' for renderer WohnzimmerL,Bad,Esszimmer,Connector2 ,Schlafzimmer
error: [Request.loadUri] Exception thrown: Error: ENOENT: no such file or directory, open 'C:\Peter\Install\node_modules\node-raumserver\node_modules\node-raumkernel\lib\setUriMetadata.template'
at Object.fs.openSync (fs.js:638:18)
at Object.fs.readFileSync (fs.js:540:33)
at UPNPMediaRendererRaumfeldVirtual.loadUri (C:\Peter\Install\node_modules\node-raumkernel\lib\lib.device.upnp.mediaRenderer.raumfeldVirtual.js:540:23)
at Request_LoadUri.runAction (C:\Peter\Install\node_modules\node-raumserver\lib\requestHandlers\lib.request.loadUri.js:22:31)
at C:\Peter\Install\node_modules\node-raumserver\lib\lib.base.requestMediaRenderer.js:191:22
at Promise ()
at Request_LoadUri.runActionForMediaRenderer (C:\Peter\Install\node_modules\node-raumserver\lib\lib.base.requestMediaRenderer.js:177:16)
at Request_LoadUri.run (C:\Peter\Install\node_modules\node-raumserver\lib\lib.base.requestMediaRenderer.js:120:47)
at Raumserver.handleRequestObject (C:\Peter\Install\node_modules\node-raumserver\lib\lib.raumserver.js:143:28)
at Raumserver.requestReceived (C:\Peter\Install\node_modules\node-raumserver\lib\lib.raumserver.js:106:22)
at Server. (C:\Peter\Install\node_modules\node-raumserver\lib\lib.raumserver.js:80:26)
at emitTwo (events.js:125:13)
at Server.emit (events.js:213:7)
at parserOnIncoming (_http_server.js:601:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
error: [Request.loadUri] Some renderers had exceptions: Error: ENOENT: no such file or directory, open 'C:\Peter\Install\node_modules\node-raumserver\node_modules\node-raumkernel\lib\setUriMetadata.template'
at Object.fs.openSync (fs.js:638:18)
at Object.fs.readFileSync (fs.js:540:33)
at UPNPMediaRendererRaumfeldVirtual.loadUri (C:\Peter\Install\node_modules\node-raumkernel\lib\lib.device.upnp.mediaRenderer.raumfeldVirtual.js:540:23)
at Request_LoadUri.runAction (C:\Peter\Install\node_modules\node-raumserver\lib\requestHandlers\lib.request.loadUri.js:22:31)
at C:\Peter\Install\node_modules\node-raumserver\lib\lib.base.requestMediaRenderer.js:191:22
at Promise ()
at Request_LoadUri.runActionForMediaRenderer (C:\Peter\Install\node_modules\node-raumserver\lib\lib.base.requestMediaRenderer.js:177:16)
at Request_LoadUri.run (C:\Peter\Install\node_modules\node-raumserver\lib\lib.base.requestMediaRenderer.js:120:47)
at Raumserver.handleRequestObject (C:\Peter\Install\node_modules\node-raumserver\lib\lib.raumserver.js:143:28)
at Raumserver.requestReceived (C:\Peter\Install\node_modules\node-raumserver\lib\lib.raumserver.js:106:22)
at Server. (C:\Peter\Install\node_modules\node-raumserver\lib\lib.raumserver.js:80:26)
at emitTwo (events.js:125:13)
at Server.emit (events.js:213:7)
at parserOnIncoming (_http_server.js:601:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
error: [Raumserver] Request was rejected: errorMessage=Error: ENOENT: no such file or directory, open 'C:\Peter\Install\node_modules\node-raumserver\node_modules\node-raumkernel\lib\setUriMetadata.template', errorData=null

Installation PC / SuSE Leap 42.2

Hallo,

ich versuche, den node-raumserver auf meinem Atom-PC mit SuSE Leap 42.2 zu installieren. node ist aktuell und läuft (hm-manager, eine andere node-Anwendung funktioniert):

node --version
v8.1.2

Ich habe node-raumserver per npm istalliert in
/usr/local/lib/node_modules/node-raumserver

Dann möchte ich node-raumserver starten. Das sollte so gehen, oder?

node /usr/local/lib/node_modules/node-raumserver/raumserver.js

Doch jetzt bekomme ich folgenden Fehler:

module.js:487
throw err;
^

Error: Cannot find module 'query-string'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object. (/usr/local/lib/node_modules/node-raumserver/lib/lib.raumserver.js:3:21)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)

Kannst Du mir helfen?

Gruß,
Frank

getRederState missing friendly name of rooms

hello,

i try to use the node raumserver but i'm missing the friendly name of my rooms?

curl "http://obelix:18080/raumserver/data/getRendererState?listAll=true" |json -a data |json -a rooms

f.ex. returns:

[
  {
    "roomUDN": "uuid:50f23c84-0a1b-48de-ab44-10e9dd068f4e",
    "transportState": "STOPPED",
    "online": true,
    "volume": "46",
    "mute": "0"
  }
]
[
  {
    "roomUDN": "uuid:b463e62d-b87a-4b4a-ab4d-bdee80821f78",
    "transportState": "STOPPED",
    "online": true,
    "volume": "33",
    "mute": "0"
  }
]
[
  {
    "roomUDN": "uuid:8d10c182-e6e5-4c54-817e-9313877877f7",
    "transportState": "PLAYING",
    "online": true,
    "volume": "25",
    "mute": "0"
  }
]
[
  {
    "roomUDN": "uuid:00287e64-0fcb-4e56-92da-30aaa0518b63",
    "transportState": "STOPPED",
    "online": true,
    "volume": "26",
    "mute": "0"
  }
]
[
  {
    "roomUDN": "uuid:95ffde14-a056-452e-a4fb-4d9c068fdf4b",
    "volume": "52",
    "mute": "0",
    "online": true
  }
]
[
  {
    "roomUDN": "uuid:c7684d10-6548-4a4c-a9e7-6a31e178d8ac",
    "transportState": "STOPPED",
    "online": true,
    "volume": "26",
    "mute": "0"
  }
]
[
  {
    "roomUDN": "uuid:02fe4938-45ce-4e13-b827-06a3fa45e3aa",
    "transportState": "STOPPED",
    "online": true,
    "volume": "42",
    "mute": "0"
  }
]
[
  {
    "roomUDN": "uuid:1a0c63af-481d-41e3-859b-b777616ee63e",
    "volume": "36",
    "mute": "0",
    "online": true
  }
]

with what request would i get the friendly name + roomUDN + state - f.ex. for a doorbell functionality - i need to ring on certain speaker depending on the states and after ring put them into the prev. state again - sure i can make my own matching for friendly name + roomUDN - but would be nice to have this in one request - and reading my code for friendly names is more readable as the udn's.

what do you think?

thanks
holli

Change Input on Soundbar/Sounddeck (TV,AUX,OPT)

I'm looking for a possibility to switch the Input for the Sounddeck/Soundbar device.

This Input can be changed using the app, and I want to replace the raumfeld remote with my harmony hub, which at the moment can only switch on my sounddeck und switch off my sounddeck, but i still need to switch the channel using raumfeld remote.

As far as i've seen in the "old" issues ChriD don't have this device that's why he can not check if it is possible. But if you tell me what i need to check, or to trace just let me now and i will try that :-)

Thx a lot

Regards
Alex

Introducing error object for request return data

Throwing any kind of errors should result in an error object whcih will be given as data into the response if there is an error.

e.g.

{
  "errorMessage" : "I am the error message"
  ...
}

and t should reside on the base class and be created like
this.createErrorObject(_errorMessage,....)

Installation

Hallo,

ich versuche gerade, das auf einem Pi3 mit openHABian zum Laufen zu bringen und scheitere grandios. Was mache ich falsch?

sudo apt-get install -y nodejs npm node

mkdir raumfeld
cd raumfeld/
npm install node-raumserver

[22:15:28] openhabian@openHABianPi:/raumfeld$ node node_modules/node-raumserver/test.js
[22:15:30] openhabian@openHABianPi:
/raumfeld$ echo $?
1

[22:15:36] openhabian@openHABianPi:~/raumfeld$ npm start node-raumserver

[email protected] start /home/openhabian/raumfeld/node_modules/node-raumserver
node index.js

npm ERR! [email protected] start: node index.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is most likely a problem with the node-raumserver package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node index.js
npm ERR! You can get their info via:
npm ERR! npm owner ls node-raumserver
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 4.4.50-v7+
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "start" "node-raumserver"
npm ERR! cwd /home/openhabian/raumfeld
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/openhabian/raumfeld/npm-debug.log
npm ERR! not ok code 0

Irgendwelche falschen/veralteten Versionen? Aber apt-get update/upgrade bringt nichts Neues... Ich bin ratlos.

Danke fürs helfen,
Marco

TypeError: Cannot read property 'length' of undefined

Every command (except for Get Zone Config) fails with the following error:
{requestUrl : "/raumserver/controller/createZone?id=871ab9db-6305-4cf6-8633-6d7405faadd5&_=1500491016990", action : "createZone", error : true, msg : "Action was rejected", data : {errorMessage : "TypeError: Cannot read property 'length' of undefined", errorData : null } }

OS: Windows with current release of node.js

  • zip downloaded from github,
  • npm install issued.
  • IP of Raumfeld standalone speaker pasted to config/default.json
  • Port changed to 8081 (because 8080 on that machine is already in use=
  • node raumserver.js

Danke! :)

Add loadUri request

loadUri
With this request you can load a uri into a zone playlist
You may use this for loading streams which are not accessible via the upnp server
Currently only direct urls will work (no playlist urls)
/raumserver/controller/loadUri?id=Wohnzimmer&value=[urlencoded uri]
/raumserver/controller/loadUri?id=Wohnzimmer&value=http%3A%2F%2Fmp3channels.webradio.rockantenne.de%2Fheavy-metal

add raumfeld devices manually

Hi,

is it possible to add the Raumfeld Devices maually by ip instead of discovering?
Reason:
My PC is connected to a different subnet so discovering is not working.
Your raumserver was great to use for that, too bad it is discontinued...
Easy to control via curl...

Regards
Sören

Get current volume level via http request

Hi,

I'm trying to add an Raumfeld Speaker Service to my HomeKit Installation. For this, I need the current volume of the raumfeld zone/speaker as an http request in plain "0" - "100" format.

Is this already possible? I know that it's possible to set the volume, but how to get the current volume level back?

Thanks for your help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.