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. Hardware
  3. New 2.2.0 Signal report function

New 2.2.0 Signal report function

Scheduled Pinned Locked Moved Hardware
14 Posts 6 Posters 5.8k Views 8 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.
  • F Offline
    F Offline
    flopp
    wrote on last edited by flopp
    #3

    I tried to send RSSI with nRF and it seemed to work, I could get a value that was changing if I moved away from Gateway.

    i was using this variable, transportGetSignalReport(SR_TX_RSSI)

    so to send the RSSI create a Child, I think you can pick anyone that can handle value from 0-1024 then use below message to send the value

    send(RSSIMsg.set(transportGetSignalReport(SR_TX_RSSI)));

    I am using Domoticz as Controller

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

      I'll give it a try

      1 Reply Last reply
      0
      • F Offline
        F Offline
        flopp
        wrote on last edited by
        #5

        I just now found some other maybe interested variables

        transportGetReceivingRSSI()
        transportGetSendingRSSI()
        transportGetReceivingSNR()
        transportGetSendingSNR()
        transportGetTxPowerLevel()
        transportGetTxPowerPercent()
        transportInternalToRSSI(_transportSM.uplinkQualityRSSI)

        i have not tested anyone of them, but it seems that "transportGetSendingRSSI()" will give same result as "transportGetSignalReport(SR_TX_RSSI)"
        so the message may look like this instead

        send(RSSIMsg.set(transportGetSendingRSSI()));

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

          It's similar to the signal scanner code I used but I did not know it was working on nrf24

          1 Reply Last reply
          0
          • slingS Offline
            slingS Offline
            sling
            wrote on last edited by
            #7

            Very useful new feature.
            I learned a lesson: I'll be using the nrf24 without booster from now on. Much better range and commmunication.

            output from nrf24 with radio set to LOW:

            -256 :transportGetReceivingRSSI()
            -29 :transportGetSendingRSSI()
            -256 :transportGetReceivingSNR()
            -256 :transportGetSendingSNR()
            -12 :transportGetTxPowerLevel()
            25 :transportGetTxPowerPercent()
            0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)

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

              How did you make the tests?

              1 Reply Last reply
              1
              • slingS Offline
                slingS Offline
                sling
                wrote on last edited by
                #9

                I added this to my sketch and observed serial output:

                Serial.print(transportGetReceivingRSSI()); Serial.println(" :transportGetReceivingRSSI()");
                Serial.print(transportGetSendingRSSI()); Serial.println(" :transportGetSendingRSSI()");
                Serial.print(transportGetReceivingSNR()); Serial.println(" :transportGetReceivingSNR()");
                Serial.print(transportGetSendingSNR()); Serial.println(" :transportGetSendingSNR()");
                Serial.print(transportGetTxPowerLevel()); Serial.println(" :transportGetTxPowerLevel()");
                Serial.print(transportGetTxPowerPercent()); Serial.println(" :transportGetTxPowerPercent()");
                Serial.print(transportInternalToRSSI(_transportSM.uplinkQualityRSSI));Serial.println(" :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)");

                I don't know if it's a valid way to check the values.

                1 Reply Last reply
                1
                • jumpingJ Offline
                  jumpingJ Offline
                  jumping
                  wrote on last edited by
                  #10

                  Hi,
                  the NRF24l01 doesn't have a RSSI function as reported in Nordic datasheet, so how can the signal report work?
                  thanks

                  Raspberrry PI3 - Domoticz
                  ESP8266 GW - MySensors 2.1.1

                  mfalkviddM 1 Reply Last reply
                  1
                  • jumpingJ jumping

                    Hi,
                    the NRF24l01 doesn't have a RSSI function as reported in Nordic datasheet, so how can the signal report work?
                    thanks

                    mfalkviddM Offline
                    mfalkviddM Offline
                    mfalkvidd
                    Mod
                    wrote on last edited by
                    #11

                    @jumping it doesn't :-)

                    See https://github.com/mysensors/MySensors/blob/57eca4f4afb3a26f4ef0ec10d522ac062de4d101/hal/transport/RF24/MyTransportRF24.cpp#L176

                    int16_t transportGetReceivingRSSI(void)
                    {
                    	// not available, only bool RPD
                    	return INVALID_RSSI;
                    }
                    
                    int16_t transportGetSendingSNR(void)
                    {
                    	return INVALID_SNR;
                    }
                    
                    int16_t transportGetReceivingSNR(void)
                    {
                    	return INVALID_SNR;
                    }
                    

                    and
                    https://github.com/mysensors/MySensors/blob/6794c72ecd8c35c1a7587f73996d50c347b17f93/hal/transport/MyTransportHAL.h#L23

                    #define INVALID_SNR         ((int16_t)-256)	//!< INVALID_SNR
                    #define INVALID_RSSI        ((int16_t)-256)	//!< INVALID_RSSI
                    #define INVALID_PERCENT     ((int16_t)-100)	//!< INVALID_PERCENT
                    #define INVALID_LEVEL ((int16_t)-256) //!< INVALID_LEVEL
                    
                    jumpingJ 1 Reply Last reply
                    1
                    • mfalkviddM mfalkvidd

                      @jumping it doesn't :-)

                      See https://github.com/mysensors/MySensors/blob/57eca4f4afb3a26f4ef0ec10d522ac062de4d101/hal/transport/RF24/MyTransportRF24.cpp#L176

                      int16_t transportGetReceivingRSSI(void)
                      {
                      	// not available, only bool RPD
                      	return INVALID_RSSI;
                      }
                      
                      int16_t transportGetSendingSNR(void)
                      {
                      	return INVALID_SNR;
                      }
                      
                      int16_t transportGetReceivingSNR(void)
                      {
                      	return INVALID_SNR;
                      }
                      

                      and
                      https://github.com/mysensors/MySensors/blob/6794c72ecd8c35c1a7587f73996d50c347b17f93/hal/transport/MyTransportHAL.h#L23

                      #define INVALID_SNR         ((int16_t)-256)	//!< INVALID_SNR
                      #define INVALID_RSSI        ((int16_t)-256)	//!< INVALID_RSSI
                      #define INVALID_PERCENT     ((int16_t)-100)	//!< INVALID_PERCENT
                      #define INVALID_LEVEL ((int16_t)-256) //!< INVALID_LEVEL
                      
                      jumpingJ Offline
                      jumpingJ Offline
                      jumping
                      wrote on last edited by
                      #12

                      @mfalkvidd thanks for your answer, can you tell me what is the RF24_getSendingRSSI?

                      int16_t transportGetSendingRSSI(void)
                      {
                      	return RF24_getSendingRSSI();
                      }
                      

                      Raspberrry PI3 - Domoticz
                      ESP8266 GW - MySensors 2.1.1

                      mfalkviddM 1 Reply Last reply
                      0
                      • jumpingJ jumping

                        @mfalkvidd thanks for your answer, can you tell me what is the RF24_getSendingRSSI?

                        int16_t transportGetSendingRSSI(void)
                        {
                        	return RF24_getSendingRSSI();
                        }
                        
                        mfalkviddM Offline
                        mfalkviddM Offline
                        mfalkvidd
                        Mod
                        wrote on last edited by mfalkvidd
                        #13

                        @jumping github has a great search function if you want to get the answer quicker next time. :-)

                        Implementation: https://github.com/mysensors/MySensors/blob/345d6d7d119f5d2446c7d6a41e6f749e6ca8741c/drivers/RF24/RF24.cpp#L401

                        1 Reply Last reply
                        1
                        • jumpingJ Offline
                          jumpingJ Offline
                          jumping
                          wrote on last edited by
                          #14

                          thanks, next time I will use the github search function :-) :+1:

                          Raspberrry PI3 - Domoticz
                          ESP8266 GW - MySensors 2.1.1

                          1 Reply Last reply
                          1

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          17

                          Online

                          12.0k

                          Users

                          11.2k

                          Topics

                          113.4k

                          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