Введение
Этот адаптер позволяет пользователям включать/выключать устройства (100/0) с помощью расписаний. Расписания можно полностью настроить с помощью виджета Vis или Vis 2. Расписание переключает одно или несколько состояний ioBroker и состоит из одного или нескольких триггеров, определяющих, когда и как должно изменяться состояние. Вы можете настроить время и дни недели для каждого триггера. Также можно создавать астрономические триггеры и таймеры обратного отсчета.
Краткое содержание
Настройка экземпляра переключателя расписания
-
+ ZeichenДобавить новое расписание -
Schaltplandaten IdСозданные объекты -
Name: Название виджета -
Anzahl AuslöserКоличество триггеров -
AktivАктивный -
LöschenУдалить расписание -
Verzögerung zwischen 2 Schaltvorgängen in msПредотвращает одновременную установку состояний. -
Historie Umschaltung als JSON (max. 100/0 für Aus)Максимальное хранение истории -
HTML für VIS und VIS-2 erstellen (VIS-2 siehe Beschreibung)Обзор активации HTML

Штаты
- вкл/выкл
schedule-switcher.0.onoff.6.dataВсе триггеры представлены в формате JSON.schedule-switcher.0.onoff.6.enabledАктивный или неактивныйschedule-switcher.0.onoff.6.viewsГде были созданы виджеты для этих объектов?- статус
schedule-switcher.0.counterTriggerКоличество триггеров (активных и неактивных)schedule-switcher.0.historyИсториография цепейschedule-switcher.0.nextEventsСледующие операции переключения в виде таблицы JSON.schedule-switcher.0.sendtoВ VIS-2 изменения этого объекта передаются адаптеру.schedule-switcher.0.widgetOverviewОбзор всех виджетов для поиска ошибок.

Пример JSON-файлов событий-триггеров
[
{
"type": "TimeTrigger", // TimeTrigger, AstroTrigger oder OneTimeTrigger
"name": "Rollloade Wohn", // Name
"triggerid": 0, // Trigger ID
"action": "OnOffStateAction", // OnOffStateAction oder Condition
"states": ["0_userdata.0.test", "0_userdata.0.test5"], // States
"active": true, // enabled true oder false
"hour": 16, // Stunde
"minute": 22, // Minute
"day": 6, // Tag
"valueCheck": false, // States vergleichen
"dateISO": "2024-11-09T15:22:00.000Z", // Zeit ohne Zeitzone
"timestamp": 1731165720000, // Timestamp ohne Zeitzone
"objectId": 1 // ObejektId schedule-switcher.0.onoff.<objectid>.data
}
]
Пример JSON-файла триггера
{
"type": "OnOffSchedule",
"name": "Rolllade Wohn", // Name vom letzten erstellte Widget
"active": false, // Alle 24h wird geprüft, ob es ein Widget gibt. Wird keins gefunden wird der Zeitplan deaktiviert. Mit TRUE wird nicht deaktiviert.
"onAction": {
// Action für On
"type": "OnOffStateAction",
"valueType": "number",
"onValue": 0,
"offValue": 100,
"booleanValue": true,
"idsOfStatesToSet": ["0_userdata.0.test4"] // States max. 10
},
"offAction": {
// Action für Off
"type": "OnOffStateAction",
"valueType": "number",
"onValue": 0,
"offValue": 100,
"booleanValue": false,
"idsOfStatesToSet": ["0_userdata.0.test4"] // States max. 10
},
"triggers": [
{
"type": "AstroTrigger", // Trigger - AstroTrigger - OneTimeTrigger
"astroTime": "sunrise",
"shiftInMinutes": 0,
"weekdays": [1, 2, 3, 4, 5, 6],
"valueCheck": false,
"id": "0",
"action": {
"type": "ConditionAction",
"condition": {
"type": "StringStateAndConstantCondition",
"constant": "true",
"stateId": "0_userdata.0.test",
"sign": "=="
},
"action": {
"type": "OnOffStateAction",
"name": "On"
}
}
}
]
}
Пример JSON-файлов виджетов
{
"vis-2.0": {
// Welche VIS Version
"main": {
// Projekt
"w000005": {
// Widget ID
"prefix": "main", // Projekt
"namespace": "vis-2.0", // Welche VIS Version
"view": "Rollladen", // Welche View
"widgetId": "w000005", // Widget ID
"newId": "schedule-switcher.0.onoff.6.data", // Neues Objekt
"oldId": "timer-switch.0.onoff.1.data", // Altes Objekt
"enabled": "schedule-switcher.0.onoff.6.enabled", // Enabled Objekt
"stateCount": 1, // Counter Zustände
"state": [
// Zustände
{
"oid-stateId1": "0_userdata.0.test5"
}
],
"conditionCount": 1, // Counter Bedingung
"condition": [
// Zustände Bedingungen
{
"oid-conditionStateId1": "0_userdata.0.test"
}
],
"valueType": "number", // Wertetyp
"offValue": "100", // Wert für An - Fehlt wenn nicht gesetzt
"onValue": "0", // Wert für Aus - Fehlt wenn nicht gesetzt
"newOff": "Hoch", // Ersetzt AN - Fehlt wenn nicht gesetzt
"newOn": "Runter" // Ersetzt AUS - Fehlt wenn nicht gesetzt
},
"w000006": {
// Widget ID
"prefix": "main", // Projekt
"namespace": "vis-2.0", // Welche VIS Version
"view": "Test", // Welche View
"widgetId": "w000006", // Widget ID
"newId": "schedule-switcher.0.onoff.6.data", // Neues Objekt
"oldId": "timer-switch.0.onoff.1.data", // Altes Objekt
"enabled": "schedule-switcher.0.onoff.6.enabled", // Enabled Objekt
"stateCount": 1, // Counter Zustände
"state": [
// Zustände
{
"oid-stateId1": "0_userdata.0.test4"
}
],
"conditionCount": 1, // Counter Bedingung
"condition": [], // Zustände Bedingungen
"valueType": "boolean" // Wertetyp
}
}
}
}
Пример: Создание или редактирование триггера с помощью функции sendTo (эксперты)
sendTo("schedule-switcher.0", "add-trigger", { // Neuen Auslöser anlegen
"dataId":"schedule-switcher.0.onoff.6.data",
"triggerType":"TimeTrigger",
"actionType":"OnOffStateAction"
});
sendTo("schedule-switcher.0", "update-trigger", { // Aktion für den neuen Auslöser festlegen
"dataId":"schedule-switcher.0.onoff.6.data",
"trigger":{
"type":"TimeTrigger",
"hour":12,
"minute":32,
"weekdays":[1,2,3,4,5],
"valueCheck": false,
"id":"0", // ID abgleichen
"action":{
"type":"OnOffStateAction",
"name":"On"
}
}
});
sendTo("schedule-switcher.0", "add-trigger", { // Neuen Astrotrigger anlegen
"dataId":"schedule-switcher.0.onoff.6.data",
"triggerType":"AstroTrigger",
"actionType":"OnOffStateAction"
});
sendTo("schedule-switcher.0", "update-trigger", { // Aktion für den neuen Auslöser festlegen
"dataId":"schedule-switcher.0.onoff.6.data",
"trigger":{
"type":"AstroTrigger",
"astroTime":"sunrise", // sunrise, sunset or solarNoon
"shiftInMinutes":0,
"weekdays":[1,2,3,4,5],
"valueCheck": false,
"id":"0", // ID abgleichen
"action":{
"type":"OnOffStateAction",
"name":"On"
}
}
});
sendTo("schedule-switcher.0", "disable-schedule", { // Auslöser deaktivieren
"dataId":"schedule-switcher.0.onoff.6.data"
});
sendTo("schedule-switcher.0", "enable-schedule", { // Auslöser aktivieren
"dataId":"schedule-switcher.0.onoff.6.data"
});
sendTo("schedule-switcher.0", "add-one-time-trigger", { // Einmalauslöser anlegen
"dataId":"schedule-switcher.0.onoff.6.data",
"trigger":"{\"type\":\"OneTimeTrigger\",\"date\":\"2024-10-17T06:14:22.660Z\",\"valueCheck\": false,\"timedate\":false,\"action\":{\"type\":\"OnOffStateAction\",\"name\":\"On\"}}"
});
sendTo("schedule-switcher.0", "delete-trigger", { // Auslöser mit bekannter ID löschen
"dataId":"schedule-switcher.0.onoff.6.data",
"triggerId":"0"
});
sendTo("schedule-switcher.0", "change-active", { // Zeitplan ohne Widget aktiv lassen (wird bei restart oder alle 24h geprüft)
"dataId":"schedule-switcher.0.onoff.6.data",
"active":false, // false: Automatische Deaktivierung wenn kein Widget vorhanden ist
});
sendTo("schedule-switcher.0", "change-active", { // Zeitplan ohne Widget aktiv lassen (wird bei restart oder alle 24h geprüft)
"dataId":"schedule-switcher.0.onoff.6.data",
"active":true, // true: Zeitplan wird nicht deaktiviert wenn kein Widget vorhanden ist
});
Пример истории в формате JSON
[
{
"setObjectId": "0_userdata.0.test4",
"objectId": 0,
"actualValue": true,
"oldValue": false,
"checkValue": false,
"object": "0_userdata.0.test4",
"trigger": "TimeTrigger",
"astroTime": "unknown",
"shiftInMinutes": 0,
"date": 0,
"hour": 20,
"minute": 48,
"weekdays": [
[
1,
2,
3,
4,
5,
6,
0
]
],
"timestamp": 1761384780017,
"dateTime": "2025-10-25T09:33:00.017Z",
"dateTimeWithTimezone": "2025-10-25T11:33:00.017Z"
},
{
"setObjectId": "0_userdata.0.test4",
"objectId": 0,
"actualValue": true,
"oldValue": false,
"checkValue": false,
"object": "0_userdata.0.test4",
"astroTime": "unknown",
"shiftInMinutes": 0,
"date": 0,
"hour": 20,
"minute": 47,
"weekdays": [
[
1,
2,
3,
4,
5,
6,
0
]
],
"timestamp": 1761383520527,
"dateTime": "2025-10-25T09:12:00.527Z",
"dateTimeWithTimezone": "2025-10-25T11:12:00.527Z"
}
]
Пример представления виджета в формате JSON.
{
"vis-2.0": {
"main": {
"w000004": {
"prefix": "main", // Projekt
"namespace": "vis-2.0", // VIS
"view": "default", // View
"widgetId": "w000004", // Widget ID
"newId": "schedule-switcher.0.onoff.3.data" // Objekt ID
}
}
},
"vis.0": {
"main": {
"w00001": {
"prefix": "main",
"namespace": "vis.0",
"view": "Rollo",
"widgetId": "w00001",
"newId": "schedule-switcher.0.onoff.3.data"
}
}
}
}
Создать виджет
- Вставить виджет в представление

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

- Укажите тип значения и значения, которые необходимо установить.

- Теперь создайте принципиальную схему.

Изменить имя
- Изменение имени — это также будет применено к объектам.

Добавить условие
- Установить условие.

Заменить текст
- Включение/выключение текста и включение/выключение всего содержимого.


Применение CSS: см. CSS для получения инструкций.
- Использовать
CSS aktivierenизменить стиль








Размеры значков и пользовательские значки

Чтобы найти путь к своим собственным иконкам, вам нужно...CSS aktivieren Эту функцию нельзя активировать. Для существующих виджетов расширение файла необходимо изменить один раз; в противном случае атрибут не будет создан. То же самое относится к настройкам ширины/высоты. Иконки можно загрузить или скопировать в отдельную директорию. Пример пути:Dateien :
- http://192.168.2.18:8081/files/0_userdata.0/
- /opt/iobroker/iobroker-data/files/0_userdata.0/
Или отдельная директория.
- /home/iobroker/ /
Виджеты должны быть названы следующим образом. ВСЕ значки должны быть размещены в каталоге:
| Икона | Имя файла |
|---|---|
| восход | |
| солнечный полдень | |
| закат | |
| восход солнцаКонец | |
| goldenHourEnd | |
| золотой час | |
| начало заката | |
| сумерки | |
| морские сумерки | |
| ночь | |
| надир | |
| ночной конец | |
| nauticalDawn | |
| рассвет | |
| добавлять | |
| отмена | |
| редактировать | |
| удалить | |
| один раз | |
| remove_circle_outline | |
| сохранять | |
| время | |
| проверка значения | |
| valueNoCheck | |
| неизвестный |

Курок
- Нажмите на значок карандаша, чтобы ввести время, или на значок корзины, чтобы удалить триггер.

- Выберите состояние переключения
- Выберите условие (необязательно)
- Устанавливайте значение только в том случае, если оно не равно.
- Введите время (чч:мм)
⚠ Zeigt in Firefox kein Uhrzeit-Feld an!

- Выберите день недели
- Нажмите кнопку «Сохранить» в правом верхнем углу.

- Готовый

Астро Триггер
- Нажмите на значок карандаша, чтобы выбрать астрономическое время, или на значок корзины, чтобы удалить триггер.

- Выберите состояние переключения
- Выберите условие (необязательно)
- Устанавливайте значение только в том случае, если оно не равно.
- Выберите астрономическое время (восход, закат или полдень).

- Введите смещение в минутах (необязательно)
- Выберите день недели
- Нажмите кнопку «Сохранить» в правом верхнем углу.

- Готовый

Астроиконы
| Икона | Описание |
|---|---|
| восход | |
| солнечный полдень | |
| закат | |
| восход солнцаКонец | |
| goldenHourEnd | |
| золотой час | |
| начало заката | |
| сумерки | |
| морские сумерки | |
| ночь | |
| надир | |
| ночной конец | |
| nauticalDawn | |
| рассвет |
Одноразовый триггер
- Выберите состояние переключения
- Выберите условие (необязательно)
- Устанавливайте значение только в том случае, если оно не равно.
- Введите время (чч:мм:сс)
- Нажмите кнопку «Сохранить» в правом верхнем углу.

- Готовый

- Выберите состояние переключения
- Выберите условие (необязательно)
- Устанавливайте значение только в том случае, если оно не равно.
- Введите/выберите время (дд.мм.гггг чч:мм:сс)
- Нажмите кнопку «Сохранить» в правом верхнем углу.
⚠ Zeigt in Firefox kein Uhrzeit-Feld an!


- Готовый

HTML-обзор виджетов

HTML для VIS и VIS-2
html.background_color_bodyЦвет фона основного содержимого. Для VIS — всё изображение; для VIS-2 — только виджет (по умолчанию #000000).html.background_color_evenСрабатывание триггера цвета фона по четному числу - по умолчанию #1E1E1Ehtml.background_color_oddСрабатывание триггера цвета фона: нечетное число - значение по умолчанию #18171Chtml.background_color_triggerЦвет фона объекта-триггера — по умолчанию #000000html.background_color_weekdays_hoverЦвет фона при наведении курсора мыши на дни недели — активация/деактивация по щелчку мыши — по умолчанию синий.html.column_align_01Выравнивание текста заголовка в столбце 1 — по центру (стандартное).html.column_align_02Выравнивание текста заголовка по столбцу 2 — по центру (стандартное).html.column_align_03Выравнивание верхнего колонтитула (3 столбца) - по центру (стандартное).html.column_align_04Выравнивание текста заголовка по столбцу 4 — по центру (стандартное).html.column_align_05Выравнивание текста заголовка по столбцу 5 — стандартное выравнивание по центру.html.column_align_06Выравнивание верхнего колонтитула по центру (6 столбцов)html.column_align_07Выравнивание верхнего колонтитула (7 столбцов) - по центру (стандартное).html.column_align_08Выравнивание верхнего колонтитула (8 столбцов) - по центру (стандартное).html.column_align_09Выравнивание текста заголовка по 9 столбцам - по центру (стандартное).html.column_align_10Выравнивание верхнего колонтитула (10 столбцов) - по центру (стандартное).html.column_text_01Заголовочный текст, столбец 1 - Стандартный графикhtml.column_text_02Заголовочный текст, столбец 2 - Стандартные устройстваhtml.column_text_03Заголовочный текст, столбец 3 - Стандартный переключательhtml.column_text_04Заголовочный текст, столбец 4 - Стандартный понедельникhtml.column_text_05Заголовочный текст, столбец 5 - Стандартный Tuhtml.column_text_06Заголовочный текст, столбец 6 - Стандартный Wehtml.column_text_07Заголовочный текст, столбец 7 - Стандартный Thhtml.column_text_08Заголовочный текст, столбец 8 - Стандартный французскийhtml.column_text_09Заголовочный текст, столбец 9 - Стандартный Sahtml.column_text_10Заголовочный текст, столбец 10 - Стандартное снабжениеhtml.column_width_01Ширина столбца 1 - Стандартная автоматическаяhtml.column_width_02Ширина столбца 2 - Стандартная автоматическаяhtml.column_width_03Ширина столбца 3 - Стандартная автоматическаяhtml.column_width_04Ширина столбца 4 - Стандартный автоматический режимhtml.column_width_05Ширина столбца 5 - Стандартный автоматический режимhtml.column_width_06Ширина столбца 6 - Стандартный автоматический режимhtml.column_width_07Ширина столбца 7 - Стандартный автоматический режимhtml.column_width_08Ширина столбца 8 - Стандартный автоhtml.column_width_09Ширина столбца 9 - Стандартный автоматический режимhtml.column_width_70Ширина столбца 10 - Стандартный автоhtml.font_color_text_disabledЦвет текста отключенного объекта — по умолчанию красный.html.font_color_text_enabledЦвет текста активированного объекта — по умолчанию жёлтый.html.font_color_weekdays_disabledЦвет текста для отключенных дней недели — по умолчанию красный.html.font_color_weekdays_enabledЦвет текста активированных дней недели — по умолчанию жёлтый.html.header_borderОтступы заголовка в пикселях — по умолчанию 2html.header_font_familyСемейство шрифтов заголовка - Standard Helveticahtml.header_font_sizeРазмер шрифта заголовка - стандартный 15html.header_linear_color_1Фоновое изображение заголовка: линейный градиент 1 - Стандартный #BDBDBDhtml.header_linear_color_2Фоновое изображение заголовка: линейный градиент 2 - Стандартный #BDBDBDhtml.header_tag_border_colorHTML-тег заголовка<td>Цвет кромки - Стандартный №424242html.header_widthДень головы<table>Стандартный размер автомобиляhtml.column_align_row_01Выравнивание текста строк в первом столбце — по умолчанию по левому краю.html.column_align_row_02Выравнивание текста по строкам во втором столбце — по умолчанию по левому краю.html.column_align_row_03Выравнивание текста по строкам в 3-м столбце — по умолчанию по левому краю.html.column_align_row_04Выравнивание текста по строкам в 4-м столбце — по умолчанию по левому краю.html.column_align_row_05Выравнивание текста по строкам в 5-м столбце — по умолчанию по левому краю.html.column_align_row_06Выравнивание текста по строкам в 6-м столбце — по умолчанию по левому краю.html.column_align_row_07Выравнивание текста по строкам в 7-м столбце — по умолчанию по левому краю.html.column_align_row_08Выравнивание текста по строкам в 8-м столбце — по умолчанию по левому краю.html.column_align_row_09Выравнивание текста по строкам в 9-м столбце — по умолчанию по левому краю.html.column_align_row_10Выравнивание текста строк в 10-м столбце — по умолчанию по левому краю.html.headline_colorЦвет шрифта заголовка (расписание, устройство и т. д.) - по умолчанию #ffffffhtml.headline_font_sizeРазмер шрифта заголовка в пикселях — по умолчанию 16.html.headline_heightВысота заголовка в пикселях — по умолчанию 35html.headline_underlinedНижняя граница заголовка в пикселях - Стандарт 3html.headline_underlined_colorЦвет нижней границы заголовка - Стандартный #ffffffhtml.headline_weightТолщина шрифта в заголовке - Стандартная обычнаяhtml.html_codeHTML-код для VIS, VIS-2, Jarvis, IQontrol и т. д.html.icon_falseСостояние переключателя значка: выключено - Стандартный ⚪html.icon_state_check_noСравнение статусов отключено 🔴html.icon_state_check_yesСравнение штатов включено 🟢html.icon_switch_symbolЗначок переключателя для включения/выключения таймера — по умолчанию ⏱html.icon_trueСтатус переключателя значков: включен - Стандартный 🟡html.jarvisСовместимо с Jarvis - Standard falsehtml.p_tag_text_alginHTML<p>Выравнивание текста (последнее обновление и нижний колонтитул) — по центру по умолчанию.html.table_tag_border_colorЦвет рамки дня<table>- Стандарт № 424242html.table_tag_cellРасстояние от границы ДНЯ<table>в пикселях - Стандарт 6html.table_tag_text_alignВыравнивание текста по тегу<table>- Стандартный центрhtml.table_tag_widthРазмер дня<table>- Стандартный автомобильhtml.td_tag_border_bottomнижний край TAG<td>в пикселях - Стандарт 1html.td_tag_border_colorЦвет нижней границы бирки<td>- Стандарт № 424242html.td_tag_border_rightправый край TAG<td>в пикселях - Стандарт 1html.td_tag_cellПространство вокруг текста из тега<td>в пикселях (отступы) - по умолчанию 6html.top_font_familyСемейство шрифтов для верхнего и нижнего колонтитулов — Standard Helveticahtml.top_font_sizeРазмер шрифта в верхнем и нижнем колонтитулах в пикселях — по умолчанию 20.html.top_font_weightТолщина шрифта в верхнем и нижнем колонтитулах — стандартная "normal"html.top_textПользовательский текст для заголовка - Стандартный текстhtml.top_text_colorЦвет шрифта в заголовке и нижнем колонтитуле — по умолчанию #ffffffhtml.updateЗапустить обновление вручную

- Создайте HTML-виджет и вставьте объект в поле HTML.
{schedule-switcher.0.html.html_code} - Нажмите на текст
Letzte Aktualisierungвыполнить обновление вручную - Нажмите на значок, чтобы активировать/деактивировать виджет.
- Чтобы удалить триггер, сначала нужно поставить галочку, а затем нажать кнопку.
deleteнажимать - Изменить время/астрономическое и нажать кнопку.
saveНажмите, чтобы применить изменения. - Нажмите на день недели, чтобы активировать/деактивировать его.
- В строке с названием триггера отображается следующее событие включения/выключения в зависимости от дня недели.

Эта функция предназначена ТОЛЬКО для VIS-2!!!
Только в VIS-2 перечисленные ниже функции необходимо вставлять вручную (см. изображения).


function deleteTrigger(stateId, command, id, dataid, count) {
var checked = document.getElementById('delete' + count).checked;
if (checked) {
var data = {
"command": command,
"message": {
"triggerId": id,
"dataId": dataid,
}
};
vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
}
}
function changeweekdays(stateId, command, dataid, id, changeid, type) {
if (type === "OneTimeTrigger") return;
var data = {
"command": command,
"message": {
"changeid": changeid,
"triggerid": id,
"dataid": dataid
}
};
vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
}
function changeValueCheck(stateId, command, dataid, id, value) {
var data = {
"command": command,
"message": {
"changeval": value,
"triggerid": id,
"dataid": dataid
}
};
vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
}
function updateTrigger(stateId) {
vis.conn.setState(stateId + '.html.update', { val: true, ack: false });
}
function setState(stateId, value) {
vis.conn.setState(stateId, { val: value == 'false' ? false : true, ack: false });
}
function sendToAstro(stateId, command, dataid, id, count) {
var timeselect = document.getElementById('timeselect' + count).value;
var shift = document.getElementById('shift' + count).value;
var data = {
"command": command,
"message": {
"astrotime": timeselect,
"shift": shift,
"triggerid": id,
"dataid": dataid
}
};
vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
}
function sendToDateTime(stateId, command, id, dataid, count) {
var value = document.getElementById('datetime' + count).value;
var data = {
"command": command,
"message": {
"time": value,
"triggerid": id,
"dataid": dataid
}
};
vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
}
function sendToTime(stateId, command, id, dataid, count) {
var value = document.getElementById('nexttime' + count).value;
var data = {
"command": command,
"message": {
"time": value,
"triggerid": id,
"dataid": dataid
}
};
vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
}
CSS
app-on-off-schedules-widget {
/* Primary color (button background, toggle switch color) */
--ts-widget-primary-color: #337ab7;
/* Background color of the widget */
--ts-widget-bg-color: #424242;
/* Background color of the triggers */
--ts-widget-trigger-bg-color: #272727;
/* Foreground color (font color and scrollbar color) */
--ts-widget-fg-color: white;
/* Font color of the switched states id */
--ts-widget-oid-fg-color: #a5a5a5;
/* Font color in buttons */
--ts-widget-btn-fg-color: white;
/* Font color of a disabled weekday */
--ts-widget-weekdays-disabled-fg-color: #5D5D5D;
/* Font color of an enabled weekday */
--ts-widget-weekdays-enabled-fg-color: white;
/* Font color of the name of the widget (defaults to --ts-widget-fg-color) */
--ts-widget-name-fg-color: white;
/* Font color of switched time (defaults to --ts-widget-fg-color) */
--ts-widget-switched-time-fg-color: white;
/* Font color of switched value (defaults to --ts-widget-fg-color)*/
--ts-widget-switched-value-fg-color: white;
/* Font color of the astro time (defaults to --ts-widget-fg-color) */
--ts-widget-astro-time-fg-color: black;
/* Font color of the astro time's shift */
--ts-widget-astro-shift-fg-color: #5d5d5d;
/* Font color of condition (defaults to --ts-widget-fg-color) */
--ts-widget-condition-fg-color: white;
/* Font color of toogle button off */
--ts-widget-off-color: #c0c0c0;
/* Color background toogle button off */
--ts-widget-off-color-container: #808080;
/* Color of next astro switching time */
--ts-widget-astro-next-fg-color: white;
/* Font family used in the whole widget */
--ts-widget-font-family: 'Roboto', 'Segoe UI', BlinkMacSystemFont, system-ui, -apple-system;
/* Font size of the name of the widget */
--ts-widget-name-font-size: 2em;
/* Font size of the switched oid */
--ts-widget-oid-font-size: 30px;
/* Font size of switch text */
--ts-widget-state-action-width: 65px;
/* Font size of next astro switching time */
--ts-widget-astro-next-font-size: 2em;
/* Width of date time input */
--ts-widget-datetime-width: 230px;
/* Display of edit name button. Use 'none' to hide the button and 'block' to show it
--ts-widget-edit-name-button-display: block;
/* Display of condition. Use 'none' to hide the condition and 'block' to show it
-ts-widget-condition-display: block;
/* Display of time icon. Use 'none' to hide the button and 'block' to show it
--ts-widget-time-icon-display: none;
/* Applies a filter to icons used in buttons (safe, edit, remove, cancel), for
white use invert(1) and for black invert(0) */
--ts-widget-img-btn-filter: invert(1);
/* Add trigger dropdown background color */
--ts-widget-add-trigger-dropdown-bg-color: #f1f1f1;
/* Add trigger dropdown font color */
--ts-widget-add-trigger-dropdown-fg-color: black;
/* Add trigger dropdown hover background color */
--ts-widget-add-trigger-dropdown-hover-bg-color: #ddd;
/* ! Changing these may break the layout, change at your own risk */
/* Font size of weekdays */
--ts-widget-weekdays-font-size: 23px;
/* Font size of switched value (on/off) */
--ts-widget-switched-value-font-size: 2em;
/* Font size of switched time */
--ts-widget-switched-time-font-size: 2em;
/* Font size of the astro time (e.g. Sunrise, ...) */
--ts-widget-astro-time-font-size: 1.5em;
/* Font size of the astro time's shift */
--ts-widget-astro-shift-font-size: 1em;
/* Font size of condition */
--ts-widget-condition-font-size: 1em;
/* Icons width and height in px */
/* Astro icons */
--ts-widget-astro-icon-width, 42px;
--ts-widget-astro-icon-height, 42px;
/* Display icons (rename and add icon) */
--ts-widget-display-icon-width, 28px;
--ts-widget-display-icon-height, 28px;
/* Trigger view icons */
--ts-widget-trigger-view-icon-width, 28px;
--ts-widget-trigger-view-icon-height, 28px;
/* Trigger edit icons */
--ts-widget-trigger-edit-icon-width, 28px;
--ts-widget-trigger-edit-icon-height, 28px;
}
Changelog
0.2.1 (2026-07-09)
- (Lucky-ESA) Fixed refresh astrotime
0.2.0 (2026-05-30)
- (copilot) Adapter requires node.js >= 22 now
- (Lucky-ESA) Code optimized
- (Lucky-ESA) Adapter requires admin >= 7.7.22 now
0.1.0 (2025-11-25)
- (Lucky-ESA) Fixed warn log (Cannot read dir...)
- (Lucky-ESA) Added state comparison enabled/disabled
- (Lucky-ESA) Fixed small some bugs
- (Lucky-ESA) History JSON changed
- (Lucky-ESA) Using your own icons
0.0.12 (2025-08-27)
- (Lucky-ESA) Astro time in widget fixed
0.0.11 (2025-08-16)
- (Lucky-ESA) Admin 7.6.17 required
- (Lucky-ESA) Node 20 required
License
MIT License
Copyright (c) 2024-2026 Lucky_ESA github@luckyskills.de
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.