Page 1 sur 1

Plus de communication

Publié : 26 mars 2016, 15:23
par jule1986
Bonjour,
Je viens de passer a la version 1.5.4 de Mysensors, et je n'arrive plus a ajouter le moindre capteur.

Ma Gateway USB est bien reconnue par domoticz en 1.5.4, (j'ai fait un ClearEeprom sur la gateway et les capteurs) j'ai mis a jour mes capteur mais je n'ai aucune présentation des capteurs dans domoticz (j'ai bien activé l'ajout de matériel).

Voici ce que j'ai dans la console serie pour les capteur :
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
sensor started, id=255, parent=255, distance=255
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
T: 21.40
find parent
send: 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
H: 44.30

Je ne sais plus quoi faire.

Version domoticz : V3.4834

Merci d'avance pour vos réponse.

Re: Plus de communication

Publié : 26 mars 2016, 22:50
par vil1driver
avant de mettre à jour tu as évidement fait une sauvegarde.. reviens à la version précédente dans ce cas.

tu peux trouver la version 1.5.0 ici https://github.com/mysensors/Arduino/archive/1.5.0.zip

comme tu l'as compris, une mise à jour ce n'est pas anodin, ça se fait pour de bonnes raisons et avec précaution.
sauvegardes et/ou savoir faire marche arrière.

Re: Plus de communication

Publié : 26 mars 2016, 23:10
par jule1986
Ok merci je vais repasser en 1.5.0
Cela est déjà arrivé à quelqu'un? C'est normal?

Merci pour la réponse.

Re: Plus de communication

Publié : 29 mars 2016, 23:07
par jule1986
J'ai de nouveau un problème, j'essaye de faire un nœud avec un capteur de température dallas et 2 relais mais je n'ai que la présentation des relais.

voici mon code :

Code : Tout sélectionner

#include <MySigningNone.h>
#include <MyTransportNRF24.h>
#include <MyTransportRFM69.h>
#include <MyHwATMega328.h>
#include <MySensor.h>
#include <SPI.h>
#include <DallasTemperature.h>
#include <OneWire.h>

#define RELAY_1  4  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define NUMBER_OF_RELAYS 2 // Total number of attached relays
#define RELAY_ON 0  // GPIO value to write to turn on attached relay
#define RELAY_OFF 1 // GPIO value to write to turn off attached relay

#define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No

#define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
#define MAX_ATTACHED_DS18B20 1
unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature. 
MySensor gw;
float lastTemperature[MAX_ATTACHED_DS18B20];
int numSensors=0;
boolean receivedConfig = false;
boolean metric = true; 
// Initialize temperature message
MyMessage msg(0,V_TEMP);

// NRFRF24L01 radio driver (set low transmit power by default) 
MyTransportNRF24 radio(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);  
//MyTransportRFM69 radio;
// Message signing driver (none default)
//MySigningNone signer;
// Select AtMega328 hardware profile
MyHwATMega328 hw;
// Construct MySensors library
//MySensor gw(radio, hw);

void setup()  
{   
  // Startup up the OneWire library
  sensors.begin();
  // requestTemperatures() will not block current thread
  sensors.setWaitForConversion(false);

  // Startup and initialize MySensors library. Set callback for incoming messages. 
  gw.begin();
  // Send the sketch version information to the gateway and Controller
  gw.sendSketchInfo("Relay & Dallas", "1.0");

  // Fetch relay status
  for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
     gw.present(i, S_TEMP);
  }
  for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) {
    // Register all sensors to gw (they will be created as child devices)
    gw.present(sensor, S_LIGHT);
    // Then set relay pins in output mode
    pinMode(pin, OUTPUT);   
    // Set relay to last known state (using eeprom storage) 
    digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF);
  }
}


void loop() 
{
  // Alway process incoming messages whenever possible
  gw.process();
  // Fetch temperatures from Dallas sensors
  sensors.requestTemperatures();

  // query conversion time and sleep until conversion completed
  int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
  // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
  gw.sleep(conversionTime);

  // Read temperatures and send them to controller 
  for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
 
    // Fetch and round temperature to one decimal
    float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
 
    // Only send data if temperature has changed and no error
    #if COMPARE_TEMP == 1
    if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
    #else
    if (temperature != -127.00 && temperature != 85.00) {
    #endif
 
      // Send in the new temperature
      gw.send(msg.setSensor(i).set(temperature,1));
      // Save new temperatures for next compare
      lastTemperature[i]=temperature;
    }
  }
}

void incomingMessage(const MyMessage &message) {
  // We only expect one type of message from controller. But we better check anyway.
  if (message.type==V_LIGHT) {
     // Change relay state
     digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
     // Store state in eeprom
     gw.saveState(message.sensor, message.getBool());
     // Write some debug info
     Serial.print("Incoming change for sensor:");
     Serial.print(message.sensor);
     Serial.print(", New status: ");
     Serial.println(message.getBool());
   } 
}
Voyez vous quelque chose de choquant ?
je suis en 1.5.1

Merci d'avance

Re: Plus de communication

Publié : 29 mars 2016, 23:47
par vil1driver
On est plus sur le problème initial..
Un problème = 1 sujet

C'est plus facile de s'y retrouver par la suite.. ;)

Tu es certain d'avoir besoin de charger toutes ces librairies ?
Ça ne doit pas gêner mais bon..

Pour ta sonde, à mon avis ceci est de trop (à 2 reprises)

Code : Tout sélectionner

i<numSensors && 
Ps: pas de sleep() dans un sketch relai..ton node doit rester à l'écoute

Re: Plus de communication

Publié : 30 mars 2016, 10:45
par jule1986
Merci Vil1driver tu m'a encore été d'une très grande aide.

Je vais créer un nouveau sujet pour partager mon sketch qui maintenant fonctionne, on ne sais jamais cela peut servir a quelqu'un d'autre.