Коротко об интерфейсе DALI, или Про цифровое управление аналоговым освещением


Автор материала: Dominique

Наверняка многие уже встречали на просторах интернета тесно связанную со светотехникой аббревиатуру D.A.L.I. Для непосвящённых она обычно означает заметно повышенный ценник и не совсем понятный способ применения, а ведь это без преувеличения целая веха в истории светотехнического оборудования, причём успевшая появиться ещё в прошлом веке. К сожалению, на момент написания этой статьи она практически не представлена на страницах нашего проекта, поэтому попробуем исправить это упущение.



Предыстория

Как мы знаем, задача управления (включения-выключения и диммирования) света с успехом решалась и без использования электроники – сравнительно несложными устройствами (фазовыми диммерами), включаемыми в разрыв цепи питания лампы. Такой подход был вполне себе жизнеспособен – но только при условии, что из точки управления мы имеем физический доступ к цепи питания светильника. Это обстоятельство накладывало целый ряд ограничений, таких как:

  • предел расстояния от пульта управления до управляемого светильника, напрямую влияющий на потери напряжения в линии;
  • повышенные радио- и даже акустические помехи от проводов, питающих задиммированные светильники;
  • невозможность синхронного управления несколькими группами светильников;
  • чрезмерная длина проводов – фактически отдельный провод к каждому индивидуально диммируемому светильнику или группе светильников;
  • полная невозможность диммирования таким способом газоразрядных ламп.


Ситуация резко поменялась к ~середине-концу 1970-х годов, с развитием микроэлектроники и появлением таких изделий, как электронные трансформаторы и балласты (они же ЭПРА).Это впервые позволило всерьёз задуматься на тему разделения цепей питания и управления светильников. Запитывать светильник теперь можно было от ближайшего доступного источника энергии, никак физически не связанного с пультом управления, а управляющий сигнал подавать по отдельной слаботочной линии, которая к тому же могла быть одной для нескольких светильников или даже их групп. Наибольшее распространение успел получить аналоговый стандарт 1-10V (TVI), в котором яркость светильника в пределах от минимума до 100% пропорционально задавалась уровнем постоянного напряжения в пределах от 1 до 10В.

Стандарт получился простой и удобный, однако главным его недостатком по-прежнему оставалась зависимость напряжения от длины линии – и хотя это было уже не напряжения питания светильников, на равномерность их яркости оно всё равно влияло. Кроме этого, аналоговый интерфейс не предусматривал полного отключения светильника – оно должно было осуществляться дополнительными коммутационными аппаратами (выключателями или реле) в цепи питания.

 

Интерфейс DSI

Конец 80-х годов XX века охарактеризовался широким распространением больших интегральных микросхем, следствием чего стала начавшаяся бурная цифровизация всего и вся. В основном мы помним этот период по активному появлению разнообразных компьютеров – от простых домашних вроде БК-0010 или Spectrum до персональных вроде IBM PC XT/AT. Но микропроцессоры оказались полезными и для устройств, вообще не предназначенных для вычислений. В первую очередь их начали внедрять в наиболее сложную электронику, такую как видеомагнитофоны и лазерные проигрыватели, но в дальнейшем область их применения непрерывно расширялась. В какой-то момент очередь дошла и до светотехники, когда в 1991 году появился стандарт на цифровой интерфейс для управления освещением DSI (Digital Serial Interface).

Разработчиком данного интерфейса выступила австрийская компания Tridonic, знаменитая своей пускорегулирующей аппаратурой (в том числе электронной), а также сотрудничеством с фирмой Zumtobel – производителем светильников премиум-сегмента. Изначальная идея была предельно проста: а что, если передавать в ЭПРА желаемый уровень яркости не косвенно, уровнем напряжения, а напрямую – сразу цифрой, в последовательном коде? Оставалось только продумать параметры управляющей линии, которые бы позволили обеспечить достаточную надёжность передачи данных и защиту от помех. Что и было сделано:

  • линия интерфейса DSI двухпроводная, может выполняться тем же проводом, что и основное питание светильников, и прокладываться в любой топологии («шина», «звезда», «дерево»);
  • провода интерфейса можно подключать к ЭПРА без соблюдения полярности;
  • последовательные данные передаются на скорости 1200 бит/с;
  • высокий и низкий уровни сигнала кодируются напряжениями 0...1,5 и 10...25В соответственно;
  • передача идёт в манчестерском коде («ноль» бита данных – это перепад от высокого уровня к низкому, «единица» – соответственно, наоборот);
  • пакет данных состоит из стартового бита, 8 бит данных и 4 стоп-битов;
  • уровень яркости светильника задаётся одним байтом данных, принимающим значения от 0 до 255;
  • нагрузочная способность линии в стандарте ограничена значением 250мА, что на практике означает возможность подключения от 25 до 100 ЭПРА (в зависимости от их типа) к одному интерфейсу.


Исключительные права на внедрение интерфейса DSI компания Tridonic оставила за собой, поэтому он встречался (и местами встречается до сих пор) только в ЭПРА этой же фирмы и в светильниках Zumtobel. Также на базе этого интерфейса была разработана система управления Luxmate, позволявшая управлять яркостью светильников вручную (с проводных и беспроводных пультов дистанционного управления) и автоматически (по сигналам датчиков движения и освещённости).

По сравнению с аналоговым интерфейсом 1-10V, DSI определённо был более прогрессивным, ибо позволял более точно управлять яркостью светильников, причём она уже никак не зависела от длины управляющей линии. При получении уровня яркости Shok стало возможным полное отключение светильника, так что необходимость в дополнительных выключателях или реле отпала. Вместе с тем, как и в случае с 1-10V, существенным недостатком оставалась необходимость тянуть отдельную управляющую линию к каждой индивидуально управляемой группе светильников. Кроме этого, например для управления тремя рядами светильников, понадобилось бы три отдельных контроллера или один трёхканальный контроллер DSI. Что с учётом довольно приличного ценника на все не слишком ширпотребные цифровые компоненты получалось крайне небюджетно.

 

Стандарт DALI

При всей своей продвинутости, интерфейс DSI так и не получил значительного признания и распространения (за исключением, возможно, пары европейских стран). Объяснялось это в первую очередь его проприетарностью: выпуск ЭПРА с дополнительным входом DSI не только удорожал саму конструкцию, но и требовал лицензионных отчислений держателю патента. Поэтому остальные ведущие производители ПРА предпочли продолжить использовать старый, но проверенный временем и дешёвый аналоговый интерфейс.

К чести Тридоника, он проделал серьёзную и довольно успешную «работу над ошибками», которая вылилась в представление в 1999 году новой версии цифрового интерфейса под названием D.A.L.I. (что расшифровывалось как Digital Addressable Lighting Interface – Цифровой Адресуемый Светотехнический Интерфейс). Для работы над этим проектом Tridonic предусмотрительно пригласил сразу нескольких конкурентов (Helvar, Osram и Philips), что позволило сделать его открытым и доступным для применения любыми производителями. Пожалуй, эта особенность и сыграла ключевую роль в успехе, который сопутствовал новому интерфейсу на рынке.

Чисто физически параметры линии DALI остались точно такими же, как и у интерфейса DSI. Однако формат передачи данных был кардинально переработан, что позволило получить целый набор новых функций. Фактически был разработан целый протокол обмена информацией между управляющими устройствами (пультами) и светильниками (ЭПРА), собственно именно поэтому интерфейс DALI часто ошибочно называют «протоколом» Smile

Итак, протоколом DALI предусмотрено целых два типа информационных пакетов. Первый из них, он же прямой, состоит из 2 байт, передаваемых от контроллера на ЭПРА. Первый байт содержит адресную информацию, что позволяет направлять команды и данные как на отдельные светильники (или даже лампы в одном светильнике), так и на их группы, либо на всю систему в целом. Второй байт содержит код команды либо данные, направляемые по заданному адресу. Стандартом DALI предусмотрена индивидуальная адресация до 64 светильников, параллельно подключённых к одной линии, при этом каждый из них может входить в любую из 16 доступных групп и 16 доступных световых сцен. Формат адресного байта приведён в Таблице 1:

Табл. 1. Формат первого байта прямого пакета DALI
Бит 7 Биты 6-1 Бит 0 Значение первого байта
0 адрес (0-64) 0 Прямая установка яркости из второго байта
0 адрес (0-64) 1 Во втором байте содержится команда
1 адрес (0-16) 0 Прямая установка яркости группы из второго байта
1 адрес (0-16) 1 Групповая команда во втором байте
1 111111 0 Широковещательная установка уровня яркости из второго байта
1 111111 1 Широковещательная отправка команды из второго байта

 

В случае прямой установки яркости второй байт пакета интерпретируется как требуемый уровень, в интервале от 0 до 255. Протоколом предусмотрена возможность настройки различных взаимосвязей между цифровым значением и фактическим уровнем яркости, называемых «кривыми диммирования». Например, можно выбрать наиболее соответствующую физиологии человеческого зрения логарифмическую зависимость. Значение 0, как и в стандарте DSI, означает полное отключение лампы/светильника (ЭПРА в этом случае переходит в дежурный режим с микропотреблением энергии). Широковещательные команды выполняются всеми устройствами, физически подключёнными к линии, вне зависимости от их адресов.

Коды основных команд, которые могут содержаться во втором байте, приведены в таблице 2:

Табл. 2. Коды основных команд второго байта прямого пакета DALI
Код команды Значение второго байта
0 Выключение ЭПРА
1 Увеличение уровня яркости с задержкой
2 Уменьшение уровня яркости с задержкой
3 Увеличение уровня яркости на 1 визуальную ступень (команда включает ЭПРА, если он был выключен)
4 Уменьшение уровня яркости на 1 визуальную ступень
5 Включение на максимально доступную яркость
6 Включение на минимальную доступную яркость
7 Уменьшение яркости на 1 визуальную ступень и отключение
8 Включение и увеличение яркости на 1 визуальную ступень
16-31 Вызов сцен 0-15 соответственно
32 Сброс ЭПРА на заводские настройки
33 Сохранить текущий уровень яркости в буфер обмена
42 Сохранить значение из буфера обмена как максимально доступную яркость
43 Сохранить значение из буфера обмена как минимально доступную яркость
45 Сохранить значение из буфера обмена как яркость при подаче питания
46 Сохранить значение из буфера обмена как время задержки диммирования
47 Сохранить значение из буфера обмена как скорость диммирования
64-79 Сохранить значение из буфера обмена как яркость для сцен 0-15 соответственно
80-95 Удалить ЭПРА из сцены 0-15 соответственно
96-111 Добавить ЭПРА в группу 0-15 соответственно
112-127 Удалить ЭПРА из групп 0-15 соответственно

 

Обратная связь

Без преувеличения замечательной особенностью интерфейса DALI является заложенная в него с самого начала возможность получения обратной связи от управляемых светильников (ЭПРА)! Обмен информацией производится строго по инициативе контроллера, который является ведущим устройством (Master), а ЭПРА служат ведомыми (Slave). Для получения информации от светильника контроллер отправляет на него одну из команд запросов (табл. 3):

Табл. 3. Коды команд запросов к светильнику протокола DALI
Код команды Значение второго байта
144 Запрос общего регистра состояния
145 Запрос состояния ЭПРА
146 Запрос состояния лампы
147 Запрос «Включена ли лампа?»
148 Запрос «Достигнуты ли максимально или минимально доступные яркости»?
149 Запрос «Находится ли ЭПРА в состоянии заводских настроек?»
150 Запрос «Присвоен ли ЭПРА индивидуальный адрес?»
151 Запрос номера версии
152 Запрос содержимого буфера обмена

 

В ответ на прямой пакет, содержащий команду с запросом, ЭПРА формирует так называемый обратный пакет, содержащий один байт, расшифровка которого приведена в табл. 4.

Табл. 4. Возможные значения байта обратного пакета DALI
Число Значение второго байта
255 «ДА»
0 «НЕТ»
0-254 Текущий уровень яркости
0-255 Байт состояния либо текущее значение буфера обмена

 

Процедура адресации

Как мы увидели из спецификации протокола DALI, на одной линии могут находиться максимум 64 светильника/ЭПРА с уникальными адресами (0-63). При этом дублирование адресов (настройка одинакового адреса) на нескольких ЭПРА стандартом не допускается, т.к. в этом случае становится невозможным получение с них обратной связи. Отметим всё же, что на практике иногда так поступают, когда обратная связь не требуется Wink. Для того, чтобы система правильно функционировала, адреса в ней должны быть настроены правильным образом. Более того, на практике часто важно присваивать адреса конкретным светильникам по определённой системе, например 10-19 – светильники первого ряда, 20-29 – второго, и т.п. Как это осуществляется?

Избалованный эпохой Plug-and-Play обыватель мог бы ожидать, что нужные адреса уже будут настроены в светильниках на заводе, или по крайней мере внутри будут некие переключатели, которыми эти адреса можно будет выставить. Увы, все эти удобства точно не про протокол DALI! Для настройки адресов здесь предусмотрена довольно сложная процедура, для осуществления которой потребуется продвинутый контроллер с соответствующим ПО. Здесь самое время заметить, что многие из поделий, продающиеся как «контроллер DALI» по цене от 700 до 3000₽, работать с адресами вообще не умеют Facepalm. Весь их функционал заключается только в отправке широковещательных команд сразу на все подключённые светильники, так что про индивидуальное управление, группы, сцены и обратную связь можно смело забыть.

Для осуществления процедуры адресации «на месте» во всех устройствах DALI предусмотрен дополнительный регистр аппаратного, или «длинного» адреса, состоящего из трёх байтов (урезанный аналог MAC-адреса компьютерных устройств). Согласно стандарту, с завода он должен содержать случайные значения, но на практике он нередко оказывался равным 000 Pardon. Впрочем, это не страшно, так как протоколом предусмотрена генерация нового случайного адреса по специальной команде. Только что приобретённая и смонтированная система стандарта DALI является не настроенной и слушается только широковещательных команд. Для первоначальной настройки и присвоения местных, или «коротких», адресов служит отдельный набор команд, приведённых в табл. 5.

Табл. 5. Коды широковещательных команд режима инициализации протокола DALI
Код команды Значение второго байта
165 INITIALIZE: запуск режима инициализации системы
167 RANDOMIZE: всем устройствам присвоить себе случайные аппаратные адреса
177 SEARCH ADDRH: загрузить первый (старший) байт регистра сравнения
179 SEARCH ADDRM: загрузить второй байт регистра сравнения
181 SEARCH ADDRL: загрузить третий (младший) байт регистра сравнения
169 COMPARE: сравнить аппаратный адрес устройства с регистром сравнения
183 PROGRAM SHORT ADDRESS: присвоить указанный во втором байте короткий адрес
171 WITHDRAW: исключить устройство из дальнейшей процедуры инициализации
161 TERMINATE: завершить процедуру инициализации

 

Процедура инициализации выглядит следующим образом:

  1. Контроллер запускает процедуру широковещательной командой INITIALIZE.
  2. (опционально). Контроллер отправляет команду RANDOMIZE, все ЭПРА на линии генерируют себе случайные «длинные» адреса.
  3. Контроллер выполняет поиск самого младшего аппаратного адреса в системе методом дихотомии (последовательного деления адресного пространства пополам).
  4. Для этого вначале задаётся начальный адрес поиска командами SEARCH ADDR (177-181), как правило это 255 255 255 (16777215).
  5. После этого отправляется команда COMPARE. Все устройства, имеющие длинные адреса меньше указанного, отвечают на эту команду кодом «ДА» (см. табл. 4).
  6. Далее, заданный адрес поиска уменьшается в 2 раза (например, на втором шаге он становится равен 127 255 255 (8388607).
  7. Действия 5-6 повторяются до тех пор, пока на линии не перестанет фиксироваться ответ «ДА». Это позволяет контроллеру определить диапазон длинных адресов, между которыми находится самый младший адрес в системе.
  8. Контроллер задаёт в качестве начального последний адрес, на который ещё поступал ответ «ДА», а в качестве конечного – тот, где ответа уже не было, и продолжает поиск методом дихотомии.
  9. Самый младший длинный адрес в системе считается обнаруженным, когда из двух идущих подряд по убыванию адресов первый отвечает «ДА», а второй не отвечает.
  10. Контроллер отправляет команду PROGRAM SHORT ADDRESS с указанием первого свободного короткого адреса в системе (по умолчанию 0). Адрес присваивается только найденному устройству с младшим адресом.
  11. Контроллер отправляет команду WITHDRAW. исключающую адресованное устройство из дальнейшей процедуры.
  12. Контроллер повторяет действия 3-11 до тех пор, пока не перестанет получать ответ «ДА» (п.5) при максимальном заданном адресе (16777215). Всем обнаруженным в дальнейшем процессе устройствам присваиваются последовательные короткие номера (1, 2, 3....).
  13. Контроллер отправляет команду TERMINATE, завершающую процедуру инициализации.


На первый взгляд инициализация системы кажется избыточно сложной, но на самом деле это просто гениальное решение, позволяющее избавиться от последовательного перебора почти 17 миллионов возможных «длинных» адресов через низкоскоростной (1200б/с!) последовательный интерфейс. Как показывает практика, любой длинный адрес в системе обнаруживается не более, чем за 15 шагов, что делает инициализацию весьма быстрым процессом. Единственным недостатком автоматической инициализации является то, что короткие адреса оказываются разбросанными в системе случайным образом. Навести порядок в них можно только вручную:

  1. Контроллер переводится в режим ручного переназначения коротких адресов.
  2. Контроллер отправляет команду IDENTIFY (код 37) на устройство с коротким адресом 0, соответствующий светильник начинает мигать.
  3. Устройству вручную присваивается желаемый короткий адрес, а адрес 0 освобождается.
  4. Аналогичные действия (2-3) производятся для всех остальных коротких адресов.


В результате всех вышеописанных действий мы получаем полностью настроенную цифровую систему, в которой каждый светильник находится на своём месте и имеет понятный, логически привязанный к плану объекта адрес. Теперь самое время раскрыть весь потенциал системы DALI!

 

Возможности системы

Несмотря на то, что интерфейс DALI уже достаточно древний, при его создании в него было заложено достаточно много прогрессивных возможностей, фактически позволяющих построить на его основе небольшой «умный дом» без каких-либо дополнительных компонентов. Рассмотрим эти функции и их возможное применение.

 

1) Индивидуальная адресация светильников

Даже если все светильники в помещении/на объекте параллельно подключены к одной линии, теперь мы можем индивидуально управлять ими, как если бы к каждому шёл отдельный провод. Единственное ограничение – линия должна быть пятижильная (три жилы – обычная однофазная сеть, и ещё две жилы для линии DALI).

Кроме этого, мы также можем в реальном времени получать информацию о состоянии каждого светильника (что особенно актуально в условиях коммерческих объектов). Например, информация о неполадках с питанием или перегорании лампы сразу же поступит на диспетчерский пульт или в соответствующее приложение.

 

2) Широковещательная адресация светильников

Мы всё ещё можем управлять светильниками и так, как если бы они все были подключены через один общий аналоговый диммер или рубильник (и это при том, что по факту они могут питаться от разных щитков и даже источников питания!). Что особенно примечательно, можно даже настроить синхронное диммирование совершенно разных типов светильников, например галогенных, люминесцентных и светодиодных. Например, в ночное время пригасить абсолютно весь свет до уровня 5%.

А функция одновременного отключения всего света (также известная, как «мастер-кнопка») очень востребована для установки перед выходом из жилых домов и квартир.

 

3) Групповая адресация светильников

Не всегда требуется рулить каждым светильником индивидуально: для управления часто достаточно разбить их на несколько функциональных групп, и работать уже с ними. Например, на картинке выше таких групп 4 – «1. Настольные лампы», «2. Светильники над столом», «3. Светильники у окна» и «4. Светильники над телевизором». Если записать в память соответствующих светильников номера групп, к которым они принадлежат, они начнут слушаться групповых команд точно так же, как и индивидуальных, то есть подобные программные группы будут вести себя точно так же, как и обычные физические.

Примечательно, что один и тот же светильник может входить сразу в несколько групп (например, «Настольные лампы» и «Ночники»). Это не вызывает никаких коллизий между командами, так как актуальной всегда является только команда, поступившая последней. Например, если после команды «включить все настольные лампы» поступит команда «выключить ночники», светильники, входящие только в первую группу, останутся включёнными, а входящие в обе – будут выключены. Такая логика позволяет создавать достаточно сложные сценарии управления светом.

 

4) Использование световых сцен

Световая сцена, несмотря на несколько поэтичное название – это всего лишь набор уровней яркости светильников, который можно вызвать «одним касанием». Инструмент достаточно удобный, в особенности в тех случаях, когда светильников в помещении много, а используются они в нескольких режимах. Световые сцены реализованы в протоколе DALI следующим образом:

  1. Необходимо вручную настроить все требуемые яркости светильников в помещении/на объекте. На показанном на картинке примере это может выглядеть так: настольная лампа 1 – 50% яркости, подвесной светильник 2 – 100% яркости, подвесной светильник 3 – 70% яркости, подвесные светильники 7, 8 – 50% яркости, светильники 4-6 – выключены (0%).
  2. Сохранить настроенные уровни в буферы обмена каждого светильника (командой 33).
  3. Переписать значения из буфера обмена каждого светильника в ячейку для соответствующей сцены (например, командой 64 для сцены 0, 65 для сцены 1 и т.д.).
  4. Теперь при получении команды «Вызвать сцену 0» (16) светильники будут переходить на настроенные выше уровни яркости.


Примечательно, что при вызове световой сцены светильники принудительно переходят в режим яркости, сохранённой в этой сцене (текущий уровень не сохраняется и нигде не запоминается). Если, например, мы активируем сцену 0 при работающих светильниках 4 и 6, они будут принудительно выключены. Чтобы сцена не меняла настройки определённых светильников, нужно просто не включать их в неё (вместо включения с нулевыми значениями яркости). Вызов световых сцен может производиться как широковещательной, так и групповой или индивидуальной командой. В двух последних случаях сцена будет активирована только на тех светильниках, которые будут затронуты данными командами. Это позволяет реализовать ещё бо́льшую гибкость в алгоритмах управления.

 

5) Динамические световые эффекты

Команды 1 и 2 (см. табл. 2) позволяют получить эффекты плавного нарастания и спада яркости с регулируемой задержкой до 16 секунд. Например, применив команду 2 с максимальной задержкой, можно реализовать эффект, аналогичный плавному гашению света перед началом сеанса в кинотеатре. При этом от контроллера потребуется отправить на линию лишь один пакет данных, после чего он немедленно освобождается для дальнейшей работы. Весь функционал плавного диммирования будет выполнен средствами ЭПРА. Используя периодическую подачу команд 1 и 2 на несколько светильников или групп, можно получить сложные динамические световые эффекты, в том числе с изменением цвета. Хотя эти возможности и несоизмеримы с профессиональным светодинамическим интерфейсом DMX512A, в ряде случаев их будет вполне достаточно.

 

Заключение

Интерфейс DALI, когда-то создававшийся в основном ради продвинутого управления люминесцентным освещением, с успехом перекочевал на светодиодные светильники и до сих пор остаётся современным инструментом гибкого управления светом. За годы, прошедшие с момента его появления, он успел стать «промышленным стандартом» в своей области и вообще – одним из первых названий, ассоциирующихся с технологиями диммирования. В последние годы он претерпел некоторые улучшения, зафиксированные в спецификации DALI 2.0 – в частности, там появилась поддержка датчиков, устройств с питанием от линии, специальных протоколов управления RGB-светильниками и аварийным освещением, и много всего другого. Однако эта версия пока не очень распространена, в основном из-за неполной обратной совместимости с исходной спецификацией.

Разумеется, DALI не свободен и от досадных недостатков и ограничений, главным из которых является поддержка всего лишь 64 светильников на одной линии (даже если физически можно подключить вдвое больше!). Если для небольшой квартиры этого может оказаться достаточно, то на коммерческих объектах эта ёмкость не позволяет подключить даже один этаж компактного здания, не говоря уже о бо́льших масштабах. Попытка исправить ситуацию введением в стандарт DALI 2.0 трёхбайтового прямого пакета и «логических устройств» (фактически, субадресов при всё тех же 64 коротких адресах) по состоянию на 2026 год выглядит, как минимум, жалким костылём Facepalm.

Однако если всё же рассматривать DALI не как полноценную альтернативу «умному дому», а всего лишь как интерфейс «последней мили» (т..е. провод минимально возможной длины, соединяющий небольшую группу светильников с контроллером более высокого уровня), то он всё ещё более чем себя оправдывает. Любая современная экосистема умного дома обеспечивает поддержку светильников со входом DALI, а внутри ультрасовременных уличных светильников с поддержкой NBIoT и LoRaWAN можно обнаружить всё тот же DALI, соединяющий недорогой драйвер с беспроводным контроллером сети. При сильном желании управляющее устройство этого стандарта можно даже изготовить своими силами!

Подводя итог, скажем только одно – у цифрового управления есть лишь единственный недостаток: попробовав его однажды, от него уже невозможно будет отказаться Bye

Загружено: 23.02.26
(2)