Troubleshoot Nano temp/humidity to ESP8266-MQTT gateway issue



  • Everyone,

    I am new to MySensors but have experience with Arduino, ESP8266, and MQTT. Trying to debug my "starter" MySensors setup and am having a hard time.

    My set up is as follows:

    • Sensor node: Arduino Nano clone with a DHT22 attached (DHT22 and Nano clone tested and working fine in non-MySensors applications). An NRF24L01 is attached, with a 10-uF cap across VCC-GND. It is running a variant of the humidity / temperature script described at https://www.mysensors.org/build/humidity. I made changes to make the script compatible with the standard DHT library.
    • Gateway: A Wemos D1 Mini with an NRF24L01 attached (also with a 10-uF cap). It is running the ESP8266 variant of the MQTT gateway script described at https://www.mysensors.org/build/mqtt_gateway#mqttgateway-example

    When I run the gateway script, the following appears in the serial monitor:

    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGE--,VER=2.1.1
    0;255;3;0;9;TSF:LRT:OK
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 4
    cnt 
    
    connected with Frog Station Alpha, channel 4
    dhcp client start...
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    f r0, scandone
    ip:192.168.1.189,mask:255.255.255.0,gw:192.168.1.1
    .IP: 192.168.1.189
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
    IP: 192.168.1.189
    0;255;3;0;9;Attempting MQTT connection...
    0;255;3;0;9;MQTT connected
    0;255;3;0;9;Sending message on topic: mygateway1-out/0/255/0/0/18
    pm open,type:2 0
    
    

    I see nothing after this, though my MQTT broker does indeed successfully receive the message "2.1.1" on topic mygateway1-out/0/255/0/0/18.

    On the sensor node side, the serial output looks like this:

    0 MCO:BGN:INIT NODE,CP=RNNNA--,VER=2.1.1
    3 TSM:INIT
    4 TSF:WUR:MS=0
    11 TSM:INIT:TSP OK
    13 TSM:FPAR
    15 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    2022 !TSM:FPAR:NO REPLY
    2024 TSM:FPAR
    2026 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    4034 !TSM:FPAR:NO REPLY
    4036 TSM:FPAR
    4038 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    6046 !TSM:FPAR:NO REPLY
    6048 TSM:FPAR
    6050 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    8058 !TSM:FPAR:FAIL
    8059 TSM:FAIL:CNT=1
    8061 TSM:FAIL:PDT
    

    This type of output continues on and on.

    Obviously there is a "failure" but is it possible to diagnose where the problem lies, based on this output?

    Many thanks! I'm hoping I can get this working.



  • Any ideas from the crowd? I tried swapping in a NRF24L01 on the gateway side, which had no effect.



  • Triple check wires (and change them, sometimes dupont câble are bad) on Gateway side.



  • Thanks for the tip. I changed to a new ESP8266 unit (now a NodeMCU board) and may be getting somewhere.

    I can see what looks like the node and the gateway talking to each other, but the node never gets to the part where it actually reads a temperature! It seems to be stuck at some kind of "handshake" stage.

    The log on the sensor node side reads as follows:

    2503067 TSM:FAIL:RE-INIT
    2503069 TSM:INIT
    2503076 TSM:INIT:TSP OK
    2503078 TSM:FPAR
    2503081 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    2503468 TSF:MSG:READ,0-0-255,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    2503473 TSF:MSG:FPAR OK,ID=0,D=1
    2505090 TSM:FPAR:OK
    2505091 TSM:ID
    2505093 TSM:ID:REQ
    2505096 TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
    2507103 TSM:ID
    2507104 TSM:ID:REQ
    2507107 TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
    2509115 TSM:ID
    2509116 TSM:ID:REQ
    2509119 TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
    2511127 TSM:ID
    2511128 TSM:ID:REQ
    2511131 TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
    2513139 !TSM:ID:FAIL
    2513141 TSM:FAIL:CNT=7
    2513143 TSM:FAIL:PDT
    

    On the gateway side, I see publish events to my MQTT broker on the topic mygateway1-out/255/255/3/0/3 with no content in the message (timed corresponding to the TSF:MSG:SEND events in the sensor node log) so I assume the radios are actually talking to one another. I just don't know why the temperature isn't being read.


  • Mod

    The node is requesting an ID from your controller (see the log parser for more info)

    I don't think handing out dynamic IDs works with mqtt. Define a node ID manually by adding

    #define MY_NODE_ID 123
    

    before including MySensors.h



  • Thanks for the tip, I'll give it a try. It occurs to me that I have no "controller" here and so that may be why I'm getting errors.



  • @mfalkvidd said in Troubleshoot Nano temp/humidity to ESP8266-MQTT gateway issue:

    I don't think handing out dynamic IDs works with mqtt. Define a node ID manually by adding

    #define MY_NODE_ID 123
    

    before including MySensors.h

    It worked. Data is coming through now. Thanks again!


  • Mod

    @jwosnick great! Thanks for reporting back.


Log in to reply
 

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