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. Troubleshooting
  3. Problems with first sensors

Problems with first sensors

Scheduled Pinned Locked Moved Troubleshooting
62 Posts 9 Posters 27.4k Views 11 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.
  • blebbensB Offline
    blebbensB Offline
    blebbens
    wrote on last edited by
    #4

    Your new code from github for the motion compiled without any problems.

    2 days ago I uploaded the serial gateway sketch from https://www.mysensors.org/build/serial_gateway. This sketch is not compatible to mysensor library 2.0 ?

    I found some new example code on github, but at the moment, I don´t really know how to change the sketch to 2.0 compatibility.

    1 Reply Last reply
    0
    • scalzS Offline
      scalzS Offline
      scalz
      Hardware Contributor
      wrote on last edited by
      #5

      yes sketch are ready, the sketch from example folder is ok.
      perhaps you didn't paid attention, but imho you have changed something...Look at the top of your sketch, mysensors is two times included and not right. And if you look at the sketch I've linked (which is from example folder), you will see it's done once like this

      #include  <Mysensors.h>
      

      And you have this in your :

      #include <MyConfig.h>
      #include <MySensors.h>
      ...
      #include <MySensor.h>
      
      
      1 Reply Last reply
      0
      • scalzS Offline
        scalzS Offline
        scalz
        Hardware Contributor
        wrote on last edited by
        #6

        ah ok. I don't know for these sketch. But those from the arduino example folder should be ok.
        If not, clean your arduino install, and install it again. with the help from the links above, this should be ok.
        I hope it helps.

        1 Reply Last reply
        0
        • blebbensB Offline
          blebbensB Offline
          blebbens
          wrote on last edited by
          #7

          Nano seems to be damaged. Trying a new one tomorrow.
          One more question, please: I downloadee mysensors library 20.
          As I am using a serial hateway, I notices the gateway sketch uses the old gw.xxx structure. Do I have to modfiy the sketch on my own for preparing it for library 2.0? (My programming skills are under development). On githib the sketch is very basic, there is missing a lot?!

          1 Reply Last reply
          0
          • scalzS Offline
            scalzS Offline
            scalz
            Hardware Contributor
            wrote on last edited by scalz
            #8

            where do you see that gateway use old structure?
            the serial gw sketch you have in arduino ide should be the same as github. if not, you have not well updated your lib..
            don't worry, the sketch is very basic but it works. it's because lot of stuff is hidden for easing the lib use.

            1 Reply Last reply
            0
            • blebbensB Offline
              blebbensB Offline
              blebbens
              wrote on last edited by
              #9

              To me as a newbie it is a bit confusing...

              This sketch comes from mysensors.org:

              **
               * The MySensors Arduino library handles the wireless radio link and protocol
               * between your home built sensors/actuators and HA controller of choice.
               * The sensors forms a self healing radio network with optional repeaters. Each
               * repeater and gateway builds a routing tables in EEPROM which keeps track of the
               * network topology allowing messages to be routed to nodes.
               *
               * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
               * Copyright (C) 2013-2015 Sensnology AB
               * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
               *
               * Documentation: http://www.mysensors.org
               * Support Forum: http://forum.mysensors.org
               *
               * This program is free software; you can redistribute it and/or
               * modify it under the terms of the GNU General Public License
               * version 2 as published by the Free Software Foundation.
               *
               *******************************
               *
               * DESCRIPTION
               * The ArduinoGateway prints data received from sensors on the serial link. 
               * The gateway accepts input on seral which will be sent out on radio network.
               *
               * The GW code is designed for Arduino Nano 328p / 16MHz
               *
               * Wire connections (OPTIONAL):
               * - Inclusion button should be connected between digital pin 3 and GND  
               * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
               *
               * LEDs (OPTIONAL):
               * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h
               * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
               * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
               * - ERR (red) - fast blink on error during transmission error or recieve crc error 
               * 
               */
              
              #define NO_PORTB_PINCHANGES  
              
              #include <MySigningNone.h>
              #include <MyTransportRFM69.h>
              #include <MyTransportNRF24.h>
              //#include <MyHwATMega328.h>
              #include <MySigningAtsha204Soft.h>
              #include <MySigningAtsha204.h>
              
              #include <SPI.h>  
              #include <MyParserSerial.h>  
              #include <MySensor.h>  
              #include <stdarg.h>
              #include <PinChangeInt.h>
              #include "GatewayUtil.h"
              
              #define INCLUSION_MODE_TIME 1 // Number of minutes inclusion mode is enabled
              #define INCLUSION_MODE_PIN  3 // Digital pin used for inclusion mode button
              #define RADIO_ERROR_LED_PIN 4  // Error led pin
              #define RADIO_RX_LED_PIN    6  // Receive led pin
              #define RADIO_TX_LED_PIN    5  // the PCB, on board LED
              
              // NRFRF24L01 radio driver (set low transmit power by default) 
              MyTransportNRF24 transport(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);
              //MyTransportRFM69 transport;
              
              // Message signing driver (signer needed if MY_SIGNING_FEATURE is turned on in MyConfig.h)
              //MySigningNone signer;
              //MySigningAtsha204Soft signer;
              //MySigningAtsha204 signer;
              
              // Hardware profile 
              MyHwATMega328 hw;
              
              // Construct MySensors library (signer needed if MY_SIGNING_FEATURE is turned on in MyConfig.h)
              // To use LEDs blinking, uncomment WITH_LEDS_BLINKING in MyConfig.h
              #ifdef WITH_LEDS_BLINKING
              MySensor gw(transport, hw /*, signer*/, RADIO_RX_LED_PIN, RADIO_TX_LED_PIN, RADIO_ERROR_LED_PIN);
              #else
              MySensor gw(transport, hw /*, signer*/);
              #endif
              
              char inputString[MAX_RECEIVE_LENGTH] = "";    // A string to hold incoming commands from serial/ethernet interface
              int inputPos = 0;
              boolean commandComplete = false;  // whether the string is complete
              
              void parseAndSend(char *commandBuffer);
              
              void output(const char *fmt, ... ) {
                 va_list args;
                 va_start (args, fmt );
                 vsnprintf_P(serialBuffer, MAX_SEND_LENGTH, fmt, args);
                 va_end (args);
                 Serial.print(serialBuffer);
              }
              
                
              void setup()  
              { 
                gw.begin(incomingMessage, 0, true, 0);
              
                setupGateway(INCLUSION_MODE_PIN, INCLUSION_MODE_TIME, output);
              
                // Add interrupt for inclusion button to pin
                PCintPort::attachInterrupt(pinInclusion, startInclusionInterrupt, RISING);
              
              
                // Send startup log message on serial
                serial(PSTR("0;0;%d;0;%d;Gateway startup complete.\n"),  C_INTERNAL, I_GATEWAY_READY);
              }
              
              void loop()  
              { 
                gw.process();
              
                checkButtonTriggeredInclusion();
                checkInclusionFinished();
                
                if (commandComplete) {
                  // A command wass issued from serial interface
                  // We will now try to send it to the actuator
                  parseAndSend(gw, inputString);
                  commandComplete = false;  
                  inputPos = 0;
                }
              }
              
              
              /*
                SerialEvent occurs whenever a new data comes in the
               hardware serial RX.  This routine is run between each
               time loop() runs, so using delay inside loop can delay
               response.  Multiple bytes of data may be available.
               */
              void serialEvent() {
                while (Serial.available()) {
                  // get the new byte:
                  char inChar = (char)Serial.read(); 
                  // if the incoming character is a newline, set a flag
                  // so the main loop can do something about it:
                  if (inputPos<MAX_RECEIVE_LENGTH-1 && !commandComplete) { 
                    if (inChar == '\n') {
                      inputString[inputPos] = 0;
                      commandComplete = true;
                    } else {
                      // add it to the inputString:
                      inputString[inputPos] = inChar;
                      inputPos++;
                    }
                  } else {
                     // Incoming message too long. Throw away 
                      inputPos = 0;
                  }
                }
              }
              

              Looks like the sketch for mysensors library 1.x.

              And this one is from github:

               /**
               * The MySensors Arduino library handles the wireless radio link and protocol
               * between your home built sensors/actuators and HA controller of choice.
               * The sensors forms a self healing radio network with optional repeaters. Each
               * repeater and gateway builds a routing tables in EEPROM which keeps track of the
               * network topology allowing messages to be routed to nodes.
               *
               * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
               * Copyright (C) 2013-2015 Sensnology AB
               * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
               *
               * Documentation: http://www.mysensors.org
               * Support Forum: http://forum.mysensors.org
               *
               * This program is free software; you can redistribute it and/or
               * modify it under the terms of the GNU General Public License
               * version 2 as published by the Free Software Foundation.
               *
               *******************************
               *
               * DESCRIPTION
               * The ArduinoGateway prints data received from sensors on the serial link. 
               * The gateway accepts input on seral which will be sent out on radio network.
               *
               * The GW code is designed for Arduino Nano 328p / 16MHz
               *
               * Wire connections (OPTIONAL):
               * - Inclusion button should be connected between digital pin 3 and GND  
               * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
               *
               * LEDs (OPTIONAL):
               * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h
               * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
               * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
               * - ERR (red) - fast blink on error during transmission error or recieve crc error 
               * 
               */
              
              // Enable debug prints to serial monitor
              #define MY_DEBUG 
              
              
              // Enable and select radio type attached
              #define MY_RADIO_NRF24
              //#define MY_RADIO_RFM69
              
              // Set LOW transmit power level as default, if you have an amplified NRF-module and
              // power your radio separately with a good regulator you can turn up PA level. 
              #define MY_RF24_PA_LEVEL RF24_PA_LOW
              
              // Enable serial gateway
              #define MY_GATEWAY_SERIAL
              
              // Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
              #if F_CPU == 8000000L
              #define MY_BAUD_RATE 38400
              #endif
              
              // Flash leds on rx/tx/err
              #define MY_LEDS_BLINKING_FEATURE
              // Set blinking period
              #define MY_DEFAULT_LED_BLINK_PERIOD 300
              
              // Inverses the behavior of leds
              //#define MY_WITH_LEDS_BLINKING_INVERSE
              
              // Enable inclusion mode
              #define MY_INCLUSION_MODE_FEATURE
              // Enable Inclusion mode button on gateway
              #define MY_INCLUSION_BUTTON_FEATURE
              
              // Inverses behavior of inclusion button (if using external pullup)
              //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP
              
              // Set inclusion mode duration (in seconds)
              #define MY_INCLUSION_MODE_DURATION 60 
              // Digital pin used for inclusion mode button
              #define MY_INCLUSION_MODE_BUTTON_PIN  3 
              
              // Uncomment to override default HW configurations
              //#define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
              //#define MY_DEFAULT_RX_LED_PIN  6  // Receive led pin
              //#define MY_DEFAULT_TX_LED_PIN  5  // the PCB, on board LED
              
              #include <SPI.h>
              #include <MySensors.h>  
              
              void setup() { 
                // Setup locally attached sensors
              }
              
              void presentation() {
               // Present locally attached sensors 
              }
              
              void loop() { 
                // Send locally attached sensor data here 
              }
              

              To me ot looks like this is meant for mysensors.org 2.0, which looks incomplete. Think, they have to be merged ?

              1 Reply Last reply
              0
              • scalzS Offline
                scalzS Offline
                scalz
                Hardware Contributor
                wrote on last edited by scalz
                #10

                I know the difference between the two versions. But, as I said, no need to merge.
                Please note:

                • The examples you found on mysensors.org are, i guess, not all updated yet. but mysensors team is working hard, it's lot of work ;)

                • The example from github are compiled for mysensors 2. You think this is incomplete but that's wrong. The stuff you think missing is simply hidden. For easing noob experience.

                • So only 1.x older user sketch need to be updated to 2.0. If you are starting with mysensors, i don't think you have older sketch to convert, isn't it?

                • if not already done., use https://www.mysensors.org/about/arduino#installing-the-sensor-libraries to install the latest lib from Arduino software

                • Then no need to go to mysensors or git to get the latest examples. It's available in Arduino software. File Menu\Examples\Mysensors

                For discovering Arduino software, or arduino in general, you can have a look at
                https://www.arduino.cc/en/Guide/HomePage
                https://www.arduino.cc/en/Tutorial/HomePage
                https://www.arduino.cc/en/Reference/HomePage

                1 Reply Last reply
                1
                • blebbensB Offline
                  blebbensB Offline
                  blebbens
                  wrote on last edited by
                  #11

                  Oh, just realized domoticz setup uses a serial gateway baud rate of 115.200, the sketches are using 38.400. Perhaps, this is the big mistake.

                  1 Reply Last reply
                  0
                  • blebbensB Offline
                    blebbensB Offline
                    blebbens
                    wrote on last edited by
                    #12

                    It is very frustrating...

                    Uploaded the serial gateway sketch from examples ro my serial gateway (not serialgateway485). I just modified the baud rate to 115200. domoticz recognizes the gateway as version 2.0.

                    I also uploaded the motion sketch from examples to a new arduino nano and modified nothing.

                    Domoticz now is able to see the node, but it is named unknown. The child ID 255 (that must be wrong) is named S_ARDUINO_REPEATER_NODE - that is wrong. It has to be S_MOTION. Despite I was using the newest sketch, domoticz calls it version 1.0.

                    Could someone tell me the solution, please?

                    1 Reply Last reply
                    0
                    • Tore André RosanderT Offline
                      Tore André RosanderT Offline
                      Tore André Rosander
                      wrote on last edited by
                      #13

                      @blebbens

                      The version 1.0 comes from this piece of code and has nothing to do with the mysensors version.

                      void presentation()  {
                        // Send the sketch version information to the gateway and Controller
                        sendSketchInfo("Motion Sensor", "1.0");
                      

                      It would be nice to see the serial output from your node when you connect it to your gateway.
                      Also try to comment out the sleep function so there is less code that could cause a problem.

                      1 Reply Last reply
                      0
                      • blebbensB Offline
                        blebbensB Offline
                        blebbens
                        wrote on last edited by blebbens
                        #14

                        This is the code for my serial gateway to domoticz (arduino nano, NRF24L01+PA+ANTENNA) I am actually using...

                         * The MySensors Arduino library handles the wireless radio link and protocol
                         * between your home built sensors/actuators and HA controller of choice.
                         * The sensors forms a self healing radio network with optional repeaters. Each
                         * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                         * network topology allowing messages to be routed to nodes.
                         *
                         * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                         * Copyright (C) 2013-2015 Sensnology AB
                         * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                         *
                         * Documentation: http://www.mysensors.org
                         * Support Forum: http://forum.mysensors.org
                         *
                         * This program is free software; you can redistribute it and/or
                         * modify it under the terms of the GNU General Public License
                         * version 2 as published by the Free Software Foundation.
                         *
                         *******************************
                         *
                         * DESCRIPTION
                         * The ArduinoGateway prints data received from sensors on the serial link. 
                         * The gateway accepts input on seral which will be sent out on radio network.
                         *
                         * The GW code is designed for Arduino Nano 328p / 16MHz
                         *
                         * Wire connections (OPTIONAL):
                         * - Inclusion button should be connected between digital pin 3 and GND  
                         * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
                         *
                         * LEDs (OPTIONAL):
                         * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h
                         * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
                         * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
                         * - ERR (red) - fast blink on error during transmission error or recieve crc error 
                         * 
                         */
                        
                        // Enable debug prints to serial monitor
                        #define MY_DEBUG 
                        
                        
                        // Enable and select radio type attached
                        #define MY_RADIO_NRF24
                        //#define MY_RADIO_RFM69
                        
                        // Set LOW transmit power level as default, if you have an amplified NRF-module and
                        // power your radio separately with a good regulator you can turn up PA level. 
                        #define MY_RF24_PA_LEVEL RF24_PA_LOW
                        
                        // Enable serial gateway
                        #define MY_GATEWAY_SERIAL
                        
                        // Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
                        #if F_CPU == 8000000L
                        #define MY_BAUD_RATE 115200
                        #endif
                        
                        // Flash leds on rx/tx/err
                        #define MY_LEDS_BLINKING_FEATURE
                        // Set blinking period
                        #define MY_DEFAULT_LED_BLINK_PERIOD 300
                        
                        // Inverses the behavior of leds
                        //#define MY_WITH_LEDS_BLINKING_INVERSE
                        
                        // Enable inclusion mode
                        #define MY_INCLUSION_MODE_FEATURE
                        // Enable Inclusion mode button on gateway
                        #define MY_INCLUSION_BUTTON_FEATURE
                        
                        // Inverses behavior of inclusion button (if using external pullup)
                        //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP
                        
                        // Set inclusion mode duration (in seconds)
                        #define MY_INCLUSION_MODE_DURATION 60 
                        // Digital pin used for inclusion mode button
                        #define MY_INCLUSION_MODE_BUTTON_PIN  3 
                        
                        // Uncomment to override default HW configurations
                        //#define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
                        //#define MY_DEFAULT_RX_LED_PIN  6  // Receive led pin
                        //#define MY_DEFAULT_TX_LED_PIN  5  // the PCB, on board LED
                        
                        #include <SPI.h>
                        #include <MySensors.h>  
                        
                        void setup() { 
                          // Setup locally attached sensors
                        }
                        
                        void presentation() {
                         // Present locally attached sensors 
                        }
                        
                        void loop() { 
                          // Send locally attached sensor data here 
                        }
                        

                        And this sketch is for the motion sensor (arduino nano, HC-SR501 and NRF24L01+PA+ANTENNA)...

                         * The MySensors Arduino library handles the wireless radio link and protocol
                         * between your home built sensors/actuators and HA controller of choice.
                         * The sensors forms a self healing radio network with optional repeaters. Each
                         * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                         * network topology allowing messages to be routed to nodes.
                         *
                         * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                         * Copyright (C) 2013-2015 Sensnology AB
                         * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                         *
                         * Documentation: http://www.mysensors.org
                         * Support Forum: http://forum.mysensors.org
                         *
                         * This program is free software; you can redistribute it and/or
                         * modify it under the terms of the GNU General Public License
                         * version 2 as published by the Free Software Foundation.
                         *
                         *******************************
                         *
                         * REVISION HISTORY
                         * Version 1.0 - Henrik Ekblad
                         * 
                         * DESCRIPTION
                         * Motion Sensor example using HC-SR501 
                         * http://www.mysensors.org/build/motion
                         *
                         */
                        
                        // Enable debug prints
                        // #define MY_DEBUG
                        
                        // Enable and select radio type attached
                        #define MY_RADIO_NRF24
                        //#define MY_RADIO_RFM69
                        
                        #include <SPI.h>
                        #include <MySensors.h>
                        
                        unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds)
                        #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                        #define CHILD_ID 1   // Id of the sensor child
                        
                        // Initialize motion message
                        MyMessage msg(CHILD_ID, V_TRIPPED);
                        
                        void setup()  
                        {  
                          pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
                        }
                        
                        void presentation()  {
                          // Send the sketch version information to the gateway and Controller
                          sendSketchInfo("Motion Sensor", "1.0");
                        
                          // Register all sensors to gw (they will be created as child devices)
                          present(CHILD_ID, S_MOTION);
                        }
                        
                        void loop()     
                        {     
                          // Read digital motion value
                          boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH; 
                                
                          Serial.println(tripped);
                          send(msg.set(tripped?"1":"0"));  // Send tripped value to gw 
                        
                          // Sleep until interrupt comes in on motion sensor. Send update every two minute.
                          sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
                        }
                        

                        Domoticz still recognizes the motion sensor as "unknown" and S_ARDUINO_REPEATER.

                        And, the debug seriell monitor tells me:

                        Starting sensor (RNNNA-, 2.0.0)
                        TSM:INIT
                        TSM:RADIO:OK
                        TSM:FPAR
                        TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                        TSM:FPAR
                        TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                        TSM:FPAR
                        TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                        TSM:FPAR
                        TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                        !TSM:FPAR:FAIL
                        !TSM:FAILURE
                        TSM:PDT
                        

                        Hope, someone can help - it is very frustrating.

                        tekkaT 1 Reply Last reply
                        0
                        • blebbensB blebbens

                          This is the code for my serial gateway to domoticz (arduino nano, NRF24L01+PA+ANTENNA) I am actually using...

                           * The MySensors Arduino library handles the wireless radio link and protocol
                           * between your home built sensors/actuators and HA controller of choice.
                           * The sensors forms a self healing radio network with optional repeaters. Each
                           * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                           * network topology allowing messages to be routed to nodes.
                           *
                           * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                           * Copyright (C) 2013-2015 Sensnology AB
                           * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                           *
                           * Documentation: http://www.mysensors.org
                           * Support Forum: http://forum.mysensors.org
                           *
                           * This program is free software; you can redistribute it and/or
                           * modify it under the terms of the GNU General Public License
                           * version 2 as published by the Free Software Foundation.
                           *
                           *******************************
                           *
                           * DESCRIPTION
                           * The ArduinoGateway prints data received from sensors on the serial link. 
                           * The gateway accepts input on seral which will be sent out on radio network.
                           *
                           * The GW code is designed for Arduino Nano 328p / 16MHz
                           *
                           * Wire connections (OPTIONAL):
                           * - Inclusion button should be connected between digital pin 3 and GND  
                           * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
                           *
                           * LEDs (OPTIONAL):
                           * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h
                           * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
                           * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
                           * - ERR (red) - fast blink on error during transmission error or recieve crc error 
                           * 
                           */
                          
                          // Enable debug prints to serial monitor
                          #define MY_DEBUG 
                          
                          
                          // Enable and select radio type attached
                          #define MY_RADIO_NRF24
                          //#define MY_RADIO_RFM69
                          
                          // Set LOW transmit power level as default, if you have an amplified NRF-module and
                          // power your radio separately with a good regulator you can turn up PA level. 
                          #define MY_RF24_PA_LEVEL RF24_PA_LOW
                          
                          // Enable serial gateway
                          #define MY_GATEWAY_SERIAL
                          
                          // Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
                          #if F_CPU == 8000000L
                          #define MY_BAUD_RATE 115200
                          #endif
                          
                          // Flash leds on rx/tx/err
                          #define MY_LEDS_BLINKING_FEATURE
                          // Set blinking period
                          #define MY_DEFAULT_LED_BLINK_PERIOD 300
                          
                          // Inverses the behavior of leds
                          //#define MY_WITH_LEDS_BLINKING_INVERSE
                          
                          // Enable inclusion mode
                          #define MY_INCLUSION_MODE_FEATURE
                          // Enable Inclusion mode button on gateway
                          #define MY_INCLUSION_BUTTON_FEATURE
                          
                          // Inverses behavior of inclusion button (if using external pullup)
                          //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP
                          
                          // Set inclusion mode duration (in seconds)
                          #define MY_INCLUSION_MODE_DURATION 60 
                          // Digital pin used for inclusion mode button
                          #define MY_INCLUSION_MODE_BUTTON_PIN  3 
                          
                          // Uncomment to override default HW configurations
                          //#define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
                          //#define MY_DEFAULT_RX_LED_PIN  6  // Receive led pin
                          //#define MY_DEFAULT_TX_LED_PIN  5  // the PCB, on board LED
                          
                          #include <SPI.h>
                          #include <MySensors.h>  
                          
                          void setup() { 
                            // Setup locally attached sensors
                          }
                          
                          void presentation() {
                           // Present locally attached sensors 
                          }
                          
                          void loop() { 
                            // Send locally attached sensor data here 
                          }
                          

                          And this sketch is for the motion sensor (arduino nano, HC-SR501 and NRF24L01+PA+ANTENNA)...

                           * The MySensors Arduino library handles the wireless radio link and protocol
                           * between your home built sensors/actuators and HA controller of choice.
                           * The sensors forms a self healing radio network with optional repeaters. Each
                           * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                           * network topology allowing messages to be routed to nodes.
                           *
                           * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                           * Copyright (C) 2013-2015 Sensnology AB
                           * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                           *
                           * Documentation: http://www.mysensors.org
                           * Support Forum: http://forum.mysensors.org
                           *
                           * This program is free software; you can redistribute it and/or
                           * modify it under the terms of the GNU General Public License
                           * version 2 as published by the Free Software Foundation.
                           *
                           *******************************
                           *
                           * REVISION HISTORY
                           * Version 1.0 - Henrik Ekblad
                           * 
                           * DESCRIPTION
                           * Motion Sensor example using HC-SR501 
                           * http://www.mysensors.org/build/motion
                           *
                           */
                          
                          // Enable debug prints
                          // #define MY_DEBUG
                          
                          // Enable and select radio type attached
                          #define MY_RADIO_NRF24
                          //#define MY_RADIO_RFM69
                          
                          #include <SPI.h>
                          #include <MySensors.h>
                          
                          unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds)
                          #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
                          #define CHILD_ID 1   // Id of the sensor child
                          
                          // Initialize motion message
                          MyMessage msg(CHILD_ID, V_TRIPPED);
                          
                          void setup()  
                          {  
                            pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
                          }
                          
                          void presentation()  {
                            // Send the sketch version information to the gateway and Controller
                            sendSketchInfo("Motion Sensor", "1.0");
                          
                            // Register all sensors to gw (they will be created as child devices)
                            present(CHILD_ID, S_MOTION);
                          }
                          
                          void loop()     
                          {     
                            // Read digital motion value
                            boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH; 
                                  
                            Serial.println(tripped);
                            send(msg.set(tripped?"1":"0"));  // Send tripped value to gw 
                          
                            // Sleep until interrupt comes in on motion sensor. Send update every two minute.
                            sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
                          }
                          

                          Domoticz still recognizes the motion sensor as "unknown" and S_ARDUINO_REPEATER.

                          And, the debug seriell monitor tells me:

                          Starting sensor (RNNNA-, 2.0.0)
                          TSM:INIT
                          TSM:RADIO:OK
                          TSM:FPAR
                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                          TSM:FPAR
                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                          TSM:FPAR
                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                          TSM:FPAR
                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                          !TSM:FPAR:FAIL
                          !TSM:FAILURE
                          TSM:PDT
                          

                          Hope, someone can help - it is very frustrating.

                          tekkaT Offline
                          tekkaT Offline
                          tekka
                          Admin
                          wrote on last edited by
                          #15

                          @blebbens Please also post the debug log of your GW while the node is booting.

                          1 Reply Last reply
                          0
                          • blebbensB Offline
                            blebbensB Offline
                            blebbens
                            wrote on last edited by
                            #16

                            Okay, could you please tell me how to do that.
                            At the moment I do not know where to find it.

                            AWIA 1 Reply Last reply
                            0
                            • blebbensB blebbens

                              Okay, could you please tell me how to do that.
                              At the moment I do not know where to find it.

                              AWIA Offline
                              AWIA Offline
                              AWI
                              Hero Member
                              wrote on last edited by
                              #17

                              @blebbens connect the gateway to your computer usb port and look at the serial to see the debug log.

                              In addition where does domoticz show the "unknown" sensor? In the hardware log there is always one with id 255 for the node.

                              From you log I read a lot of "failed" messages. This indicates transmission errors which could result from your amplified radio's. These a more error prone than the non amplified ones. For testing you better use the non amplified.

                              1 Reply Last reply
                              0
                              • blebbensB Offline
                                blebbensB Offline
                                blebbens
                                wrote on last edited by
                                #18

                                0_1468656309681_IMG_1021.jpg

                                This is what domoticz looks like...

                                Connecting the serial gateway to my computer means, I can not connect it to domoticz ?
                                For debugging I have to enable #define MY_DEBUG ?
                                Or, is there a way to read the log file on the gateway ?

                                AWIA 1 Reply Last reply
                                0
                                • scalzS Offline
                                  scalzS Offline
                                  scalz
                                  Hardware Contributor
                                  wrote on last edited by scalz
                                  #19

                                  I don't know about domoticz but perhaps you can get the logs. Or use MYSController.

                                  Otherwise, when you need it, you can debug gw and node on your computer. Just connect both devices to your computer. Then of course this is not connected to domoticz but for debugging i often do this, it's useful.

                                  So:

                                  • connect gw+node to your computer
                                  • then use Serial monitor from arduino if you want, to monitor one device. choose right baudrate and comport of course
                                  • and for other device, use another serial monitor like putty etc..
                                    or a sniffer if you really want to keep it connected to your controller. But for noobs, i would advice to simply use two serial monitor when you need to debug, easier..
                                  1 Reply Last reply
                                  0
                                  • blebbensB blebbens

                                    0_1468656309681_IMG_1021.jpg

                                    This is what domoticz looks like...

                                    Connecting the serial gateway to my computer means, I can not connect it to domoticz ?
                                    For debugging I have to enable #define MY_DEBUG ?
                                    Or, is there a way to read the log file on the gateway ?

                                    AWIA Offline
                                    AWIA Offline
                                    AWI
                                    Hero Member
                                    wrote on last edited by
                                    #20

                                    @blebbens your domoticz screen looks fine. No errors but also no sensors reported. Only the node is known.
                                    As @scalz mentioned, just connect the node and gateway to your computer watch what happens on the serial monitor (arduino idea or whatever you are using) the node does not have to be connected to domoticz for initial debugging.

                                    1 Reply Last reply
                                    0
                                    • blebbensB Offline
                                      blebbensB Offline
                                      blebbens
                                      wrote on last edited by blebbens
                                      #21

                                      Okay, I have...

                                      The motion sensor connected to the Arduino IDE. The output of the serial monitor (at this time the gateway was connected to the controller):

                                      Starting sensor (RNNNA-, 2.0.0)
                                      TSM:INIT
                                      TSM:RADIO:OK
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      !TSM:FPAR:FAIL
                                      !TSM:FAILURE
                                      TSM:PDT
                                      TSM:INIT
                                      TSM:RADIO:OK
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      TSM:FPAR
                                      TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                      

                                      An at this point I had the gateway connected to the arduino IDE (the motion sensor was not connected to the computer):

                                      0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0)
                                      0;255;3;0;9;TSM:INIT
                                      0;255;3;0;9;TSM:RADIO:OK
                                      0;255;3;0;9;TSM:GW MODE
                                      0;255;3;0;9;TSM:READY
                                      0;255;3;0;14;Gateway startup complete.
                                      0;255;0;0;18;2.0.0
                                      0;255;3;0;9;No registration required
                                      0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      0;255;3;0;9;TSP:SANCHK:OK
                                      

                                      I never had both, gateway and sensor, connected to the monitor at the same time. I am afraid, I didn´t understand to use MYScontroller. Did not find the com-port settings etc. It always tries to connect to gateway 192.168.0.x, my network is not set up to this IP.

                                      Does the output help ?

                                      1 Reply Last reply
                                      0
                                      • scalzS Offline
                                        scalzS Offline
                                        scalz
                                        Hardware Contributor
                                        wrote on last edited by scalz
                                        #22

                                        nope, output can't help as it's only one device..

                                        I think you're talking about MYSController config when you say 192.168.0.x, isn't it? or i don't understand lol

                                        To know your serialports in use:

                                        • with Win for instance, go to something like Control Panel → Device Manager → COM & LPT ports
                                        • connect your devices to usb, and disconnect one by one. So now you know which one use which port.

                                        About MYSController: you will need to setup the serial port for GW.

                                        • With GW connected to usb, click Settings button and then click Gateway tab.
                                        • Check Serial GW and choose port&bauds.
                                        • Now, still in MYSController, you can click Connect button. There are tabs in MYSController for different debug levels. Look a bit at features.
                                        • It should connect, if it does not, un/replug your gw, and reclick Connect.

                                        Then you'll have the logs for your GW if it is enabled in sketch of course.
                                        As said above, if you would like, you could use another software (serial monitor) in place of MYSController. but not required here.

                                        Now, for the other device (node), you can monitor it in Arduino software by setting well port&bauds. you know it now ;)

                                        Could you try in this order, please :

                                        • plug GW only. And connect with MYSController
                                        • then plug node, and open your Arduino Serial monitor.

                                        does it work? if no, logs, thx ;)

                                        1 Reply Last reply
                                        0
                                        • blebbensB Offline
                                          blebbensB Offline
                                          blebbens
                                          wrote on last edited by blebbens
                                          #23

                                          Okay, done it... both connected, gw on MYScontroller, motion sensor monitored using IDE...

                                          Sensor output:

                                          TSM:INIT
                                          TSM:RADIO:OK
                                          TSM:FPAR
                                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                          TSM:FPAR
                                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                          TSM:FPAR
                                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                          TSM:FPAR
                                          TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                          !TSM:FPAR:FAIL
                                          !TSM:FAILURE
                                          TSM:PDT
                                          

                                          And gateway output:

                                          MYScontroller debug:

                                          16.07.2016 19:43:42	INFO	Flushing FIFO
                                          16.07.2016 19:43:42	INFO	Connected to COM7
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0)
                                          16.07.2016 19:43:44	CHILD	New child discovered, node id=0, child id=internal
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;TSM:INIT
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;TSM:RADIO:OK
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;TSM:GW MODE
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;TSM:READY
                                          16.07.2016 19:43:44	RX	0;255;3;0;14;Gateway startup complete.
                                          16.07.2016 19:43:44	RX	0;255;0;0;18;2.0.0
                                          16.07.2016 19:43:44	DEBUG	Update child id=255, type=S_ARDUINO_REPEATER_NODE
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;No registration required
                                          16.07.2016 19:43:44	RX	0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1
                                          16.07.2016 19:44:44	RX	0;255;3;0;9;TSP:SANCHK:OK
                                          16.07.2016 19:45:44	RX	0;255;3;0;9;TSP:SANCHK:OK
                                          

                                          MySensors debug:

                                          8	16.07.2016 19:43:44	TX	-1	-1		-1	-1	NA (-1)	N/A	NA (-1)	-1			required
                                          

                                          Nodes debug: this message was shown before I connected the sensor to power

                                          7	16.07.2016 19:43:44	0 - Gateway	S_ARDUINO_REPEATER_NODE	S_ARDUINO_REPEATER_NODE	2.0.0	
                                          

                                          And messages tab:

                                          6	16.07.2016 19:43:44	RX	0 - Gateway	INTERNAL	C_INTERNAL	NO	I_GATEWAY_READY	Gateway startup complete.
                                          7	16.07.2016 19:43:44	RX	0 - Gateway	INTERNAL	C_PRESENTATION	NO	S_ARDUINO_REPEATER_NODE	2.0.0
                                          

                                          Okay, hope, this helps now.

                                          That´s strange, because there is no repeater... just a motion sensor sketch.

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


                                          9

                                          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