npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

iobroker.musiccast

v1.1.3

Published

ioBroker MusicCast Adapter

Downloads

154

Readme

Logo

ioBroker.musiccast

Number of Installations Number of Installations NPM version Downloads

Tests: Test and Release

adapter for Yamaha MusicCast devices like WX-010/030, YSP-1600

Installation:

Installation requires nodejs v10 at minimum

from npm

npm install iobroker.musiccast

actual version from github (this might not every time work, when development is in progress)

npm install https://github.com/foxthefox/ioBroker.musiccast/tarball/master --production

Settings

The admin page the "+" can be used for adding manually the IP address, DeviceID, Type and Name. Press the search button for discovery. If you have multiple devices, you have to hit the button multiple times until all devices are discovered. Unfortunately the discovery returns only one object at the time and this could be any of your MusicCast devices. If the return is the same as already part of the table, you have to hit the button again. Sometimes it helps to save and open the damin page again.

In the unlikely case that 2 or more devices are delivering the same ID, then change one ID slightly. Otherwise the adapter can not distinguish between the 2 devices.

If you want to see the playtime updated for the tracks you listen, please enable/check the respective checkbox. Be aware that increases the message count (every second for every device the pingpong of updates).

available Objects

The following objects are currently implemented:

basic (zone)

|Object|Value|settable|Description| |--------|-------|:-:|--------| |{zone}.power|boolean|x|true/false -> ON/Standby| |{zone}.zone_b|boolean|?|true/false -> target Zone is Zone B| |{zone}.mute|boolean|x|true/false -> muted/ not muted| |{zone}.volume|value|x|0...max (max depending on device)| |{zone}.act_vol_mode|text|?|actual volume in dB mode| |{zone}.act_vol_val|value|?|actual volume in dB value| |{zone}.act_vol_unit|text|-|actual volume unit (should be dB)| |{zone}.act_vol_mode_list|text|-|actual volume in dB modes| |{zone}.input|text|x|inputs depending on device| |{zone}.input_list|text|-|possible inputs| |{zone}.input_text|text|-|selected input as text| |{zone}.sound_program|text|x|set sound program| |{zone}.sound_program_list|text|-|possible sound programs| |{zone}.surr_decoder_type|text|?|set surround type| |{zone}.surr_decoder_type_list|text|-|possible surround decoder| |{zone}.link_control|text|x|set link control| |{zone}.link_control_list|text|-|possible link control settings| |{zone}.link_audio_delay|text|x|set link audio delay| |{zone}.link_audio_delay_list|text|-|possible link link audio delay settings| |{zone}.clearVoice|boolean|x|clear Voice control| |{zone}.low|value|x|level EQ low| |{zone}.mid|value|x|level EQ mid| |{zone}.high|value|x|level EQ high| |{zone}.subwoofer_volume|value|x|level subwoofer volume| |{zone}.bass|value|x|level bass| |{zone}.treble|value|x|level treble| |{zone}.tone_control_mode_list|text|-|possible tone control mode| |{zone}.tone_mode|boolean|?|tone control mode| |{zone}.balance|value|x|level balance| |{zone}.direct|boolean|x|set direct| |{zone}.pure_direct|boolean|x|set pure direct| |{zone}.enhancer|boolean|x|set enhancer| |{zone}.bass_extension|boolean|x|set bass extension| |{zone}.sleep|value|x|sleep timer| |{zone}.disable_flags|boolean|x|set disable_flags| |{zone}.contents_display|boolean|x|set contents_display| |{zone}.party_enable|boolean|x|set party_enable| |{zone}.extra_bass|boolean|x|set extra_bass| |{zone}.adaptive_drc|boolean|x|set adaptive_drc| |{zone}.dts_dialogue_control|value|x|set dts_dialogue_control| |{zone}.adaptive_dsp_level|boolean|x|set adaptive_dsp_level|

netusb

|Object|Value|settable|Description| |--------|-------|:-:|--------| |netusb.input|value|x|set/actual input| |netusb.playPause|boolean|x|set Play/Pause| |netusb.playback|text|-|status net player| |netusb.stop|boolean|x|set Stop| |netusb.auto_stop|boolean|-|automatically stopped| |netusb.next|boolean|x|set Forward| |netusb.prev|boolean|x|set Rewind| |netusb.shuffle|boolean|x|toggle shuffle| |netusb.shuffle_stat|text|-|shuffle status| |netusb.repeat|boolean|x|toggle repeat| |netusb.repeat_stat|text|-|repeat status| |netusb.artist|text|-|artist name| |netusb.album|text|-|album name| |netusb.track|text|-|track name| |netusb.albumart_url|text|-|http address for album art| |netusb.albumart_id|value|-|album art id| |netusb.play_time|value|-|played time in s| |netusb.play_queue_type|text|-|netusb queue type| |netusb.total_time|value|-|total time played in s| |netusb.recent_info|json|-|history of played items| |netusb.preset_info|json|-|saved presets/favourites| |netusb.presetrecallnumber|value|x|recall the # in the favourite list| |netusb.usb_devicetype|text|-|type of connected USB device| |netusb.attribute|value|-|which possibilites has the service, to be decoded| |netusb.recallRecentItem|value|x|which possibiolites has the service, to be decoded|

system

|Object|Value|settable|Description| |--------|-------|:-:|--------| |system.api_version|value|-|API Version| |system.system_version|value|-|System Version| |system.inputs.{service}|value|-|available input service| |system.inputs.{service}.account_enable|value|-|available input service enabled| |system.inputs.{service}.distribution_enable|value|-|available input service distributable| |system.inputs.{service}.play_info_type|value|-|available input service type|

CD player

|Object|Value|settable|Description| |--------|-------|:-:|--------| |cd.playPause|boolean|x|set Play/Pause| |cd.playback|text|-|status CD player| |cd.stop|boolean|x|set Stop| |cd.next|boolean|x|set Forward| |cd.prev|boolean|x|set Rewind| |cd.shuffle|boolean|x|toggle shuffle| |cd.shuffle_stat|text|-|shuffle status| |cd.repeat|boolean|x|toggle repeat| |cd.repeat_stat|text|-|repeat status| |cd.device_stat|text|-|device status| |cd.playtime|value|-|current playback time| |cd.totaltime|value|-|current track total time| |cd.disctime|value|-|CD total time| |cd.tracknumber|value|-|track current in playback| |cd.totaltracks|value|-|total CD tracks| |cd.artist|text|-|artist name| |cd.album|text|-|album name| |cd.track|text|-|track name|

tuner

|Object|Value|settable|Description| |--------|-------|:-:|--------| |tuner.common_preset_info|array|-|Preset Information| |tuner.am.preset_info|array|-|Preset AM Information| |tuner.fm.preset_info|array|-|Preset FM Information| |tuner.dab.preset_info|array|-|Preset DAB Information| |tuner.am.preset|number|x|AM preset number|
|tuner.am.freq|number|x|AM frequency in kHz| |tuner.am.tuned|boolean|-|AM tuned| |tuner.fm.preset|number|x|FM preset number|
|tuner.fm.freq|number|x|FM frequency in kHz| |tuner.fm.tuned|boolean|-|FM tuned| |tuner.fm.audio_mode|string|-|FM mono/stereo| |tuner.dab.preset|number|x|DAB preset number|
|tuner.dab.id|number|-|DAB Station ID| |tuner.dab.status|string|-|DAB status| |tuner.dab.freq|number|-|DAB frequency| |tuner.dab.category|string|-|primary/secondary| |tuner.dab.audio_mode|string|-|DAB mono/stereo| |tuner.dab.bit_rate|number|-|DAB bit rate in kpbs| |tuner.dab.quality|number|-|DAB quality 0-100| |tuner.dab.tune_aid|number|-|DAB signal strenth 0-100| |tuner.dab.off_air|boolean|-|DAB off air| |tuner.dab.dab_plus|boolean|-|DAB+| |tuner.dab.program_type|string|-|DAB program type| |tuner.dab.ch_label|string|-|DAB CH label| |tuner.dab.service_label|string|-|DAB service label| |tuner.dab.dls|string|-|DAB DLS| |tuner.dab.ensemble_label|string|-|DAB ensmble label| |tuner.dab.initial_scan_progress|number|-|DAB intitial scan progress 0-100| |tuner.dab.total_station_num|number|-|DAB total stations 0-255| |tuner.rds.program_type|string|-|RDS program type|
|tuner.rds.program_service|string|-|RDS program service| |tuner.rds.radio_text_a|string|-|RDS text A| |tuner.rds.radio_text_b|string|-|RDS text B|

clock

|Object|Value|settable|Description| |--------|-------|:-:|--------| |clock.auto_sync|boolean|x|Clock auto sync| |clock.format|string|x|Clock format 12h/24h| |clock.alarm_on|boolean|x|Clock alarm status on/off| |clock.volume|number|x|Clock alarm volume| |clock.fade_interval|number|x|Clock alarm fade interval| |clock.fade_type|number|x|Clock alarm fade type| |clock.mode|string|x|Clock alarm mode oneday/weekly| |clock.repeat|boolean|x|Clock alarm repeat if oneday is specified|
|clock.{day}.enable|boolean|x|Clock Setup validity| |clock.{day}.time|string|-|Clock alarm start up time hhmm 00-23,00-59| |clock.{day}.beep|boolean|x|Clock Beep validity| |clock.{day}.playback_type|string|-|Clock alarm playback type resume/preset| |clock.{day}.resume_input|string|-|Clock alarm resume input ID| |clock.{day}.preset_type|string|-|Clock alarm preset type| |clock.{day}.preset_num|number|-|Clock alarm preset input ID| |clock.{day}.preset_netusb_input|string|-|Clock alarm netusb input ID| |clock.{day}.preset_netusb_text|string|-|Clock alarm netusb text| |clock.{day}.preset_tuner_band|string|-|Clock alarm tuner band| |clock.{day}.preset_tuner_number|number|-|Clock alarm tuner frequency or station ID|

ToDo

  • support of lists
  • change of interaction values to nice naming
  • fastforward/fastrewind for NETUSB/CD
  • bluetooth
  • dialog level

Changelog

1.1.3

  • translation with adapter-dev

1.1.2

  • new version yamahe-yxc library

1.1.1

  • (scrounger) added datapoint isOnline, used by ioBroker.device-watcher

1.1.0 (npm)

  • improved testing

1.0.8

  • error correction add_to_group/remove_from_group

1.0.7

  • error correction in link/unlink/distribution

1.0.6

  • (scrounger) recallRecentItem added

1.0.5

  • usage of new IOB test library

1.0.4

  • correction for setting the input ("setInput")

1.0.3

  • new datapoint "extra_bass"
  • new datapoint "adaptive_drc"
  • new datapoint "dts_dialogue_control"
  • new datapoint "adaptive_dsp_level"
  • these are only read in, most likely they are commands, but the API is unknown

1.0.2

  • new datapoint "input_text"

1.0.1

  • changed algorithm for developer support

1.0.0 BREAKING CHANGES

  • the deviceId was previously the systemId, which is not unique. Now the deviceId is used, this is changing the object tree
  • musiccast API 2.0.0
  • device search can now returns more than 1 device
  • new output for developer in the the admin panel
  • more async/await
  • corrected testing

0.2.2

  • musiccast API 0.0.14

0.2.1

  • license 2022
  • dependency correction

0.2.0

  • refactoring with "create adaptor"
  • async/await

0.1.5

  • (Scrounger) error handling when device is not reachable

0.1.4

  • (Scrounger) correction of type mismatch (array object)

0.1.3

  • (foxthefox) added writing for linkControl/linkAudioDelay/linkAudioQuality

0.1.2

  • (Scrounger) correction of type mismatch (string boolean)

0.1.1

  • correction for clock "oneday"

0.1.0

  • compact mode
  • yamaha-yxc-nodejs 0.0.8
  • widget update

0.0.9

  • adminV3 uses values2table and add button back again
  • zone2/3/4 now working
  • extended automatic testing
  • button in admin for collection of JSON responses

0.0.8

  • automatic testing update
  • given name in admin page to appear in object (device)

0.0.7

  • tuner support
  • clock support (information mainly)
  • support of more zones
  • support of mc-link
  • setting of min and max values according features
  • admin v3

0.0.6

  • widget set matching the objects and control
  • cd.shuffle_stat boolean -> text
  • new netusb.shuffle_stat (text)
  • status update via subscribing UDP messages
  • switch for update on playtime info (disabling reduces traffic)

0.0.5

  • cleanup in admin page
  • improvement for object creation
  • more objects on netusb
  • more objects in system
  • added support of CD

0.0.4

  • new objects and functions (input, sound_prog, EQ, clearVoice)
  • search/discovery in admin page

0.0.3

  • more objects implemented

0.0.2

  • minor corrections

0.0.1

  • initial release with setting of IP in config-page,
  • available commands power, mute, volume

License

The MIT License (MIT)

Copyright (c) 2017 - 2023 foxthefox [email protected]