Создатель FloorPlan для ESPresense-компаньона
Этот проект был создан, чтобы упростить создание плана этажа для ESPresenseIPS (https://github.com/ESPresense/ad-espresense-ips) или ESPresense-companion (https://github.com/ESPresense/ESPresense-companion). имея графический интерфейс. Он предлагает привязку к комнатам для легкого выравнивания, а также дает вам размеры по обе стороны от курсора, когда он находится на стене. Это приложение разработано на HTML/JS/CSS, без библиотек (но на CDN отлично работает), возможности Canvas!
Создатель демо и онлайн-планов
Теперь вы можете попробовать приложение: https://espresense.com/Floorplan-Creator/.
Вы сможете рисовать планы, тестировать приложение и создавать экспорт. Интеграция Mqtt должна работать, но с общедоступным экземпляром mqtt в https. (теперь реализован SSL MQTT)
Как использовать
- Скачать проект
- откройте «index.html» в браузере
- начни рисовать каждую комнату
- добавить устройства esp32 в каждую комнату
- нажмите кнопку «экспортировать в yaml»
- скопируйте сгенерированный код в файл ESPresenseIPS app.js
- Необязательный :
- после копирования конфигурации и перезапуска AppDaemon
- откройте панель конфигурации MQTT (⚙) и введите свою конфигурацию
- устройства будут отображаться на плане этажа в режиме реального времени
- устройства также появятся в списке на панели конфигурации mqtt
- наслаждайтесь настройкой всего, чтобы сделать его идеальным
Изменения
03.12.2023
- Изменен вывод yaml для совместимости с https://github.com/ESPresense/ESPresense-companion.
04.05.2022
- Исправлен расчет большинства верхних и левых комнат (в некоторых случаях, когда большинство верхних и левых комнат не совпадают) – спасибо @Shuttleu.
21-03-2022
- Добавлен выбор единиц измерения: при выборе футов значения будут конвертированы в метры перед экспортом в Yaml.
- Вы можете переключить объект на уже нарисованный план
- Приложение использовалось для сохранения устройства в локальном хранилище, теперь это переменная.
- Если вы обновите, вы увидите единицы измерения на плане и правые элементы как мм и мфт (потому что на этикетке указана старая единица измерения «м», и я добавляю новую переменную единицу измерения).
- Просто ошибка пользовательского интерфейса, будет работать как положено.
- Вы можете вручную удалить букву «m» из меток комнат в локальном хранилище, если это вас беспокоит.
03.05.2022
- Разрешить MQTT анонимные соединения. Спасибо @DTTerastar.
- Перехват исключений при отключении MQTT, чтобы предотвратить сбой выполнения javascript — спасибо @DTTerastar
- SSL реализован в клиенте MQTT – спасибо @DTTerastar
- SSL настраивается на панели настроек
- Скрыть/показать устройства на плане этажа через панель настроек MQTT
- Измените цвет устройств на плане этажа через панель настроек MQTT.
28-02-2022
- Новое меню инструментов слева.
- Новый переключатель меток, позволяющий скрыть/показать метки плана (название комнаты и размеры).
- Новая файловая структура (проект не должен был так сильно разрастаться)
- Исправить отступ при экспорте yaml
- Добавьте имя к устройствам esp32. Имя экспортируется в yaml.
27-02-2022
- Показывать индикаторы со стрелками сверху, слева, снизу и справа от холста, если план этажа находится за пределами экрана, чтобы указать, на какой стороне он находится.
26-02-2022
- Панель управления MQTT теперь отображает подключенные устройства (и известные устройства, даже если они больше не подключены)
- Клиент MQTT для отслеживания устройств
- Страница настроек MQTT для ввода конфигурации
- показывать устройства на плане этажа в реальном времени
26-02-2022
- Показать кнопку покрытия устройства ESP32
- Покрытие ESP32 показано кружком вокруг устройства.
- Расстояние покрытия регулируется
- Цвет круга регулируется
- Круг покрытия может быть виден при размещении устройства, что помогает расположить его правильно.
- Теперь вы даже можете создавать произведения искусства с помощью приложения.
25-02-2022
- Темная тема
- Исправлены координаты плана этажа в формате yaml (было в см, нужно м)
- Иконки и небольшие настройки пользовательского интерфейса.
- Добавьте ESP32 в комнаты
- Отредактируйте значение ESP32 Z и посмотрите его yaml-код.
- Экспорт yaml теперь также экспортирует позицию esp32
24-02-2022
- Прокрутите/колесо мыши для перемещения плана этажа на холсте.
Что планируется.
[ ] Улучшенный UI/UX.
[✓] Прокрутите/прокрутите колесо на холсте, чтобы переместить план этажа.
[ ] Увеличьте масштаб холста.
[ ] Панорамирование по холсту.
[✓] Возможность добавлять esp32 в комнаты и точно их позиционировать.
[✓] Экспорт позиции esp32 из комнат в формат ESPresenseIPS yaml.
[✓] Сделайте видимым на плане каждый радиус сигнала Bluetooth esp32, чтобы убедиться, что в каждой комнате есть как минимум 3 сигнала. (поможет определить, куда их лучше положить ;)).
[✓] MQTT-клиент для непосредственного отображения устройств на плане этажа.
[ ] Разрешить изменение точности при перетаскивании/создании комнаты.
[✓] SSL для MQTT (чтобы иметь возможность размещать приложение в папке www домашнего помощника в экземплярах https)
[✓] Левая панель инструментов
[ ] Левая панель инструментов с модификаторами значений, позволяющая пользователю настраивать пороги привязки, точность и многое другое.
[✓] Исправлены отступы в Yaml
[ ] Рефакторинг кода, добавление комментариев.
Технический
U/L-образные помещения:
- Создайте несколько комнат, чтобы добиться желаемой формы.
- Назовите их всех одним именем
- ESPresenseIPS должен отправить то же имя домашнему помощнику, если пользователь находится в любой из этих комнат.
Позиции рассчитываются следующим образом:
- найдите комнату с наименьшим значением x (левая сторона экрана)
- найдите комнату с наименьшим значением y (верхняя часть экрана)
- сгенерируйте смещение с этими двумя значениями (что означает, что «наименьшийX, наименьшийY» теперь является позицией «0,0»).
- каждая позиция, сохраненная из нарисованных комнат, затем пересчитывается с этим смещением
Прокрутка:
- Прокрутка перемещает план этажа на холсте.
- позиция прокрутки обновляется непосредственно в хранилище (а не смещается повсюду в коде)
- начальные координаты каждой комнаты БУДУТ меняться, если вы прокрутите
- Это не влияет на окончательные экспортированные значения благодаря способу их расчета перед экспортом.
Устройства ESP32:
- Устройства экспортируют только значения x, y, z.
- Устройство имеет имя своей комнаты при экспорте в yaml.
- По умолчанию значение z установлено на 0 и может быть изменено при открытии модального окна устройства (зеленый квадрат под названием комнаты в правом меню)
- покрытие и значение цвета предназначены только для отображения (они не экспортируются)
Восстановление / YAML в JSON / Удалено локальное хранилище.... Упс! (если вы ранее экспортировали код yaml):
- в приложении нажмите кнопку восстановления.
- прочитайте оповещение, нажмите ОК
- прочитайте текст поверх модального окна
- вставьте свой код yaml в область yaml (слева).
- справа вы должны увидеть соответствующий объект JSON.
- нажмите «Сохранить» и перезагрузите компьютер, вы снова увидите план этажа.
- Эта функция является экспериментальной, процесс преобразования плохо закодирован и может работать только для определенного синтаксиса (см. код плана этажа ниже, например, для чего был закодирован процесс преобразования)
- Преобразование НЕ пересчитывает положение меток для комнат, поэтому у вас будут метки вверху слева и некоторые неопределенные в правом меню. но это может сэкономить вам некоторое время, и вы все равно сможете работать над этим и без проблем экспортировать обновленный yaml.
- Это бонусная подстраховка, если сработает, радуйтесь, если нет, то начинайте рисовать. Я, вероятно, не буду обновлять эту «функцию»
Попробуйте иметь комнаты: ... затем планы комнат: ... для планов комнат укажите y1, x1, y2, x2 в таком порядке. комнаты: имена должны соответствовать планам комнат: имена (поскольку приложению необходимо поместить устройство в комнату, и сопоставление выполняется с именем)
rooms:
kitchen: [0.035, 2.285, 0]
bedroom: [3.68, 11.045, 1.2]
livingroom: [3.59, 5.805, 1.2]
second_bedroom: [7.275, 5.559928991794586, 0]
office: [10.48, 2.715, 0]
roomplans:
- name: kitchen
y1: 0
x1: 0
y2: 4.29
x2: 3.59
- name: bathroom
y1: 4.29
x1: 0
y2: 6.72
x2: 2.36
- name: toilet
y1: 6.72
x1: 0
y2: 7.98
x2: 2.36
- name: second_bedroom
y1: 7.98
x1: 0
y2: 12.06
x2: 3.68
- name: bedroom
y1: 7.98
x1: 3.68
y2: 12.06
x2: 7.6
- name: entrance
y1: 4.29
x1: 2.36
y2: 7.98
x2: 3.59
- name: entrance
y1: 6.2
x1: 3.59
y2: 7.98
x2: 7.6
- name: livingroom
y1: 1.37
x1: 3.59
y2: 6.2
x2: 7.6
- name: office
y1: 0
x1: 7.6
y2: 4.92
x2: 10.53
Небольшие обзоры (устарело, но в настоящее время я не могу брать новые — посмотрите демо-версию, чтобы увидеть новый дизайн и функции)







