ChriD / node-raumserver

A nodejs module/server to control the raumfeld multiroomsystem via HTTP-Requests
58 stars 14 forks source link

Cannot read property 'length' of undefined #64

Open ItsFelix opened 6 years ago

ItsFelix commented 6 years ago

Wenn ich z.B. "http://192.168.178.44:8080/raumserver/controller/setVolume?value=90&id=Badezimmer&scope=room" mache kommt: {"requestUrl":"/raumserver/controller/setVolume?value=90&id=Badezimmer&scope=room","action":"setVolume","error":true,"msg":"Action was rejected","data":{"errorMessage":"TypeError: Cannot read property 'length' of undefined","errorData":null}}

in der konsole steht: error: [Request.setVolume] Some renderers had exceptions: message=Cannot read property 'length' of undefined, stack=TypeError: Cannot read property 'length' of undefined at ZoneManager.getVirtualRendererUdnForChildUdnOrName (/home/pi/node_modules/node-raumkernel/lib/lib.manager.zoneManager.js:359:85) at DeviceManager.getVirtualMediaRenderer (/home/pi/node_modules/node-raumkernel/lib/lib.manager.deviceManager.js:708:60) at Request_SetVolume.getMediaRenderersFromIdAndScope (/home/pi/node_modules/node-raumserver/lib/lib.base.request.js:134:68) at Request_SetVolume.run (/home/pi/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:68:39) at Raumserver.handleRequestObject (/home/pi/node_modules/node-raumserver/lib/lib.raumserver.js:152:28) at Raumserver.requestReceived (/home/pi/node_modules/node-raumserver/lib/lib.raumserver.js:115:22) at Server. (/home/pi/node_modules/node-raumserver/lib/lib.raumserver.js:84:26) at Server.emit (events.js:160:13) at parserOnIncoming (_http_server.js:628:12) at HTTPParser.parserOnHeadersComplete (_http_common.js:112:17) error: [Raumserver] Request was rejected: errorMessage=TypeError: Cannot read property 'length' of undefined, errorData=null

was aber geht ist: "http://192.168.178.44:8080/raumserver/data/getRendererState?id=Badezimmer&scope=room"

{"requestUrl":"/raumserver/data/getRendererState?id=Badezimmer&scope=room","action":"getRendererState","error":false,"msg":"","data":[{"InstanceID":0,"AVTransportURIMetaData":"","CurrentTrackDuration":"NOT_IMPLEMENTED","PowerState":"AUTOMATIC_STANDBY","AVTransportURI":"","CurrentPlayMode":"NORMAL","TransportState":"NO_MEDIA_PRESENT","OwnsAudioResource":"0","CurrentTransportActions":"","TransportStatus":"OK","LowDB":"2.400000","Mute":"0","MidDB":"0.000000","Volume":"20","HighDB":"3.000000","rooms":[{"name":"Badezimmer","udn":"uuid:3871fc52-76f6-400b-8752-1fc69f29ae29","powerState":"AUTOMATIC_STANDBY","renderer":[{"udn":"uuid:826dcde8-b922-4faf-b763-a3b42dc0d2b3","name":"Speaker Badezimmer","spotifyConnect":"active"}]}],"udn":"uuid:826dcde8-b922-4faf-b763-a3b42dc0d2b3","mediaItem":null,"friendlyName":"Speaker Badezimmer","host":"192.168.178.58","manufacturer":"Lautsprecher Teufel GmbH","modelNumber":"1"}]}

Wenn ich node-raumserver starte:

info: [Raumserver] Welcome to raumserver v0.1.4 (raumkernel v1.2.21) info: [Raumserver] wlan0 192.168.178.44 info: [Raumkernel] Found raumfeld host on: 192.168.178.27 info: [DeviceManager] Media renderer added: [LG] webOS TV OLED55B7D (uuid:69044f 17-5129-ae75-3518-0f4dd20ddc03) info: [DeviceManager] Raumfeld Media renderer added: Speaker Badezimmer (uuid:82 6dcde8-b922-4faf-b763-a3b42dc0d2b3) info: [DeviceManager] Media Server added: Opouteres Datenserver (uuid:fa095ecc-e 13e-40e7-8e6c-c02506f5d905) info: [DeviceManager] Raumfeld Media renderer added: Speaker Wohnzimmer Soundbar (uuid:dc77aa19-0c5c-4ca7-9bce-bbdb7c0c89f0) info: [DeviceManager] Raumfeld Media renderer added: Speaker Felix’s Zimmer (uui d:dfe7d626-23ce-4239-ad65-c9026f8b79b1) info: [DeviceManager] Raumfeld media server added: Raumfeld MediaServer (uuid:f9 06beaf-0f2e-4396-b2b4-a0a501987d8c) info: [DeviceManager] Media renderer added: Finjas Zimmer (uuid:3DCC7100-F76C-11 DD-87AF-002261F822E2) error: [MediaRenderer|[LG] webOS TV OLED55B7D] Error: SUBSCRIBE error

Ich weiss nicht worand das liegt ich habe mehrere Geräte von raumfeld und es funktioniert bei keinem es ist egal ob ich die uuid benutze oder Speaker vor dem raum mache es geht nicht. Ich hatte heute kurz irgendwas gemacht und setvolume hat funktioniert aber nach einem neustart nicht mehr :(

Ein fehler der beim Installieren aufgekommen ist:

npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field.

Wäre schön wenn du eine Idee hast und mir helfen kannst :) LG Felix

ChriD commented 6 years ago

Da gibts ein problem beim parsen der Räume aus den Zoneninformationen. Kann es sein das keine Zone aktiv ist? Bzw. benutzt du Spotify?

Ich schaus mir auf jeden Fall an.

ItsFelix commented 6 years ago

Erstmal Danke für die Antwort,

Ja ich benutze Spotify und ich habe in in Raumfeld 3 räume mit pro Raum ein Gerät die auch alle über Spotify Connect laufen.

ChriD commented 6 years ago

Bei Spotify sieht die ZonenInfo anders aus als bei "normalen" Zonen. Kannst du mir eventuell das Result der ZonenInfo des Servers posten? (getZoneConfiguration) Ich hab nämlich kein Spotify.

ItsFelix commented 6 years ago

Bei getZoneConfiguration "http://192.168.178.44:8080/raumserver/data/getZoneConfiguration": {"requestUrl":"/raumserver/data/getZoneConfiguration","action":"getZoneConfiguration","error":true,"msg":"Unknown action","data":{}}

Bei getZoneConfig "http://192.168.178.44:8080/raumserver/data/getZoneConfig": {"requestUrl":"/raumserver/data/getZoneConfig","action":"getZoneConfig","error":false,"msg":"","data":{"zoneConfig":{"$":{"numRooms":"3","spotifyMode":"singleRoom"},"zones":[{"zone":[{"$":{"udn":"uuid:5c227196-584c-4847-a949-af8b1f4234e4"},"room":[{"$":{"name":"Badezimmer","udn":"uuid:3871fc52-76f6-400b-8752-1fc69f29ae29","powerState":"MANUAL_STANDBY"},"renderer":[{"$":{"udn":"uuid:826dcde8-b922-4faf-b763-a3b42dc0d2b3","name":"Speaker Badezimmer"}}]}]}]}],"unassignedRooms":[{"room":[{"$":{"name":"Wohnzimmer Soundbar","udn":"uuid:4a230268-d922-4073-a663-be352d8a2d8c","powerState":"MANUAL_STANDBY"},"renderer":[{"$":{"udn":"uuid:dc77aa19-0c5c-4ca7-9bce-bbdb7c0c89f0","name":"Speaker Wohnzimmer Soundbar","spotifyConnect":"active"}}]},{"$":{"name":"Felix’s Zimmer","udn":"uuid:d77af194-9c37-404f-9b85-dfd6a8ddd1c0","powerState":"AUTOMATIC_STANDBY"},"renderer":[{"$":{"udn":"uuid:dfe7d626-23ce-4239-ad65-c9026f8b79b1","name":"Speaker Felix’s Zimmer","spotifyConnect":"active"}}]}]}]}}}

ChriD commented 6 years ago

Ja das meinte ich. Danke

ItsFelix commented 6 years ago

Gibt es mittlerweile was neues? LG Felix

ChriD commented 6 years ago

Es Tut mir Leid, noch nicht. Ich bin gerade schwer am Umbauen und da ist der raumserver leider ganz unten in der prio

ItsFelix commented 6 years ago

Ok alles gut! Lass dir ruhig Zeit ;)

ChriD commented 6 years ago

Der Fehler "Cannot read property 'length' of undefined" sollte jetzt nicht mehr kommen. Ich weiß aber immer noch nicht warum er bei dir den Raum nicht findet. Das Problem hat sich warscheinlich noch nicht von selst behoben oder? :)

ItsFelix commented 6 years ago

Keine Ahnung Was du Gemacht hast aber es funktioniert jetzt :) Nur das Gerät Finjas Zimmer funktioniert nicht wird aber wahrscheinlich daran liegen, dass es ein Billig Aldi Lautsprecher ist und keiner von Teufe oder?

ChriD commented 6 years ago

Teufel/Raumfeld lässt leider keine 3rd party renderer mehr zu. Das ging früher mal, haben sie aber leider rausgenommen. Eigentlich müsste man sie dafür grün und blau hauen. Hab damals viel Geld für das System bezahlt und dann stellen sie einfach Features ein.