imgrant / roon-extension-radio-presets-api

A Roon extension to play radio presets via an API trigger
Other
0 stars 1 forks source link

Zones array seems sometimes to be empty? #2

Open MarcusSRussell opened 2 years ago

MarcusSRussell commented 2 years ago

This is such a neat idea - appeals especially to my wife who much prefers buttons!

I am running Roon 1.8 build 1021 (latest) on an oldish MacBook Air but it has 8gb of memory and doesn't seem short of resources.

I have successfully manually installed the Roon radio presets extension and set stations. I have also managed to update my Squeezebox Radio with the patch (had to add a carriage return at the end of the raw code otherwise got a 'unexpected end of line' message but this worked.

So after rebooting Roon Server and the Squeezebox Radio all works as it should - whether from the buttons on the Squeezebox or using the URL in the browser. But after a few hours it stops finding the zones. This doesn't seem to be an issue specific to the Squeezebox radio - it also applies to another Squeezebox Lite device and my two Roon Ready end points (Auralic Aries mini and Altair G1). The only way to fix it seems to be to either restart Roon Server or disable and re-enable the offending device in Roon Settings >> Audio

I am not changing any of the Zone names or anything related.

An example error from the log file appears to show the Squeezebox as in zones but then isn't found - unfortunately there aren't timings so not quite sure how much time has lapsed between the last zones update and getting an error.

Here is a section from the log file:

<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"160194a857b417419f32ff0a76d99d6c84bf","display_name":"RoomPlayer","outputs":[{"output_id":"170194a857b417419f32ff0a76d99d6c84bf","zone_id":"160194a857b417419f32ff0a76d99d6c84bf","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf"],"display_name":"RoomPlayer","volume":{"type":"number","min":0,"max":100,"value":45,"step":1,"is_muted":true,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"SqueezeLite","supports_standby":true,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":8,"queue_time_remaining":2205,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"BBC Radio 4"},"two_line":{"line1":"BBC Radio 4","line2":""},"three_line":{"line1":"BBC Radio 4","line2":"","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}],"zones_removed":["16011e5696d81ca8b704d6709ce6dc778ed3"]}
<- CONTINUE 2 Changed {"zones_added":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","display_name":"Squeezebox Radio","outputs":[{"output_id":"17011e5696d81ca8b704d6709ce6dc778ed3","zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"Squeezebox Radio","volume":{"type":"number","min":0,"max":100,"value":0,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"Squeezebox Radio","supports_standby":true,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":true,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"160194a857b417419f32ff0a76d99d6c84bf","display_name":"RoomPlayer","outputs":[{"output_id":"170194a857b417419f32ff0a76d99d6c84bf","zone_id":"160194a857b417419f32ff0a76d99d6c84bf","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"RoomPlayer","volume":{"type":"number","min":0,"max":100,"value":45,"step":1,"is_muted":true,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"SqueezeLite","supports_standby":true,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":8,"queue_time_remaining":2205,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"BBC Radio 4"},"two_line":{"line1":"BBC Radio 4","line2":""},"three_line":{"line1":"BBC Radio 4","line2":"","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}]}
Preset requested: 4, zone: Squeezebox Radio
Zone matched: 16011e5696d81ca8b704d6709ce6dc778ed3
-> REQUEST 21 com.roonlabs.browse:1/browse {"hierarchy":"internet_radio","pop_all":true}
<- COMPLETE 21 Success {"action":"list","list":{"level":0,"title":"My Live Radio","subtitle":null,"image_key":null,"count":8,"display_offset":null}}
-> REQUEST 22 com.roonlabs.browse:1/load {"hierarchy":"internet_radio","pop_all":true}
<- COMPLETE 22 Success {"items":[{"title":"BBC Radio 2 HLS","subtitle":"","image_key":"bce05d9d5f56a111d1a1fbdcaaf142db","item_key":"10:0","hint":"action"},{"title":"BBC Radio 3","subtitle":"London, UK FM 91.3 English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae0092fb35114c76196d53b7aa67721ce82986b542d2c457c4b7cd264f9f2d07f31713def4bf5893025e6be3ccd5afccd92b878133a3946eab38c78356b3eaa4947b","item_key":"10:1","hint":"action"},{"title":"BBC Radio 4","subtitle":"London, UK FM 93.5 English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048","item_key":"10:2","hint":"action"},{"title":"BBC Radio 4 Extra","subtitle":"London, UK DAB 12B English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bb9e2efb2a83731bffc5f6f4bd9b8bc8828afbd4ad61f56f393a4490f444aaebf12f74f624ee7e736ad934efef54bab8994e52daeeae5073d4425cfef3bafb25","item_key":"10:3","hint":"action"},{"title":"BBC Radio 6 Music","subtitle":"London, UK DAB 12B English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae007d3482f20342a733ddda059276b81eb2f7034e57152e4bb720124744af5aa01c573186d0e7e1955270bdace14449701cb3c2c6494fda110b1aca794de33e354d","item_key":"10:4","hint":"action"},{"title":"BBC Radio Scotland","subtitle":"Glasgow, Scotland, UK DAB 11b, 11c, 12d English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae007058d12410a1f5138eb373304ca72722d69c3f21ad20a5451beb1613e5bae2c6c9c51105438790860df87cdcbc7a5428916acb6f065693da9655b41918bd0c71","item_key":"10:5","hint":"action"},{"title":"Caroline Flashback","subtitle":"Rochester, Kent, UK English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae003339ed572e1546a472bd4818c13d067fc21db20b15acea67d8b67acf69eaaf223837030e77000618cc68393b72c924ce9ad29b91c25d84c3db9ec85bdaebd767","item_key":"10:6","hint":"action"},{"title":"Virgin Radio UK","subtitle":"London, UK DAB 11A, 11C (NE Scotland) English","image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00b108d6f57f65b1e4a61b7fb3d94334389f02f68d852d1e1cbe7611e6710471c5bc9ac77b51ae77df93f4e2e3af7bfa08797d42bbf686d35d255e71b57184629f","item_key":"10:7","hint":"action"}],"offset":0,"list":{"level":0,"title":"My Live Radio","subtitle":null,"image_key":null,"count":8,"display_offset":null}}
Success: Preset station found, playing BBC Radio 4 on zone Squeezebox Radio
-> REQUEST 23 com.roonlabs.browse:1/browse {"hierarchy":"internet_radio","pop_all":false,"zone_or_output_id":"16011e5696d81ca8b704d6709ce6dc778ed3","item_key":"10:2"}
<- COMPLETE 23 Success {"action":"list","list":{"level":0,"title":"My Live Radio","subtitle":null,"image_key":null,"count":8,"display_offset":null}}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","display_name":"Squeezebox Radio","outputs":[{"output_id":"17011e5696d81ca8b704d6709ce6dc778ed3","zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"Squeezebox Radio","volume":{"type":"number","min":0,"max":100,"value":0,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"Squeezebox Radio","supports_standby":true,"status":"indeterminate"}]}],"state":"loading","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":true,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":1,"queue_time_remaining":304,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"BBC Radio 4"},"two_line":{"line1":"BBC Radio 4","line2":""},"three_line":{"line1":"BBC Radio 4","line2":"","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","display_name":"Squeezebox Radio","outputs":[{"output_id":"17011e5696d81ca8b704d6709ce6dc778ed3","zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"Squeezebox Radio","volume":{"type":"number","min":0,"max":100,"value":0,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"Squeezebox Radio","supports_standby":true,"status":"indeterminate"}]}],"state":"playing","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":true,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":1,"queue_time_remaining":304,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"BBC Radio 4"},"two_line":{"line1":"BBC Radio 4","line2":""},"three_line":{"line1":"BBC Radio 4","line2":"","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","display_name":"Squeezebox Radio","outputs":[{"output_id":"17011e5696d81ca8b704d6709ce6dc778ed3","zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"Squeezebox Radio","volume":{"type":"number","min":0,"max":100,"value":0,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"Squeezebox Radio","supports_standby":true,"status":"indeterminate"}]}],"state":"playing","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":true,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":1,"queue_time_remaining":303,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":1,"one_line":{"line1":"Costing the Earth - Steve Backshall Listens to the Whales"},"two_line":{"line1":"BBC Radio 4","line2":"Costing the Earth - Steve Backshall Listens to the Whales"},"three_line":{"line1":"BBC Radio 4","line2":"Steve Backshall Listens to the Whales","line3":"Costing the Earth"},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}],"zones_seek_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","queue_time_remaining":303,"seek_position":1}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","display_name":"Squeezebox Radio","outputs":[{"output_id":"17011e5696d81ca8b704d6709ce6dc778ed3","zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"Squeezebox Radio","volume":{"type":"number","min":0,"max":100,"value":0,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"Squeezebox Radio","supports_standby":true,"status":"indeterminate"}]}],"state":"playing","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":true,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":1,"queue_time_remaining":215,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":89,"one_line":{"line1":"The Listening Project - Passions, pluck and pride"},"two_line":{"line1":"BBC Radio 4","line2":"The Listening Project - Passions, pluck and pride"},"three_line":{"line1":"BBC Radio 4","line2":"Passions, pluck and pride","line3":"The Listening Project"},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}],"zones_seek_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","queue_time_remaining":215,"seek_position":89}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":52,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}},{"zone_id":"1601ea58664830a07d8cb3fa546692411739","display_name":"USB iMAc","outputs":[{"output_id":"1701ea58664830a07d8cb3fa546692411739","zone_id":"1601ea58664830a07d8cb3fa546692411739","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228"],"display_name":"USB iMAc","volume":{"type":"number","min":0,"max":100,"value":100,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"USB Audio CODEC ","supports_standby":false,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}],"zones_removed":["16012edd817deaa47a40a5c0bc3400a04edf"]}
<- CONTINUE 2 Changed {"zones_added":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a04edf","display_name":"HiFi Altair","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a04edf","zone_id":"16012edd817deaa47a40a5c0bc3400a04edf","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"HiFi Altair","source_controls":[{"control_key":"1","display_name":"AURALiC ALTAIR_G1","supports_standby":false,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":true,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":52,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}},{"zone_id":"1601ea58664830a07d8cb3fa546692411739","display_name":"USB iMAc","outputs":[{"output_id":"1701ea58664830a07d8cb3fa546692411739","zone_id":"1601ea58664830a07d8cb3fa546692411739","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"USB iMAc","volume":{"type":"number","min":0,"max":100,"value":100,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"USB Audio CODEC ","supports_standby":false,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":37,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":36,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}]}
<- CONTINUE 2 Changed {"zones_removed":["16012edd817deaa47a40a5c0bc3400a04edf"]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":36,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}},{"zone_id":"1601ea58664830a07d8cb3fa546692411739","display_name":"USB iMAc","outputs":[{"output_id":"1701ea58664830a07d8cb3fa546692411739","zone_id":"1601ea58664830a07d8cb3fa546692411739","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228"],"display_name":"USB iMAc","volume":{"type":"number","min":0,"max":100,"value":100,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"USB Audio CODEC ","supports_standby":false,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}],"zones_seek_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","queue_time_remaining":-1374,"seek_position":1678}]}
<- CONTINUE 2 Changed {"zones_added":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a04edf","display_name":"HiFi Altair","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a04edf","zone_id":"16012edd817deaa47a40a5c0bc3400a04edf","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"HiFi Altair","volume":{"type":"number","min":0,"max":100,"value":82,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ALTAIR_G1","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"BBC Radio 4 Extra"},"two_line":{"line1":"BBC Radio 4 Extra","line2":""},"three_line":{"line1":"BBC Radio 4 Extra","line2":"","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bb9e2efb2a83731bffc5f6f4bd9b8bc8828afbd4ad61f56f393a4490f444aaebf12f74f624ee7e736ad934efef54bab8994e52daeeae5073d4425cfef3bafb25"}}],"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":36,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}},{"zone_id":"1601ea58664830a07d8cb3fa546692411739","display_name":"USB iMAc","outputs":[{"output_id":"1701ea58664830a07d8cb3fa546692411739","zone_id":"1601ea58664830a07d8cb3fa546692411739","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"USB iMAc","volume":{"type":"number","min":0,"max":100,"value":100,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"USB Audio CODEC ","supports_standby":false,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","display_name":"Squeezebox Radio","outputs":[{"output_id":"17011e5696d81ca8b704d6709ce6dc778ed3","zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","can_group_with_output_ids":["170194a857b417419f32ff0a76d99d6c84bf","17011e5696d81ca8b704d6709ce6dc778ed3"],"display_name":"Squeezebox Radio","volume":{"type":"number","min":0,"max":100,"value":0,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"Squeezebox Radio","supports_standby":true,"status":"indeterminate"}]}],"state":"playing","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":true,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":1,"queue_time_remaining":-1584,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":1888,"one_line":{"line1":"Great Lives - Romy Gill on poet Amrita Pritam"},"two_line":{"line1":"BBC Radio 4","line2":"Great Lives - Romy Gill on poet Amrita Pritam"},"three_line":{"line1":"BBC Radio 4","line2":"Romy Gill on poet Amrita Pritam","line3":"Great Lives"},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}}],"zones_seek_changed":[{"zone_id":"16011e5696d81ca8b704d6709ce6dc778ed3","queue_time_remaining":-1584,"seek_position":1888}]}
<- CONTINUE 2 Changed {"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":36,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}},{"zone_id":"1601ea58664830a07d8cb3fa546692411739","display_name":"USB iMAc","outputs":[{"output_id":"1701ea58664830a07d8cb3fa546692411739","zone_id":"1601ea58664830a07d8cb3fa546692411739","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228"],"display_name":"USB iMAc","volume":{"type":"number","min":0,"max":100,"value":100,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"USB Audio CODEC ","supports_standby":false,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}],"zones_removed":["16012edd817deaa47a40a5c0bc3400a04edf"]}
<- CONTINUE 2 Changed {"zones_added":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a04edf","display_name":"HiFi Altair","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a04edf","zone_id":"16012edd817deaa47a40a5c0bc3400a04edf","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"HiFi Altair","volume":{"type":"number","min":0,"max":100,"value":82,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ALTAIR_G1","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"BBC Radio 4 Extra"},"two_line":{"line1":"BBC Radio 4 Extra","line2":""},"three_line":{"line1":"BBC Radio 4 Extra","line2":"","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bb9e2efb2a83731bffc5f6f4bd9b8bc8828afbd4ad61f56f393a4490f444aaebf12f74f624ee7e736ad934efef54bab8994e52daeeae5073d4425cfef3bafb25"}}],"zones_changed":[{"zone_id":"16012edd817deaa47a40a5c0bc3400a02228","display_name":"Workshop Aries","outputs":[{"output_id":"17012edd817deaa47a40a5c0bc3400a02228","zone_id":"16012edd817deaa47a40a5c0bc3400a02228","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"Workshop Aries","volume":{"type":"number","min":0,"max":100,"value":36,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"AURALiC ARIES_MINI","supports_standby":true,"status":"selected"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":true,"is_seek_allowed":false,"queue_items_remaining":2,"queue_time_remaining":2617,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true},"now_playing":{"seek_position":null,"one_line":{"line1":"Faith, Hope and Glory - Hope"},"two_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope"},"three_line":{"line1":"BBC Radio 4","line2":"Faith, Hope and Glory - Hope","line3":""},"image_key":"afd611ddf80b5dce68aa13b8e9e99aff8bf23d351d0918d67f032e52c91c6dc24882ed6107bcb78f714d78cf03afae00bc229db4b9cf8f60651267fade0ef77743277e9d6b9cc1a02b31ceb2c964915e4716542f56b804f4ecbb5415cccf009ce1b807f055c2a182a450403dbdbaa048"}},{"zone_id":"1601ea58664830a07d8cb3fa546692411739","display_name":"USB iMAc","outputs":[{"output_id":"1701ea58664830a07d8cb3fa546692411739","zone_id":"1601ea58664830a07d8cb3fa546692411739","can_group_with_output_ids":["1701ea58664830a07d8cb3fa546692411739","17012edd817deaa47a40a5c0bc3400a02228","17012edd817deaa47a40a5c0bc3400a04edf"],"display_name":"USB iMAc","volume":{"type":"number","min":0,"max":100,"value":100,"step":1,"is_muted":false,"hard_limit_min":0,"hard_limit_max":100,"soft_limit":100},"source_controls":[{"control_key":"1","display_name":"USB Audio CODEC ","supports_standby":false,"status":"indeterminate"}]}],"state":"stopped","is_next_allowed":false,"is_previous_allowed":false,"is_pause_allowed":false,"is_play_allowed":false,"is_seek_allowed":false,"queue_items_remaining":0,"queue_time_remaining":0,"settings":{"loop":"disabled","shuffle":false,"auto_radio":true}}]}
Preset requested: 2, zone: Squeezebox Radio
Error: Zone not found

It seems odd that so many changes to zones are logged? But maybe that's normal? Even if the presets button and or OURLs are not working the device is still present, enabled and usable in Roon itself.

If you have any thoughts it would be greatly appreciated.

thanks Marcus

MarcusSRussell commented 2 years ago

Ok I have found that the issue arise within the zones_removed check:

 else if ("zones_removed" in data) {
                    for (let item in data.zones_removed) {
                        zones.splice(zones.indexOf(transport.zone_by_zone_id(data.zones_removed[item])), 1);
                    }
                }
Whilst this code seems to make sense it is after zone_removed events that I get issues.
As a. short cut that seems stable and works I comment out the 'for' statement and add a call to re-populate the zones:

 else if ("zones_removed" in data) {
                    //for (let item in data.zones_removed) {
                        //zones.splice(zones.indexOf(transport.zone_by_zone_id(data.zones_removed[item])), 1);
                    //}
                    zones = data.zones;
                }

Whilst maybe not elegant or efficient it does have the merit of stopping the issue and making this, IMHO, very useful extension useable - but maybe others have not had the issue.

imgrant commented 2 years ago

Hi, sorry, I never replied to your earlier message. I had noticed the same issue myself, which contributed in part to me not using this extension myself so much any more. However, thank you for the diligent work in locating the cause and the workaround. I'll try it myself and add the changes in for anyone else, should they come across it in the future.

MarcusSRussell commented 2 years ago

No problem - it looks as though there is maybe something buried within the API which isn't quite right but that's beyond my knowledge. - It is a great little extension!

Maikeleg commented 1 year ago

Hello, thanks a lot for this workaround @MarcusSRussell I use this extension to automatically play radio from my home automation and once in a while it didn't work. I'll try this workaround and will update Thanks @imgrant for the wonderfull extension, love it!

imgrant commented 1 year ago

You're welcome! Reminds me I need to implement these changes myself. And dig my SB Radio out of storage.

MarcusSRussell commented 1 year ago

Hi @Maikeleg Give it a go. It’s still working for me with zero issues since I applied the workaround. And @imgrant again thanks for the extension- it’s just excellent!

Maikeleg commented 1 year ago

Do you guys by any chance know a way to enable the extension through a CLI command on linux?

MarcusSRussell commented 1 year ago

Sorry @Maikeleg I just used @imgrant ‘s manual installation method

ArtyTrail commented 1 year ago

Hi @MarcusSRussell. I was experiencing the same issue with my setup. I appied your patch, but at least for me it does not fix it for good. Instead I get the following error occasionally instead:

/root/.RoonExtensions/roon-extension-radio-presets-api/app.js:39
                           zones.push(data.zones_added[item]);
                                 ^
TypeError: Cannot read property 'push' of undefined
   at /root/.RoonExtensions/roon-extension-radio-presets-api/app.js:39:35
   at /root/.RoonExtensions/roon-extension-radio-presets-api/node_modules/node-roon-api-transport/lib.js:375:41

Apart from that, this is the single most useful Roon extension.

Maikeleg commented 1 year ago

Quick update, just had to revert the change because the radio-extension now didn't work at all. It stopped working after I updated my linux dietpi config to the latest version What i saw was that the radio-extension kept dis- and reapearing in my roon app onder extensions. A reboot didn't work either I just changed back to the original version and right after that i received a question in the roon app to update everything. It seems the change blocked that update so the radio-extension might not have loaded correctly @MarcusSRussell Do you think there is another way to repopulate instead of zones = data.zones; ?

MarcusSRussell commented 1 year ago

Hi @ArtyTrail It's been a while since I did this so I would need to spend a bit of time checking if I ever see this error which may not be for a few days due to other commitments. I certainly haven't seen an issue whilst using - i.e. the SqueezeBox radio always seems to work as required.Anyway I will check and let you know.

MarcusSRussell commented 1 year ago

Hi @Maikeleg This maybe something to do with DietPi or Linux node.js .I am not using a Pi. My set up is an oldish MacBook Air running Mac OS and dedicated to Roon. Maybe now DietPi is updated and Roon is updated it might be worth reapplying the fix and trying again? I don't think there is another way to repopulate but whilst I have done a bit of programming in the past js is not my area but @imgrant may know something

MarcusSRussell commented 1 year ago

Hi @ArtyTrail I am assuming that you see this error in the Roon Server log ? I don't have that error anywhere.

I have tried making a change to my version of the code in app.js at line 37. I have commented out the 'for' loop with the push statement and added again the zones = data.zones; statement:

` if ("zones_added" in data) { //for (let item in data.zones_added) { //if (! get_zone(data.zones_added[item].display_name)) { //zones.push(data.zones_added[item]); //}

                //}
                zones = data.zones;    
            }`

The push error suggests to me that zones is no longer populated or doesn't exist so recreating it solves that. Although my system worked anyway this change has made no obvious difference for me but may solve your problem. Please be aware that I am no expert and make sure you have a 'clean' copy of the file to hand so you can revert. So, as they say, at your own risk.

MarcusSRussell commented 1 year ago

Hi @Maikeleg

Are you using extensions Manager? I recall I had this problem in the early days and I found if I uninstalled Extension Manager and manually installed @imgrant 's extension all worked and was stable. I don't use any of the other Roon extensions available through Extension Manager so this was no hardship for me. I do also run rooExtend again manually installed without problem.

Maikeleg commented 1 year ago

Hi @MarcusSRussell thanks so much for all replies, apreciate it a lot I do have extension manager installed and doa ctually not use it for anything so i will uninstall (will try to find out how now) The roon-radio extension is also manually installed in my setup if i remember correct I'll let you know and thanks again Edit: uninstalled with dietpi-software and it's gone now. PS: If you installed roon extension snapshots you need to uninstall that first from within roon extension manager GUI I still have roon-http-api and roon-radio api trigger

ArtyTrail commented 1 year ago

Hi @ArtyTrail I am assuming that you see this error in the Roon Server log ? I don't have that error anywhere.

I have tried making a change to my version of the code in app.js at line 37. I have commented out the 'for' loop with the push statement and added again the zones = data.zones; statement:

if ("zones_added" in data) { //for (let item in data.zones_added) { //if (! get_zone(data.zones_added[item].display_name)) { //zones.push(data.zones_added[item]); //} zones = data.zones; } The push error suggests to me that zones is no longer populated or doesn't exist so recreating it solves that. Although my system worked anyway this change has made no obvious difference for me but may solve your problem. Please be aware that I am no expert and make sure you have a 'clean' copy of the file to hand so you can revert. So, as they say, at your own risk.

Hi @MarcusSRussell The error was from the vm the extension was installed on.

The following is pretty hacky, but kind of works for me: I reinstalled the extension in a docker container. Thus, in case of a crash the extension gets restarted. I also commented out the event handling for zone changes (update, remove, add) since my zones are pretty stable and get populated at startup. Still I get somme exceptions from time to time.

Not optimal, however. In case of any updates to your repo I‘m happy to try out your changes.