Homepoint es una interfaz basada en pantalla para dispositivos Smarthome conectados a MQTT y HomeKit que se ejecuta en el chipset ESP32.
Características
Manifestación
Instalación
Construir
Configuración
Escenas y dispositivos
Wi-Fi y MQTT
Hora NTP (opcional)
Ejemplos
Hoja de ruta
Errores y problemas conocidos
Contribuyendo
Cómprame un café
Licencia
Vea y active escenas (grupos de dispositivos) en la pantalla frontal.
Active dispositivos individuales sumergiéndose en escenas (tocando el indicador o presionando prolongadamente un botón).
Vea escenas parcialmente encendidas con múltiples dispositivos de un vistazo.
Soporte para sensores de temperatura, humedad, calidad del aire y lecturas de energía de Tasmota .
Configuración remota : configure y reinicie HomePoint a través de una interfaz web. No es necesario volver a flashear.
Actualizaciones inalámbricas (Beta) : actualice nuevas versiones de HomePoint de forma inalámbrica y inalámbrica.
Compatibilidad con HomeKit Switch (configurar automatizaciones en la aplicación Home para alternar desde Homepoint)*
Admite navegación basada en pantalla táctil o botones .
Reactivo : la pantalla se actualiza cada vez que los dispositivos se activan desde otro lugar.
Fácil configuración a través de un archivo JSON, no se requiere código adicional.
El salvapantallas ahorra energía apagando la pantalla después de 10 minutos.
La barra de estado muestra la conectividad para WiFi y MQTT, así como la hora.
Modo a prueba de fallos : en caso de configuración corrupta, se proporciona el modo a prueba de fallos para acceso remoto.
Binarios precompilados : simplemente actualice HomePoint en su dispositivo ESP32 sin compilar.
*actualmente en rama experimental.
HomePoint viene en 2 archivos .bin precompilados listos para actualizarse en un módulo ESP32 genérico o en un M5Stack. Más detalles sobre la configuración del hardware están disponibles en la Wiki.
Pasos para instalar:
Descargue ESPTools desde https://github.com/espressif/esptool/releases
Instale ESPTools con python setup.py install
Ejecute esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(o homepoint_m5stack.bin para M5Stack)
Alternativamente, mire el vídeo de instalación a continuación:
Homepoint se creó utilizando el SDK ESP-IDF.
Las instrucciones de compilación detalladas están disponibles en la Wiki.
La configuración se encuentra en data/config.json
.
HomePoint admite dos tipos de escenas con una selección de dispositivos cada una:
Tipos de escena | Tipos de DISPOSITIVO |
---|---|
Luz, interruptor | (ninguno, se espera que todos los dispositivos sean conmutadores) |
Sensor | muestra uno o dos valores a la vez con iconos personalizables (valor único/valores combinados) |
Los sensores agrupados admiten hasta dos dispositivos (debido al espacio de la pantalla).
Lights & Switches admite una cantidad infinita de dispositivos en un grupo.
Algunos sensores utilizan JSON como formato de datos, en cuyo caso se puede definir una clave . Estos pueden estar en cualquier nivel de la carga útil json del sensor; para los enchufes inteligentes Tasmota, el valor clave "Energía" se puede utilizar para mostrar el consumo de energía actual.
Las credenciales WiFi y MQTT deben definirse en el nivel superior.
Para configurar la zona horaria correcta, copie y pegue su configuración NTP TZ en la clave timezone
.
Algunas de las unidades de visualización IL9341 parecen diferir, por ejemplo, en cómo las coordenadas de la pantalla táctil corresponden a la pantalla o en cómo se controla la retroiluminación LED. Por lo tanto, ofrecemos algunas opciones para anular los valores predeterminados en el archivo de configuración.
Llave | Tipo | Valor |
---|---|---|
"ledPinPullup" | Booleano | true o false : controla la potencia de la retroiluminación, que puede subirse o bajarse dependiendo de la unidad. |
"ángulo de rotación de pantalla" | internacional | El parámetro de rotación puede ser 0, 1, 2 o 3, incrementándose en ángulos de 90 grados. |
"Minutos de protector de pantalla" | internacional | Minutos hasta que se apaga la pantalla (por defecto 10) |
"touchXAxisInverted" | booleano | predeterminado: false , invierte el eje X de la pantalla táctil en caso de que esté desalineado |
"touchYAxisInverted" | booleano | predeterminado: true , invierte el eje Y de la pantalla táctil en caso de que esté desalineado |
"displayColorInvertido" | booleano | predeterminado: false , invierte el espacio de color (es decir, para pantallas ILI9342C) |
Los temas MQTT distinguen entre mayúsculas y minúsculas según la especificación MQTT.
{ "wifi": "MyWifiSSID", "contraseña": "Mi contraseña de Wifi", "hostname": "optionalhostname", "login": "admin", "webpass": "admin", "mqttbroker": "mqtt: //192.168.1.2", "mqttusername": "mqttusername", "mqttpasswd": "mymqttpassword", "timezone": "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "escenas": [{ "nombre": "Salón", "tipo": "Luz" , "icon": "sala de estar", "dispositivos": [{ "name": "Un poco de luz", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue color lámpara 1", "onValue": " verdadero", "offValue": "falso" }, { "name": "Luz de puerta", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status /luces/Lámpara de color de tono 1", "onValue": "true", "offValue": "false", "icon": "puerta" }, ] }, { "nombre": "Dormitorio", "tipo": "Sensor", "icono": "puerta", "dispositivos": [{ "nombre": "Sensor de temperatura DHT", "tipo": "singleValue", " jsondata": true, "firstIcon": "temperature_small", "firstKey": "temperatura", "getTopic": "dormitorio/esptemp" }, { "name": "Tasmota Smart Plug", "type": "singleValue", "jsondata": true, "firstKey": "Power", "firstIcon":"wattage_small", "getTopic": "tele/DVES_2F73BE/ SENSOR" }] }] }
Un ejemplo más completamente configurado está disponible aquí.
Documentación para la integración con Homebridge-Hue y HomeAssistant / ZigBee2MQTT
Soporte de HomeKit
Pruebas
Si encuentra algún error o necesita ayuda, no lo dude y abra un problema :)
¡Las contribuciones son bienvenidas! Simplemente hackee y abra una solicitud de extracción. Pero siga el estilo del código que ya existe (es decir, sin tabulaciones ni espacios).
Desarrollé HomePoint en mi tiempo libre porque quería aprender más sobre C++ en ESP32 y resolver un problema concreto en mi hogar inteligente.
A medida que avanzaba el desarrollo, pensé en formas de hacer que este proyecto fuera de código abierto y más accesible y fácil de usar para la comunidad de creadores.
Si le gusta usar HomePoint o este trabajo, considere hacer una pequeña donación. Pero no os preocupéis, seguiré trabajando en esto de todos modos ;-).
MIT © Matthias Frick