node-red-contrib-yandex-station-management, которая основана на этом же решении и сейчас использую её. Т.к. автоматизацию дома строю преимущественно на Node-red, то в целом, по возможности стараюсь туда переводить всё.
{
"aliceState": "IDLE",
"canStop": true,
"hdmi": {
"capable": false,
"present": false
},
"playerState": {
"duration": 187,
"entityInfo": {
"description": "",
"id": "36800",
"next": {
"id": "178495",
"type": "Track"
},
"prev": {
"id": "",
"type": "Track"
},
"repeatMode": "None",
"shuffled": false,
"type": "Artist"
},
"extra": {
"coverURI": "avatars.yandex.net/get-music-content/142001/a92a262f.a.21940-7/%%",
"requestID": "75856e15-3c52-43d5-ac11-971cdc2c67fd",
"stateType": "music"
},
"hasNext": true,
"hasPause": true,
"hasPlay": false,
"hasPrev": true,
"hasProgressBar": true,
"id": "178529",
"liveStreamText": "",
"playerType": "music_thin",
"playlistDescription": "",
"playlistId": "36800",
"playlistPuid": "28723236",
"playlistType": "Artist",
"progress": 23.796,
"showPlayer": true,
"subtitle": "Linkin Park",
"title": "Numb",
"type": "Track"
},
"playing": true,
"timeSinceLastVoiceActivity": 7199,
"volume": 0
}
Клиент ---(туннель WG)---> VPS с туннелями до всех VPN
т.к. у меня уже получается 11 (планируется 15) кнопок, то у меня получается большая простыня JS, я понимаю что оно будет быстро отрабатывать, и проблем не создаст, однако я хотел бы это минимизировать. Я так делал в начале, на каждую кнопку вешал слушателя, у меня получалось на каждую кнопку 3 строчки кода, на 15 кнопок получится уже 45 строк. Или я что-то недопонял, и я вешаю один слушатель на все кнопки и дальше уже могу работать с данными?
Подход с data-status , data-... - интересный, таких примеров не видел, спасибо за полезные ссылки. Про parentElement - знал, никак не мог допереть как его использовать) Опять таки спасибо за полезный материал. Про this - для меня открытие) Но впрочем стесняться мне нечего, не моя специализация, поэтому как говорится век живи - век учись. Благодарю за ответ, много информации к размышлению.