Je cherche à faire des automatismes (pilotant des relais en fonction de l’heure de la journée, avec un esp32 non connecté. Il sera alimenté sur batterie + panneau solaire.
Existe t-il un moyen via esphome, d’initialiser l’heure de départ et qu’il soit ensuite autonome sur l’incrémentation du temps?
Je ferais les modifications (heure d’été/heure d’hiver en manuel).
ça doit être possible, soit manuellement, soit en NTP je suppose.
Par contre, si l’ESP en lui même contient bien une horloge RTC, la grande majorité des modules du commerce n’ont pas le quartz à 32kHz qui permet sont fonctionnement.
Il faudrait donc que tu l’ajoutes, ou que tu conçoives ta propre carte.
C’est certainement plus simple de passer par un RTC « externe » comme le classique DS1307
Sur amazon/aliexpress on trouve des modules tout fait qui embarquent tout ce qu’il faut pour que e genre d’horloge fonctionne sans se prendre la tête.
De ce que j’ai compris (j’ai jamais utilisé cette fonction) le composant « time » de ESPHome s’initialise automatiquement à la bonne heure quand l’ESP se connecte à HA. Il doit sans doute y avoir aussi la possibilité de le faire manuellement avec un lambda (mais bon, la documentation ESPhome est souvent minimaliste donc il faudra sans doute fouiller le web pour en savoir plus)
Pour ce qui est de gérer l’heure, en théorie l’ESP peut le faire seul, puisqu’il dispose en interne d’une horloge RTC. Cependant, pour qu’elle fonctionne, il faut qu’elle soit raccordée à son propre quartz « horloger » de 32768 Hz et il faut aussi s’assurer que l’alimentation de l’ESP ne soit jamais interrompue.
Sans ça, il y aura forcement une dérive plus ou moins importante (au mieux quelques secondes par jour, ce qui au bout de quelques mois peut vite faire une grosse différence par rapport à l’heure réelle)
Mais la RTC interne de l’ESP ne semble pas être gérée nativement par ESPHome (en tout cas j’ai rien vu d’explicitement précisé à ce sujet).
Le plus simple (aussi bien du point de vue du matériel que du logiciel) ça reste donc d’utiliser un composant RTC externe (le DS1307 étais un exemple parce que je l’ai déjà utilisé, mais il y en a d’autres) qui a du coup son propre quartz à la bonne fréquence et sa propre pile de sauvegarde et qui est calibré en usine pour être « juste »; et qui gère l’heure et la date tout seul comme un grand (faut juste l’initialiser une fois)
J’ai testé …et maintenant mon ESP ne se connecte plus!
En Log, j’ai:
INFO ESPHome 2024.12.2 INFO Reading configuration /config/esphome/esp32-c1.yaml... WARNING GPIO2 is a strapping PIN and should only be used for I/O with care. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See INFO Detected timezone 'Europe/Paris' INFO Starting log output from 192.168.1.73 using esphome API WARNING Can't connect to ESPHome API for esp32-c1 @ 192.168.1.73: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.1.73', port=6053))]: [Errno 111] Connect call failed ('192.168.1.73', 6053) (SocketAPIError) INFO Trying to connect to esp32-c1 @ 192.168.1.73 in the background
J’ai enfin reçu mon module RTC (le DS1207), mais je n’arrive pas (seul ou avec l’IA), à trouver une solution pour initialiser l’heure, hors connexion internet.
Le projet global est pour un poulailler, hors couverture wifi. Je souhaite qu’un ESP32 contrôle la trappe de sortie ou l’éclairage sur des créneaux horaires. L’idéal serait de pouvoir me connecter en webserver avec mon smartphone, pour initialiser/modifier l’horloge RTC, modifier les plages horaires pour la trappe de sortie ou l’éclairage.
Voila la conclusion de l’IA:
Ce qu’il faut comprendre (important)
Le composant DS1307 dans ESPHome est très basique :
Il peut :
lire l’heure → now()
écrire l’heure système → write_time()
Il ne peut PAS :
définir une heure manuellement (pas de set_time)
accepter un objet ESPTime
il n’y aurait pas une méthode pour contourner ce problème?
C’est très certainement possible avec du code C++ (Lambda)
Sinon vu que c’est pour un truc autonome non connecté à HA ou à quoi que ce soit, regardes du côté de ESPeasy. Avec les « Rules » tu peux faire des choses plus simplement qu’avec les Lambda de ESPhome (c’est moins puissant mais beaucoup plus simple à écrire et surtout tu peux modifier sans devoir recompiler/flasher l’ESP)
Hello.
Pourquoi tu veux passer par ESPHome ? Comme il n’est pas connecté mais fonctionnera en standalone, tu peux passer par autre chose ?
En code Arduino c’est faisable visiblement, avec un serveur web intégré pour le réglage de l’heure.