Bonjour
J’ai une petite question sur la surveillance des noeud mysensors avec jeedom.
Sur la page santé du plugin il y as une colonne « statut » => OK, cela veut dire que le noeud fonctionne correctement mais comment avoir un retour de « statut » pour que jeedom détecte une perte de signal ou un arrêt. Du noeud?
Je regardais du côté de heartbeat du sketch mais soit je m’y prend mal où est-ce du côté de jeedom que cela s’active ?
Bonjour @totofcha
J’ai un de mes nodes qui envoi un jeton à intervalle régulier (1 minute)
Dans mes scenario si je n’ai pas reçu de jeton au bout de x minutes, je redémarre
le démon mysensors
#define child_id_watchdog 9 // pour réception watchdog
#define child_id_jeton 10 // pour envoi jeton
bool jeton = false;
bool ack = false;
long watchdog = 0; // envoyer par jeedom
bool watchdog_recu = false;
void setup() {
// put your setup code here, to run once:
}
//******************************************************************************************
void presentation() {
present(child_id_watchdog, S_DIMMER);
present(child_id_jeton, S_DOOR); // jeton pour envoi à jeedom
}
//******************************************************************************************
void loop() {
// sur réception de watchdog venant de jeedom, on répond en envoyant jeton à jeedom
if (watchdog_recu == true) {
watchdog_recu = false;
jeton=!jeton;
send_state(child_id_jeton,jeton); // envoi jeton à jeedom pour indiquer que la comm est ok
}
} // fin loop
/* ======================================================================
Function:receive
// reception des messages jeedom mysensors
====================================================================== */
void receive(const MyMessage &message) {
if (message.isAck()) {
ack = true; //Serial.println("This is an ack from gateway");
}
else {
if (message.type == V_VAR1 && message.sensor == child_id_watchdog) { // watchdog
watchdog = message.getLong(); // recoit nouvelle valeur watchdog de jeedom toutes les minutes
watchdog_recu=true; // sert pour envoyer jeton a jeedom
}
} // fin else
} // fin void receive
Jeedom envoi une valeur variant de 10 à 100 (peu importe c’est pour pas envoyer la même valeur 2 fois de suite) au node
qui sur réception de cette valeur renvoi jeton (variant de 0 à 1) à jeedom
De cette façon la com est testée en émission et réception
Je te remercie beaucoup pour le temps que tu passe pour répondre.
Mais j’ai un petit souci avec les morceau de sketch que tu m’as donné, la ligne "send-state (…etc) me renvoi une erreur de declaration .
Sur un autre sujet (avec ton sketch sur les ventilateur salon et salle à manger)il y as un appel à une fonction.
Est ce cette fonction qui manquerai ?
sinon j’ai aussi fait que j’incremente une variable toute les 30 sec que j’envoie a jeedom et dans jeedom j’ai un scenario qui verifie que la valeur a changer toute les 5 min