Файлы таблицы и машины
Один JSON-объект описывает всё: вашу стиральную машину и утюг под machine
и по одной записи на каждую стопку белья под chart. И CLI, и загрузка в
веб-приложении принимают именно эту форму — это то, что проверяет
parseConfig из
@washy-washy/core.
{ "machine": { "washer": { "..." }, "iron": { "..." } }, "chart": [{ "clothing_type": "..." }]}Таблица
Заголовок раздела «Таблица»Каждая запись под chart — это одна стопка:
| Поле | Что туда вписывать |
|---|---|
clothing_type |
Как вы называете стопку — это заголовок карточки |
detergent |
Какое моющее средство и сколько |
fabric_softener |
yes или no |
temperature |
Температура, которую предлагает ваша машина |
spin |
Скорость отжима, которую предлагает ваша машина |
duration |
Примерно, сколько длится, в формате ~Ч:ММ |
program |
Положение регулятора, написанное точно как на панели |
options |
Кнопки опций через вертикальную черту; пусто, если их нет |
ironing |
yes или no — гладите ли вы это вообще |
ironing_notes |
Текст: как это гладить или почему вы этого не делаете. Часто пусто |
iron_setting |
Положение термостата. Пусто, если ironing равно no |
drying |
Текст: как это сушить |
colour_group |
white, colour, dark, sport или any |
mix_tags |
Через вертикальную черту: lint-shedder, lint-magnet, dye-bleeder, solo |
notes |
Всё остальное, что стоит знать |
Каждое значение, относящееся к машине, — program, temperature, spin,
options, iron_setting — проверяется по тому, что предлагает ваша
собственная machine, поэтому опечатка приводит к ошибке с точным
указанием строки и столбца, а не к карточке, которая велит повернуть
регулятор туда, куда он повернуться не может.
machine.washer перечисляет подписи регулятора в физическом порядке, а
также температуры, скорости отжима и кнопки опций, которые предлагает
дисплей. machine.iron перечисляет положения термостата от самого
холодного до самого горячего. Копируйте каждую подпись в точности так, как
она напечатана перед вами, на каком бы языке она ни была — здесь никогда
не переводится подпись на панели, потому что таблица, которую приходится
переводить обратно, стоя у машины, хуже, чем отсутствие таблицы вовсе.
Порядок washer.programs имеет значение: первая запись — это положение
«выключено», нарисованное на двенадцати часах, и угол каждой следующей
метки берётся из её позиции в списке. Пропуск одной записи не просто
убирает её — он сдвигает каждую метку после неё.
Собственный редактор веб-приложения
/config/machine
записывает именно эту форму — изменение порядка списка программ там даёт
ровно тот же результат, что и изменение порядка в JSON-массиве:
{ "washer": { "name": "Generic front loader", "capacity": "1–8 kg", "programs": ["Off", "Cottons", "Delicates / Silk", "Wool"], "temperatures": ["cold", "20", "30", "40", "60", "90"], "spins": ["0", "400", "600", "800", "1200", "1400"], "options": ["Speed", "Eco", "Easy Iron", "Extra Rinse"] }, "iron": { "name": "Generic steam iron", "settings": [ { "key": "min", "dots": "", "label": "MIN", "detail": "no heat", "steam": false }, { "key": "3", "dots": "•••", "label": "•••", "detail": "cotton, linen · 200 °C", "steam": true } ] }}Что можно стирать вместе
Заголовок раздела «Что можно стирать вместе»Две стопки могут делить один барабан, только если верно всё перечисленное, проверяемое в этом порядке — первый пункт, который не выполняется, и есть причина, которую показала бы матрица совместимости:
- Ни одна из них не помечена как
solo. - Если одна из них —
lint-shedder, то и другая должна быть такой же. - Их
colour_groupсовпадает (anyподходит ко всему). program,temperature,spinи наборoptionsидентичны.
Стопки объединяются в одну карточку с общим рисунком регулятора, если
совпадает всё, что вы физически настраиваете: программа, температура,
отжим, опции, добавляется ли кондиционер и куда указывает термостат утюга.
Текстовые поля (detergent, drying, notes) намеренно не участвуют в
этой проверке — две стопки могут требовать разное моющее средство и всё
равно делить карточку, при этом карточка сопоставляет обе строки с той
стопкой, к которой они относятся.