Je n'ai surtout peut-être pas été clair alors je prends un exemple simplifié. Un seul volet, une seule programmation.
Le module yokis attend des salves d'impulsions pour exécuter les ordres :
3 impulsions, le volet s'ouvre, 4 impulsions, le volet se ferme (il y a d'autres commandes possible)
Une seule impulsion, c'est le fonctionnement manuel du bouton poussoir.
Les impulsions doivent être rapides et assez régulières.
Exemple de programmation ultra-simplifiée : l'ESP envoie 3 impulsion à 8h12min et 4 impulsions à 21h42.
C'est ce que je fais actuellement avec une horloge électromécanique et un module yokis propriétaire supplémentaire mais pour tous les volets d'un coup.
L'idée est de faire mieux, plus fin au niveau des réglages :
Avoir une interface web pour faire la programmation et les manipulations (éventuellement à distance, hors du domicile et du réseau local)
Calculer les horaires du soleil (et/ou mettre un capteur de lumière)
Pour obtenir quelque chose du genre :
- Du lundi au vendredi, ouvrir à 7h15 dans les chambres, 7h30 dans la cuisine, etc. (j'ai prévu 5 groupes de volets)
- Fermer tous les soirs au coucher du soleil.
- Le week-end ouvrir les volets à 9h00
- Fermer partiellement les volets au sud en période de canicule
etc.
La plupart du temps, d'un jour à l'autre, la programmation ne changera pas et l'ESP ne fera rien d'autre qu'attendre le moment de faire ses impulsions, servir la page web, et de temps à autre resynchroniser l'horloge RTC par NTP.
La partie chi*te est le démarrage (après coupure de courant et coupure de la box) pour s'assurer que tout va reprendre sans intervention humaine...
D'où mes dernières questions sur les salves d'impulsions et l'horloge RTC 
Pour le code des impulsions, j'ai beaucoup de mal à comprendre le votre... aucune critique, c'est juste que mon niveau n'est pas suffisant et mon esprit probablement encore trop formaté à la logique plus procédurale et pas du tout objet de mon apprentissage du pascal il y a plus de 30 ans.
Je suis quand même arrivé à faire un truc qui semble fonctionner, non bloquant, avec des tests et boucles et millis() dans le loop() . Je le posterai si j'arrive à le consolider ce soir pour avis
En tout cas merci de l'aide apportée !