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 422.6k 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
    #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
        • gohanG Offline
          gohanG Offline
          gohan
          Mod
          wrote on last edited by
          #353

          how do I set user and password to access the mqtt broker? I tried do add --my-mqtt-password=PASS --my-mqtt-user=USER other parameters but they get ignored

          M 1 Reply Last reply
          0
          • gohanG gohan

            how do I set user and password to access the mqtt broker? I tried do add --my-mqtt-password=PASS --my-mqtt-user=USER other parameters but they get ignored

            M Offline
            M Offline
            macvictor
            wrote on last edited by
            #354

            @gohan edit configure file and add this code:

            --my-mqtt-user=*)
                CPPFLAGS="-DMY_MQTT_USER=\\\"${optarg}\\\" $CPPFLAGS"
                ;;
            --my-mqtt-password=*)
                CPPFLAGS="-DMY_MQTT_PASSWORD=\\\"${optarg}\\\" $CPPFLAGS"
                ;;
            

            after this code:

            --my-signing-request-gw-signatures-from-all*)
                    signing_request_signatures=true
                    CPPFLAGS="-DMY_SIGNING_GW_REQUEST_SIGNATURES_FROM_ALL $CPPFLAGS"
                    ;;
            

            this is about 408 number line and use flag --my-mqtt-password and --my-mqtt-client-id when you run configure, thats all. =)

            blaceyB gohanG 2 Replies Last reply
            2
            • M macvictor

              @gohan edit configure file and add this code:

              --my-mqtt-user=*)
                  CPPFLAGS="-DMY_MQTT_USER=\\\"${optarg}\\\" $CPPFLAGS"
                  ;;
              --my-mqtt-password=*)
                  CPPFLAGS="-DMY_MQTT_PASSWORD=\\\"${optarg}\\\" $CPPFLAGS"
                  ;;
              

              after this code:

              --my-signing-request-gw-signatures-from-all*)
                      signing_request_signatures=true
                      CPPFLAGS="-DMY_SIGNING_GW_REQUEST_SIGNATURES_FROM_ALL $CPPFLAGS"
                      ;;
              

              this is about 408 number line and use flag --my-mqtt-password and --my-mqtt-client-id when you run configure, thats all. =)

              blaceyB Offline
              blaceyB Offline
              blacey
              Admin
              wrote on last edited by blacey
              #355

              @macvictor It would be great if you would submit this as a GitHub Pull Request. If you aren't comfortable with that, then I would encourage you to at least open a MySensors issue to add these RPI configuration options.

              1 Reply Last reply
              1
              • TeknorT Offline
                TeknorT Offline
                Teknor
                wrote on last edited by Teknor
                #356

                When using RPI as a GW for MySensors, the CPU load increases from 18% to around 80 %. I am using a RPI II model B. I'd love the have the GW running on the Raspberry, and avoid a USB connected Arduino.

                Does somebody else experience the same?

                M carlylerC 2 Replies Last reply
                0
                • TeknorT Teknor

                  When using RPI as a GW for MySensors, the CPU load increases from 18% to around 80 %. I am using a RPI II model B. I'd love the have the GW running on the Raspberry, and avoid a USB connected Arduino.

                  Does somebody else experience the same?

                  M Offline
                  M Offline
                  macvictor
                  wrote on last edited by
                  #357

                  @Teknor I use RPI III as GW and all node connect with gw used nRF24L01. My CPU now usage 5-10%, but I installed "Home Assistance" + homebridge + some plugins.

                  TeknorT 1 Reply Last reply
                  1
                  • M macvictor

                    @Teknor I use RPI III as GW and all node connect with gw used nRF24L01. My CPU now usage 5-10%, but I installed "Home Assistance" + homebridge + some plugins.

                    TeknorT Offline
                    TeknorT Offline
                    Teknor
                    wrote on last edited by Teknor
                    #358

                    @macvictor Thanks. My RPI 2 is running Domoticz, RFXcom GW and 2x 3MP cameras with motion detection using Motioneye. Might be something wrong with my MySensors GW setup...

                    1 Reply Last reply
                    0
                    • TeknorT Teknor

                      When using RPI as a GW for MySensors, the CPU load increases from 18% to around 80 %. I am using a RPI II model B. I'd love the have the GW running on the Raspberry, and avoid a USB connected Arduino.

                      Does somebody else experience the same?

                      carlylerC Offline
                      carlylerC Offline
                      carlyler
                      wrote on last edited by
                      #359

                      @Teknor I tend to agree something is wrong, but I think it really on depends how many nodes and how often you're sending data.
                      rpi3 + GPIO nrf24l01 + openhab2 + 8 nodes + packet received, on average 1 / 5s :

                      top - 06:29:37 up 2 days, 22:33,  2 users,  load average: 0.26, 0.24, 0.19
                      KiB Mem:    947732 total,   903420 used,    44312 free,   175364 buffers
                      KiB Swap:   102396 total,     4496 used,    97900 free.   391360 cached Mem
                      
                        PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                               
                        681 root      20   0  208840  56532  23684 S   8.9  6.0 214:23.60 Xorg                                                                  
                        527 root      20   0   39448  21532  11264 S   4.3  2.3  69:34.28 vncserver-x11-c                                                       
                       1154 pi        20   0   50548  17628  12196 S   3.0  1.9  64:05.96 lxterminal                                                            
                      30426 openhab   20   0  441764 197592  14960 S   1.6 20.8 284:18.70 java                                                                  
                       2467 root      20   0   20024   2456   2300 S   1.3  0.3  62:55.17 mysgw                                                                 
                      25634 root      20   0       0      0      0 S   1.0  0.0   0:00.21 kworker/u8:0                                                          
                        688 root      20   0   13720   9432   8828 S   0.7  1.0   2:04.96 vncagent                                                              
                      25855 pi        20   0    5232   2584   2140 R   0.7  0.3   0:00.49 top                                                                   
                          7 root      20   0       0      0      0 S   0.3  0.0   9:15.35 rcu_sched                                                             
                         78 root     -51   0       0      0      0 S   0.3  0.0   5:16.50 irq/92-mmc1                                                           
                        967 pi        20   0   95656  17716  12028 S   0.3  1.9   6:41.87 lxpanel                                                               
                          1 root      20   0   24620   4688   2716 S   0.0  0.5   0:13.08 systemd                                                               
                          2 root      20   0       0      0      0 S   0.0  0.0   0:00.27 kthreadd                                                              
                      
                      1 Reply Last reply
                      1
                      • M macvictor

                        @gohan edit configure file and add this code:

                        --my-mqtt-user=*)
                            CPPFLAGS="-DMY_MQTT_USER=\\\"${optarg}\\\" $CPPFLAGS"
                            ;;
                        --my-mqtt-password=*)
                            CPPFLAGS="-DMY_MQTT_PASSWORD=\\\"${optarg}\\\" $CPPFLAGS"
                            ;;
                        

                        after this code:

                        --my-signing-request-gw-signatures-from-all*)
                                signing_request_signatures=true
                                CPPFLAGS="-DMY_SIGNING_GW_REQUEST_SIGNATURES_FROM_ALL $CPPFLAGS"
                                ;;
                        

                        this is about 408 number line and use flag --my-mqtt-password and --my-mqtt-client-id when you run configure, thats all. =)

                        gohanG Offline
                        gohanG Offline
                        gohan
                        Mod
                        wrote on last edited by
                        #360

                        @macvictor
                        That worked, thanks. But to configure channel, power, AES key, and so on, do you think it is better to use command line like you posted above or customize myconfig.h?

                        M 1 Reply Last reply
                        0
                        • gohanG gohan

                          @macvictor
                          That worked, thanks. But to configure channel, power, AES key, and so on, do you think it is better to use command line like you posted above or customize myconfig.h?

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

                          @gohan You can also set mqtt username and password in examples_linux/mysgw.cpp

                          gohanG 1 Reply Last reply
                          0
                          • M marceloaqno

                            @gohan You can also set mqtt username and password in examples_linux/mysgw.cpp

                            gohanG Offline
                            gohanG Offline
                            gohan
                            Mod
                            wrote on last edited by
                            #362

                            @marceloaqno
                            I'm trying to understand where is the best place to avoid file gets overwritten in case of upgrades

                            M 1 Reply Last reply
                            0
                            • gohanG gohan

                              @marceloaqno
                              I'm trying to understand where is the best place to avoid file gets overwritten in case of upgrades

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

                              @gohan There is a open github pull request very similar to what @macvictor proposed, but for now I recommend using the examples_linux/mysgw.cpp file.

                              gohanG 1 Reply Last reply
                              2
                              • M marceloaqno

                                @gohan There is a open github pull request very similar to what @macvictor proposed, but for now I recommend using the examples_linux/mysgw.cpp file.

                                gohanG Offline
                                gohanG Offline
                                gohan
                                Mod
                                wrote on last edited by
                                #364

                                @marceloaqno
                                Ok I can you that file, but where is the best place to set Power Level and channel ?

                                M 1 Reply Last reply
                                0
                                • gohanG gohan

                                  @marceloaqno
                                  Ok I can you that file, but where is the best place to set Power Level and channel ?

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

                                  @gohan There isn't exactly the best place to set things, it really depends on your preferences.

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

                                    I just copied the myconfig file from the arduino and set the rest from the command line and from debug it looks like it's working, the problem is now to get domoticz talk to the mqtt.

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

                                      After updating domoticz to beta version I finally have the MQTT working with controller and I can see the sensor node seding in data: my question now is how to I debug the gateway if it is running as a service on the RPI without messing things up?

                                      G 1 Reply Last reply
                                      0
                                      • M marceloaqno

                                        @hawk_2050 same for you guys who helped, thank you for all the feedback.

                                        @jerseyguy1996 I don't see anything wrong with your config.Try to add a small delay() after the first send() and before the sendBattery().

                                        @annegerben This looks like a wire problem. I updated the guide, check the wire section again.

                                        M Offline
                                        M Offline
                                        marlin
                                        wrote on last edited by
                                        #368

                                        @marceloaqno I am trying to get a Pi 3 working with MySensors 2.1.1 and nrf24l01 and using your updated wire guide, but all I get as output is the following:
                                        mysgw: Starting gateway...
                                        mysgw: Protocol version - 2.1.1
                                        mysgw: MCO:BGN:INIT GW,CP=RNNG--Q,VER=2.1.1
                                        mysgw: TSF:LRT:OK
                                        mysgw: TSM:INIT
                                        mysgw: TSF:WUR:MS=0
                                        mysgw: !TSM:INIT:TSP FAIL
                                        mysgw: TSM:FAIL:CNT=1
                                        mysgw: TSM:FAIL:PDT
                                        [The output repeats itself, increasing the CNT every time, while at the same time one of the cores on the Pi 3 is running at full CPU utilization.]

                                        By reading earlier comments I assume this is a wiring problem. One possible cause is inconsistency between
                                        0_1488723559852_upload-e3165792-1f42-4663-8e68-efd96bd275f8

                                        and

                                        0_1488723638471_upload-d7048ef8-8a33-4214-9935-0356cf9291c2

                                        where the first picture indicates that pin 24 and pin 26 should be used, while the second indicates pins 22 and 24 should be used. However, I have tried both options but I still get the same output (I used different nrf24's for the different setups, in case the nrf24 got burned from the first setup).

                                        I have VCC from nrf24 connected to pin 17 on the Pi 3 and GND connect to pin 25.

                                        Any suggestions on what to try next?
                                        [The Pi 3 is running Raspbian with Pixel. For information, I already have a running Arduino with MySensors MQTT GW and a simple node with MySensors and DHT22. From this I know that by nrf24 chips works when being fed with 3.3V.]

                                        G keldandorinK 2 Replies Last reply
                                        0
                                        • gohanG Offline
                                          gohanG Offline
                                          gohan
                                          Mod
                                          wrote on last edited by
                                          #369

                                          I have connected my nrf24 like the secon table you posted and it is working but I am using an "adapter" for nrf24 with a socket and has voltage regulator + capacitors, so if you don't have any cap on the radio module, I'd suggest you put one on (try from a 4.7 uF up to 47 and see if anything changes)

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


                                          13

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 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