Creador de FloorPlan para ESPresense-companion
Este proyecto se ha creado para facilitar la creación de planos de planta para ESPresenseIPS (https://github.com/ESPresense/ad-espresense-ips) o ESPresense-companion (https://github.com/ESPresense/ESPresense-companion) al tener una interfaz gráfica de usuario. Ofrece ajuste a habitaciones para una fácil alineación y le brinda medidas a cada lado del cursor cuando está en una pared. Esta aplicación está desarrollada en HTML/JS/CSS, sin bibliotecas (pero es impresionante en un CDN), ¡Poder de Canvas!
Creador de planos de planta en línea y de demostración
Ahora puedes probar la aplicación en: https://espresense.com/Floorplan-Creator/
Podrás dibujar tus planos, probar la aplicación y generar exportaciones. La integración de Mqtt debería funcionar pero con una instancia pública de mqtt en https. (el ssl mqtt ya está implementado)
como usar
- Descarga el proyecto
- abra "index.html" con un navegador
- empieza a dibujar cada habitación
- agregue dispositivos esp32 dentro de cada habitación
- haga clic en el botón "exportar a yaml"
- copie el código generado en el archivo ESPresenseIPS app.js
- Opcional :
- después de copiar la configuración y reiniciar AppDaemon
- abra el panel de configuración de MQTT (⚙) e ingrese su configuración
- Los dispositivos aparecerán en el plano en tiempo real.
- Los dispositivos también aparecerán en la lista en el panel de configuración de mqtt.
- disfruta modificando todo para hacerlo perfecto
Cambios
12-03-2023
- Salida yaml modificada para que sea compatible con https://github.com/ESPresense/ESPresense-companion
05-04-2022
- Cálculo fijo de la mayoría de las habitaciones superiores e izquierdas (en algunos casos donde la mayoría de las habitaciones superiores e izquierdas no son la misma habitación) - Gracias @Shuttleu
21-03-2022
- Se agregó un selector de unidades; al seleccionar pies, los valores se convertirán a metros antes de la exportación a Yaml.
- Puedes alternar unidades en un plano ya dibujado
- La aplicación se utiliza para guardar la unidad en el almacenamiento local, ahora es una variable.
- Si actualiza, verá la unidad en el plano y los elementos de la derecha como mm y mft (porque la antigua unidad "m" está en la etiqueta y agrego la nueva unidad variable)
- Solo un error en la interfaz de usuario, funcionará como se esperaba
- Puede eliminar manualmente la "m" de las etiquetas de las habitaciones en el almacenamiento local si le molesta.
05-03-2022
- Hacer que MQTT permita conexiones anónimas - Gracias @DTTerastar
- Capture las excepciones de desconexión de MQTT para evitar que se interrumpa la ejecución de JavaScript. Gracias @DTTerastar
- SSL implementado en el cliente MQTT - Gracias @DTterastar
- SSL configurable desde el panel de configuración
- Ocultar/Mostrar dispositivos en el plano a través del panel de configuración de MQTT
- Cambie el color de los dispositivos en el plano a través del panel de configuración de MQTT
28-02-2022
- Nuevo menú de herramientas a la izquierda.
- Nueva etiqueta para alternar para ocultar/mostrar etiquetas de planos (título de la habitación y menús)
- Nueva estructura de archivos (se suponía que el proyecto no crecería tanto)
- Corregir sangría en la exportación yaml
- Agregue nombre a los dispositivos esp32. El nombre se exporta en el yaml.
27-02-2022
- Muestre indicadores de flecha en la parte superior, izquierda, inferior y derecha del lienzo si el plano está fuera de la pantalla para indicar en qué lado está
26-02-2022
- El panel de control MQTT ahora muestra los dispositivos conectados (y los dispositivos conocidos incluso si ya no están conectados)
- Cliente MQTT para rastrear dispositivos
- Página de configuración de MQTT para ingresar la configuración
- mostrar dispositivos en el plano de planta en tiempo real
26-02-2022
- Mostrar botón de cobertura del dispositivo ESP32
- La cobertura ESP32 se muestra como un círculo alrededor del dispositivo
- La distancia de cobertura es ajustable.
- El color del círculo es ajustable.
- El círculo de cobertura puede ser visible al colocar el dispositivo para ayudar a colocarlo correctamente
- Ahora incluso puedes hacer arte con la aplicación.
25-02-2022
- Tema oscuro
- Corregir las coordenadas del plano de planta de yaml (estaba en cm, necesita m)
- Íconos y pequeños ajustes en la interfaz de usuario
- Agregue ESP32 a las habitaciones
- Edite el valor ESP32 Z y vea su código yaml
- La exportación de yaml ahora también exporta la posición esp32.
24-02-2022
- Desplazamiento/rueda del mouse para mover el plano en el lienzo
Lo que está previsto.
[] Mejor UI/UX.
[ ✓] Desplácese/Rueda en el lienzo para mover el plano.
[] Ampliar el lienzo.
[] Panorámica sobre el lienzo.
[ ✓ ] Posibilidad de agregar esp32 en habitaciones y posicionarlas con precisión.
[ ✓ ] Exportar la posición esp32 de las habitaciones al formato yaml ESPresenseIPS.
[ ✓ ] Haga que cada radio de señal de bluetooth esp32 esté visible en el plan para asegurarse de tener al menos 3 señales en cada habitación. (ayudará a determinar cuál es el mejor lugar para colocarlos;)).
[ ✓ ] Cliente MQTT para mostrar dispositivos en el plano directamente.
[] Permite cambiar la precisión mientras arrastra/crea una habitación.
[ ✓ ] SSL para MQTT (para poder alojar la aplicación en la carpeta www de Home Assistant en instancias https)
[ ✓ ] Barra de herramientas izquierda
[] Barra de herramientas izquierda con modificadores de valores para permitir al usuario personalizar los umbrales de ajuste y la precisión y más
[ ✓ ] Corregir sangría en Yaml
[] Refactorización de código, agregar comentarios.
Técnico
Habitaciones en forma de U / L:
- Crea múltiples habitaciones para lograr la forma deseada.
- Nómbralos a todos con el mismo nombre.
- ESPresenseIPS debería enviar el mismo nombre al asistente del hogar si el usuario se encuentra en alguna de esas habitaciones.
Las posiciones se calculan de la siguiente manera:
- encuentre la habitación con el valor x más pequeño (lado izquierdo de la pantalla)
- encuentre la habitación con el valor y más pequeño (parte superior de la pantalla)
- generar un desplazamiento con esos 2 valores (lo que significa que "más pequeñoX, más pequeñoY" ahora es la posición "0,0"
- Cada posición guardada de las habitaciones dibujadas se recalcula con este desplazamiento.
Desplazarse:
- El pergamino mueve el plano sobre el lienzo.
- la posición de desplazamiento se actualiza directamente en el almacenamiento (en lugar de compensarse en todas partes del código)
- las coordenadas iniciales de cada habitación cambiarán si te desplazas
- Esto no tiene ningún efecto sobre los valores finales exportados gracias a la forma en que se calculan antes de exportar.
Dispositivos ESP32:
- Los dispositivos exportan solo valores x, y, z
- El dispositivo tiene el nombre de su habitación cuando se exporta a yaml
- El valor z está establecido en 0 de forma predeterminada y se puede cambiar al abrir el modal del dispositivo (cuadrado verde debajo del nombre de la habitación en el menú derecho)
- la cobertura y el valor del color son solo para fines de visualización (no se exportan)
Recuperación / YAML a JSON / Almacenamiento local eliminado... ¡Ups! (si ha exportado el código yaml antes):
- en la aplicación, haga clic en el botón de recuperación.
- lea la alerta, haga clic en Aceptar
- leer el texto encima del modal
- pegue su código yaml en el área yaml (izquierda).
- a la derecha deberías ver el objeto json correspondiente.
- haga clic en "guardar" y vuelva a cargar, debería ver su plano nuevamente.
- Esta característica es experimental, el proceso de conversión está mal codificado y podría estar funcionando solo para una sintaxis específica (consulte el código del plano a continuación para ver un ejemplo de para qué se ha codificado el proceso de conversión)
- La conversión NO vuelve a calcular la posición de las etiquetas para las habitaciones, por lo que tendrá etiquetas en la parte superior izquierda y algunas no definidas en el menú de la derecha. pero puede ahorrarte algo de tiempo y aún puedes trabajar en ello y exportar yaml actualizado sin problemas.
- Esta es una red de seguridad adicional, si funciona, alégrate, si no funciona, empieza a dibujar. Probablemente no actualizaré esta "función"
Intente tener habitaciones: ... luego planos de habitaciones: ..., para planos de habitaciones, tenga y1, x1, y2, x2 en ese orden. habitaciones: los nombres deben coincidir con los planos de las habitaciones: nombres (porque la aplicación necesita colocar un dispositivo en una habitación y el cálculo se realiza con el nombre)
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
Algunos vistazos (obsoletos, pero actualmente no puedo aceptar otros nuevos; consulte la demostración para ver nuevos diseños y funciones)