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. Announcements
  3. 💬 Building a Raspberry Pi Gateway

💬 Building a Raspberry Pi Gateway

Scheduled Pinned Locked Moved Announcements
1.1k Posts 173 Posters 428.1k Views 131 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.
  • M Offline
    M Offline
    macvictor
    wrote on last edited by
    #333

    Hi :) Does anybody know how to use MY_SIGNING_NODE_WHITELISTING in gateway raspbery pi? Where I must create/edit white list with my nodes?

    M 1 Reply Last reply
    0
    • OliverDogO Offline
      OliverDogO Offline
      OliverDog
      wrote on last edited by
      #334

      first sorry about the basics question but I think many people have the same questions and can't find the answers:
      After connecting the radio (including IRQ on 15pin) and the info LEDs to the GPIO, how to config it?

      1. Do I need to configure all the info on the same command, or can I send the command "./configure --" many times for different configs?
      2. Do I need to configure it as a MQTT gateway?
      3. Where did the 127.0.0.1 IP come from?
      4. Does MQTT use internet connection?
      5. Why do you talk about Serial Gateway here, once we have a specific type for it? this type is about using GPIO only, isn't it? That is confusing!!!
      M 1 Reply Last reply
      0
      • OliverDogO Offline
        OliverDogO Offline
        OliverDog
        wrote on last edited by
        #335

        trying to config on a Home Assistant Rpi.
        Sorry again for the newbie questions...!!!

        1 Reply Last reply
        0
        • Erik TammingaE Offline
          Erik TammingaE Offline
          Erik Tamminga
          wrote on last edited by
          #336

          Hi,
          Can I use pin 18 (GPIO 24) on my RPi3 for IRQ usage? Should I?
          If I compile with --my-rf24-irq-pin=18, no date is received when the gateway starts.
          I Cannot use pin 15 because that pin is covered by my Z-wave.me board.
          Regards,
          Erik

          M 1 Reply Last reply
          0
          • Roberto Mo CaR Roberto Mo Ca

            what means "5VReg -> 3.3V" in raspberry? can connect directly to 3.3V or if requied connecto to 5V with regulator to obtain 3.3v?

            M Offline
            M Offline
            marceloaqno
            Code Contributor
            wrote on last edited by
            #337

            @Roberto-Mo-Ca If you are using the nrf24 PA/LNA version you need to use a 5V->3.3V regulator otherwise you can connect to the 3.3v pin.

            S 1 Reply Last reply
            1
            • M macvictor

              Hi :) Does anybody know how to use MY_SIGNING_NODE_WHITELISTING in gateway raspbery pi? Where I must create/edit white list with my nodes?

              M Offline
              M Offline
              marceloaqno
              Code Contributor
              wrote on last edited by marceloaqno
              #338

              @macvictor For the MY_SIGNING_NODE_WHITELISTING, you can uncomment and edit it in MyConfig.h or add it to the examples/mysgw.cpp.

              1 Reply Last reply
              0
              • OliverDogO OliverDog

                first sorry about the basics question but I think many people have the same questions and can't find the answers:
                After connecting the radio (including IRQ on 15pin) and the info LEDs to the GPIO, how to config it?

                1. Do I need to configure all the info on the same command, or can I send the command "./configure --" many times for different configs?
                2. Do I need to configure it as a MQTT gateway?
                3. Where did the 127.0.0.1 IP come from?
                4. Does MQTT use internet connection?
                5. Why do you talk about Serial Gateway here, once we have a specific type for it? this type is about using GPIO only, isn't it? That is confusing!!!
                M Offline
                M Offline
                marceloaqno
                Code Contributor
                wrote on last edited by
                #339

                @OliverDog

                You execute ./configure once with all your options to set your gateway.

                You need to decide what type of gateway you want to build: ethernet, serial or mqtt:
                https://www.mysensors.org/build/select_gateway

                Take a look at the link and let me know if you still have any questions.

                1 Reply Last reply
                0
                • OliverDogO Offline
                  OliverDogO Offline
                  OliverDog
                  wrote on last edited by
                  #340

                  thaks @marceloaqno but I was wondering there was a new type of gateway named Raspberry Gateway, were we could connect the radio directly on the GPIO and config it locally, without internet, because of that I also would like to know if MQTT uses internet connection.
                  I actually use a serial gateway connected to Pi USG and it works without internet...
                  I just want to have only one device...
                  Thanks

                  M 1 Reply Last reply
                  0
                  • OliverDogO OliverDog

                    thaks @marceloaqno but I was wondering there was a new type of gateway named Raspberry Gateway, were we could connect the radio directly on the GPIO and config it locally, without internet, because of that I also would like to know if MQTT uses internet connection.
                    I actually use a serial gateway connected to Pi USG and it works without internet...
                    I just want to have only one device...
                    Thanks

                    M Offline
                    M Offline
                    marceloaqno
                    Code Contributor
                    wrote on last edited by
                    #341

                    @OliverDog You can configure the RPi to be any of the 3 types: ethernet, serial or mqtt, with the nrf24 attached to it.

                    OliverDogO 1 Reply Last reply
                    0
                    • M marceloaqno

                      @OliverDog You can configure the RPi to be any of the 3 types: ethernet, serial or mqtt, with the nrf24 attached to it.

                      OliverDogO Offline
                      OliverDogO Offline
                      OliverDog
                      wrote on last edited by
                      #342

                      @marceloaqno WOWWW
                      now I understood... but I think this is not clear on the build steps...
                      I choose a Serial Gateway, but on that lines, they say:
                      "If for some reason you can't use the GPIO pins of the Raspberry Pi, you could connect the radio to a arduino with the GatewaySerial sketch and feed the pi through a serial port:"

                      So I assumed the serial gateway is the same I already use...
                      So, where do I get directions to config a serial gateway with the radio attached to the GPIO?

                      Thanks

                      M 1 Reply Last reply
                      0
                      • OliverDogO OliverDog

                        @marceloaqno WOWWW
                        now I understood... but I think this is not clear on the build steps...
                        I choose a Serial Gateway, but on that lines, they say:
                        "If for some reason you can't use the GPIO pins of the Raspberry Pi, you could connect the radio to a arduino with the GatewaySerial sketch and feed the pi through a serial port:"

                        So I assumed the serial gateway is the same I already use...
                        So, where do I get directions to config a serial gateway with the radio attached to the GPIO?

                        Thanks

                        M Offline
                        M Offline
                        marceloaqno
                        Code Contributor
                        wrote on last edited by
                        #343

                        @OliverDog Which controller are you using(or are planning to use)?

                        OliverDogO 1 Reply Last reply
                        0
                        • Erik TammingaE Erik Tamminga

                          Hi,
                          Can I use pin 18 (GPIO 24) on my RPi3 for IRQ usage? Should I?
                          If I compile with --my-rf24-irq-pin=18, no date is received when the gateway starts.
                          I Cannot use pin 15 because that pin is covered by my Z-wave.me board.
                          Regards,
                          Erik

                          M Offline
                          M Offline
                          marceloaqno
                          Code Contributor
                          wrote on last edited by
                          #344

                          @Erik-Tamminga Some pins may have some restrictions, I couldn't find any good info about that. Try using another pin (GPIO 25).

                          1 Reply Last reply
                          0
                          • M marceloaqno

                            @OliverDog Which controller are you using(or are planning to use)?

                            OliverDogO Offline
                            OliverDogO Offline
                            OliverDog
                            wrote on last edited by
                            #345

                            @marceloaqno I already use Home Assistant with a Serial Gateway connected on pi USB.

                            M 1 Reply Last reply
                            0
                            • OliverDogO OliverDog

                              @marceloaqno I already use Home Assistant with a Serial Gateway connected on pi USB.

                              M Offline
                              M Offline
                              marceloaqno
                              Code Contributor
                              wrote on last edited by
                              #346

                              @OliverDog Home Assistant supports ethernet gateways, I recommend you go with that.

                              ./configure --my-gateway=ethernet --my-transport=nrf24
                              

                              (The default settings is to use ethernet and nrf24, so you could omit them)

                              and add to it any of your custom options.

                              1 Reply Last reply
                              0
                              • MadhiasM Offline
                                MadhiasM Offline
                                Madhias
                                wrote on last edited by Madhias
                                #347

                                I have a question regarding the --my-serial-groupname option: since I start the gateway under an user account with sudo, the gateway device ([EDIT] symlink) will be created with ownership root:root. Shouldn't it be created with root:dialout (as I chose dialout as group in my case)?

                                [DELETED]

                                M 1 Reply Last reply
                                1
                                • MadhiasM Madhias

                                  I have a question regarding the --my-serial-groupname option: since I start the gateway under an user account with sudo, the gateway device ([EDIT] symlink) will be created with ownership root:root. Shouldn't it be created with root:dialout (as I chose dialout as group in my case)?

                                  [DELETED]

                                  M Offline
                                  M Offline
                                  marceloaqno
                                  Code Contributor
                                  wrote on last edited by
                                  #348

                                  @Madhias /dev/pts/2 it's the one who holds the specified group ownership

                                  MadhiasM 1 Reply Last reply
                                  1
                                  • M marceloaqno

                                    @Madhias /dev/pts/2 it's the one who holds the specified group ownership

                                    MadhiasM Offline
                                    MadhiasM Offline
                                    Madhias
                                    wrote on last edited by
                                    #349

                                    @marceloaqno OK, many thanks for that hint!

                                    I was wrong from the beginning on, since I thought my configuration for the gateway was correct because of --my-serial-groupname=dialout - but that was not compiled. I edited now the mysgw.cpp manually (there was tty instead of dialout; and of course there was all the time the warning when compiling...). Now it works! Without chmod, or chowning anything later!

                                    1 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      macvictor
                                      wrote on last edited by
                                      #350

                                      @marceloaqno Thank's for you help. I have other question.. general I try configure my gateway to work with security & signing, but they doesn't work. Where is problem? On the bottom i send point what it do it:

                                      Gateway:

                                      1. ./configure --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-mqtt-password=PASS --my-mqtt-user=USER --my-rf24-encryption-enabled --my-signing=software --my-signing-request-signatures --my-signing-request-gw-signatures-from-all
                                      2. make
                                      3. sudo make install
                                      4. sudo systemctl enable mysgw.service
                                      5. sudo systemctl start mysgw.service
                                      6. sudo mysgw --gen-soft-hmac-key
                                      7. sudo mysgw --set-soft-hmac-key=02417628BC1573CC380...
                                      8. sudo mysgw --gen-soft-serial-key
                                      9. sudo mysgw --set-soft-serial-key=00762CD152B868F7EB
                                      10. sudo mysgw --gen-aes-key
                                      11. sudo mysgw --set-aes-key= A790AD78B2D8B4DBBB5B2C4B9DD6DAF3

                                      Node:

                                      1. Load script SecurityPersonalizer.ino
                                      2. Uncomment and send sketch to arduino
                                      #define USE_SOFT_SIGNING
                                      #define STORE_SOFT_KEY
                                      #define USER_SOFT_KEY
                                      #define STORE_SOFT_SERIAL
                                      #define STORE_AES_KEY
                                      #define USER_AES_KEY
                                      
                                      #define MY_SOFT_HMAC_KEY 0X2,0X41,0X76,0X28,0XBC,0X15,0X73,0XCC,0X38...
                                      #define MY_AES_KEY 0XA7,0X90,0XAD,0X78,0XB2,0XD8...
                                      
                                      1. Read all value from EPROM (test save):
                                      Personalization sketch for MySensors usage.
                                      -------------------------------------------
                                      EEPROM configuration:
                                      SOFT_HMAC_KEY | 02417628BC1573CC380DE0FADF7C87D7D3C77272A783E6E438786A07C3A8C6CF
                                      SOFT_SERIAL   | 39BB1370C289643251
                                      AES_KEY       | A790AD78B2D8B4DBBB5B2C4B9DD6DAF3
                                      --------------------------------
                                      Personalization is now complete.
                                      
                                      1. Send sample sketch to arduino:
                                      //!< Enable debug prints to serial monitor
                                      #define MY_DEBUG
                                      //!< Enable signing related debug prints to serial monitor
                                      #define MY_DEBUG_VERBOSE_SIGNING
                                      // Enable NRF24L01 radio type
                                      #define MY_RADIO_NRF24
                                      
                                      // Select soft signing
                                      #define MY_SIGNING_SOFT
                                      
                                      // Enable lockdown of node if suspicious activity is detected
                                      //-->> #define MY_NODE_LOCK_FEATURE
                                      
                                      // Enable node whitelisting
                                      //#define MY_SIGNING_NODE_WHITELISTING {{.nodeId = GATEWAY_ADDRESS,.serial = {0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01}}}
                                      
                                      // Enable this if you want destination node to sign all messages sent to this node.
                                      #define MY_SIGNING_REQUEST_SIGNATURES
                                      
                                      // SETTINGS FOR MY_SIGNING_SOFT
                                      #define MY_SIGNING_SOFT_RANDOMSEED_PIN 7 //!< Unconnected analog pin for random seed
                                      
                                      // Add repeater function to this sensor
                                      #define MY_REPEATER_FEATURE
                                      
                                      
                                      #include <SPI.h>
                                      #include <MySensors.h>
                                      #include <Bounce2.h>
                                      
                                      #define RELAY_PIN  4    // Arduino Digital I/O pin number for relay 
                                      #define BUTTON_PIN  3   // Arduino Digital I/O pin number for button 
                                      #define CHILD_ID 1      // Id of the sensor child
                                      #define RELAY_ON 1
                                      #define RELAY_OFF 0
                                      
                                      Bounce debouncer = Bounce();
                                      int oldValue = 0;
                                      bool state;
                                      
                                      MyMessage msg(CHILD_ID, V_LIGHT);
                                      
                                      void setup()
                                      {
                                        // Setup the button
                                        pinMode(BUTTON_PIN, INPUT);
                                        // Activate internal pull-up
                                        digitalWrite(BUTTON_PIN, HIGH);
                                      
                                        // After setting up the button, setup debouncer
                                        debouncer.attach(BUTTON_PIN);
                                        debouncer.interval(5);
                                      
                                        // Make sure relays are off when starting up
                                        digitalWrite(RELAY_PIN, RELAY_OFF);
                                        // Then set relay pins in output mode
                                        pinMode(RELAY_PIN, OUTPUT);
                                      
                                        // Set relay to last known state (using eeprom storage)
                                        state = loadState(CHILD_ID);
                                        digitalWrite(RELAY_PIN, state ? RELAY_ON : RELAY_OFF);
                                      }
                                      
                                      void presentation()  {
                                        // Send the sketch version information to the gateway and Controller
                                        sendSketchInfo("Relay & Button", "1.0");
                                        
                                        // Register all sensors to gw (they will be created as child devices)
                                        present(CHILD_ID, S_LIGHT, "Switch Secure Sensor", false);
                                      }
                                      
                                      /*
                                         Example on how to asynchronously check for new messages from gw
                                      */
                                      void loop()
                                      {
                                        debouncer.update();
                                        // Get the update value
                                        int value = debouncer.read();
                                      //  if (value != oldValue && value == 0) {
                                          send(msg.set(state ? false : true), true); // Send new state and request ack back
                                      //  }
                                      //  oldValue = value;
                                        delay(5000);
                                      }
                                      
                                      void receive(const MyMessage &message) {
                                        // We only expect one type of message from controller. But we better check anyway.
                                        if (message.isAck()) {
                                          Serial.println("This is an ack from gateway");
                                        }
                                      
                                        if (message.type == V_LIGHT) {
                                          // Change relay state
                                          state = message.getBool();
                                          digitalWrite(RELAY_PIN, state ? RELAY_ON : RELAY_OFF);
                                          // Store state in eeprom
                                          // saveState(CHILD_ID, state);
                                      
                                          // Write some debug info
                                          Serial.print("Incoming change for sensor:");
                                          Serial.print(message.sensor);
                                          Serial.print(", New status: ");
                                          Serial.println(message.getBool());
                                        }
                                      }
                                      

                                      And finally in Arduino Serial Monitor I see:

                                      0 MCO:BGN:INIT REPEATER,CP=RNNRAS-,VER=2.1.1
                                      4 TSM:INIT
                                      5 TSF:WUR:MS=0
                                      11 TSM:INIT:TSP OK
                                      13 TSF:SID:OK,ID=105
                                      15 TSM:FPAR
                                      16 Will not sign message for destination 255 as it does not require it
                                      58 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                      2065 !TSM:FPAR:NO REPLY
                                      2067 TSM:FPAR
                                      2068 Will not sign message for destination 255 as it does not require it
                                      2110 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                      4117 !TSM:FPAR:NO REPLY
                                      4119 TSM:FPAR
                                      4120 Will not sign message for destination 255 as it does not require it
                                      4162 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                      6169 !TSM:FPAR:NO REPLY
                                      6171 TSM:FPAR
                                      6172 Will not sign message for destination 255 as it does not require it
                                      6214 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                      8221 !TSM:FPAR:FAIL
                                      8222 TSM:FAIL:CNT=1
                                      8224 TSM:FAIL:PDT
                                      

                                      and in gateway i see:

                                      sudo mysgw -d
                                      mysgw: Starting gateway...
                                      mysgw: Protocol version - 2.1.1
                                      mysgw: MCO:BGN:INIT GW,CP=RNNG-S-,VER=2.1.1
                                      mysgw: TSF:LRT:OK
                                      mysgw: TSM:INIT
                                      mysgw: TSF:WUR:MS=0
                                      mysgw: TSM:INIT:TSP OK
                                      mysgw: TSM:INIT:GW MODE
                                      mysgw: TSM:READY:ID=0,PAR=0,DIS=0
                                      mysgw: MCO:REG:NOT NEEDED
                                      mysgw: MCO:BGN:STP
                                      mysgw: MCO:BGN:INIT OK,TSP=1
                                      mysgw: Attempting MQTT connection...
                                      mysgw: connected to 127.0.0.1
                                      mysgw: MQTT connected
                                      mysgw: Sending message on topic: mysensors-out/0/255/0/0/18
                                      mysgw: TSF:MSG:READ,171-107-54,s=221,c=2,t=131,pt=4,l=25,sg=0:-1418183441
                                      mysgw: !TSF:MSG:PVER,3=2
                                      mysgw: TSF:MSG:READ,135-23-172,s=20,c=3,t=200,pt=7,l=25,sg=0:-0.00000178
                                      mysgw: !TSF:MSG:PVER,1=2
                                      mysgw: TSF:MSG:READ,34-66-89,s=168,c=1,t=9,pt=1,l=25,sg=0:56
                                      mysgw: !TSF:MSG:PVER,1=2
                                      mysgw: TSF:MSG:READ,223-46-240,s=112,c=5,t=192,pt=5,l=11,sg=1:1407647670
                                      mysgw: TSF:MSG:REL MSG
                                      mysgw: !TSF:RTE:240 UNKNOWN
                                      mysgw: !TSF:MSG:SEND,223-0-240-240,s=112,c=5,t=192,pt=5,l=11,sg=1,ft=0,st=NACK:1407647670
                                      mysgw: TSF:MSG:READ,183-139-129,s=37,c=6,t=155,pt=1,l=21,sg=0:48
                                      mysgw: !TSF:MSG:PVER,0=2
                                      mysgw: TSF:MSG:READ,139-214-233,s=61,c=3,t=193,pt=7,l=0,sg=1:0.00000000
                                      mysgw: TSF:MSG:REL MSG
                                      mysgw: !TSF:RTE:233 UNKNOWN
                                      mysgw: !TSF:MSG:SEND,139-0-233-233,s=61,c=3,t=193,pt=7,l=0,sg=1,ft=0,st=NACK:0.00000000
                                      mysgw: TSF:MSG:READ,83-33-7,s=179,c=2,t=27,pt=4,l=25,sg=1:-2057270722
                                      mysgw: !TSF:MSG:PVER,3=2
                                      mysgw: TSF:MSG:READ,110-148-67,s=113,c=0,t=158,pt=1,l=9,sg=1:251
                                      mysgw: !TSF:MSG:PVER,1=2
                                      mysgw: TSF:MSG:READ,75-209-102,s=204,c=7,t=25,pt=1,l=11,sg=1:52
                                      mysgw: !TSF:MSG:PVER,0=2
                                      mysgw: TSF:MSG:READ,184-209-235,s=58,c=1,t=140,pt=6,l=23,sg=1:1DC404A5401119FACF0000000000000000000000000000
                                      mysgw: !TSF:MSG:PVER,3=2
                                      mysgw: TSF:MSG:READ,172-203-51,s=140,c=2,t=173,pt=0,l=1,sg=1:?
                                      mysgw: TSF:MSG:REL MSG
                                      mysgw: !TSF:RTE:51 UNKNOWN
                                      mysgw: !TSF:MSG:SEND,172-0-51-51,s=140,c=2,t=173,pt=0,l=1,sg=1,ft=0,st=NACK:?
                                      

                                      Where is problem?

                                      M pepsonP rajeev2301R 5 Replies Last reply
                                      0
                                      • M macvictor

                                        @marceloaqno Thank's for you help. I have other question.. general I try configure my gateway to work with security & signing, but they doesn't work. Where is problem? On the bottom i send point what it do it:

                                        Gateway:

                                        1. ./configure --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-mqtt-password=PASS --my-mqtt-user=USER --my-rf24-encryption-enabled --my-signing=software --my-signing-request-signatures --my-signing-request-gw-signatures-from-all
                                        2. make
                                        3. sudo make install
                                        4. sudo systemctl enable mysgw.service
                                        5. sudo systemctl start mysgw.service
                                        6. sudo mysgw --gen-soft-hmac-key
                                        7. sudo mysgw --set-soft-hmac-key=02417628BC1573CC380...
                                        8. sudo mysgw --gen-soft-serial-key
                                        9. sudo mysgw --set-soft-serial-key=00762CD152B868F7EB
                                        10. sudo mysgw --gen-aes-key
                                        11. sudo mysgw --set-aes-key= A790AD78B2D8B4DBBB5B2C4B9DD6DAF3

                                        Node:

                                        1. Load script SecurityPersonalizer.ino
                                        2. Uncomment and send sketch to arduino
                                        #define USE_SOFT_SIGNING
                                        #define STORE_SOFT_KEY
                                        #define USER_SOFT_KEY
                                        #define STORE_SOFT_SERIAL
                                        #define STORE_AES_KEY
                                        #define USER_AES_KEY
                                        
                                        #define MY_SOFT_HMAC_KEY 0X2,0X41,0X76,0X28,0XBC,0X15,0X73,0XCC,0X38...
                                        #define MY_AES_KEY 0XA7,0X90,0XAD,0X78,0XB2,0XD8...
                                        
                                        1. Read all value from EPROM (test save):
                                        Personalization sketch for MySensors usage.
                                        -------------------------------------------
                                        EEPROM configuration:
                                        SOFT_HMAC_KEY | 02417628BC1573CC380DE0FADF7C87D7D3C77272A783E6E438786A07C3A8C6CF
                                        SOFT_SERIAL   | 39BB1370C289643251
                                        AES_KEY       | A790AD78B2D8B4DBBB5B2C4B9DD6DAF3
                                        --------------------------------
                                        Personalization is now complete.
                                        
                                        1. Send sample sketch to arduino:
                                        //!< Enable debug prints to serial monitor
                                        #define MY_DEBUG
                                        //!< Enable signing related debug prints to serial monitor
                                        #define MY_DEBUG_VERBOSE_SIGNING
                                        // Enable NRF24L01 radio type
                                        #define MY_RADIO_NRF24
                                        
                                        // Select soft signing
                                        #define MY_SIGNING_SOFT
                                        
                                        // Enable lockdown of node if suspicious activity is detected
                                        //-->> #define MY_NODE_LOCK_FEATURE
                                        
                                        // Enable node whitelisting
                                        //#define MY_SIGNING_NODE_WHITELISTING {{.nodeId = GATEWAY_ADDRESS,.serial = {0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01}}}
                                        
                                        // Enable this if you want destination node to sign all messages sent to this node.
                                        #define MY_SIGNING_REQUEST_SIGNATURES
                                        
                                        // SETTINGS FOR MY_SIGNING_SOFT
                                        #define MY_SIGNING_SOFT_RANDOMSEED_PIN 7 //!< Unconnected analog pin for random seed
                                        
                                        // Add repeater function to this sensor
                                        #define MY_REPEATER_FEATURE
                                        
                                        
                                        #include <SPI.h>
                                        #include <MySensors.h>
                                        #include <Bounce2.h>
                                        
                                        #define RELAY_PIN  4    // Arduino Digital I/O pin number for relay 
                                        #define BUTTON_PIN  3   // Arduino Digital I/O pin number for button 
                                        #define CHILD_ID 1      // Id of the sensor child
                                        #define RELAY_ON 1
                                        #define RELAY_OFF 0
                                        
                                        Bounce debouncer = Bounce();
                                        int oldValue = 0;
                                        bool state;
                                        
                                        MyMessage msg(CHILD_ID, V_LIGHT);
                                        
                                        void setup()
                                        {
                                          // Setup the button
                                          pinMode(BUTTON_PIN, INPUT);
                                          // Activate internal pull-up
                                          digitalWrite(BUTTON_PIN, HIGH);
                                        
                                          // After setting up the button, setup debouncer
                                          debouncer.attach(BUTTON_PIN);
                                          debouncer.interval(5);
                                        
                                          // Make sure relays are off when starting up
                                          digitalWrite(RELAY_PIN, RELAY_OFF);
                                          // Then set relay pins in output mode
                                          pinMode(RELAY_PIN, OUTPUT);
                                        
                                          // Set relay to last known state (using eeprom storage)
                                          state = loadState(CHILD_ID);
                                          digitalWrite(RELAY_PIN, state ? RELAY_ON : RELAY_OFF);
                                        }
                                        
                                        void presentation()  {
                                          // Send the sketch version information to the gateway and Controller
                                          sendSketchInfo("Relay & Button", "1.0");
                                          
                                          // Register all sensors to gw (they will be created as child devices)
                                          present(CHILD_ID, S_LIGHT, "Switch Secure Sensor", false);
                                        }
                                        
                                        /*
                                           Example on how to asynchronously check for new messages from gw
                                        */
                                        void loop()
                                        {
                                          debouncer.update();
                                          // Get the update value
                                          int value = debouncer.read();
                                        //  if (value != oldValue && value == 0) {
                                            send(msg.set(state ? false : true), true); // Send new state and request ack back
                                        //  }
                                        //  oldValue = value;
                                          delay(5000);
                                        }
                                        
                                        void receive(const MyMessage &message) {
                                          // We only expect one type of message from controller. But we better check anyway.
                                          if (message.isAck()) {
                                            Serial.println("This is an ack from gateway");
                                          }
                                        
                                          if (message.type == V_LIGHT) {
                                            // Change relay state
                                            state = message.getBool();
                                            digitalWrite(RELAY_PIN, state ? RELAY_ON : RELAY_OFF);
                                            // Store state in eeprom
                                            // saveState(CHILD_ID, state);
                                        
                                            // Write some debug info
                                            Serial.print("Incoming change for sensor:");
                                            Serial.print(message.sensor);
                                            Serial.print(", New status: ");
                                            Serial.println(message.getBool());
                                          }
                                        }
                                        

                                        And finally in Arduino Serial Monitor I see:

                                        0 MCO:BGN:INIT REPEATER,CP=RNNRAS-,VER=2.1.1
                                        4 TSM:INIT
                                        5 TSF:WUR:MS=0
                                        11 TSM:INIT:TSP OK
                                        13 TSF:SID:OK,ID=105
                                        15 TSM:FPAR
                                        16 Will not sign message for destination 255 as it does not require it
                                        58 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                        2065 !TSM:FPAR:NO REPLY
                                        2067 TSM:FPAR
                                        2068 Will not sign message for destination 255 as it does not require it
                                        2110 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                        4117 !TSM:FPAR:NO REPLY
                                        4119 TSM:FPAR
                                        4120 Will not sign message for destination 255 as it does not require it
                                        4162 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                        6169 !TSM:FPAR:NO REPLY
                                        6171 TSM:FPAR
                                        6172 Will not sign message for destination 255 as it does not require it
                                        6214 TSF:MSG:SEND,105-105-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                        8221 !TSM:FPAR:FAIL
                                        8222 TSM:FAIL:CNT=1
                                        8224 TSM:FAIL:PDT
                                        

                                        and in gateway i see:

                                        sudo mysgw -d
                                        mysgw: Starting gateway...
                                        mysgw: Protocol version - 2.1.1
                                        mysgw: MCO:BGN:INIT GW,CP=RNNG-S-,VER=2.1.1
                                        mysgw: TSF:LRT:OK
                                        mysgw: TSM:INIT
                                        mysgw: TSF:WUR:MS=0
                                        mysgw: TSM:INIT:TSP OK
                                        mysgw: TSM:INIT:GW MODE
                                        mysgw: TSM:READY:ID=0,PAR=0,DIS=0
                                        mysgw: MCO:REG:NOT NEEDED
                                        mysgw: MCO:BGN:STP
                                        mysgw: MCO:BGN:INIT OK,TSP=1
                                        mysgw: Attempting MQTT connection...
                                        mysgw: connected to 127.0.0.1
                                        mysgw: MQTT connected
                                        mysgw: Sending message on topic: mysensors-out/0/255/0/0/18
                                        mysgw: TSF:MSG:READ,171-107-54,s=221,c=2,t=131,pt=4,l=25,sg=0:-1418183441
                                        mysgw: !TSF:MSG:PVER,3=2
                                        mysgw: TSF:MSG:READ,135-23-172,s=20,c=3,t=200,pt=7,l=25,sg=0:-0.00000178
                                        mysgw: !TSF:MSG:PVER,1=2
                                        mysgw: TSF:MSG:READ,34-66-89,s=168,c=1,t=9,pt=1,l=25,sg=0:56
                                        mysgw: !TSF:MSG:PVER,1=2
                                        mysgw: TSF:MSG:READ,223-46-240,s=112,c=5,t=192,pt=5,l=11,sg=1:1407647670
                                        mysgw: TSF:MSG:REL MSG
                                        mysgw: !TSF:RTE:240 UNKNOWN
                                        mysgw: !TSF:MSG:SEND,223-0-240-240,s=112,c=5,t=192,pt=5,l=11,sg=1,ft=0,st=NACK:1407647670
                                        mysgw: TSF:MSG:READ,183-139-129,s=37,c=6,t=155,pt=1,l=21,sg=0:48
                                        mysgw: !TSF:MSG:PVER,0=2
                                        mysgw: TSF:MSG:READ,139-214-233,s=61,c=3,t=193,pt=7,l=0,sg=1:0.00000000
                                        mysgw: TSF:MSG:REL MSG
                                        mysgw: !TSF:RTE:233 UNKNOWN
                                        mysgw: !TSF:MSG:SEND,139-0-233-233,s=61,c=3,t=193,pt=7,l=0,sg=1,ft=0,st=NACK:0.00000000
                                        mysgw: TSF:MSG:READ,83-33-7,s=179,c=2,t=27,pt=4,l=25,sg=1:-2057270722
                                        mysgw: !TSF:MSG:PVER,3=2
                                        mysgw: TSF:MSG:READ,110-148-67,s=113,c=0,t=158,pt=1,l=9,sg=1:251
                                        mysgw: !TSF:MSG:PVER,1=2
                                        mysgw: TSF:MSG:READ,75-209-102,s=204,c=7,t=25,pt=1,l=11,sg=1:52
                                        mysgw: !TSF:MSG:PVER,0=2
                                        mysgw: TSF:MSG:READ,184-209-235,s=58,c=1,t=140,pt=6,l=23,sg=1:1DC404A5401119FACF0000000000000000000000000000
                                        mysgw: !TSF:MSG:PVER,3=2
                                        mysgw: TSF:MSG:READ,172-203-51,s=140,c=2,t=173,pt=0,l=1,sg=1:?
                                        mysgw: TSF:MSG:REL MSG
                                        mysgw: !TSF:RTE:51 UNKNOWN
                                        mysgw: !TSF:MSG:SEND,172-0-51-51,s=140,c=2,t=173,pt=0,l=1,sg=1,ft=0,st=NACK:?
                                        

                                        Where is problem?

                                        M Offline
                                        M Offline
                                        marceloaqno
                                        Code Contributor
                                        wrote on last edited by
                                        #351

                                        @macvictor Did you also enable encryption on your node? (#define MY_RF24_ENABLE_ENCRYPTION)

                                        1 Reply Last reply
                                        1
                                        • M Offline
                                          M Offline
                                          macvictor
                                          wrote on last edited by
                                          #352

                                          @marceloaqno Thanks for help :+1: This was my problem 😀

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


                                          20

                                          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