======ESP Easy======
[[https://espeasy.readthedocs.io/en/latest/]]
Permet de flasher des ESP pour gérer toutes sortes de capteurs.
=====Liens=====
* [[https://github.com/Grovkillen/ESP_Easy_Flasher/releases|Lien de téléchargement d'EspFlasher]]
* [[https://nils.laumaille.fr/posts/informatique/esp8266-flasher/|Flasher ESPeasy]] sur laumaille.fr
* [[https://nils.laumaille.fr/posts/informatique/esp8266-parametrer/|Configurer ESPeasy]]
* [[https://nils.laumaille.fr/posts/informatique/esp8266-jeedom/|Inclure dans Jeedom]]
* [[https://opendomotech.com/creer-des-objets-connectes-esp-easy/|Tuto de présentation]] sur OpenDomotech (OLD ?)
* [[https://opendomotech.com/sonnette-connectee-jeedom-esp-easy/|Bouton sonnette]]
* [[https://opendomotech.com/capteur-distance-esp-easy-jeedom/|Mesure de distance]]
* [[https://opendomotech.com/chauffe-eau-jeedom-esp-easy/|Gestion chauffe eau]]
=====Flashage et intégration de l'ESP=====
J'ai suivi les 2 tutos de laumaille.fr (les plus récents) et utilisé la dernière version disponible (ESPEasy_mega_20241222_ESP82xx_binaries.zip) pour mettre en place le firmware (ESP_Easy_mega_20241222_normal_ESP8266_4M1M.bin).
===Access Point===
* SSID : nom du firmware utilisé
* CLE : néant sur les dernières versions (sinon configesp)
* IP : 192.168.4.1
ces 3 paramètres pourront être modifiés pour protéger un accès ultérieur
===Intégration dans le réseau (Config)===
* Changement de nom pour identifier le capteur parmi plusieurs. J'utilise l'adresse MAC en hexadécimal. (ESP Chip ID -> Main - More infos - ESP board)
* Mise en place du wifi (2 SSID possibles, un principal et un alternatif)
Pour retourner en AP en présence d'un SISID, il est nécessaire d'effacer les paramètres réseau saisies.
===Utilisation d'un serveur de temps (Tools - Advanced Settings - Time Source)===
* Mise en place du NTP (0.pool.ntp.org)
* Mise en place des locales (UTC+60mn, 44.099178,3.065800)
=====Configuration=====
====WatchDog (Config - Sleep Mode)====
* Sleep awake time : reste éveillé pendant x s
* Sleep time : s'endort pendant y s
* D0/GPIO-16 (timer Sleep Time) doit être connecté à RST pour le réveil périodique.
Réveil manuel :
* Reset alimentation = 30 s pour se connecter au WiFi et enlever le Sleep Mode
* Reset = courte impulsion RST à 0. Ne pas laisser RST à l'état bas (blocage)
====Contrôleurs====
Le contrôleur est le serveur vers lequel remonte l'info (Jeedom, perso ...). \\
===Généric HTTP===
Mode GET, **un seul device remonte à la fois.** (nécessite un serveur REST local)
* Adresse IP (ou host) et port
* Controller Publish : URL et paramètres (Tools - System variables)
J'utilise pour Publish : rest/ESPeasy.php?id=%mac_int%&ip=%ip%&dev=%tskname%&%vname1%=%val1%&%vname2%=%val2%& %vname3%=%val3%&%vname4%=%val4% \\
qui permet de récupérer les 4 valeurs possibles d'un contrôleur en plus de l'ID et de l'IP locale du capteur.
Le serveur REST utilisé génère un fichier JSON "Espeasy_id_dev.json" contenant les 4 valeurs transmises et les 2 infos.
===Pour Jeedom===
* Port : 8121
* Controller Publish : device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%
====Device====
Il s'agit d'un capteur (device = %tskname%). Il est nécessaire de :
* Définir sa configuration et le valider
* Valider le contrôleur qui recevra l'information
* Définir le délai de mise à jour
===Generic - System Info===
Permet de remonter certaines informations systèmes de l'ESP.
Note : certaines peuvent être directement remontées par le Contrôleur : %ip%, %mac_int%, temps interne ...
===Generic Dummy device===
Capteur virtuel pour retour d'info. Mis à jour dans une rules avec la commande :
TaskValueSet,#Task#,#Value#,%Val%
====Rules====
Permet d'effectuer des traitements en interne sur l'ESP (code de programation)
===Commandes===
Les [[https://espeasy.readthedocs.io/en/latest/Reference/Command.html|commandes]] peuvent être exécutées dans les Rules mais aussi par des requêtes HTTP.
Pour demander au capteur (IP) de modifier la valeur de la variable 1 (%v1% dans une Rules) à 1200 \\
http://ipcapteur/control?cmd=Let,1,1200