Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. Home Assistant
  4. Cannot add node to HA

Cannot add node to HA

Scheduled Pinned Locked Moved Home Assistant
16 Posts 3 Posters 4.1k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • simonszuS Offline
    simonszuS Offline
    simonszu
    wrote on last edited by
    #1

    Hi,
    i am trying to get my first sensor node running. The GW is a 5100 based ethernet GW and works fine.
    The node is a DHT22-Sensor. This is my current sketch:

    // Enable and select radio type attached 
    #define MY_RADIO_NRF24
    
    // Enable debugging
    #define MY_DEBUG
    
    //#define MY_NODE_ID 1
    
    #include <DHT.h>
    #include <DHT_U.h>
    #include <MySensors.h>
    
    // Set this to the pin you connected the DHT's data pin to
    #define DHT_DATA_PIN 3
    
    // We're using a DHT22
    #define DHTTYPE DHT22
    
    // Set a child sensor id
    #define CHILD_ID_HUM 0
    #define CHILD_ID_TEMP 1
    
    
    
    DHT_Unified dht(DHT_DATA_PIN, DHTTYPE);
    
    uint32_t delayMS;
    float humidity;
    float temperature;
    
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    
    bool initialValueSent = false;
    
    
    void setup()
    {
      dht.begin();
      sensor_t sensor;
      // Set delay between sensor readings based on sensor details.
      delayMS = sensor.min_delay / 1000;
    }
    
    void presentation()
    {
      sendSketchInfo("DHT22 Sensor", "0.1");
      present(CHILD_ID_HUM, S_HUM);
      present(CHILD_ID_TEMP, S_TEMP);
    }
    
    
    void loop()      
    {  
      if(!initialValueSent) {
        send(msgTemp.set(0));
        send(msgTemp.set(0));
        request(CHILD_ID_HUM, V_HUM);
        wait(1000);
      }
      // Read stuff from the DHT sensor
      sensors_event_t event;
      dht.temperature().getEvent(&event);
        if (isnan(event.temperature)) {
          Serial.println("Error reading temperature.");
          temperature = 0;
      }
      else {
        temperature = event.temperature;
    
      }
      // Get humidity event and print its value.
      dht.humidity().getEvent(&event);
      if (isnan(event.relative_humidity)) {
        Serial.println("Error reading humidity!");
        humidity = 0;
      }
      else {
        humidity = event.relative_humidity;
      }
      send(msgHum.set(temperature, 1));
      #ifdef My_DEBUG
      Serial.print("T: ")
      Serial.println(temperature);
      #endif
      send(msgTemp.set(humidity, 1));
      #ifdef My_DEBUG
      Serial.print("H: ")
      Serial.println(humidity);
      #endif
      
      // Delay between measurements.
      delay(delayMS);
    }
    
    void receive(const MyMessage &message)
    {
      if (message.isAck()) {
         Serial.println("This is an ack from gateway");
      }
      if (message.type == V_HUM) {
        if (!initialValueSent) {
          Serial.println("Receiving initial value from controller");
          initialValueSent = true;
        }
      }
    }
    

    Please note the commented MY_NODE_ID at the top of the sketch. When i uncomment it, i get lots of errors from HA that the node isn't known (yet). So, physically the communication between node, gateway and controller is working.
    However, if i run the sketch with the NODE_ID commented out, i get no feedback from HA, and this output in the serial console of the node: http://pastebin.com/2KqWDZN0

    I see at the bottom of the file that there is some kind of perhaps successful connection to HA, however, i don't see anything in the log of HA, nor a new device on the dev-state section of HA. Can anyone see where's the error?
    What unclear for me as well is the fact that there are lots of messages like

    166507 TSM:FPAR
    166544 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    168551 !TSM:FPAR:NO REPLY
    

    This is the serial output of the gateway: http://pastebin.com/C7CyLW6K It looks like the gateway is indeed receiving the messages from the node, but HA isn't reacting.
    This is my HA config:

    gateways:
      - device: '192.168.1.233'
        persistence_file: 'mysensors.json'
    debug: true
    version: 2.0
    

    And this is the content of mysensors.json

    {"0": {"sketch_name": null, "type": 18, "battery_level": 0, "sketch_version": null, "sensor_id": 0, "children": {}, "protocol_version": "2.1.1"}, "1": {"sketch_name": null, "type": 17, "battery_level": 0, "sketch_version": "0.1", "sensor_id": 1, "children": {"0": {"description": "", "values": {"1": "23.0"}, "type": 7, "id": 0}, "1": {"description": "", "values": {"0": "30.7"}, "type": 6, "id": 1}}, "protocol_version": "2.1.1"}}
    
    

    Please note that the json has 2 sensors added. I cannot explain to myself why. Also: sensor 1 has the proper sketch_version, but no sketch_name, although defined in the sketch.

    So, has anyone an idea what's wrong here?

    And, on a unrelated side note: I see every sketch in this section around here having this initialValueSent Stuff from the HA component description. I understand that the switch(?) in the component description should have an initial value to it from HA, but just simple sensor nodes like temperature or light don't. So, could it be possible to ease the process up and just start the loop after presenting the sensor type to HA? After starting the loop, the sensor should start begin sending out values, and the first value is taken as the initialValue then. Could this be possible?

    martinhjelmareM 1 Reply Last reply
    0
    • gohanG Offline
      gohanG Offline
      gohan
      Mod
      wrote on last edited by
      #2

      Node ID should be set or the controller should be able to send one when asked, but if I where you I'd run the clear eeprom sketch and reload yours with node ID specified ; then you could use the myscontroller and connect to gateway in order to check if everything is fine. In addition if you are going to post your logs, please add more lines so we can have a better picture and don't forget to use the log parser that's on the mysensors site

      1 Reply Last reply
      0
      • simonszuS simonszu

        Hi,
        i am trying to get my first sensor node running. The GW is a 5100 based ethernet GW and works fine.
        The node is a DHT22-Sensor. This is my current sketch:

        // Enable and select radio type attached 
        #define MY_RADIO_NRF24
        
        // Enable debugging
        #define MY_DEBUG
        
        //#define MY_NODE_ID 1
        
        #include <DHT.h>
        #include <DHT_U.h>
        #include <MySensors.h>
        
        // Set this to the pin you connected the DHT's data pin to
        #define DHT_DATA_PIN 3
        
        // We're using a DHT22
        #define DHTTYPE DHT22
        
        // Set a child sensor id
        #define CHILD_ID_HUM 0
        #define CHILD_ID_TEMP 1
        
        
        
        DHT_Unified dht(DHT_DATA_PIN, DHTTYPE);
        
        uint32_t delayMS;
        float humidity;
        float temperature;
        
        MyMessage msgHum(CHILD_ID_HUM, V_HUM);
        MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
        
        bool initialValueSent = false;
        
        
        void setup()
        {
          dht.begin();
          sensor_t sensor;
          // Set delay between sensor readings based on sensor details.
          delayMS = sensor.min_delay / 1000;
        }
        
        void presentation()
        {
          sendSketchInfo("DHT22 Sensor", "0.1");
          present(CHILD_ID_HUM, S_HUM);
          present(CHILD_ID_TEMP, S_TEMP);
        }
        
        
        void loop()      
        {  
          if(!initialValueSent) {
            send(msgTemp.set(0));
            send(msgTemp.set(0));
            request(CHILD_ID_HUM, V_HUM);
            wait(1000);
          }
          // Read stuff from the DHT sensor
          sensors_event_t event;
          dht.temperature().getEvent(&event);
            if (isnan(event.temperature)) {
              Serial.println("Error reading temperature.");
              temperature = 0;
          }
          else {
            temperature = event.temperature;
        
          }
          // Get humidity event and print its value.
          dht.humidity().getEvent(&event);
          if (isnan(event.relative_humidity)) {
            Serial.println("Error reading humidity!");
            humidity = 0;
          }
          else {
            humidity = event.relative_humidity;
          }
          send(msgHum.set(temperature, 1));
          #ifdef My_DEBUG
          Serial.print("T: ")
          Serial.println(temperature);
          #endif
          send(msgTemp.set(humidity, 1));
          #ifdef My_DEBUG
          Serial.print("H: ")
          Serial.println(humidity);
          #endif
          
          // Delay between measurements.
          delay(delayMS);
        }
        
        void receive(const MyMessage &message)
        {
          if (message.isAck()) {
             Serial.println("This is an ack from gateway");
          }
          if (message.type == V_HUM) {
            if (!initialValueSent) {
              Serial.println("Receiving initial value from controller");
              initialValueSent = true;
            }
          }
        }
        

        Please note the commented MY_NODE_ID at the top of the sketch. When i uncomment it, i get lots of errors from HA that the node isn't known (yet). So, physically the communication between node, gateway and controller is working.
        However, if i run the sketch with the NODE_ID commented out, i get no feedback from HA, and this output in the serial console of the node: http://pastebin.com/2KqWDZN0

        I see at the bottom of the file that there is some kind of perhaps successful connection to HA, however, i don't see anything in the log of HA, nor a new device on the dev-state section of HA. Can anyone see where's the error?
        What unclear for me as well is the fact that there are lots of messages like

        166507 TSM:FPAR
        166544 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
        168551 !TSM:FPAR:NO REPLY
        

        This is the serial output of the gateway: http://pastebin.com/C7CyLW6K It looks like the gateway is indeed receiving the messages from the node, but HA isn't reacting.
        This is my HA config:

        gateways:
          - device: '192.168.1.233'
            persistence_file: 'mysensors.json'
        debug: true
        version: 2.0
        

        And this is the content of mysensors.json

        {"0": {"sketch_name": null, "type": 18, "battery_level": 0, "sketch_version": null, "sensor_id": 0, "children": {}, "protocol_version": "2.1.1"}, "1": {"sketch_name": null, "type": 17, "battery_level": 0, "sketch_version": "0.1", "sensor_id": 1, "children": {"0": {"description": "", "values": {"1": "23.0"}, "type": 7, "id": 0}, "1": {"description": "", "values": {"0": "30.7"}, "type": 6, "id": 1}}, "protocol_version": "2.1.1"}}
        
        

        Please note that the json has 2 sensors added. I cannot explain to myself why. Also: sensor 1 has the proper sketch_version, but no sketch_name, although defined in the sketch.

        So, has anyone an idea what's wrong here?

        And, on a unrelated side note: I see every sketch in this section around here having this initialValueSent Stuff from the HA component description. I understand that the switch(?) in the component description should have an initial value to it from HA, but just simple sensor nodes like temperature or light don't. So, could it be possible to ease the process up and just start the loop after presenting the sensor type to HA? After starting the loop, the sensor should start begin sending out values, and the first value is taken as the initialValue then. Could this be possible?

        martinhjelmareM Offline
        martinhjelmareM Offline
        martinhjelmare
        Plugin Developer
        wrote on last edited by
        #3

        @simonszu

        Hi!

        You have communication (radio) problems between node and gateway. These are usually power and/or distance related. Follow the troubleshooting schema in the sticky thread top post in the troubleshooting category in the forum.

        Home assistant requires presented node, sketch name, presented sensor and initial value from the sensor, before adding the sensor to home assistant as an entity. In your case many messages were not received by the gateway, so the requirements were not fulfilled.

        Usually sensors will send initial values quite soon, so the check for initial values and request from node to controller is mostly important for devices that don't send messages without manual interaction, ie actuators like switches or lights.

        1 Reply Last reply
        0
        • simonszuS Offline
          simonszuS Offline
          simonszu
          wrote on last edited by
          #4

          @martinhjelmare Thanks for helping. Unfortunately, i already have added a capacitor between the VCC and GND pin of the arduinos on the gateway and the sensor node. They are ceramic capacitors with 4.7 uF which should be enough in my experience. I also don't think it is a range problem, both devices are lying on my table, they have around 110cm distance between them.
          Since @gohan said that i should post more lines of my logs - yeah, sorry, my fault. This is the serial output of the gateway at the same time the node outputs the log i have pasted above: http://pastebin.com/y916idtc

          You see: After some time, the communication between the node and the gateway succeeds, however, Home Assistant shows nothing. With full respect, but i doubt i have physical issues. The presence of the capacitor and the small range should not be the reason for any errors - and the successful message exchange at the bottom of both log files (for which i didn't change anything from the situation at the top of the file) somehow make me suspicious about any physical issues. Or maybe somehow the laws of physics change magically at my desk, who knows ;)

          Of course i have checked all the wirings and solder points on both devices with my multimeter, they are correct.

          Also, let me say that if i hardcode the node ID into the node, there is a reaction from Home Assistant after 2-3 seconds after i start the sensor node that the node ID is unknown. So the physical radio connection between both devices is capable in working from startup of the sensor node - but somehow the communication between the gateway and home assistant fails?

          So, i ask explicitly: Is the sensor node sketch basically correct, regarding the initial value transmitting and stuff? Is the home assistant component definiton correct? I was unsure regarding the initial value transfer...

          1 Reply Last reply
          0
          • gohanG Offline
            gohanG Offline
            gohan
            Mod
            wrote on last edited by
            #5

            I'd say pls post startup logs of both gateway and node so we can see if they are talking correctly from each other: we need to start excluding possible causes of problems until we find the issue.

            1 Reply Last reply
            0
            • simonszuS Offline
              simonszuS Offline
              simonszu
              wrote on last edited by
              #6

              I did ;)
              The complete log from startup to switch to switching off the sensor node after an unsuccessful test is posted as a pastebin link in the initial post from Thursday, and the log from the gateway captured at the same time is added as a pastebin link in my post from a few minutes ago. :)

              martinhjelmareM 1 Reply Last reply
              0
              • simonszuS simonszu

                I did ;)
                The complete log from startup to switch to switching off the sensor node after an unsuccessful test is posted as a pastebin link in the initial post from Thursday, and the log from the gateway captured at the same time is added as a pastebin link in my post from a few minutes ago. :)

                martinhjelmareM Offline
                martinhjelmareM Offline
                martinhjelmare
                Plugin Developer
                wrote on last edited by
                #7

                @simonszu

                The majority of messages in your logs are find parent requests and responses. If you have more than a pair of those you have communication problems, it's as simple as that.

                You need to get reliable communication going to avoid losing messages and be able to present your node and sensors properly to the controller.

                1 Reply Last reply
                0
                • simonszuS Offline
                  simonszuS Offline
                  simonszu
                  wrote on last edited by
                  #8

                  Okay, this sounds reasonable.
                  But... How? The troubleshooting says, reduce range and add a capacitor. I added a capacitor (or should I add one to the vcc and gnd pin of the radio module as well?). I don't want to reduce range, since around 1 meter is quite close, and I don't want to cover my flat with repeater nodes - if I had to, MySensors would be no great use for me.

                  1 Reply Last reply
                  0
                  • martinhjelmareM Offline
                    martinhjelmareM Offline
                    martinhjelmare
                    Plugin Developer
                    wrote on last edited by
                    #9

                    The capacitor should be added as close as possible to the vcc and gnd pins of the radio. Where did you put the capacitor? Also, with mysensors 2.x, many are reporting requiring a higher value capacitor. Try with 47 uF.

                    You can also try increasing the distance between node and gateway. Sometimes too short distance can generate trouble.

                    1 Reply Last reply
                    0
                    • simonszuS Offline
                      simonszuS Offline
                      simonszu
                      wrote on last edited by
                      #10

                      I'm sorry, it was late last night. I did post wrong facts. I did not solder the capacitor parallel to the VCC and GND pins of the arduino, but parallel to the VCC and GND pins of the radio.
                      Here's a photo of the capacitor on the sensor node: https://goo.gl/photos/REYnXMsLvLeKNKpf6
                      And here's a photo of the capacitor on the gateway: https://goo.gl/photos/TNVNkJN7ZawcF5qg7

                      I am not really sure about the capacity. On the capacitor, there is a 47 printed on it, with a line underneath it. I remember reading an article, explaining this kind of notation, and saying that this means 4.7 uF, but i don't find it any more and am unsure about the line underneath it. Maybe this means 47uF?

                      If you say i should clearly try another capacity, i'll try.

                      1 Reply Last reply
                      0
                      • gohanG Offline
                        gohanG Offline
                        gohan
                        Mod
                        wrote on last edited by
                        #11

                        That looks too little for a ceramic of that capacity. Don't you have some electrolicts to try?

                        1 Reply Last reply
                        0
                        • simonszuS Offline
                          simonszuS Offline
                          simonszu
                          wrote on last edited by
                          #12

                          I'm afraid, i don't. But i won't hesitate ordering some from ebay. Any recommendation which capacity i should choose? Is 47 uF okay?

                          1 Reply Last reply
                          0
                          • gohanG Offline
                            gohanG Offline
                            gohan
                            Mod
                            wrote on last edited by
                            #13

                            Don't you have a multimeter to check capacity of that ceramic cap you have?
                            As for the others, usually 4.7uF is enough, but 10 or 47 could also help in some situations; if you find a bag of assorted caps I'd go for that one so you can have some spares around when you need them.

                            1 Reply Last reply
                            0
                            • simonszuS Offline
                              simonszuS Offline
                              simonszu
                              wrote on last edited by
                              #14

                              I checked with a multimeter. Turns out, the ceramic capacitors had 47pF :D
                              I ordered a set of assorted electrolytic capacitors. Should take some time, they're dispatched directly from China.
                              However, i am unsure about the polarity of the capacitors. Should Cap+ go to VCC or GND of the radio?

                              1 Reply Last reply
                              0
                              • gohanG Offline
                                gohanG Offline
                                gohan
                                Mod
                                wrote on last edited by
                                #15

                                Usually electrolitic caps have a "-" sign on the negative and goes to gnd. If you reverse polarity they explode 😁😅

                                1 Reply Last reply
                                0
                                • simonszuS Offline
                                  simonszuS Offline
                                  simonszu
                                  wrote on last edited by
                                  #16

                                  I knew that they are marked. But I didn't know the polarity. It could have been possible that Cap- goes to VCC on the radio, since in a full capacitor, there is a lack of electrons on Cap+, and very much electrons on Cap-, and also a lack of electrons on VCC, and very much electrons on GND, and the many electrons on the negative side should match the lack of electrons on the matching side of the other device - you see my point? So I was unsure.
                                  But Cap- to GND is clear and explicit, yeah.

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  23

                                  Online

                                  11.7k

                                  Users

                                  11.2k

                                  Topics

                                  113.1k

                                  Posts


                                  Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • MySensors
                                  • OpenHardware.io
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular