Etat des gpio dans Espeasy mega

Forum dédié aux bricolages d'objets connectés IOT et leurs communications avec DomoticZ :
- Remplacement de firmware des prises, modules relais ...
- Fabrication à base d'ESP8266, de NodeMCU, de Weemos et consorts ...
skarab22
Messages : 101
Inscription : 14 nov. 2019, 09:18

Etat des gpio dans Espeasy mega

Message par skarab22 »

Bonjour,

Après des aller retour entre script perso et espeasy mega, j'ai finalement décidé de revenir sur espeasy. Je m'en sers principalement pour controller les fils pilotes de mes différents radiateurs.

J'ai donc un interrupteur à 4 niveaux par radiateur (Off, HG, Eco, Confort). Lorsque je change l'inter un script s'execute pour faire une requête HTTP vers l'esp en question :

Code : Tout sélectionner

commandArray[#commandArray+ 1] = {['OpenURL'] =ip..'/control?cmd=gpio,NB,STATE'}


Globalement ça marche plutôt pas mal sauf quand j'ai des soucis de wifi. En effet, comme ma box est au sous sol, et que je suis obligé de remonter le wifi dans les étages à l'aide d'un CPL répéteur wifi, il arrive que j'ai quelques coupures. Du coup parfois je vois des erreurs de requête HTTP lorsque domoticz n'arrive pas à joindre le périphérique.

Y a t'il un moyen de gérer ces erreurs ?
  • Dans un 1er temps, j'aimerai que si l'esp n'a pas réellement changé d'état, l'état dans domoticz revienne à sa valeur précédente (mais ça risque de poser des soucis avec script lua device actuelle )
  • Dans un second temps, j'aimerai que si le périphérique n'a pas correctement répondu, le script se lance à nouveau au bout d'un certain temps
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Etat des gpio dans Espeasy mega

Message par Keros »

Je te propose une troisième idée : utiliser le plugin System Alive Checker qui permet de faire un ping sur les équipements réseau. Le résultat prend la forme d'un interrupteur avec On pour ping Ok et Off pour ping sans réponse.
Tu peux ainsi vérifier que le ping de ton espeasy est bon avant d'envoyer ta commande.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
skarab22
Messages : 101
Inscription : 14 nov. 2019, 09:18

Re: Etat des gpio dans Espeasy mega

Message par skarab22 »

Je vais essayé. Après j'ai une question et une chose qui me perturbe un peu :
- est ce qu'il peut arrivé que mon device ping mais ne réponde pas à une requête http ? J'aurais tendance à dire que si le temps de lattence est un peu trop long ça peut arrivé...
- En général, quand on fait des requête c'est pas mal de mettre des système de gestion d'erreur ?
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Etat des gpio dans Espeasy mega

Message par Keros »

La réponse au ping ne fait pas tout, c'est certain mais je ne vois pas pourquoi un esp n’écourterai pas un message.

Là tu rentres dans le délicat problème des retours d'état : quelle intelligence donner au programme pour gérer les réponses ? Ce n'est vraiment pas évident.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Etat des gpio dans Espeasy mega

Message par Neutrino »

Tu peux ajouter des devices "Switch input - Switch" pour chaque GPIO avec un interval de configuré.
Tu peux même récupérer leur état via l'adresse /json.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
skarab22
Messages : 101
Inscription : 14 nov. 2019, 09:18

Re: Etat des gpio dans Espeasy mega

Message par skarab22 »

Neutrino a écrit : 16 déc. 2020, 22:00 Tu peux même récupérer leur état via l'adresse /json.
Ca c'est déjà plus quelque chose qui me plait parce que du coup, ça veut dire que je peux interroger l'état avant et après et je peux éventuellement le changer via json (enfin si j'ai bien compris)
Keros a écrit : 15 déc. 2020, 19:26 Là tu rentres dans le délicat problème des retours d'état : quelle intelligence donner au programme pour gérer les réponses ? Ce n'est vraiment pas évident.
Sur le bout de code que j'avais via l'ide arduino, je donnais une réponse à une requête json, donc c'est qu'à priori c'est faisable... D'ailleurs lorsque j'interroge mon poele, il me répond pour me dire qu'il a bien reçu la requête json que je lui envoi
skarab22
Messages : 101
Inscription : 14 nov. 2019, 09:18

Re: Etat des gpio dans Espeasy mega

Message par skarab22 »

Effectivement, avec un petit

Code : Tout sélectionner

/json?tasknr=1
je récupère l'état de mon GPIO.

Dans la mesure ou j'ai pas mal de carte et que je me vois mal créer un switch par GPIO dans domoticz, est ce qu'il y a un moyen de créer un device virtuel équivalent à mon selector switch de domoticz et qui mettrai à jour ce dernier ?
skarab22
Messages : 101
Inscription : 14 nov. 2019, 09:18

Re: Etat des gpio dans Espeasy mega

Message par skarab22 »

Je fait un petit up sur le sujet.

Ca fait un petit moment que je ne me suis pas pencher sur le sujet. Est ce que l'un d'entre vous vois un moyen de créer un switch virtuel à 4 niveau que je pourrai piloter via domoticz ?

Edit : Je viens de créer un Dummy Devices de type switch. Est ce qu'il est possible que ESP easy interroge domoticz pour recopier la valeur du switch correspondant dans domoticz.
Ex : switch [salon] dans domoticz en mode confort. On interroge domoticz avec une requête json et on recopie la valeur dans esp easy ?
Répondre