Два месяца назад компания Bose подала пример, как применять открытый подход к поддержке старых вещей: она открыла Web API для умных колонок SoundTouch.
-
Документация SoundTouch Web API
Привязка к фирменному ПО
Производители привыкли постоянно выпускать новые версии техники, а старые — выводить из обслуживания. В основном, это делается путём прекращения выпуска программных обновлений. Такова бизнес-модель запланированного устаревания, которая надёжно генерирует поток прибыли для производителя. Чтобы она работала, компания изначально устанавливает жёсткую привязку функциональности устройства к фирменному ПО, так называемый software tethering.
В редких случаях на рынке появляется продукт с сочетанием высокого качества и надёжности, который пользуется популярностью и спросом спустя годы и десятилетия. Как ретро-пример можно вспомнить колонки Radiotechnika S90D рижского завода VEF, которые не потеряли в цене с момента своего выпуска.

Колонки Bose серии SoundTouch стоимостью от $400 до $1500 и выше тоже весьма ценятся аудиофилами. Некоторые уверены, что изделие отлично работает спустя десять лет после выпуска.
Однако Bose в октябре 2025 года объявила, что прекращает поддержку SoundTouch. Это означает, что умную колонку отключат от облака и она перестанет поддерживаться в фирменном мобильном приложении. А если она не поддерживается в мобильном приложении, то её не получится интегрировать с музыкальными веб-сервисами вроде Spotify, а также отключатся некоторые другие продвинутые функции.
Программная поддержка очень старых устройств — довольно нетривиальная задача, потому что включает анализ древнего легаси-кода с «выплатой» технического долга, который накопился за годы. Из-за этого повышается риск сбоев, как это случилось при неудачном обновлении фирменного приложения Sonos в 2024 году, которое частично вывело из строя колонки Sonos.

Скоро умные колонки Bose тоже лишатся части «интеллекта». Такое решение производителя не понравилось фанатам бренда, у некоторых из которых установлено несколько кол��нок, связанных в единую систему умного дома.
Открытые Web API
В документации SoundTouch Web API описаны основные команды для управления умной колонкой.

Некоторые специальные типы WAPI (Web API):
ART_STATUS {
INVALID
SHOW_DEFAULT_IMAGE
DOWNLOADING
IMAGE_PRESENT
}
BOOL: "true" or "false"
INT: a 32-bit integer
IPADDR: an IP address, represented as a string
KEY_VALUE {
PLAY
PAUSE
STOP
PREV_TRACK
NEXT_TRACK
THUMBS_UP
THUMBS_DOWN
BOOKMARK
POWER
MUTE
VOLUME_UP
VOLUME_DOWN
PRESET_1
PRESET_2
PRESET_3
PRESET_4
PRESET_5
PRESET_6
AUX_INPUT
SHUFFLE_OFF
SHUFFLE_ON
REPEAT_OFF
REPEAT_ONE
REPEAT_ALL
PLAY_PAUSE
ADD_FAVORITE
REMOVE_FAVORITE
INVALID_KEY
}
KEY_STAT
E { press release
}
MACADDR: a MAC address, upcased, represented as a string
PLAY_STATUS {
PLAY_STATE
PAUSE_STATE
STOP_STATE
BUFFERING_STATE
INVALID_PLAY_STATUS
}
PRESET_ID: An integer, 1 through 6 inclusive
SOURCE_STATUS {
UNAVAILABLE
READY
}
AUDIO_MODE {
AUDIO_MODE_DIRECT
AUDIO_MODE_NORMAL
AUDIO_MODE_DIALOG
AUDIO_MODE_NIGHT
}
Указаны все методы и URL, которые используются в API.
<sources deviceID="$MACADDR">
<sourceItem source="$SOURCE" sourceAccount="$STRING" status="$SOURCE_STATUS">$STRING</sourceItem>
...
</sources>
Таким образом, можно использовать всю функциональность колонок, удалённо управляя ею со своего сервера. Если Spotify тоже поддерживает такой способ, то можно самостоятельно вернуть совместимость умных колонок с музыкальным сервисом, если связать их через медиасервер на самохостинге.
Вот вариант управления колонкой через опенсорсный клиент, включающий библиотеку на Go и консольную программу soundtouch-cli:
# Basic device information
soundtouch-cli --host 192.168.1.100 info get
# Media controls
soundtouch-cli --host 192.168.1.100 play start
soundtouch-cli --host 192.168.1.100 volume set --level 50
soundtouch-cli --host 192.168.1.100 source select --source SPOTIFY
# Preset management
soundtouch-cli --host 192.168.1.100 preset list
soundtouch-cli --host 192.168.1.100 preset store-current --slot 1
soundtouch-cli --host 192.168.1.100 preset select --slot 1
# Browse and discover content
soundtouch-cli --host 192.168.1.100 browse tunein
soundtouch-cli --host 192.168.1.100 station search-tunein --query "jazz"
soundtouch-cli --host 192.168.1.100 station add --source TUNEIN --token <token> --name "Jazz Radio"
# Speaker notifications (ST-10 only)
soundtouch-cli --host 192.168.1.100 speaker tts --text "Welcome home" --app-key YOUR_KEY
soundtouch-cli --host 192.168.1.100 speaker url --url "https://example.com/doorbell.mp3" --app-key YOUR_KEY
soundtouch-cli --host 192.168.1.100 speaker beep
# Real-time monitoring
soundtouch-cli --host 192.168.1.100 events subscribe
Это пример для остальных производителей, которые привыкли использовать запланированное устаревание, чтобы подтолкнуть потребителей к замене «старых» моделей техники на новые. Но можно поступать иначе. Открытые API позволяют интегрировать любую «старую» технику в единую ткань Интернета вещей.
В последнее время всё чаще слышны призывы к производителям открывать API и исходный код для гаджетов, которые заканчивают свою жизнь. В этом случае сообщество может выполнять поддержку и даже расширять функциональность устройств. Именно так следует «заканчивать жизнь» старых моделей — через опенсорс.
Автор: GlobalSign_admin


