Closed gahujipo closed 6 years ago
I thought it might be a good idea to avoid the sharp (#) in the Speakername so i reset the speaker in the bathroom to its factory default and configured it as "Badezimmer". So my new zone config now is
{
requestUrl: "/raumserver/data/getZoneConfig?_=1515012656289",
action: "getZoneConfig",
error: false,
msg: "",
data: {
zoneConfig: {
$: {
numRooms: "2",
spotifyMode: "multiRoom"
},
zones: [{
zone: [{
$: {
udn: "uuid:ffffffff-8d8b-fce1-ffff-ffff8d8bfce1",
spotifyConnect: "active"
},
room: [{
$: {
name: "Badezimmer",
udn: "uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d",
powerState: "ACTIVE"
},
renderer: [{
$: {
udn: "uuid:645f498e-4840-46b1-9305-a4dc2a62a439",
name: "Speaker Badezimmer"
}
}]
},
{
$: {
name: "Zimmer",
udn: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
powerState: "ACTIVE"
},
renderer: [{
$: {
udn: "uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c",
name: "Speaker Zimmer"
}
}]
}
]
}]
}]
}
}
}
It doesn't solve the problem. But what i realised is that when I send commands to
id=Badezimmer
doesn't work at all. But some commands work when i send them with
id=Speaker Badezimmer
Commands against the speaker name, that work are
Commands that do not work are:
They time out with no entry in the log.
What is going on here? Since today I always set the id to the room name, not the speakers name. That is really strange...
Again the log entries that appear when sending getRendererState against the room name (in this case "Badezimmer", not "Speaker Badezimmer") are:
verbose: [Raumserver] Request received: GET /raumserver/controller/getRendererState?id=Badezimmer&_=1515013318514
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/getRendererState?id=Badezimmer&_=1515013318514
debug: [Raumserver] Handle action 'getRendererState' with query: {"_":"1515013318514","id":"Badezimmer"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Badezimmer
debug: [DeviceManager] Trying to get media renderer for id name : Badezimmer
debug: [ZoneManager] Get room information object for: uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c
debug: [Request.getRendererState] No updateId given for action 'getRendererState'. Using direct execution
error: [Request.getRendererState] Media Renderer for id 'Badezimmer' not found
error: [Raumserver] Request was rejected: errorMessage=Error: Media Renderer for id 'Badezimmer' not found, errorData=null
The error message after sending a pause command could be more helpful:
verbose: [Raumserver] Request received: GET /raumserver/controller/pause?id=Badezimmer&_=1515013318523
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/pause?id=Badezimmer&_=1515013318523
debug: [Raumserver] Handle action 'pause' with query: {"_":"1515013318523","id":"Badezimmer"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Badezimmer
debug: [DeviceManager] Trying to get media renderer for id name : Badezimmer
debug: [ZoneManager] Get room information object for: uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c
error: [Request.pause] VirtualMediaRenderer for id 'Badezimmer' not found
error: [Request.pause] Some renderers had exceptions: Error: VirtualMediaRenderer for id 'Badezimmer' 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 'Badezimmer' not found, errorData=null
Let me know if i can check you something in the UPnP structure of the device. Maybe the newer Raumfelds have some changed nodes there. Is that maybe the reason why the VirtualMediaRenderer for the room id can't be found?
It should be no difference if you use the speaker name or the room name. (In fact there can be 2 speakers in one room but that is hardly the case). The system should find the renderer no matter what name you use.
I do have the old "Raumfeld OneS" in my Bathroom and there is no Problem as you mentioned in the first post. I may have to add some more logs to get an idea what the issue is or maybe its better to add a request which will list me the device objects with their properties the kernel is holding.
I think i will create a "systemInfo" request. I will response here if i have updated the server
It should be no difference if you use the speaker name or the room name. The system should find the renderer no matter what name you use.
I can confirm, that there is some difference.
I do have the old "Raumfeld OneS" in my Bathroom and there is no Problem as you mentioned in the first post.
Exactly, with the Raumfeld One S it always worked as expected, the problem appeared when I replaced them with the new Teufel One S.
I may have to add some more logs to get an idea what the issue is or maybe its better to add a request which will list me the device objects with their properties the kernel is holding. I think i will create a "systemInfo" request. I will response here if i have updated the server
Amazing, thank you in the meantime. As always: let me know if you need additional info.
@gahujipo Can you please check your logs if you got a line which says
"Device ... of type ... (...) not usable"
and check if bathroom is mentioned there? You do not need to update the kernel or server
Thanks!
I "grepped" for the word "useable" in the log until approx. 20 seconds after the startup of node-raumserver. The output is:
verbose: [DeviceManager] Media server 'Raumfeld MediaServer' is useable
verbose: [DeviceManager] Raumfeld media renderer 'Speaker Zimmer' is useable
verbose: [DeviceManager] Media renderer 'Speaker Badezimmer' is useable
verbose: [DeviceManager] Media Renderer 'Zimmer' is useable
After updating both kernel and raumserver i realised that when I send the command
/raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1
does what it should do. It raises the volume up 1% for Speaker Zimmer and Speaker Badezimmer, but it writes in the log:
error: [Raumserver] Request was rejected because unknown path
But
/raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1&scope=room
does nothing and outputs just the entry above.
Zone config remained the same as described in my previous comments.
Ok. This one:
error: [Raumserver] Request was rejected because unknown path
is thrown by the favicon.ico request of the browsers. I will supress this error in the next version if its thrown by the favicon request
So the following works?
/raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1
That's good!
And this one?:
/raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1
&scope=room
In fact it should be possible to use the Speaker name but it is best practice to use the room name If both commands work, than its good and there is no problem.
Wenn du den Fehler nochmal bekommst mit "Zone for Badezimmer not found" Kannst du dann, (ohne das du auf der RF App was machst) die Zonenconfig über den Server (getZoneConfig)nochmal ansehen?
Danke!
So the following works? /raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1 That's good!
Yep. That works. Note that it works only for the speaker name, not when i use the room name.
And this one?: /raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1&scope=room
It returns
{"requestUrl":"/raumserver/controller/volumeDown?id=Speaker%20Badezimmer&value=1&scope=room","action":"volumeDown","error":false,"msg":"","data":{"udn":"uuid:ffffffff-8d8b-fce1-ffff-ffff8d8bfce1"}}
but has no effect on the speaker.
Wenn du den Fehler nochmal bekommst mit "Zone for Badezimmer not found"
Which error do you mean exactly? Is that really the text you are expecting? I think none of the errors i previously got, returned that kind of output.
Can you give me the output of "getRendererState" request plerase? Without any queries, so i get the info for all renderers
{
requestUrl: "/raumserver/controller/getRendererState?id=Speaker%20Badezimmer&_=1516175803462",
action: "getRendererState",
error: false,
msg: "",
data: [{
InstanceID: 0,
CurrentTrackMetaData: "",
CurrentRecordQualityMode: "NOT_IMPLEMENTED",
AbsoluteTimePosition: "00:00:00",
SecondsUntilSleep: "0",
CurrentTrack: "0",
AVTransportURIMetaData: "",
PossiblePlaybackStorageMedia: "NETWORK",
TransportPlaySpeed: "1",
CurrentTrackDuration: "00:00:00",
PossibleRecordQualityModes: "NOT_IMPLEMENTED",
TransportError: "",
PossibleRecordStorageMedia: "NONE",
AVTransportURI: "",
RelativeTimePosition: "00:00:00",
RelativeCounterPosition: "1",
CurrentPlayMode: "NORMAL",
Bitrate: "0",
TransportState: "NO_MEDIA_PRESENT",
AbsoluteCounterPosition: "1",
CurrentTransportActions: "",
RoomStates: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5=STOPPED",
ContentType: "",
NumberOfTracks: "0",
SleepTimerActive: "0",
TransportStatus: "OK",
CurrentTrackURI: "",
mute: 0,
RoomVolumes: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5=26,uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d=41",
Volume: "41",
Mute: "0",
RoomMutes: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5=0,uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d=0",
rooms: [{
roomUDN: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
transportState: "STOPPED",
online: true,
volume: "26",
mute: "0",
name: "Zimmer",
udn: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
powerState: "AUTOMATIC_STANDBY",
renderer: [{
udn: "uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c",
name: "Speaker Zimmer"
}]
},
{
roomUDN: "uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d",
volume: "41",
mute: "0",
online: true,
name: "Badezimmer",
udn: "uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d",
powerState: "MANUAL_STANDBY",
renderer: [{
udn: "uuid:645f498e-4840-46b1-9305-a4dc2a62a439",
name: "Speaker Badezimmer"
}]
}
],
udn: "uuid:ffffffff-8d8b-fce1-ffff-ffff8d8bfce1",
mediaItem: null,
friendlyName: "Zimmer",
host: "192.168.0.113",
manufacturer: "Raumfeld GmbH",
modelNumber: "2"
}]
}
WITHOUT any queries please (please remove ID=...) I need the virtual renderer info
HUH! I see you have 2 renderers in your room?!?! If you use "Zimmer" instead of "Badezimmer" it will work :)
EDIT: Sorry.. i did missinterpret the data. Please give me the full list as mentioned in the last comment
{
requestUrl: "/raumserver/controller/getRendererState?id=&_=1516175803463",
action: "getRendererState",
error: false,
msg: "",
data: [{
InstanceID: 0,
CurrentTrackMetaData: "",
CurrentRecordQualityMode: "NOT_IMPLEMENTED",
AbsoluteTimePosition: "00:00:00",
SecondsUntilSleep: "0",
CurrentTrack: "0",
AVTransportURIMetaData: "",
PossiblePlaybackStorageMedia: "NETWORK",
TransportPlaySpeed: "1",
CurrentTrackDuration: "00:00:00",
PossibleRecordQualityModes: "NOT_IMPLEMENTED",
TransportError: "",
PossibleRecordStorageMedia: "NONE",
AVTransportURI: "",
RelativeTimePosition: "00:00:00",
RelativeCounterPosition: "1",
CurrentPlayMode: "NORMAL",
Bitrate: "0",
TransportState: "NO_MEDIA_PRESENT",
AbsoluteCounterPosition: "1",
CurrentTransportActions: "",
RoomStates: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5=STOPPED",
ContentType: "",
NumberOfTracks: "0",
SleepTimerActive: "0",
TransportStatus: "OK",
CurrentTrackURI: "",
mute: 0,
RoomVolumes: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5=26,uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d=41",
Volume: "41",
Mute: "0",
RoomMutes: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5=0,uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d=0",
rooms: [{
roomUDN: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
transportState: "STOPPED",
online: true,
volume: "26",
mute: "0",
name: "Zimmer",
udn: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
powerState: "AUTOMATIC_STANDBY",
renderer: [{
udn: "uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c",
name: "Speaker Zimmer"
}]
},
{
roomUDN: "uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d",
volume: "41",
mute: "0",
online: true,
name: "Badezimmer",
udn: "uuid:56d49d64-0eaa-4f35-a0b2-4f3f102e550d",
powerState: "MANUAL_STANDBY",
renderer: [{
udn: "uuid:645f498e-4840-46b1-9305-a4dc2a62a439",
name: "Speaker Badezimmer"
}]
}
],
udn: "uuid:ffffffff-8d8b-fce1-ffff-ffff8d8bfce1",
mediaItem: null,
friendlyName: "Zimmer",
host: "192.168.0.113",
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: "0.000000",
HighDB: "0.000000",
Volume: "26",
VolumeDB: "-6772",
Balance: "0",
rooms: [{
name: "Zimmer",
udn: "uuid:871ab9db-6305-4cf6-8633-6d7405faadd5",
powerState: "AUTOMATIC_STANDBY",
renderer: [{
udn: "uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c",
name: "Speaker Zimmer"
}]
}],
udn: "uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c",
mediaItem: null,
friendlyName: "Speaker Zimmer",
host: "192.168.0.113",
manufacturer: "Raumfeld GmbH",
modelNumber: "2"
}
]
}
I am not sure if it may be the problem. But the new Speaker-S for sure has another ManufacturereID Are you able to get me the new ManufacturerID (Intel Device UPNP Tools)?
is this what you are looking for?
YEP! Thanks!
I have updated the kernel and the server. Can you please update yours and try the volume command again with the Room Name? Please set log Level to 5 I have added some more logs and added the new ManufacturereID
{"requestUrl":"/raumserver/controller/volumeUp?id=Badezimmer&value=1","action":"volumeUp","error":true,"msg":"Action was rejected","data":{"errorMessage":"ReferenceError: zoneUDN is not defined","errorData":null}}
outputs now:
error: [DeviceManager] Error: connect EHOSTUNREACH 192.168.0.4:80
silly: [DeviceManager] Check connection with the host!
silly: [DeviceManager] Check connection with the host!
silly: [DeviceManager] Check connection with the host!
silly: [DeviceManager] Check connection with the host!
verbose: [Raumserver] Request received: GET /raumserver/controller/volumeUp?id=Badezimmer&value=1
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/volumeUp?id=Badezimmer&value=1
debug: [Raumserver] Handle action 'volumeUp' with query: {"id":"Badezimmer","value":"1"}
debug: [DeviceManager] Trying to get virtual media renderer for id or (child)name : Badezimmer
debug: [DeviceManager] Trying to get media renderer for id name : Badezimmer
debug: [ZoneManager] Get room information object for: uuid:e6d93437-8afd-46e0-8eb6-adebaf0f325c
debug: [ZoneManager] Get room information object for: uuid:645f498e-4840-46b1-9305-a4dc2a62a439
debug: [DeviceManager] Media renderer for id : Badezimmer found
silly: [ZoneManager] badezimmer = uuid:645f498e-4840-46b1-9305-a4dc2a62a439
error: [Request.volumeUp] Some renderers had exceptions: ReferenceError: zoneUDN is not defined
at DeviceManager.getVirtualMediaRenderer (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/node_modules/node-raumkernel/lib/lib.manager.deviceManager.js:711:44)
at Request_VolumeUp.getMediaRenderersFromIdAndScope (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.base.request.js:134:68)
at Request_VolumeUp.run (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:68:39)
at Raumserver.handleRequestObject (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.raumserver.js:148:28)
at Raumserver.requestReceived (/opt/loxberry/data/plugins/raumserver/node_modules/node-raumserver/lib/lib.raumserver.js:111: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=ReferenceError: zoneUDN is not defined, errorData=null
while 192.168.0.4 is not a Raumfeld Device (but has some UPnP/SSDP functionality)
I get the same output when I add "&scope=room".
Raumserver isn't working for none of the zones. Even the other Pair of Speakers (Zimmer) aren't controllable anymore. A command against them output the same kind of error.
Oh.. Big failure. Please update again. I introduced a "spelling" bug i corrected it
Amazing! 👍 PayPal donation is out.
I installed another Raumfeld Streaming Speaker: the new Teufel One S (not the Raumfeld One) in my bathroom (Bad). The zone config gives me:
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
The Raumfeld One S never had that problems. It seems to me as an incompatibility with the newer devices?
Log shows:
@ChriD do you have an idea? Let me know if you need further infos.