NEWS
Problem: SONOS Favoritenliste (Radio) über VIS steuern
-
Hallo,
ich setze meine Sonos Favoritensender über den 6fach Wandtaster. Alles funktioniert. Wenn Taste gedrückt, würd der Datenpunkt favorites_set mit dem neuen Sender beschrieben und Sonos spielt den Sender.
Anders bei VIS:
Wenn ich mit einem Widget den Datenpunkt beschreibe, dann wird der Sendern nicht gewechselt. Also habe ich ein Skript geschrieben, dass auf die Änderung des Datenpunktes reagiert, wenn die Änderung vom web-Adapter (also auch aus VIS) kommt.
Widget:
! ````
[{"tpl":"tplMetroTileState","data":{"visibility-cond":"==","visibility-val":1,"hover":false,"transform":"true","bg_class_false":"bg-transparent","bg_class_true":"bg-olive","icon_class_false":"","icon_class_true":"","icon_badge_false":"","icon_badge_true":"","badge_bg_class_false":"","badge_bg_class_true":"","brand_bg_class_false":"","brand_bg_class_true":"","name":"Sonos Favorit 2","state_oid":"sonos.0.root.192_168_178_51.favorites_set","value":"DRadio Wissen","label_true":"DRadio Wissen","label_false":"DRadio Wissen","class":""},"style":{"left":"865px","top":"564px","z-index":"20","height":"50px","width":"136px"},"widgetSet":"metro"}]Skript: >! ```` var idSonos_fav_set = 'sonos.0.root.192_168_178_51.favorites_set', idSonos_muted = 'sonos.0.root.192_168_178_51.muted', idSonos_state = 'sonos.0.root.192_168_178_51.state'; >! // Bei Änderung des aufgerufenen Favoriten aus VIS on({ id: idSonos_fav_set, change: 'ne', from: 'system.adapter.web.0' }, function (data) { if (getState(idSonos_muted).val === false) { // wenn leise, dann laut stellen setState(idSonos_muted, true); } setState(idSonos_state, true); // play log('Neuer Sonos Sender über VIS eingestellt: ' + data.newState.val); });
Die OS X Sonos App zeigt die Änderung an. Die Musik spielt. Alles gut.
Allerdings gibt das Log einen Fehler aus, manchmal wird sogar der Sonos Adapter neu gestartet.
2015-11-20 19:48:25.581 - info: sonos.0 try to control id sonos.0.root.192_168_178_51.favorites_set with {"val":"DRadio Wissen","ack":false,"ts":1448045306,"from":"system.adapter.web.0","lc":1448045306} 2015-11-20 19:48:25.583 - info: javascript.0 script.js.VIS_Sonos: Neuer Sonos Sender über VIS eingestellt: DRadio Wissen 2015-11-20 19:48:25.594 - info: sonos.0 try to control id sonos.0.root.192_168_178_51.state with {"val":true,"ack":false,"ts":1448045306,"from":"system.adapter.javascript.0","lc":1448045306} 2015-11-20 19:48:25.596 - error: uncaught exception: state.val.toLowerCase is not a function 2015-11-20 19:48:25.598 - error: TypeError: state.val.toLowerCase is not a function at Adapter. <anonymous>(/Users/pix/Documents/iobroker/node_modules/iobroker.sonos/sonos.js:50:39) at emitTwo (events.js:87:13) at Adapter.emit (events.js:172:7) at null._onTimeout (/Users/pix/Documents/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1911:34) at Timer.listOnTimeout (timers.js:92:15) 2015-11-20 19:48:25.900 - info: sonos.0 terminating 2015-11-20 19:48:27.753 - error: host.MacMini-Ethernet.fritz.box instance system.adapter.sonos.0 terminated with code 6 (uncaught exception) 2015-11-20 19:48:27.753 - info: host.MacMini-Ethernet.fritz.box Restart adapter system.adapter.sonos.0 because enabled</anonymous>
Dieser Fehler: uncaught exception: state.val.toLowerCase is not a function ist schon an anderer Stelle mal aufgetaucht.
Woran liegt's?
Gruß
Pix