Je réponds à ma deuxième question : d'où vient l'information "Version MySensors" ?
La documentation du plugin indique :
Pour une passerelle USB après le gw.begin…:
serial.print(“0;0;3;0;2;”);Serial.print(LIBRARY_VERSION);
Bon, mais ça n'est valable qu'avec une version MySensors en 1.5.x.
Pour une version 2.x, voici ce que j'ai fait :
1. patcher la librairie MySensors
Code : Tout sélectionner
diff -uNr MySensors-2.1.1.orig/core/MySensorsCore.cpp MySensors-2.1.1/core/MySensorsCore.cpp
--- MySensors-2.1.1.orig/core/MySensorsCore.cpp 2017-01-18 21:57:07.000000000 +0100
+++ MySensors-2.1.1/core/MySensorsCore.cpp 2019-05-19 16:13:39.193845968 +0200
@@ -289,8 +289,13 @@
bool send(MyMessage &message, const bool enableAck)
{
- message.sender = getNodeId();
mSetCommand(message, C_SET);
+ return sendAsIs( message, enableAck );
+}
+
+bool sendAsIs(MyMessage &message, const bool enableAck)
+{
+ message.sender = getNodeId();
mSetRequestAck(message, enableAck);
#if defined(MY_REGISTRATION_FEATURE) && !defined(MY_GATEWAY_FEATURE)
diff -uNr MySensors-2.1.1.orig/core/MySensorsCore.h MySensors-2.1.1/core/MySensorsCore.h
--- MySensors-2.1.1.orig/core/MySensorsCore.h 2017-01-18 21:57:07.000000000 +0100
+++ MySensors-2.1.1/core/MySensorsCore.h 2019-05-19 16:12:56.046451159 +0200
@@ -164,7 +164,7 @@
* @return true Returns true if message reached the first stop on its way to destination.
*/
bool send(MyMessage &msg, const bool ack = false);
-
+bool sendAsIs(MyMessage &msg, const bool ack = false);
/**
* Send this nodes battery level to gateway.
2. patcher le démon mysensors.js du plugin MySensors
Code : Tout sélectionner
--- mysensors.js.orig 2019-05-19 10:39:09.909261855 +0200
+++ mysensors.js.2 2019-05-20 19:57:41.140965130 +0200
@@ -132,7 +132,7 @@
;
else
connectJeedom('saveSensor', sender, sensor, type, payload);
- connectJeedom('saveLibVersion', sender, sensor, type, payload);
+ //connectJeedom('saveLibVersion', sender, sensor, type, payload);
break;
case C_SET:
connectJeedom('saveValue', sender, sensor, type, payload);
3. Enfin, utiliser le code suivant dans la fonction setup() de mon sketch
Code : Tout sélectionner
// library version
msg.clear();
mSetCommand( msg, C_INTERNAL );
sendAsIs( msg.setSensor( 255 ).setType( I_VERSION ).set( MYSENSORS_LIBRARY_VERSION ));
Voilà... Au cas où ça pourrait aider certains..
Quant à ma première question, je n'ai pas (encore) trouvé.
Ce que je vois :
- l'information est disponible dans la zone Status de la fenêtre Informations accessible depuis la configuration avancée du noeud : "battery":"0"
- la chaine JSON affichée n'est apparemment pas stockée telle quelle dans la base (peut-être reconstruite dynamiquement ?)
- et c'est tout pour le moment
Bien à vous
Barbapapa