[Homeyduino] E-paper pour Homey

Bonjour,

Je vous partage un petit appareil réalisé à partir d’un LILYGO® TTGO T5-4.7 E-paper, que vous pouvez trouver sur le net aux alentours de 30€, il existe en version batterie Lipo ou battery 18650.
(J’ai pris la version 18650 mais je pense le modifier pour lui mettre une batterie, question de taille. Je pense également réimprimer un boitier car celui-ci ne me convient pas!)

Les fonctionnalités sont les suivantes:

  • 24 icones personnalisables
  • Icones mĂ©tĂ©o en fonction de la mĂ©tĂ©o actuelle
  • Choix du type d’appareil (Homey renvoi “true” ou “false” mais pour une serrure par exemple c’est plus sympa d’avoir “Verrouillé” ou “DĂ©verrouillĂ©e”!)
  • Activation/dĂ©sactivation du Deep Sleep par flow
  • Temps du Deep Sleep paramĂ©trable par flow
  • Affichage de la mĂ©tĂ©o actuelle
  • Affichage du pourcentage de la batterie
  • Paramètres sauvegardĂ©s dans la mĂ©moire flash
  • SĂ©lectionner la langue (EN ou FR uniquement pour quelques paramètres, vous ferez le reste dans les flows)

Pour le faire fonctionner avec Homey, vous aurez besoin:

J’ai réalisé le code avec Arduino IDE, vous pouvez le télécharger, installer les librairies nécessaires.
Dans le dossier “Homey_e_paper_v1.0” ouvrez simplement “Homey_e_paper_v1.0.ino”, remplacez “YOUR SSID” et “YOUR PASSWORD” par vos paramètres wifi et téléversez le code dans votre LILYGO.

const char* ssid     = "YOUR SSID";
const char* password = "YOUR PASSWORD";

Vous devez choisir la carte ESP32 Dev Module, et activer PSRAM (“enable”).
Vous pouvez également modifier le nom de votre appareil dans l’onglet “HomeyAction”. Je l’ai nommé “Paper Screen”:

Homey.begin("Paper Screen"); //Get name for your device

Je vous conseille ensuite de lui attribuer une adresse IP fixe depuis votre box/routeur internet.

Liste des actions que vous retrouverez dans les flows (Je les explique en détail plus bas):

Attention aux cartes utilisées. Il y a des cartes “Action” et des cartes “Action [Text]” !

  • “Time_Deep_Sleep”
  • “Deep_Sleep_Enable”
  • “Header_Icon”
  • “Header_Text”
  • “Header_Value”
  • “Device_type_Zone_1”
  • “Device_type_Zone_2”
  • “Device_type_Zone_3”
  • “Device_type_Zone_4”
  • “Icon_Zone_1”
  • “Icon_Zone_2”
  • “Icon_Zone_3”
  • “Icon_Zone_4”
  • “Name_Zone_1”
  • “Name_Zone_2”
  • “Name_Zone_3”
  • “Name_Zone_4”
  • “Value_Zone_1”
  • “Value_Zone_2”
  • “Value_Zone_3”
  • “Value_Zone_4”
  • “Battery_percent”
  • “Last_update”
  • “Screen_Repair”
  • “Select_Language”

Paramétrage de votre LILYGO:
Les paramètres que vous rentrerez ci dessous serons enregistrer dans la mémoire flash de l’ESP-32, même après redémarrage ou coupure courant les valeurs resterons.


Vous avez donc:

  • Screen_Repair : Vous pouvez dĂ©clencher cette fonction si vous avez des images rĂ©siduelles sur votre Ă©cran
  • Battery_percent : Si vous ĂŞtes sur batterie et que vous n’activez pas le Deep Sleep, il vous faudra dĂ©clencher cette action a l’interval que vous souhaitez pour mettre Ă  jour l’affichage du pourcentage de batterie.
  • Deep_Sleep_Enable: Option possible: “enable” pour activer le mode Deep Sleep et “disable” pour le dĂ©sactiver. Le mode Deep Sleep plonge l’ESP-32 en veille profonde ce qui Ă©conomise Ă©normĂ©ment de batterie!
  • Time_Deep_Sleep: Le temps en seconde entre chaque rĂ©veil de l’ESP. Plus il est long, moins l’ESP-32 consomme.
  • Select_Language: “FR” ou “EN”, je pense que c’est assez explicite.

Répartion à l’écran:
Le “plan” de l’écran est celui ci

Le flow que j’utilise:


A chaque réveil l’ESP-32 envoie un Trigger à Homey que j’utilise comme déclencheur pour envoyer les valeurs à l’écran. Seules les valeurs qui sont différentes du précédent réveil sont mise à jour (pas besoin de consommer bêtement de la batterie en effaçant des données pour remettre les mêmes!)

Explication des actions:

  • Last_update: En haut Ă  droite de l’écran, sous l’icone batterie vous avez une icone de mise Ă  jour. Je viens y envoyer l’heure afin d’avoir un visuel sur le moment de la dernière mise Ă  jour
  • Header_Text: On y envoie la mĂ©tĂ©o actuel depuis votre appareil Open Weather
  • Header_Icon: cette action est Ă  dĂ©clencher sans paramètre afin de mettre l’icone mĂ©tĂ©o Ă  jour en fonction de la mĂ©tĂ©o actuelle
    -Header_Value: La température que vous souhaitez. J’ai un détecteur Philips Hue dans le jardin, il me donne la température que je renvoi ici.

Ensuite pour chacune des Zones c’est la même chose (seul le numéro de zone change évidemment):

  • Device_Type_Zone_1: EN OPTION: Homey renvoi “true” ou “false” pour certaines valeur mais pour une serrure par exemple c’est plus sympa d’avoir “Verrouillé” ou “DĂ©verrouillĂ©e”! Les diffĂ©rents types sont listĂ©s dans l’encadrĂ© Jaune

  • Icon_Zone_1: L’icone que vous souhaitez afficher. Attention Ă  bien respecter l’écriture (minuscule et espace). Liste des icones dans l’encadrĂ© vert. Je mets le visuel plus bas.

  • Name_Zone_1: Le nom de l’appareil que vous souhaitez afficher. 14 caractères maximum, espace compris (15 ça doit passer je crois)

  • Value_Zone_1: La valeur de l’appareil en question. Pensez Ă  ajouter l’unitĂ© de mesure Ă  la fin.

Visuel des Icones disponibles:

RAPPEL: Respecter les majuscules, minuscule, espace…,

==================================================
EN COURS… :

  • RĂ©cupĂ©rer toutes les valeurs mĂ©tĂ©o

IDEES:

  • Faire une orientation Ă  90° soit part flow soit par un bouton embarquĂ©
  • Icon dynamique en fonction de l’état du device

FAIT:

  • Optimisation du temps de rĂ©veil pour qu’il soit le plus court possible. Edit: Suppression du timer et ajout d’un compteur pour les actions envoyĂ© depuis Homey

  • N’effacer que les zones qui ont besoin de l’être au rĂ©veil (je ne sais pas si c’est possible…). Edit: Possible mais l’écran s’assombrit de plus en plus Ă  chaque rĂ©veil. Donc je ne l’ai pas fais.

  • Ajout d’un device_type “heater” pour les radiateurs (car il sont Ă©teint quand le module est allumĂ©)
  • Changer l’icone quand la batterie/Ă©cran est connecter Ă  un USB (actuellement vous verrez “✓” en haut Ă  droite)
  • Faire une nouvelle coque (J’ai pris celle ci sur Thingiverse, je pense que le PLA bois ne vas pas avec. Peut-ĂŞtre blanc…)

PS: Ceci est un premier jet, j’améliorerai si besoin le texte.
PS2: Avant de crier au scandale pour la planète avec mes 22.9°C au RDC, je chauffe au bois que je récupère…

3 Likes

Je vais être franc, je suis en admiration absolue devant le travail et le résultat, surtout vu le manque d’écrans de ce style pour Homey (même si SMPL pointe le bout de son nez, mais c’est encore beaucoup trop cher…). Malheureusement, en tant que non initié, je ne comprends pas toutes les étapes et je serais bien incapable de reproduire le résultat, dommage.

Merci!

Je vais essayer de faire un tuto détaillé sur le GitHub.
En soit la démarche n’est pas compliqué mais je comprend que ça freine quand on ne connaît pas.

En fait je pense être assez débrouillard et j’ai pas mal d’expérience avec Homey, mais je ne suis pas dans le domaine informatique et je n’ai pas d’expérience de programmation d’Arduino ou de Raspberry Pi par exemple. On est sûrement beaucoup dans ce genre de situation. Du coup, déjà à l’étape J’ai réalisé le code avec Arduino IDE vous pouvez le télécharger, installer les librairies nécessaires je serais coincé :wink: Donc si une fois vous faites un tutorial pour les grands débutants, ça serait super :slight_smile:

2 Likes

Très belle année 2023 à tous!

Pour continuer sur ma lancée, nouveau boitier aimanté et modification sur batterie.

Nouvelle version 1.1.0 Ă  venir:

  • Ajout de 15 nouvelles icones
  • Ajout d’un choix d’affichage 4 ou 6 devices (4 par dĂ©faut)
  • Ajout de fonction empĂŞchant le blocage de l’ESP en cas d’erreur avec d’affichage du message d’erreur directement sur l’écran
  • Ajout de “device type”:
    -“water sensor” pour des valeurs “Sec” ou “Mouillé”
    -“presence” pour des valeur “Présent” ou “Absent”

1 Like

Il est magnifique, franchement vous devriez les vendre, vous feriez un carton! Ce genre d’écran n’existe vraiment pas à part le SMPL mentionné (hors de prix et notamment pas livrable ici en Suisse…). Moi j’en précommande un :slight_smile:
A part cela, peut-on afficher des variables (soit des ON/OFF, soit des nombres)? Si oui, à quelles fréquences les données sont-elles rafraichies?

Le but est de partager ce qui est possible de faire, avec des appareils peu cher, un peu d’impression 3D et un peu de programmation.

Pour ce qui est des variables, vous pouvez afficher n’importe quelle valeur d’un appareil (on/off, température, humidité, batterie, lux, des variables oui/non, …), ou bien n’importe quel texte que vous souhaitez.
Homey, envoie “true” pour vrai et “false” pour faux, c’est pour cela que j’ai créé des “Device_Type_Zone_x” afin que les valeurs retournées à l’écran soit plus lisible.

Si par exemple vous souhaitez afficher l’état d’une lumière, si elle est allumée Homey enverra “true”. Dans ce cas en ajoutant “Device_Type_Zone_x” = “light”, la valeur affiché sera “Allumé”.

Les données peuvent être rafraîchis selon la fréquence de votre choix. L’action “Time_Deep_Sleep” est prévu pour paramétrer cela. En faisant “Time_Deep_Sleep” = “5”, l’ESP32 se réveillera toutes les 5 minutes, enverra un déclencheur à Homey afin de récupérer les valeurs et retournera en sommeil profond pour 5 minutes. Ce paramètre est modifiable à n’importe quel moment et sauvegardé.

Je peaufine le code afin de le publié et je ferai un tuto plus en détail pour l’installation et l’utilisation.

1 Like

J’ai déjà effectué l’action la plus simple: commander le LILYGO® TTGO T5-4.7 (la version LiPo) :wink: Donc ça me laisse un peu de temps pour lire quelques tutoriaux relatifs à la programmation.
Concernant l’impression 3D, c’est un domaine très différent et si vous avez un fichier STL à fournir, c’est déjà très utile à ceux qui maîtriserait le domaine (ce qui est mon cas, en tout cas l’impression, moins la modélisation 3D…).
Accessoirement, l’app Homeyduino ne sera pas compatible avec la nouvelle Homey 2023, que j’entends acquérir (et je ne suis certainement pas le seul, de toute façon l’ancienne version n’est même plus vendue). Si cette app n’est pas mise à jour prochainement, ça pourrait devenir un problème à terme. Le développeur étant Athom lui-même, j’espère qu’ils vont s’y mettre :wink:

1 Like

Bonjour,

La V1.1.0 est disponible ainsi que les fichiers STL: ICI

V1.1.0:

  • Mode d’affichage pour 4 ou 6 appareils est maintencant disponible et configurable par flow
  • Ajout de messages d’erreur visible directement sur l’écran (AffichĂ© 1 minute et l’ESP redĂ©marre. Erreur possible: Connexion Wifi, Connexion Homey, Communication avec le flow et le Temps de deep sleep)
  • Ajout de 2 nouvelles icones (icones luminositĂ© et imprimante 3D)
  • Ajout d’une icone sommeil Ă  cĂ´tĂ© de l’icone de dernière mise Ă  jour afin de savoir si l’ESP est entrĂ© en sommeil profond
  • Le Deep Sleep est maintenant automatiquement activĂ© ou dĂ©sactivĂ© avec le “Time_To_Sleep” dĂ©fini (0 dĂ©sactive le deep sleep, et 60 secondes minimum l’active)
  • PossibilitĂ© d’afficher le pourcentage de batterie oĂą une icone dynamique

Guide d’installation et guide d’utilisation en cours de rédaction. :wink:

2 Likes

Guide d’installation disponible.

Guide d’installation

2 Likes

Bonjour,

Version 1.1.2 disponible, et guide d’utilisation également

v1.1.2

  • Correction du message d’erreur de flow lorsque le Deep Sleep est dĂ©sactivĂ©
  • Suppression d’une action au compteur car dĂ©clenchĂ©e automatiquement.
1 Like

Génial ! Malheureusement j’attends mon écran, mais je me réjouis de me lancer :smiley::+1:

1 Like

v1.2.1 disponible ici

Ajout de la batterie Ă  Homey.
Vous pouvez désormais visualiser la batterie de votre Homey e-paper dans Homey et l’utiliser dans les flows.

Si vous avez déjà ajouter votre Homey e-paper à Homey, vous devez le supprimer et le rajouter à nouveau.

ATTENTION: cela aura pour effet de rendre vos flows KO.

IMG_3376

Edit, wrong topic:) posted this in English sorry!