Criador do FloorPlan para ESPresense-companion
Este projeto foi criado para facilitar a criação de planta baixa para ESPresenseIPS (https://github.com/ESPresense/ad-espresense-ips) ou ESPresense-companion (https://github.com/ESPresense/ESPresense-companion) tendo um gui. Ele oferece ajuste às salas para facilitar o alinhamento e fornece medidas em cada lado do cursor quando estiver em uma parede. Este aplicativo é desenvolvido em HTML/JS/CSS, sem bibliotecas (mas fontawesome em um cdn), Canvas power!
Demonstração e criador de planta baixa online
Agora você pode experimentar o aplicativo em: https://espresense.com/Floorplan-Creator/
Você poderá traçar seus planos, testar o aplicativo e gerar exportações. A integração do Mqtt deve funcionar, mas com uma instância pública do mqtt em https. (o SSL mqtt agora está implementado)
Como usar
- Baixe o projeto
- abra "index.html" com um navegador
- comece a desenhar cada quarto
- adicione dispositivos esp32 dentro de cada sala
- clique no botão "exportar para yaml"
- copie o código gerado para o arquivo ESPresenseIPS app.js
- Opcional:
- depois que a configuração for copiada e o AppDaemon reiniciado
- abra o painel de configuração MQTT (⚙) e insira sua configuração
- os dispositivos aparecerão na planta baixa em tempo real
- dispositivos também aparecerão na lista no painel de configuração do mqtt
- divirta-se ajustando tudo para torná-lo perfeito
Mudanças
12-03-2023
- Saída yaml modificada para ser compatível com https://github.com/ESPresense/ESPresense-companion
05-04-2022
- Cálculo fixo da maioria das salas superiores e esquerdas (em alguns casos onde a maioria das salas superiores e esquerdas não são a mesma sala) - Obrigado @Shuttleu
21-03-2022
- Adicionado seletor de unidades, ao selecionar pés, os valores serão convertidos para metros antes da exportação do Yaml.
- Você pode alternar a unidade em um plano já desenhado
- App usado para salvar unidade no armazenamento local, agora é uma variável.
- Se você atualizar, verá a unidade no plano e os elementos certos como mm e mft (porque a unidade "m" antiga está no rótulo e eu anexei a nova unidade variável)
- Apenas um bug na interface do usuário, funcionará conforme o esperado
- Você pode remover manualmente o "m" dos rótulos dos quartos no armazenamento local se isso o incomodar.
05-03-2022
- Faça o MQTT permitir conexões anônimas - Obrigado @DTTerastar
- Capture exceções de desconexão do MQTT para evitar quebras na execução do javascript - Obrigado @DTTerastar
- SSL implementado no cliente MQTT - Obrigado @DTTerastar
- SSL configurável no painel de configurações
- Ocultar/Mostrar dispositivos na planta baixa por meio do painel Configurações do MQTT
- Altere a cor dos dispositivos na planta baixa por meio do painel Configurações do MQTT
28-02-2022
- Novo menu de ferramentas à esquerda
- Nova alternância de rótulos para ocultar/mostrar rótulos do plano (título da sala e meusres)
- Nova estrutura de arquivos (o projeto não deveria crescer tanto)
- Corrigir recuo na exportação yaml
- Adicione nome aos dispositivos esp32. O nome é exportado no yaml
27-02-2022
- Mostrar indicadores de seta na parte superior, esquerda, inferior e direita da tela se a planta baixa estiver fora da tela para indicar de que lado ela está
26-02-2022
- O painel de controle MQTT agora exibe dispositivos conectados (e dispositivos conhecidos, mesmo que não estejam mais conectados)
- Cliente MQTT para rastrear dispositivos
- Página de configurações do MQTT para inserir a configuração
- mostrar dispositivos na planta baixa em tempo real
26-02-2022
- Mostrar botão de cobertura do dispositivo ESP32
- Cobertura ESP32 mostrada como um círculo ao redor do dispositivo
- A distância de cobertura é ajustável
- A cor do círculo é ajustável
- O círculo de cobertura pode ficar visível ao colocar o dispositivo para ajudar a posicioná-lo corretamente
- Agora você pode até fazer arte com o aplicativo.
25-02-2022
- Tema escuro
- Corrija as coordenadas da planta baixa do yaml (em cm precisa de m)
- Ícones e pequenos ajustes na interface do usuário
- Adicionar ESP32 às salas
- Edite o valor ESP32 Z e veja seu código yaml
- yaml export agora também exporta a posição esp32
24-02-2022
- Role/roda do mouse para mover a planta baixa na tela
O que está planejado.
[] Melhor UI/UX.
[✓] Role/rode na tela para mover a planta baixa.
[] Zoom na tela.
[] Panorâmica na tela.
[✓] Capacidade de adicionar esp32 em salas e posicioná-las com precisão.
[✓] Exporte a posição esp32 das salas para o formato ESPresenseIPS yaml.
[✓] Tenha cada raio de sinal bluetooth esp32 visível na planta para garantir que você tenha pelo menos 3 sinais em cada sala. (ajudará a determinar onde é o melhor lugar para colocá-los;)).
[✓] Cliente MQTT para mostrar dispositivos diretamente na planta baixa.
[] Permite alterar a precisão ao arrastar/criar uma sala.
[✓] SSL para MQTT (para poder hospedar o aplicativo na pasta www do assistente doméstico em instâncias https)
[✓] Barra de ferramentas esquerda
[] Barra de ferramentas esquerda com modificadores de valores para permitir que o usuário personalize limites e precisão de snap e muito mais
[✓] Corrigir recuo em Yaml
[] Refatoração de código, adição de comentários.
Técnico
Salas em forma de U / L:
- Crie várias salas para obter a forma desejada
- Nomeie todos eles com o mesmo nome
- O ESPresenseIPS deverá enviar o mesmo nome ao assistente residencial caso o usuário esteja em alguma dessas salas.
As posições são calculadas da seguinte forma:
- encontre a sala com o menor valor de x (lado esquerdo da tela)
- encontre a sala com o menor valor de y (parte superior da tela)
- gerar um deslocamento com esses 2 valores (o que significa que "menorX, menorY" agora é a posição "0,0"
- todas as posições salvas das salas desenhadas são então recalculadas com este deslocamento
Rolar:
- A rolagem move a planta baixa na tela
- a posição de rolagem é atualizada diretamente no armazenamento (em vez de ser compensada em todo o código)
- as coordenadas iniciais de cada sala mudarão se você rolar
- Isto não tem efeito nos valores finais exportados graças à forma como são calculados antes da exportação.
Dispositivos ESP32:
- Os dispositivos exportam apenas valores x, y, z
- O dispositivo tem o nome da sala quando exportado para yaml
- O valor z é definido como 0 por padrão e pode ser alterado ao abrir o modal do dispositivo (quadrado verde abaixo do nome da sala no menu direito)
- a cobertura e o valor da cor são apenas para fins de exibição (não são exportados)
Recuperação/YAML para JSON/Armazenamento local excluído.... Opa! (se você já exportou o código yaml antes):
- no aplicativo, clique no botão de recuperação.
- leia o Alerta, clique em ok
- leia o texto em cima do modal
- cole seu código yaml na área yaml (esquerda).
- à direita você deverá ver o objeto json correspondente.
- clique em "salvar" e recarregue, você deverá ver sua planta baixa novamente.
- Este recurso é experimental, o processo de conversão é mal codificado e pode estar funcionando apenas para uma sintaxe específica (veja o código da planta baixa abaixo para ver como o processo de conversão foi codificado)
- A conversão NÃO recalcula a posição dos rótulos para salas, portanto você terá rótulos no canto superior esquerdo e alguns indefinidos no menu direito. mas isso pode economizar algum tempo e você ainda pode trabalhar nisso e exportar o yaml atualizado sem problemas
- Essa é uma rede de segurança bônus, se funcionar, fique feliz, se dosar, então comece a desenhar. Provavelmente não atualizarei esse "recurso"
Tente ter rooms: ... then roomplans: ... , para roomplans, tenha y1, x1, y2, x2 nessa ordem. salas: os nomes devem corresponder às plantas das salas: nomes (porque o aplicativo precisa colocar um dispositivo em uma sala e a matemática é feita com o nome)
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
Alguns vislumbres (desatualizados, mas não posso aceitar novos no momento - verifique a demonstração para ver novos designs e recursos)