Closed melksem closed 7 years ago
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")
Hmm... du erstellst eine Zone aus der Küche und fügst dann die Küche aber zur Wohnzimmer Zone hinzu hinzu. Das kann im Browser eiegntlich auch nicht funktionieren außer die Wohnzimmer Zone existiert schon. Mach mal so:
// eine neue zone erstellen mit dem küchen raum
sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/createZone?id=Küche")
Thread::sleep(1500)
// den Wohnzimmer raum zur Küchenzone hinzufügen
sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/addToZone?id=Wohnzimmer&zoneId=Küche")
Thread::sleep(1500)
und mach mal den sleep länger. Keine Ahnung ob der sendHttpGetRequest
ein sychroner call ist oder nicht
Ok, so ist das gemeint. Ich hab es mal umgedreht, aber es geht trotzdem nicht. Scheinbar funktioniert das "createZone" schon nicht so ganz, weil danach immer noch 2 Räume in der Zone sind.
Code:
// neue Zone aus allen Geräten erstellen
sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/createZone?id=Küche")
Thread::sleep(1500)
sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/addToZone?id=Wohnzimmer&zoneId=Küche")
//Thread::sleep(1500)
sendHttpGetRequest("http://192.168.178.8:8080/raumserver/controller/loadPlaylist?id=Küche&value=zzMDRJump")
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: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: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
debug: [ZoneManager] Zone configuration request returns with updateId: '409595783'
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:b47a4114-17ed-43c0-8bb6-584bcb59c5f1"},"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: 409595783
debug: [DeviceManager] Device list request returns with updateId: '1924450034'
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:54497/23edaa33-b6db-4a29-b298-99a555a7f45b.xml
debug: [DeviceManager] Get device description from http://192.168.178.22:54104/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:49720/48c57453-aa3c-48c1-a3a9-875cc5c436f0.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:55998/5d609a99-9ec6-485f-bdb2-ecf4571bd5d1.xml
debug: [DeviceManager] Get device description from http://192.168.178.28:45245/upnp/dev/71920b1a-5d21-3d62-ffff-ffffc8385632/desc
debug: [DeviceManager] Get device description from http://192.168.178.2:5000/ssdp/desc-DSM-eth0.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:60619/75b3773d-5f7d-466b-8990-56227d314966.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:52450/89e90b17-01b6-4e93-920d-e03ae758e1cb.xml
debug: [DeviceManager] Get device description from http://192.168.178.21:50341/8e46f382-de12-443d-9800-7d755486aa14.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: 1924450034
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.2:5000/ssdp/desc-DSM-eth0.xml
verbose: [DeviceManager] Device 'DiskStation (DS212j)' of type 'urn:schemas-upnp-org:device:Basic:1' (Synology NAS) 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.22:49720/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.28:45245/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:50341/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:54497/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:55998/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:52450/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:60619/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:54104/26370a0e-339e-4f38-8a3a-fba9213fec0c.xml
verbose: [DeviceManager] Device 'Raumfeld Device' of type 'urn:schemas-raumfeld-com:device:RaumfeldDevice:1' (undefined) not usable
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: [MediaRenderer|Speaker Küche] AVTransport subscription callback triggered on device 'Speaker Küche'
debug: [MediaRenderer|Speaker Küche] Set new updateId to: 873630
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":"37296808"}
debug: [MediaDataConverter] Got empty list
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
debug: ContentDirectory subscription callback triggered on device 'Raumfeld MediaServer'
verbose: [Raumserver] Request received: GET /raumserver/controller/addToZone?id=Wohnzimmer&zoneId=Küche
debug: [Raumserver] Request to raumserver recognized: /raumserver/controller/addToZone?id=Wohnzimmer&zoneId=Küche
debug: [Raumserver] Handle action 'addToZone' with query: {"id":"Wohnzimmer","zoneId":"Küche"}
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:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [DeviceManager] Media renderer for id : Wohnzimmer found
debug: [DeviceManager] Trying to get media renderer for id name : Wohnzimmer
debug: [ZoneManager] Get room information object for: uuid:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
debug: [DeviceManager] Media renderer for id : Wohnzimmer found
debug: [Request.addToZone] Calling action 'addToZone' for renderer Wohnzimmer
debug: [ZoneManager] Get room information object for: uuid:23edaa33-b6db-4a29-b298-99a555a7f45b
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:48c57453-aa3c-48c1-a3a9-875cc5c436f0
debug: [DeviceManager] Media renderer for id : Küche found
error: [Request.addToZone] Exception thrown: Error: Zone for zoneId 'Küche' not found!
at Request_AddToZone.runAction (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/requestHandlers/lib.request.addToZone.js:39:21)
at /home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:182:22
at Request_AddToZone.runActionForMediaRenderer (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:168:16)
at Request_AddToZone.run (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:111:47)
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: [Request.addToZone] Some renderers had exceptions: Error: Zone for zoneId 'Küche' not found!
at Request_AddToZone.runAction (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/requestHandlers/lib.request.addToZone.js:39:21)
at /home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:182:22
at Request_AddToZone.runActionForMediaRenderer (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:168:16)
at Request_AddToZone.run (/home/openhabian/raumfeld/node_modules/node-raumserver/lib/lib.base.requestMediaRenderer.js:111:47)
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: Zone for zoneId 'Küche' not found!, errorData=null
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: [DeviceManager] Device list request returns with updateId: '1924450035'
Scheinbar funktioniert das "createZone" schon nicht so ganz, weil danach immer noch 2 Räume in der Zone sind.
Vermutlich müssen die Wartezeit zwischen den kommands noch erhöht werden. In meinem System dauert es schon fast 5 sekunden bis die zone dann erstellt ist und das system es mitbekommen hat. Das liegt aber an den responsezeiten des rf hosts.
(Also die Zonenerstellung dauert etwa 1 sekunde aber ich hole mir die deviceeinstellungen vom RF host über long polling und der reagiert auf das erst ein paar sekunden später... )
Die Zonenrequest bieten leider noch nicht die möglichkeit sich erst zurückzumelden wenn die zonen sich wirklich geändert haben. Bei ein paar anderen requests hab ich das schon gemacht.
Hast du den das ganze schon mit meiner "Testseite" probiert? Da gibts im package unter node-raumserver einen ordner mit "test".
Ich hab jetzt mal 5 Sekunden nach dem Erstellen der Zone eingefügt und 3 Sekunden nach dem Hinzufügen des zweiten Raums. Das hat genügt. Sehr fein :)
Kann man die Requests vielleicht synchron machen? So dass man erst ein Response bekommt, wenn es wirklich umgesetzt ist? Dann braucht man sich um die Wartezeiten nicht selbst kümmern, das wär schön.
Danke für die Hilfe
Kann man die Requests vielleicht synchron machen? So dass man erst ein Response bekommt, wenn es wirklich umgesetzt ist? Dann braucht man sich um die Wartezeiten nicht selbst kümmern, das wär schön.
Vorausgesetzt das sendHttpGetRequest
ist bei openhab synchron dann fällt das in diesen issue:
https://github.com/ChriD/node-raumkernel/issues/22
Welchen ich zum teil schon umgesetzt habe und an den ich gerade arbeite
Die Zonenrequest bieten leider noch nicht die möglichkeit sich erst zurückzumelden wenn die zonen sich wirklich geändert haben. Bei ein paar anderen requests hab ich das schon gemacht.
Alles klar, danke
@melksem
Es gibt jetzt die Möglichkeit bei den requests eine zusätzliche option zu benutzen Und zwar confirm
z.B.
?createZone?id=Küche&confirm=1
Das bedeutet das der createZone
request erst eine rückantwort gibt, wenn die zone wirklich existiert
Funktioniert prima. Hab es im Browser getestet. Das createZone dauert ein bisschen, dass addToZone geht dann fix.
Danke
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:
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: