Homepoint é uma interface baseada em tela para dispositivos Smarthome conectados a MQTT e HomeKit que rodam no chipset ESP32.
Características
Demonstração
Instalação
Construir
Configuração
Cenas e dispositivos
Wi-Fi e MQTT
Hora NTP (opcional)
Exemplos
Roteiro
Bugs e problemas conhecidos
Contribuindo
Compre-me um café
Licença
Veja e acione cenas (grupos de dispositivos) na tela frontal.
Acione dispositivos individuais mergulhando nas cenas (tocando no indicador ou pressionando longamente um botão).
Veja rapidamente cenas parcialmente ligadas com vários dispositivos.
Suporte para sensores de temperatura, umidade, qualidade do ar e leituras de energia Tasmota .
Configuração Remota : Configure e reinicie o HomePoint através de uma interface web. Não há necessidade de reflash.
Atualizações Over-The-Air (Beta) : Atualize novas versões do HomePoint sem fio pelo ar.
Suporte para switch HomeKit (configure automações no aplicativo Home para alternar do Homepoint)*
Suporta navegação baseada em tela sensível ao toque ou botão .
Reativo : a tela é atualizada sempre que dispositivos são acionados de outro lugar.
Fácil configuração através de um arquivo JSON, sem necessidade de código adicional.
O protetor de tela economiza energia desligando a tela após 10 minutos.
A barra de status mostra a conectividade para WiFi e MQTT, bem como a hora.
Modo à prova de falhas : Em caso de configuração corrompida, é fornecido o modo à prova de falhas para acesso remoto.
Binários pré-compilados : basta atualizar o HomePoint em seu dispositivo ESP32 sem compilar.
*atualmente em ramo experimental.
O HomePoint vem em 2 arquivos .bin pré-compilados, prontos para serem atualizados em um módulo ESP32 genérico ou M5Stack. Mais detalhes sobre a configuração do hardware estão disponíveis no Wiki.
Etapas para instalar:
Baixe ESPTools em https://github.com/espressif/esptool/releases
Instale ESPTools com python setup.py install
Execute esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(ou homepoint_m5stack.bin para M5Stack)
Alternativamente, assista ao vídeo de instalação abaixo:
Homepoint foi criado usando o SDK ESP-IDF.
Instruções detalhadas de construção estão disponíveis no Wiki.
A configuração reside em data/config.json
.
O HomePoint oferece suporte a dois tipos de cenas com uma seleção de dispositivos cada:
Tipos de CENA | Tipos de DISPOSITIVO |
---|---|
Luz, interruptor | (nenhum, espera-se que todos os dispositivos sejam switches) |
Sensor | exibir um ou dois valores de uma vez com ícones personalizáveis (singleValue/combinedValues) |
Sensores agrupados suportam até dois dispositivos (devido ao espaço da tela).
Luzes e interruptores suportam um número infinito de dispositivos em um grupo.
Alguns sensores usam JSON como formato de dados, caso em que uma chave pode ser definida. Eles podem estar em qualquer nível da carga útil do sensor json. Para plugues inteligentes Tasmota, o valor-chave "Power" pode ser usado para exibir o consumo de energia atual.
As credenciais WiFi e MQTT devem ser definidas no nível superior.
Para definir o fuso horário correto, copie e cole sua configuração NTP TZ na chave timezone
.
Algumas das unidades de exibição IL9341 parecem diferir, por exemplo, na forma como as coordenadas da tela sensível ao toque correspondem à tela ou como a luz de fundo do LED é controlada. Portanto oferecemos algumas opções para substituir os padrões no arquivo de configuração.
Chave | Tipo | Valor |
---|---|---|
"ledPinPullup" | Booleano | true ou false - controla a potência da luz de fundo que pode ser aumentada/baixada dependendo da unidade |
"screenRotationAngle" | Interno | O parâmetro de rotação pode ser 0, 1, 2 ou 3 - incrementando em ângulos de 90 graus |
"screenSaverMinutes" | Interno | Minutos até o display ser desligado (padrão 10) |
"touchXAxisInvertido" | Bool | padrão: false , inverta o eixo X da tela de toque caso esteja desalinhado |
"touchYAxisInvertido" | Bool | padrão: true , inverta o eixo Y da tela de toque caso esteja desalinhado |
"displayColorInverted" | Bool | padrão: false , inverta o espaço de cores (ou seja, para monitores ILI9342C) |
Os tópicos MQTT diferenciam maiúsculas de minúsculas de acordo com a especificação MQTT.
{ "wifi": "MyWifiSSID", "password": "Minha senha Wifi", "hostname": "optionalhostname", "login": "admin", "webpass": "admin", "mqttbroker": "mqtt: //192.168.1.2", "mqttusername": "mqttusername", "mqttpasswd": "mymqttpassword", "fuso horário": "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "cenas": [{ "nome": "Sala de estar", "tipo": "Luz" , "icon": "sala de estar", "dispositivos": [{ "nome": "Alguma luz", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue color lamp 1", "onValue": " verdadeiro", "offValue": "falso" }, { "name": "Luz da porta", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status /lights/Lâmpada de cor Hue 1", "onValue": "true", "offValue": "false", "icon": "door" }, ] }, { "nome": "Quarto", "tipo": "Sensor", "icon": "porta", "dispositivos": [{ "nome": "Sensor DHT de temperatura", "tipo": "singleValue", " jsondata": true, "firstIcon": "temperature_small", "firstKey": "temperatura", "getTopic": "quarto/esptemp" }, { "name": "Tasmota Smart Plug", "type": "singleValue", "jsondata": true, "firstKey": "Power", "firstIcon":"wattage_small", "getTopic": "tele/DVES_2F73BE/ SENSOR" }] }] }
Um exemplo mais totalmente configurado está disponível aqui.
Documentação para integração com Homebridge-Hue e HomeAssistant/ZigBee2MQTT
Suporte para Home Kit
Teste
Se você encontrar algum bug ou precisar de ajuda, não hesite e abra um problema :)
Contribuições são bem-vindas! Basta hackear e abrir uma solicitação pull. Mas siga o estilo do código que já está lá (ou seja, sem tabulações, espaçamento).
Desenvolvi o HomePoint no meu tempo livre porque queria aprender mais sobre C++ no ESP32 e resolver um problema concreto no meu smarthome.
À medida que o desenvolvimento avançava, pensei em maneiras de tornar este projeto de código aberto e mais acessível e fácil de usar para a comunidade de criadores.
Se você gosta de usar o HomePoint ou este trabalho, considere fazer uma pequena doação. Mas não se preocupe, continuarei trabalhando nisso de qualquer maneira ;-).
MIT © Matthias Frick