Homepoint est une interface basée sur écran pour les appareils Smarthome connectés à MQTT et HomeKit qui fonctionne sur le chipset ESP32.
Caractéristiques
Démo
Installation
Construire
Configuration
Scènes et appareils
Wi-Fi et MQTT
Heure NTP (facultatif)
Exemples
Feuille de route
Bogues et problèmes connus
Contribuer
Achetez-moi un café
Licence
Visualisez et déclenchez des scènes (groupes d’appareils) sur l’écran avant.
Déclenchez des appareils individuels en plongeant dans des scènes (en appuyant sur l'indicateur ou en appuyant longuement sur un bouton).
Visualisez d'un seul coup d'œil les scènes partiellement allumées avec plusieurs appareils.
Prise en charge des capteurs de température, d'humidité, de qualité de l'air et des lectures d'énergie Tasmota .
Configuration à distance : configurez et redémarrez HomePoint via une interface Web. Pas besoin de reflasher.
Mises à jour en direct (bêta) : Flashez les nouvelles versions de HomePoint sans fil par liaison radio.
Prise en charge du commutateur HomeKit (configuration des automatisations dans l'application Home pour basculer depuis Homepoint)*
Prend en charge la navigation par écran tactile ou par bouton .
Réactif : l'écran se met à jour chaque fois que les appareils sont déclenchés depuis ailleurs.
Configuration facile via un fichier JSON, aucun code supplémentaire requis.
L'économiseur d'écran économise de l'énergie en éteignant l'écran après 10 minutes.
La barre d'état affiche la connectivité pour WiFi et MQTT ainsi que l'heure.
Mode de sécurité : en cas de configuration corrompue, un mode de sécurité pour l'accès à distance est fourni.
Binaires précompilés : Flashez simplement HomePoint sur votre appareil ESP32 sans compiler.
*actuellement sur branche expérimentale.
HomePoint est livré sous forme de 2 fichiers .bin précompilés prêts à être flashés sur un module ESP32 générique ou sur M5Stack. Plus de détails sur la configuration matérielle sont disponibles dans le Wiki.
Étapes d'installation :
Téléchargez ESPTools depuis https://github.com/espressif/esptool/releases
Installez ESPTools avec python setup.py install
Exécutez esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(ou homepoint_m5stack.bin pour M5Stack)
Vous pouvez également regarder la vidéo d'installation ci-dessous :
Le point d'accueil a été créé à l'aide du SDK ESP-IDF.
Des instructions de construction détaillées sont disponibles dans le Wiki.
La configuration réside dans data/config.json
.
HomePoint prend en charge deux types de scènes avec chacune une sélection d'appareils :
Types de SCÈNES | Types d'APPAREILS |
---|---|
Lumière, interrupteur | (aucun, tous les appareils devraient être des commutateurs) |
Capteur | afficher une ou deux valeurs à la fois avec des icônes personnalisables (singleValue / CombinedValues) |
Les capteurs groupés prennent en charge jusqu'à deux appareils (en raison de l'espace sur l'écran).
Les lumières et interrupteurs prennent en charge un nombre infini d'appareils dans un groupe.
Certains capteurs utilisent JSON comme format de données, auquel cas une clé peut être définie. Celles-ci peuvent se trouver à n'importe quel niveau de la charge utile JSON du capteur. Pour les prises intelligentes Tasmota, la valeur clé « Puissance » peut être utilisée pour afficher la consommation électrique actuelle.
Les informations d'identification WiFi et MQTT doivent être définies au niveau supérieur.
Afin de définir le fuseau horaire correct, copiez et collez votre paramètre NTP TZ sur la touche timezone
.
Certaines unités d'affichage IL9341 semblent différer, par exemple dans la manière dont les coordonnées de l'écran tactile correspondent à l'écran ou dans la manière dont le rétroéclairage LED est contrôlé. C'est pourquoi nous proposons quelques options pour remplacer les valeurs par défaut dans le fichier de configuration.
Clé | Taper | Valeur |
---|---|---|
"ledPinPullup" | Booléen | true ou false - contrôle la puissance du rétroéclairage qui peut être pull-up/down en fonction de l'unité |
"angle de rotation de l'écran" | Int | Le paramètre de rotation peut être 0, 1, 2 ou 3 - incrémenté par angles de 90 degrés |
« économiseur d'écran minutes » | Int | Minutes jusqu'à ce que l'affichage soit éteint (par défaut 10) |
"touchXAxisInverted" | Booléen | par défaut : false , inversez l'axe X de l'écran tactile au cas où il serait mal aligné |
"touchYAxisInverted" | Booléen | par défaut : true , inversez l'axe Y de l'écran tactile au cas où il serait mal aligné |
"displayColorInversé" | Booléen | par défaut : false , inversez l'espace colorimétrique (c'est-à-dire pour les écrans ILI9342C) |
Les sujets MQTT sont sensibles à la casse, conformément à la spécification MQTT.
{ "wifi": "MyWifiSSID", "password": "Mon mot de passe 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", "scenes": [{ "name": "Salon", "type": "Lumière" , "icon": "salon", "devices": [{ "name": "Some Light", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue color lampe 1", "onValue": " vrai", "offValue": "faux" }, { "name": "Éclairage de porte", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "teinte/statut /lights/Lampe de couleur Hue 1", "onValue": "true", "offValue": "false", "icon": "door" }, ] }, { "name": "Chambre", "type": "Capteur", "icon": "porte", "appareils": [{ "name": "Capteur de température DHT", "type": "singleValue", " jsondata": true, "firstIcon": "temperature_small", "firstKey": "température", "getTopic": "chambre/esptemp" }, { "name": "Tasmota Smart Plug", "type": "singleValue", "jsondata": true, "firstKey": "Power", "firstIcon": "wattage_small", "getTopic": "tele/DVES_2F73BE/ CAPTEUR" }] }] }
Un exemple plus entièrement configuré est disponible ici.
Documentation pour l'intégration avec Homebridge-Hue et HomeAssistant / ZigBee2MQTT
Prise en charge de HomeKit
Essai
Si vous trouvez des bugs ou avez besoin d'aide, n'hésitez pas et ouvrez un ticket :)
Les contributions sont les bienvenues ! Piratez simplement et ouvrez une Pull Request. Mais veuillez suivre le style du code qui est déjà là (c'est-à-dire pas de tabulations, d'espacement).
J'ai développé HomePoint pendant mon temps libre car je voulais en savoir plus sur le C++ sur ESP32 et résoudre un problème concret dans ma maison intelligente.
Au fur et à mesure que le développement se poursuivait, j'ai réfléchi aux moyens de rendre ce projet open source et plus accessible et convivial pour la communauté des créateurs.
Si vous aimez utiliser HomePoint ou ce travail, envisagez un petit don. Mais ne vous inquiétez pas, je vais quand même continuer à travailler là-dessus ;-).
MIT © Matthias Frick