Can't find the right documentation... Reading receive messages



  • Hello,
    First of all, I would like to say thank you for MySensors.
    It seems to be doing all the things I expected for a longtime, and I have been trying to do it all by myself before...

    So, I am new to MySensors, not to Arduino / ESP8266, etc...

    I have been able to make a Gateway & a Sensor talk together.
    I have been able to connect to my io.adafruit.com MQTT server, as well...

    I am using the "void receive(MyMessage &msg)" routine to read incoming messages from my Sensor (a DHT22 based one).

    But I cannot figure out how to get the data from it !
    The variable I use doesn't seem to be a String, and I am pretty sure I coud get something like : MyNode = MyMessage.NODE_ID... but I can't find the explanation of how to read incoming messages...

    Hint : I am a hardware engineer from 1985, and I developed my programming skills very late...

    Here is the bit of code I use :

    void receive(MyMessage &msg)
    {
    
      
      String MyMessage;
      int MsgLen = MyMessage.length();
      
      String Humid = MyMessage.substring(12, MsgLen);
      
      Serial.println(MsgLen);
      Serial.println (Humid);
      
    
    }```
    
    The result is that MsgLen (Length of MyMessage) = 0. So to me this is not a String... 
    
    Thanks for your help, 
    
    Regards,
    
    Alain

  • Mod

    @Alain-Mizreh welcome to the MySensors community!

    msg is an object, which contains lots of stuff. msg.getString(char* buffer) is probably what you are looking for.

    Information about the MyMessage object is available at https://www.mysensors.org/download/sensor_api_20#message-manipulation. You might need to scroll inside the "code" box though, the get functions might not fit on the screen.



  • @mfalkvidd , Thanks for your reply !
    Would there be some code example to illustrate ?
    I am bad at manipulating variables, and I don't get it...
    The link you gave me is very detailed, however, I don't understand what I should do with all the variables described... Create one local variable for every field ?

    Thanks a lot,

    Regards,

    Alain


  • Mod

    @Alain-Mizreh only create a variable for the data you are using. If you use a string, get a string.


Log in to reply
 

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.