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. Problem with sensors on arduino and domoticz

Problem with sensors on arduino and domoticz

Scheduled Pinned Locked Moved Troubleshooting
27 Posts 4 Posters 2.3k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Nca78N Nca78

    @hyperflemme did rebuild the gateway script with #define MY_GATEWAY_SERIAL ?
    Then did you add the gateway in the hardware tab of domoticz ?

    H Offline
    H Offline
    hyperflemme
    wrote on last edited by
    #21

    @nca78 domoticz recognize the arduino card, his version of gateway, but into hardware tab if i change the card i have an children "Unknown" with id 3 and an other child unusable with a ID 255.
    in the log of domoticz i have "Gateway ready"

    Nca78N 1 Reply Last reply
    0
    • H hyperflemme

      @nca78 domoticz recognize the arduino card, his version of gateway, but into hardware tab if i change the card i have an children "Unknown" with id 3 and an other child unusable with a ID 255.
      in the log of domoticz i have "Gateway ready"

      Nca78N Offline
      Nca78N Offline
      Nca78
      Hardware Contributor
      wrote on last edited by
      #22

      @hyperflemme so it's good news domoticz can see your gateway.

      Can you post the script you are using now ?

      H 1 Reply Last reply
      0
      • Nca78N Nca78

        @hyperflemme so it's good news domoticz can see your gateway.

        Can you post the script you are using now ?

        H Offline
        H Offline
        hyperflemme
        wrote on last edited by
        #23

        @nca78 the script of the gateway or the script of one of the sensors?
        I give you both juste here:
        for the gateway i just use this: https://www.mysensors.org/build/serial_gateway and i just added this before inclide mysensors.h:

        #define MY_RF24_CE_PIN 49
        #define MY_RF24_CS_PIN 53

        the script of the sensors is:

        /*
         * 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-2018 Sensnology AB
         * Full contributor list: https://github.com/mysensors/MySensors/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_RF24
        //#define MY_RADIO_NRF5_ESB
        //#define MY_RADIO_RFM69
        //#define MY_RADIO_RFM95
        
        #include <MySensors.h>
        
        uint32_t 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
        	bool 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);
        }
        
        

        for motion sensor i use a PIR Sensor V1.0

        1 Reply Last reply
        0
        • K Offline
          K Offline
          kimot
          wrote on last edited by kimot
          #24

          I think we still do not know the topology of your network and we use different terms.
          For most of us a "sensor" is - temperature sensor, humidity sensor, pressure sensor, etc. These sensors are connected to Arduino, which we call the "node".
          These node are connected through radio or RS485 to Arduino which works like gateway and send received messages from nodes to controller ( Rpi with Domoticz ).
          Usually gateway have got no sensors and you can use pure gateway sketch from examples.
          But you can connect sensors directly to gateway, but you must modify gateway sketch then.

          • setup your sensors
          • present your sensors
          • send values form your sensors.

          And of course NO SLEEP FUNCTION in sensor send code.

          Places, where put it is marked by comments in gateway sketch:

          void setup()
          {
              // Setup locally attached sensors
          }
          
          void presentation()
          {
              // Present locally attached sensors
          }
          
          void loop()
          {
              // Send locally attached sensor data here
          }
          

          Usual topology:
          0_1551265556965_IMG_20190227_113409.jpg

          I think your topology:
          0_1551265601343_IMG_20190227_113420.jpg

          H 1 Reply Last reply
          1
          • K kimot

            I think we still do not know the topology of your network and we use different terms.
            For most of us a "sensor" is - temperature sensor, humidity sensor, pressure sensor, etc. These sensors are connected to Arduino, which we call the "node".
            These node are connected through radio or RS485 to Arduino which works like gateway and send received messages from nodes to controller ( Rpi with Domoticz ).
            Usually gateway have got no sensors and you can use pure gateway sketch from examples.
            But you can connect sensors directly to gateway, but you must modify gateway sketch then.

            • setup your sensors
            • present your sensors
            • send values form your sensors.

            And of course NO SLEEP FUNCTION in sensor send code.

            Places, where put it is marked by comments in gateway sketch:

            void setup()
            {
                // Setup locally attached sensors
            }
            
            void presentation()
            {
                // Present locally attached sensors
            }
            
            void loop()
            {
                // Send locally attached sensor data here
            }
            

            Usual topology:
            0_1551265556965_IMG_20190227_113409.jpg

            I think your topology:
            0_1551265601343_IMG_20190227_113420.jpg

            H Offline
            H Offline
            hyperflemme
            wrote on last edited by
            #25

            @kimot Hi , tank's for your help,
            my topology: 0_1551269057197_UNADJUSTEDNONRAW_thumb_1.jpg

            how can i do?

            K 1 Reply Last reply
            0
            • H hyperflemme

              @kimot Hi , tank's for your help,
              my topology: 0_1551269057197_UNADJUSTEDNONRAW_thumb_1.jpg

              how can i do?

              K Offline
              K Offline
              kimot
              wrote on last edited by
              #26

              @hyperflemme
              Use gateway sketch and add sensor presentation and sensor data sending like in node sketch.

              example from this forum:

              void presentation() {
                // Present locally attached sensors here
                  // Send the sketch version information to the gateway and Controller
                sendSketchInfo("AWI_ESP 120", "1.0");
              
                // Register all sensors to gw (they will be created as child devices)
                present(CHILD_ID, S_DIMMER, "AWI_ESP 120" " dimmer");
                present(CHILD_ID2, S_INFO, "AWI_ESP 120" " text");
              
              }
              
              
              void loop() {
                // Send locally attached sensors data here
               	send(msg.set(messageCounter)); 										// Send message to gw 
              	messageCounter = ++messageCounter % 100 ;							// wrap
              	send(msg2.set("Hallo")); 											// Send message to gw 
              	// Send update every SLEEP_TIME
              	wait(SLEEP_TIME) ;
              }
              
              void receive(const MyMessage &message) {  								// messages from node or controller
              	//char printBuf[40] ;
              	//Serial.print(message.getInt());
              		//sprintf(printBuf, "Message node: %d %d  OK\n", message.sender, message.getInt());
              }
              	//Serial.print(printBuf) ;
              	//sprintf(printBuf, "Messages: %d Errors: %d\n", messageCounter, messageErrorCounter);
              	//Serial.print(printBuf) ;
              
              
              

              Search forum here, you are not alone with this solution.

              H 1 Reply Last reply
              0
              • K kimot

                @hyperflemme
                Use gateway sketch and add sensor presentation and sensor data sending like in node sketch.

                example from this forum:

                void presentation() {
                  // Present locally attached sensors here
                    // Send the sketch version information to the gateway and Controller
                  sendSketchInfo("AWI_ESP 120", "1.0");
                
                  // Register all sensors to gw (they will be created as child devices)
                  present(CHILD_ID, S_DIMMER, "AWI_ESP 120" " dimmer");
                  present(CHILD_ID2, S_INFO, "AWI_ESP 120" " text");
                
                }
                
                
                void loop() {
                  // Send locally attached sensors data here
                 	send(msg.set(messageCounter)); 										// Send message to gw 
                	messageCounter = ++messageCounter % 100 ;							// wrap
                	send(msg2.set("Hallo")); 											// Send message to gw 
                	// Send update every SLEEP_TIME
                	wait(SLEEP_TIME) ;
                }
                
                void receive(const MyMessage &message) {  								// messages from node or controller
                	//char printBuf[40] ;
                	//Serial.print(message.getInt());
                		//sprintf(printBuf, "Message node: %d %d  OK\n", message.sender, message.getInt());
                }
                	//Serial.print(printBuf) ;
                	//sprintf(printBuf, "Messages: %d Errors: %d\n", messageCounter, messageErrorCounter);
                	//Serial.print(printBuf) ;
                
                
                

                Search forum here, you are not alone with this solution.

                H Offline
                H Offline
                hyperflemme
                wrote on last edited by
                #27

                @kimot THANKS !!!
                for 1 sensor it's ok, but if i had a 2nd sensor he doesn't work...

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


                19

                Online

                11.7k

                Users

                11.2k

                Topics

                113.1k

                Posts


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

                • Don't have an account? Register

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