rsc-dev / pyamaha

Python implementation of Yamaha Extended Control API Specification.
MIT License
84 stars 22 forks source link

New functions for ISX-18D / ISX-80 #10

Open Morg42 opened 6 years ago

Morg42 commented 6 years ago

Hi,

can you incorporate functions for reading/setting the alarm clock on the ISX series?

What I found out:

/YamahaExtendedControl/v1/clock/getSettings /YamahaExtendedControl/v1/clock/setAlarmSettings

getSettings returns (e.g.) { "alarm": { "alarm_on": true, // boolean, on/off "fade_interval": 180, // seconds between start of {source} and beep, valid 0-180 "fade_type": 1, // don't know "mode": "oneday", // don't know, can't set via app "oneday": { "beep": true, // switch to beep after {fade_interval} "enable": true, // alarm is on "playback_type": "preset",
// this seems a bit complex. playback_type can be either // - "preset" (choose a preset from netusb source), // - "resume" (then specify any source), // - "none" (only beep) or // - "tuner" (choose a preset from tuner/dab source) // as yet, I have not seen all source details, // might need to test this a bit more "preset": // specifies necessary info for selecting playback mode { "netusb_info": { "input": "server", // "server" or "net_radio" "text": "(selected track name)"
// not sure, this seems to be only informational }, "num": 4, // select preset # "type": "netusb" // select source for preset (netusb, tuner, ...) }, "time": "0629" // alarm time as plain string. this is the BEEP time, // specified playback starts {fade_interval} secs before! }, "repeat": false, // repeat alarm or one-shot "volume": 25 // final playback volume, usually 0-60 (depending on zone) }, "auto_sync": true, // auto-sync device time via musiccast control app "format": "24h" // time format for display on device, "24h", "12h" "response_code": 0 // well-known }

setAlarmSettings (not been able to set via http GET, only POST): // this can set only alarm_on or set any number of alarm settings (or both) { "alarm_on": bool // enable/disable alarm "detail": // set alarm details { "beep": true // finish with beeping on time "day": "oneday" // don't know, no option in control app "enable": true // alarm enabled "fade_interval": 180 // seconds to fade in playback till beep, valid 0-180 "playback_type": "preset"/"resume" // see explanation above on getSettings "preset": // if playback_type "preset" selected: { "num": 4 // use preset # "type": "netusb" // source for preset (netusb, tuner, ...?) } "resume": // if playback_type "resume" selected: { "input": "net_radio" // source for playback resume acc. to device capabilities } "snooze": false // enable snooze "time": "2325" // alarm time (beep!) as plain string } "mode": "oneday" // only mode supported? "repeat": "false" // repeat alarm next day? "volume": 25 // final playback volume, device/zone dependent (usually 0-60) }

Morg42 commented 6 years ago

Add-on: from getFeatures:

"clock": {
    "alarm_fade_type_num": 1,
    "alarm_input_list": [
        "none",
        "tuner",
        "server",
        "net_radio",
        "napster",
        "spotify",
        "juke",
        "qobuz",
        "tidal",
        "deezer"
    ],
    "alarm_mode_list": [
        "oneday"
    ],
    "alarm_preset_list": [
        "netusb",
        "fm",
        "dab"
    ],
    "func_list": [
        "date_and_time",
        "alarm",
        "format"
    ],
    "range_step": [
        {
            "id": "alarm_volume",
            "max": 60,
            "min": 5,
            "step": 1
        },
        {
            "id": "alarm_fade",
            "max": 180,
            "min": 180,
            "step": 1
        }
    ]
},
micha91 commented 3 years ago

I know, this issue is more than two years old, but anyway - it has been implemented in PR #26