Etat de mes portes fermées/verrouillées avec ESP8266  [RESOLU]

Parce que les applications du Raspberry Pi sont illimités...

Modérateur : Francois

Répondre
swisscore
Messages : 10
Enregistré le : lun. 23 janv. 2017 09:17
Localisation : Suisse

Etat de mes portes fermées/verrouillées avec ESP8266

Message par swisscore » lun. 23 janv. 2017 09:32

Hello à tous,

Alors j'ai un petit projet en cours avec des ESP8266 connecté à mon réseau puis à mon Rpi premier du nom pour récupérer l'état de mes portes principales de la maison (verrouillé ou non et ouvert/fermé)

J'ai donc installé mosquitto sur le Rpi, j'ai bien l'info de mon topic par exemple doors/garage-locked qui se met à jour si je visualise dans une console avec un mosquitto-sub, je peux me connecter avec une application android et voir l'état dès qu'il change (MQTT Dash) mais voilà...

Je dois attendre que le ESP8266 envoie l'état pour que je puisse voir sur mon android l'état des portes, et vu que c'est sur piles, j'ai fais un refresh chaque 10mn pour le moment, du coup sur mon android je dois attendre au plus 10mn avant d'avoir un refresh.

J'aurais aimé savoir s'il est possible avec Mosquitto d'envoyer les infos qu'il a dès que je me connecte avec mon smartphone?

Si vous avez besoin de plus d'info, que j'ai oublié quelque chose, faites le moi savoir :)

Merci d'avance de votre aide.

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par destroyedlolo » lun. 23 janv. 2017 10:05

Salut,

Il suffit simplement que tu envoie les données en mode "retain" : ainsi les mosquitto conservera la dernière valeur reçue et la renverra aux clients qui la demande. Bref, tu n'auras plus attendre 10' lorsque tu connecteras ton client Android.

Par contre, je ne comprend pas pourquoi tu attends 10' entre chaque tests ? En 10' les portes ont largement le temps d'être ouverte et refermée même à plusieurs reprises, non ?

De mon côté, je fais les tests toutes les 15 secondes et j'envoie un message MQTT uniquement lorsque la situation de la porte change.

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

swisscore
Messages : 10
Enregistré le : lun. 23 janv. 2017 09:17
Localisation : Suisse

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par swisscore » lun. 23 janv. 2017 16:22

Merci de ton aide, je ne vois pas encore comment faire en "retain" mais je vais creuser cette piste. J'avais déjà vu cette option, mais j'avais pas compris s'il gardait seulement la dernière valeur du dernier topic ou s'il gardait la dernière valeur de chaque topic... Comme tu me le dis, c'est bien la dernière valeur de chaque topic qui est gardée ?

En fait le but est de ne pas avoir besoin de contrôler qu'on a pas oublié de fermer une porte avant de se coucher ou par exemple si on part un week-end,...

Du coup pas besoin d'avoir cette info en "live" pour le moment, et comme ça je tourne avec 2 piles AA pendant, je l'espère, plusieurs mois/années avec le mode deep sleep

J'avais aussi pensé à faire que lorsqu'il y a un changement, à voir si avec les messages enregistrés je ferais cette option ou non...

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Etat de mes portes fermées/verrouillées avec ESP8266  [RESOLU]

Message par destroyedlolo » lun. 23 janv. 2017 17:30

Salut
swisscore a écrit :Merci de ton aide, je ne vois pas encore comment faire en "retain" mais je vais creuser cette piste.
Regarde dans les options du Submit que tu utilises ;)
swisscore a écrit :J'avais déjà vu cette option, mais j'avais pas compris s'il gardait seulement la dernière valeur du dernier topic ou s'il gardait la dernière valeur de chaque topic... Comme tu me le dis, c'est bien la dernière valeur de chaque topic qui est gardée ?
C'est par topic.
swisscore a écrit :En fait le but est de ne pas avoir besoin de contrôler qu'on a pas oublié de fermer une porte avant de se coucher ou par exemple si on part un week-end,...
Oui, j'avais le même besoin, mais rapidement, ca m'a gaver de devoir attendre pour avoir l'info :)
Je suis en filaire avec du 1-wire donc je n'ai pas de pb d'alimentation, mais un ESP avec des sleep() 15s ou plus resiste à mon avis très longtemps.

Sinon, swiss .. parce que switzerland ? Dans ce cas, nous sommes peut etre voisin ;)
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

swisscore
Messages : 10
Enregistré le : lun. 23 janv. 2017 09:17
Localisation : Suisse

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par swisscore » lun. 23 janv. 2017 20:10

[quote="destroyedlolo"]Salut
[quote="swisscore"]Merci de ton aide, je ne vois pas encore comment faire en "retain" mais je vais creuser cette piste.[/quote]
Regarde dans les options du Submit que tu utilises ;)

[quote="swisscore"]J'avais déjà vu cette option, mais j'avais pas compris s'il gardait seulement la dernière valeur du dernier topic ou s'il gardait la dernière valeur de chaque topic... Comme tu me le dis, c'est bien la dernière valeur de chaque topic qui est gardée ?[/quote]
C'est par topic.

[quote="swisscore"]En fait le but est de ne pas avoir besoin de contrôler qu'on a pas oublié de fermer une porte avant de se coucher ou par exemple si on part un week-end,...[/quote]
Oui, j'avais le même besoin, mais rapidement, ca m'a gaver de devoir attendre pour avoir l'info :)
Je suis en filaire avec du 1-wire donc je n'ai pas de pb d'alimentation, mais un ESP avec des sleep() 15s ou plus resiste à mon avis très longtemps.

Sinon, swiss .. parce que switzerland ? Dans ce cas, nous sommes peut etre voisin ;)[/quote]


En fait il le fait tout seul à voir, j'avais bien configuré le truc,

Pour ma part je ne pensais pas mettre d'alimentation 230V ou autre, du coup c'est plus restreint. Avec le mode deep sleep par contre j'ai le "problème" qu'il ne garde pas l'état des variables, du coup je dois les enregistrer à quelque part (eeprom du rtc j'ai vu que c'était possible? ou autre part?)

Oui, j'habite vers Fribourg

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par destroyedlolo » lun. 23 janv. 2017 21:10

swisscore a écrit :En fait il le fait tout seul à voir, j'avais bien configuré le truc,
Cool :D
swisscore a écrit :Pour ma part je ne pensais pas mettre d'alimentation 230V ou autre, du coup c'est plus restreint.
Je n'ai qu'une alim centrale (en l’occurrence, celle de mon BananaPI) et les sondes sont alimentés par mon bus. Inconvénients étant que ça m'oblige a tirer le dit bus ...
Par contre, j'envisage d'utiliser le hertzien pour des sondes distantes (genre la température de la piscine) mais alimentées par cellules solaires ... mais faudra que je trouve le temps.
swisscore a écrit :Avec le mode deep sleep par contre j'ai le "problème" qu'il ne garde pas l'état des variables, du coup je dois les enregistrer à quelque part (eeprom du rtc j'ai vu que c'était possible? ou autre part?)
Les RTC contienne généralement des RAM faites pour ça en effet (pas des eprom car ca consome un max lors des écritures).
swisscore a écrit :Oui, j'habite vers Fribourg
Plus loin du coup :)
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

swisscore
Messages : 10
Enregistré le : lun. 23 janv. 2017 09:17
Localisation : Suisse

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par swisscore » jeu. 26 janv. 2017 18:17

Autre question pour les spécialistes, quel est le moyen le plus simple pour garder une variable lors du deep sleep ?

J'ai vu qu'on pouvait utiliser la mémoire du RTC ? Est-ce que quelqu'un a un exemple ?

swisscore
Messages : 10
Enregistré le : lun. 23 janv. 2017 09:17
Localisation : Suisse

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par swisscore » lun. 30 janv. 2017 18:16

c'est bon cela fonctionne :

Code : Tout sélectionner

#include <EEPROM.h>

byte eeprom0 = 0;
byte eeprom1 = 0;

void eepromRead()
{
  // Lecture de l'EEPROM, dernier état des portes
  eeprom0 = EEPROM.read(0);
  eeprom1 = EEPROM.read(1);
  xxx = eeprom0;
  yyy = eeprom1;
}

void eepromWrite()
{
  // Sauver en EEPROM du RTC l'état de la porte afin d'envoyer par wifi que quand il y a un changement
  EEPROM.write(0,xx);
  EEPROM.write(1,yy);
  delay(10);
  EEPROM.commit();
  delay(10);
  eepromRead();
  delay(10);
}

Par contre le persistant ne fonctionne pas toujours, j'ai 4 modules essayés, 2 fonctionnent et 2 non, je ne sais pas pourquoi...

Faut-il "purger" le fichier mosquitto.db afin de plus rien avoir dedans ?

swisscore
Messages : 10
Enregistré le : lun. 23 janv. 2017 09:17
Localisation : Suisse

Re: Etat de mes portes fermées/verrouillées avec ESP8266

Message par swisscore » lun. 30 janv. 2017 18:25

Bizarre j'ai reprogrammé le module et cela fonctionne maintenant alors que je n'avais pas vraiment fait de modif...

Répondre

Retourner vers « Et tout le reste »