Noob problem on debugging transmissions



  • Hello,

    I'm quite new to MySensor and Arduino/Raspberry world.
    I'm struggling since few days to add some sensors on Domoticz by using a NRF24L01+ device (Gateway is direclty connected on Rpi3 using SPI).

    Currently, i'm trying to send data with a DHT22:
    On the sensor part, the monitor displays the following:

    0 MCO:BGN:INIT NODE,CP=RNNNA--,VER=2.1.1
    4 TSM:INIT
    4 TSF:WUR:MS=0
    12 TSM:INIT:TSP OK
    14 TSM:INIT:STATID=4
    16 TSF:SID:OK,ID=4
    18 TSM:FPAR
    53 TSF:MSG:SEND,4-4-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    759 TSF:MSG:READ,0-0-4,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    765 TSF:MSG:FPAR OK,ID=0,D=1
    2062 TSM:FPAR:OK
    2062 TSM:ID
    2064 TSM:ID:OK
    2066 TSM:UPL
    2070 TSF:MSG:SEND,4-4-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    4077 TSM:UPL
    4079 TSF:MSG:SEND,4-4-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    6088 TSM:UPL
    6090 TSF:MSG:SEND,4-4-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    8099 TSM:UPL
    8101 TSF:MSG:SEND,4-4-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    

    While on the Raspberry side (GW):

    4;255;3;0;24;1
    4;255;3;0;24;1
    4;255;3;0;24;1
    4;255;3;0;24;1
    

    What is strange, is that I never see any data from the DHT Sensor.
    My code:

    #include <SPI.h>
    #include <Wire.h>
    #include <DHT.h>
    
    #define MY_DEBUG                      // Active le mode debug / Enable debug prints to serial monitor
    #define MY_RADIO_NRF24                // Mode Radio / Enable and select radio type attached
    #define MY_RF24_PA_LEVEL RF24_PA_LOW
    #define MY_NODE_ID 4                  // Noeud de l'objet / Object Node
    
    #define RF_CE    9
    #define RF_CSN   10
    #define CHILD_ID_HUM 1
    #define CHILD_ID_TEMP 2
    #define HUMIDITY_SENSOR_DIGITAL_PIN 3
    #define DHTTYPE DHT22   // DHT 22  (AM2302), DHT11
    #include <MySensors.h>  
    
    unsigned long SLEEP_TIME = 10000;     // Sleep time between reads (in milliseconds)
    float lastTemp;
    float lastHum;
    boolean metric = true; 
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    int reportCount = 1;
    
    void setup()  { 
    }
    
    void presentation(){
      // Send the sketch version information to the gateway and Controller
      sendSketchInfo("Outdoor temperature + Humidity", "1.0");
    
      // Register all sensors to gateway (they will be created as child devices)
      present(CHILD_ID_HUM, S_HUM);
      present(CHILD_ID_TEMP, S_TEMP);
    }
    
    void loop()      { 
      // Temperature
      
      DHT dht(HUMIDITY_SENSOR_DIGITAL_PIN, DHTTYPE, 3); 
      float temperature = dht.readTemperature();
      if (isnan(temperature)) {
          Serial.println("Failed reading temperature from DHT");
      } 
      else {
        Serial.print("T: ");
        Serial.println(temperature);
        if(lastTemp != temperature || reportCount == 10) { 
          lastTemp = temperature;
          send(msgTemp.set(temperature, 1));    
        }
      }
    
      // Humidity
      float humidity = dht.readHumidity();
      if (isnan(humidity)) {
          Serial.println("Failed reading humidity from DHT");
      } 
      else {
        Serial.print("H: ");
        Serial.println(humidity);
        if(lastHum != humidity || reportCount == 10) { 
          lastHum = humidity;
          send(msgHum.set(humidity, 1));
        }
      }
      
      if(reportCount == 10) {
        reportCount = 1;
      }
      else {
        reportCount++;
      }
      
      sleep(SLEEP_TIME);
    }
    

    Shouldn't I see the measurement values in the monitor (serial.print cmd) ?

    Thanks for helping !



  • @Korleone said in Noob problem on debugging transmissions:

    4;255;3;0;24;1

    Do you know the log parser: https://www.mysensors.org/build/parser?
    Seems your node doesn't get registered by your controller. The gateway is in inclusion mode?

    If there is no registration, your node will never go into loop() - at least in standard configuration.

    Wrt. your code, I would recommend to define all of the variables in the header, not in the loop() and - more important to declare the DHT object in setup().

    Kind regards



  • Thanks for the quick answer and advices. I understand my mistake:
    It is not linked to the inclusion, but on the Gateway and Nodes versions: (Gateway was on MySensors 1.4, while Nodes were on MySensors 2).
    Reconfiguration of the Gateway gives appropriate results and is immediately included in Domoticz !


Log in to reply
 

Suggested Topics

19
Online

11.2k
Users

11.1k
Topics

112.5k
Posts