Problème d'inclusion de capteur

Forum dédie aux capteurs et gateway mysensors.org
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Problème d'inclusion de capteur

Message par vil1driver »

Version mysensors(node & gateway) , domoticz ?
Que dit les Logs domoticz et console arduino

Est ce que ton capteur se présente bien ?
Pas de fail de connexion....?

En gros les bases..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
beuz33
Messages : 72
Inscription : 19 oct. 2015, 16:30

Re: Problème d'inclusion de capteur

Message par beuz33 »

vil1driver a écrit :Version mysensors(node & gateway) , domoticz ?
Que dit les Logs domoticz et console arduino

Est ce que ton capteur se présente bien ?
Pas de fail de connexion....?

En gros les bases..
...........
**console arduino:
send: 1-1-0-0 s=255,c=0,t=17,pt=0,l=5,sg=0,st=ok:1.5.1
send: 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
sensor started, id=1, parent=0, distance=1
send: 1-1-0-0 s=255,c=3,t=11,pt=0,l=15,sg=0,st=ok:Distance Sensor
send: 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
send: 1-1-0-0 s=1,c=0,t=15,pt=0,l=0,sg=0,st=ok:
Ping: 87 cm
send: 1-1-0-0 s=1,c=1,t=13,pt=2,l=2,sg=0,st=ok:87
Ping: 86 cm
send: 1-1-0-0 s=1,c=1,t=13,pt=2,l=2,sg=0,st=ok:86
Ping: 87 cm
send: 1-1-0-0 s=1,c=1,t=13,pt=2,l=2,sg=0,st=ok:87

**Log domoticz
2016-01-04 15:11:17.124 MySensors: Node: 1, Sketch Name: Distance Sensor
2016-01-04 15:11:17.132 MySensors: Node: 1, Sketch Version: 1.0

**Matériels domoticz
(piece jointe)

et toujours rien dans dispositif
Pièces jointes
Capture.PNG
Capture.PNG (92.77 Kio) Consulté 9866 fois
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Problème d'inclusion de capteur

Message par vil1driver »

peux tu essayer en remplaçant ceci

Code : Tout sélectionner

if (dist != lastDist) {
gw.send(msg.set(dist));
lastDist = dist;
}
par ceci

Code : Tout sélectionner

gw.send(msg.set(dist));
pour forcer l'envoi de la valeur même si elle n'a pas changée..

certain capteur ne sont pas créés par leur simple présentation, l'équipe de devs à encore du taf, il faut parfois envoyer une valeur, et c'est le cas pour ce capteur..

si cela crée bien ton capteurs.. reviens en arrière sur le code pour ne pas non plus envoyer toutes les 5s...
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
beuz33
Messages : 72
Inscription : 19 oct. 2015, 16:30

Re: Problème d'inclusion de capteur

Message par beuz33 »

Ca ne veut toujours pas, pourtant dans materiel, la ligne V_DISTANCE se met a jour régulièrement
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Problème d'inclusion de capteur

Message par vil1driver »

Tu as bien autorisé l'ajout de nouveau dispositif ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
jackyhi
Messages : 97
Inscription : 09 mai 2016, 23:49

Re: Problème d'inclusion de capteur

Message par jackyhi »

Bonjour à toute les âmes de bonne volonté!!!


je teste actuellement un capteur température humidité et répéteur sur la version MySensors 2.0.0

Lorsque je prends soin d'effacer l'eeprom avant de télécharger le sketch la passerelle série Mysensors 2.0.0 l'accepte et lui attribue un nouvel ID, ça fonctionne. Je retrouve dans domoticz le sensor sa variable température et son humidité le sensor est bien déclaré repeater.
InclusionCqpteur1.jpg
InclusionCqpteur1.jpg (72.57 Kio) Consulté 9460 fois
Le moniteur série donne ceci:

Code : Tout sélectionner

TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSP:MSG:READ 0-0-1 s=255,c=3,t=8,pt=1,l=1,sg=0:0
TSP:MSG:FPAR RES (ID=0, dist=0)
TSP:MSG:PAR OK (ID=0, dist=1)
TSM:FPAR:OK
TSM:ID
TSM:CHKID:OK (ID=1)
TSM:UPL
TSP:PING:SEND (dest=0)
TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1
TSP:MSG:READ 3-3-0 s=0,c=1,t=4,pt=7,l=5,sg=0:1016
TSP:MSG:READ 0-0-1 s=255,c=3,t=25,pt=1,l=1,sg=0:1
TSP:MSG:PONG RECV (hops=1)
TSP:CHKUPL:OK
TSM:UPL:OK
TSM:READY
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=fail:0100
TSP:MSG:SEND 1-1-0-0 s=255,c=0,t=18,pt=0,l=5,sg=0,ft=1,st=ok:2.0.0
TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=ok:0
TSP:MSG:READ 0-0-1 s=255,c=3,t=6,pt=0,l=1,sg=0:M
TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=11,pt=0,l=22,sg=0,ft=0,st=ok:TemperatureAndHumidity
TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=ok:2.0
TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=11,pt=0,l=13,sg=0,ft=0,st=ok:Repeater Node
TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=ok:2.0
TSP:MSG:SEND 1-1-0-0 s=0,c=0,t=7,pt=0,l=0,sg=0,ft=0,st=ok:
TSP:MSG:SEND 1-1-0-0 s=1,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=ok:
Request registration...
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=fail:2
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=1,st=fail:2
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=2,st=fail:2
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=26,pt=1,l=1,sg=0,ft=3,st=fail:2
Init complete, id=1, parent=0, distance=1, registration=1
TSP:MSG:SEND 1-1-0-0 s=1,c=1,t=0,pt=7,l=5,sg=0,ft=4,st=ok:25.0
T: 25.00
TSP:MSG:SEND 1-1-0-0 s=0,c=1,t=1,pt=7,l=5,sg=0,ft=0,st=ok:47.0
H: 47.00
TSP:SANCHK:OK
TSP:MSG:SEND 1-1-0-0 s=1,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=ok:25.0
T: 25.00
TSP:MSG:SEND 1-1-0-0 s=0,c=1,t=1,pt=7,l=5,sg=0,ft=0,st=ok:47.0
H: 47.00
TSP:SANCHK:OK
TSP:MSG:SEND 1-1-0-0 s=1,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=ok:25.0
T: 25.00
Maintenant si je reset le capteur ou je le mets hors tension et ensuite je le remets sous tension l'échange avec la passerelle indique des erreurs et il mets plus 1 quart d'heure à se resysnchroniser sur la passerelle et dans domoticz la température ne se mets plus à jour. et le moniteur série indique:

Code : Tout sélectionner

TSM:ID
TSM:CHKID:OK (ID=1)
TSM:UPL
TSP:PING:SEND (dest=0)
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=fail:1
TSP:CHKUPL:FAIL (hops=255)
!TSM:UPL:FAIL
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSP:MSG:READ 0-0-1 s=255,c=3,t=8,pt=1,l=1,sg=0:0
TSP:MSG:FPAR RES (ID=0, dist=0)
TSP:MSG:PAR OK (ID=0, dist=1)
TSM:FPAR:OK
TSM:ID
TSM:CHKID:OK (ID=1)
TSM:UPL
TSP:PING:SEND (dest=0)
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=fail:1
TSP:CHKUPL:FAIL (hops=255)
!TSM:UPL:FAIL
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSP:MSG:READ 0-0-1 s=255,c=3,t=8,pt=1,l=1,sg=0:0
TSP:MSG:FPAR RES (ID=0, dist=0)
TSP:MSG:PAR OK (ID=0, dist=1)
TSM:FPAR:OK
TSM:ID
TSM:CHKID:OK (ID=1)
TSM:UPL
TSP:PING:SEND (dest=0)
!TSP:MSG:SEND 1-1-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=fail:1
TSP:CHKUPL:FAIL (hops=255)
!TSM:UPL:FAIL
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSP:MSG:READ 0-0-1 s=255,c=3,t=8,pt=1,l=1,sg=0:0
TSP:MSG:FPAR RES (ID=0, dist=0)
TSP:MSG:PAR OK (ID=0, dist=1)
TSM:FPAR:OK

cela pendant un temps très long la led de la liaison spi reste allumée en permanence!

Voici mon sketch qui tourne sur un arduino pro mini 5v 16Mhz sonde DHT11 émetteur XRF24L01_D03 avec antenne PA+LNA alimentation adaptateur 5v + régulateur abaisseur AMS1117 3,3v

Code : Tout sélectionner

/**
 * The MySensors Arduino library handles the wireless radio link and protocol
 * between your home built sensors/actuators and HA controller of choice.
 * The sensors forms a self healing radio network with optional repeaters. Each
 * repeater and gateway builds a routing tables in EEPROM which keeps track of the
 * network topology allowing messages to be routed to nodes.
 *
 * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
 * Copyright (C) 2013-2015 Sensnology AB
 * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
 *
 * Documentation: http://www.mysensors.org
 * Support Forum: http://forum.mysensors.org
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 *******************************
 *
 * REVISION HISTORY
 * Version 1.0: Henrik EKblad
 * Version 1.1 - 2016-07-20: Converted to MySensors v2.0 and added various improvements - Torben Woltjen (mozzbozz)
 * 
 * DESCRIPTION
 * This sketch provides an example of how to implement a humidity/temperature
 * sensor using a DHT11/DHT-22.
 *  
 * For more information, please visit:
 * http://www.mysensors.org/build/humidity
 * 
 */

// Enable debug prints
#define MY_DEBUG

// Enable and select radio type attached 
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
//#define MY_RS485

/**
* @def MY_TRANSPORT_SANITY_CHECK
* @brief If enabled, node will check transport in regular intervals to detect HW issues and re-initialize in case of failure. This feature is enabled for all repeater nodes (incl. GW)
* @brief Si elle est activée, le noeud vérifie le transport à des intervalles réguliers pour détecter les problèmes HW et réinitialiser en cas de défaillance. 
*Cette fonctionnalité est activée pour tous les nœuds de répéteur (y compris GW.)
*/
#define MY_TRANSPORT_SANITY_CHECK

/**
 * @def MY_NODE_ID
 * @brief Node id defaults to AUTO (tries to fetch id from controller).
 * Node @brief id par défaut sur AUTO (essaie de chercher id du contrôleur).
 */
//#ifndef MY_NODE_ID
//#define MY_NODE_ID AUTO
//#endif

/**
 * @def MY_PARENT_NODE_ID
 * @brief Node parent defaults to AUTO (tries to find a parent automatically).
 * Défaut parent Node @brief à AUTO (tente de trouver un parent automatiquement).  
 */
//#define MY_PARENT_NODE_ID AUTO

/**
 * @def MY_PARENT_NODE_IS_STATIC
 * @brief Enable MY_PARENT_NODE_IS_STATIC to disable fall back if parent node fails
 * @brief Activer MY_PARENT_NODE_IS_STATIC désactiver l'échec si le noeud parent échoue
 */
#define MY_PARENT_NODE_IS_STATIC

// Enables repeater functionality (relays messages from other nodes)
// Active la fonctionnalité de répéteur ( relais de messages provenant d'autres nœuds )
#define MY_REPEATER_FEATURE

//Definition niveau de puissance d'émission pour le NRF24L01  MIN,LOW,HIGH,MAX 
//Attention au débit nécessaire sur l'alimentation 3.3v lors de puissance MAX
#define MY_RF24_PA_LEVEL RF24_PA_MAX

#include <SPI.h>
#include <MySensors.h>  
#include <DHT.h>

// Set this to the pin you connected the DHT's data pin to
#define DHT_DATA_PIN 3

// Set this offset if the sensor has a permanent small offset to the real temperatures
#define SENSOR_TEMP_OFFSET 0

// Sleep time between sensor updates (in milliseconds)
// Must be >1000ms for DHT22 and >2000ms for DHT11
//static const uint64_t UPDATE_INTERVAL = 60000;

// Force sending an update of the temperature after n sensor reads, so a controller showing the
// timestamp of the last update doesn't show something like 3 hours in the unlikely case, that
// the value didn't change since;
// i.e. the sensor would force sending an update every UPDATE_INTERVAL*FORCE_UPDATE_N_READS [ms]
//static const uint8_t FORCE_UPDATE_N_READS = 6;

#define CHILD_ID_HUM 0
#define CHILD_ID_TEMP 1

bool metric = true;

MyMessage msgHum(CHILD_ID_HUM, V_HUM);
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
DHT dht;


void presentation()  
{ 
  // Send the sketch version information to the gateway
  sendSketchInfo("TemperatureAndHumidity", "2.0");

  //Send the sensor node sketch version information to the gateway
  sendSketchInfo("Repeater Node", "2.0");	

  // Register all sensors to gw (they will be created as child devices)
  present(CHILD_ID_HUM, S_HUM);
  present(CHILD_ID_TEMP, S_TEMP);
  metric = getConfig().isMetric;
}

void setup()
{
   Serial.begin(115200); 
  dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
}

void loop()      
{  
  // Force reading sensor, so it works also after sleep()
  dht.readSensor(true);
  
  // Get temperature from DHT library
  float temperature = dht.getTemperature();
  if (isnan(temperature)) {
    Serial.println("Failed reading temperature from DHT!");
  } else {   
    if (!metric) {
      temperature = dht.toFahrenheit(temperature);
    }
 
    temperature += SENSOR_TEMP_OFFSET;
    send(msgTemp.set(temperature, 1));
    Serial.print("T: ");
    Serial.println(temperature);

  } 
  // Get humidity from DHT library
  float humidity = dht.getHumidity();
  if (isnan(humidity)) {
    Serial.println("Failed reading humidity from DHT");
  } else { 
    send(msgHum.set(humidity, 1));
    Serial.print("H: ");
    Serial.println(humidity);

  }  
  delay(60000);
}
Je suis obliger d'effacer l'eeprom et de recharger le sketch pour accélérer l'inclusion, mais de ce fait il reprend un autre ID et il faut recommencer toutes les dénominations dans domoticz.

Je suis preneur de toute solution y compris un nouveau sketch en version Mysensors 2.0.0
Raspberry Pi2 VPN, Pi 3, Pi4 ,RFXCom, 6 volets BLYSS, sondes Temp_humid Attiny85, zigbee, Mysensors, RFLINK , Zwave capteurs portes Prises, Alarme avec 2 sirènes maison esp8266, Thermostat NETAMO vannes thermostatiques
jackyhi
Messages : 97
Inscription : 09 mai 2016, 23:49

Re: Problème d'inclusion de capteur

Message par jackyhi »

Je me réponds à moi même, personne n'était inspiré!

Pour que le capteur retrouve son ID après un reset même une RAZ de l'EEPROM, il suffit de définir la Constante MY_NODE_ID par exemple à 2:

#define MY_NODE_ID 2 à déclarer avant la déclaration de librairie #include <MySensors.h>

Si on veut forcer le sensor à utiliser un répéteur de node , indiquer son ID avec #define MY_PARENT_NODE_ID 1 , 1 étant l'ID du répéteur de node

et ajouter #define MY_PARENT_NODE_IS_STATIC.

Ensuite pour les problèmes de lenteur d'inclusion ( plus d'1 quart d'heure), c'est parce que l'émetteur et le récepteur étaient trop proches moins d'un mètre. Les signaux HF devaient être en saturation de niveau et devaient provoquer des erreurs de transmission.

Donc attention à ne pas fonctionner avec des distances trop courtes ( abondance de bien peut nuire dans ce cas!)
Raspberry Pi2 VPN, Pi 3, Pi4 ,RFXCom, 6 volets BLYSS, sondes Temp_humid Attiny85, zigbee, Mysensors, RFLINK , Zwave capteurs portes Prises, Alarme avec 2 sirènes maison esp8266, Thermostat NETAMO vannes thermostatiques
Répondre