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. Development
  3. rfm69 and atc

rfm69 and atc

Scheduled Pinned Locked Moved Development
49 Posts 13 Posters 15.5k Views 12 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.
  • FleischtorteF Offline
    FleischtorteF Offline
    Fleischtorte
    wrote on last edited by
    #36

    @lafleur thanks for your work! On the weekend i was able to upgrade the driver and enable ATC with RSSI-Report. With the instructions from PR440 it was very easy :thumbsup:

    frenchoF 1 Reply Last reply
    0
    • L Offline
      L Offline
      lafleur
      wrote on last edited by
      #37

      It's great to see that you got it all working from the PR440. I hope others will find your work useful....

      I'm my test,it works very well.....

      B 1 Reply Last reply
      0
      • FleischtorteF Fleischtorte

        @lafleur thanks for your work! On the weekend i was able to upgrade the driver and enable ATC with RSSI-Report. With the instructions from PR440 it was very easy :thumbsup:

        frenchoF Offline
        frenchoF Offline
        frencho
        wrote on last edited by
        #38

        @Fleischtorte would you accept to share the work ? I started to play with the RFM69, but didn't get to the ATC part yet. It could save me a couple of hours, and debug ^^

        Your second life begins when you understand you only have one !

        1 Reply Last reply
        0
        • L lafleur

          It's great to see that you got it all working from the PR440. I hope others will find your work useful....

          I'm my test,it works very well.....

          B Offline
          B Offline
          BenCranston
          wrote on last edited by
          #39

          @lafleur @Fleischtorte @frencho I think I'm a bit dense today. I don't understand where the code currently sits in terms of something that could be tested. I see that PR440 was closed and referenced to go back to PR437 or open a new PR? I'd love to give ATC code a go on my RFM69HW's. Is it being integrated into the development branch? How would I go about testing at this time? I did a quick look at the codebase in git and there is no mention of ATC in the MySensors dev branch... A quick diff of the RFM69.cpp code from Felix and MySensors shows a few differences, so they are not 100% in sync. Alas, I'm at a loss on how to apply the work already done to test.. I can "git clone" like a banshee, but beyond that I'm lost with Jenkins. Sorry, again, dense today...

          Any advice on how I can help is appreciated. I can test pretty easily. All of my nodes are Moteino's with RFM69HW radios.

          Thanks again for everyone's efforts and work to make ATC a reality in the MySensors codebase!

          1 Reply Last reply
          0
          • FleischtorteF Offline
            FleischtorteF Offline
            Fleischtorte
            wrote on last edited by Fleischtorte
            #40

            @frencho @BenCranston
            This is my implementation of PR440

            first download new RFM69 driver from LowPowerLab https://github.com/LowPowerLab/RFM69/archive/master.zip
            Replace the files from libraries\MySensors\drivers\RFM69 (copy all and replace)

            Change in file RFM69.cpp line 31-32

            #include <RFM69.h>
            #include <RFM69registers.h>
            

            to

            #include "RFM69.h"
            #include "RFM69registers.h"
            

            in RFM69_ATC.cpp line 32-34

            #include <RFM69_ATC.h>
            #include <RFM69.h>   // include the RFM69 library files as well
            #include <RFM69registers.h>
            

            to

            #include "RFM69_ATC.h"
            #include "RFM69.h"   // include the RFM69 library files as well
            #include "RFM69registers.h"
            

            i think this was the driver..

            next was mysensors

            in file libraries/MySensors/MySensor.h line 268

            #include "drivers/RFM69/RFM69_ATC.cpp"
            

            in file libraries/MySensors/core/MyTransportRFM69.cpp
            first in line 24

            #include "drivers/RFM69/RFM69_ATC.h"
            

            line 25-26

            RFM69 _radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
            uint8_t _address;
            

            to

            #ifdef MY_RFM69_Enable_ATC
               RFM69_ATC 	_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
            #else
               RFM69 		_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);	
            #endif
            uint8_t _address;
            

            and line 53 idk if this is necessary

            return _radio.sendWithRetry(to,data,len);
            

            to

            	return _radio.sendWithRetry(to,data,len,5);
            

            btw i use not the dev version

            https://github.com/mysensors/MySensors/pull/440 see comment from trlafleur

            there is my testing node (molgan PIR )

            /**
             * 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_NODE_ID 4
            #define MY_RADIO_RFM69
            #define MY_RFM69_FREQUENCY RF69_868MHZ
            #define MY_RFM69_NETWORKID 121
            #define MY_RFM69_ENABLE_ENCRYPTION
            #define MY_RFM69_Enable_ATC
            #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
            #define CHILD_ID_RSSI 7 // Id for RSSI Value
            
            // Initialize motion message
            MyMessage msg(CHILD_ID, V_TRIPPED);
            // Initialize RSSI message
            MyMessage rssiMsg(CHILD_ID_RSSI,V_TEXT);
            void setup()  
            {  
              
              
              #ifdef MY_RFM69_Enable_ATC
                _radio.enableAutoPower(-70);
                Serial.println("ATC Aktiviert");
              #endif
              
              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("Molgan-PIR", "1.0");
            
              // Register all sensors to gw (they will be created as child devices)
              present(CHILD_ID, S_DOOR);
              present(CHILD_ID_RSSI, S_INFO);
            }
            
            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 
              
              int var1 = _radio.RSSI;
              send(rssiMsg.set(var1));  // Send RSSI value to gw
            
              // Sleep until interrupt comes in on motion sensor. Send update every two minute.
              sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
            }
            
            

            i hope this helps :) im just learing mysensors & co :expressionless:

            david

            B frenchoF 3 Replies Last reply
            2
            • FleischtorteF Fleischtorte

              @frencho @BenCranston
              This is my implementation of PR440

              first download new RFM69 driver from LowPowerLab https://github.com/LowPowerLab/RFM69/archive/master.zip
              Replace the files from libraries\MySensors\drivers\RFM69 (copy all and replace)

              Change in file RFM69.cpp line 31-32

              #include <RFM69.h>
              #include <RFM69registers.h>
              

              to

              #include "RFM69.h"
              #include "RFM69registers.h"
              

              in RFM69_ATC.cpp line 32-34

              #include <RFM69_ATC.h>
              #include <RFM69.h>   // include the RFM69 library files as well
              #include <RFM69registers.h>
              

              to

              #include "RFM69_ATC.h"
              #include "RFM69.h"   // include the RFM69 library files as well
              #include "RFM69registers.h"
              

              i think this was the driver..

              next was mysensors

              in file libraries/MySensors/MySensor.h line 268

              #include "drivers/RFM69/RFM69_ATC.cpp"
              

              in file libraries/MySensors/core/MyTransportRFM69.cpp
              first in line 24

              #include "drivers/RFM69/RFM69_ATC.h"
              

              line 25-26

              RFM69 _radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
              uint8_t _address;
              

              to

              #ifdef MY_RFM69_Enable_ATC
                 RFM69_ATC 	_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
              #else
                 RFM69 		_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);	
              #endif
              uint8_t _address;
              

              and line 53 idk if this is necessary

              return _radio.sendWithRetry(to,data,len);
              

              to

              	return _radio.sendWithRetry(to,data,len,5);
              

              btw i use not the dev version

              https://github.com/mysensors/MySensors/pull/440 see comment from trlafleur

              there is my testing node (molgan PIR )

              /**
               * 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_NODE_ID 4
              #define MY_RADIO_RFM69
              #define MY_RFM69_FREQUENCY RF69_868MHZ
              #define MY_RFM69_NETWORKID 121
              #define MY_RFM69_ENABLE_ENCRYPTION
              #define MY_RFM69_Enable_ATC
              #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
              #define CHILD_ID_RSSI 7 // Id for RSSI Value
              
              // Initialize motion message
              MyMessage msg(CHILD_ID, V_TRIPPED);
              // Initialize RSSI message
              MyMessage rssiMsg(CHILD_ID_RSSI,V_TEXT);
              void setup()  
              {  
                
                
                #ifdef MY_RFM69_Enable_ATC
                  _radio.enableAutoPower(-70);
                  Serial.println("ATC Aktiviert");
                #endif
                
                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("Molgan-PIR", "1.0");
              
                // Register all sensors to gw (they will be created as child devices)
                present(CHILD_ID, S_DOOR);
                present(CHILD_ID_RSSI, S_INFO);
              }
              
              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 
                
                int var1 = _radio.RSSI;
                send(rssiMsg.set(var1));  // Send RSSI value to gw
              
                // Sleep until interrupt comes in on motion sensor. Send update every two minute.
                sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
              }
              
              

              i hope this helps :) im just learing mysensors & co :expressionless:

              david

              B Offline
              B Offline
              BenCranston
              wrote on last edited by
              #41

              @Fleischtorte Sweet!! This I can do. I'll make the changes and start testing tonight. thanks for the explicit help.

              -Ben

              frenchoF 1 Reply Last reply
              0
              • FleischtorteF Fleischtorte

                @frencho @BenCranston
                This is my implementation of PR440

                first download new RFM69 driver from LowPowerLab https://github.com/LowPowerLab/RFM69/archive/master.zip
                Replace the files from libraries\MySensors\drivers\RFM69 (copy all and replace)

                Change in file RFM69.cpp line 31-32

                #include <RFM69.h>
                #include <RFM69registers.h>
                

                to

                #include "RFM69.h"
                #include "RFM69registers.h"
                

                in RFM69_ATC.cpp line 32-34

                #include <RFM69_ATC.h>
                #include <RFM69.h>   // include the RFM69 library files as well
                #include <RFM69registers.h>
                

                to

                #include "RFM69_ATC.h"
                #include "RFM69.h"   // include the RFM69 library files as well
                #include "RFM69registers.h"
                

                i think this was the driver..

                next was mysensors

                in file libraries/MySensors/MySensor.h line 268

                #include "drivers/RFM69/RFM69_ATC.cpp"
                

                in file libraries/MySensors/core/MyTransportRFM69.cpp
                first in line 24

                #include "drivers/RFM69/RFM69_ATC.h"
                

                line 25-26

                RFM69 _radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
                uint8_t _address;
                

                to

                #ifdef MY_RFM69_Enable_ATC
                   RFM69_ATC 	_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
                #else
                   RFM69 		_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);	
                #endif
                uint8_t _address;
                

                and line 53 idk if this is necessary

                return _radio.sendWithRetry(to,data,len);
                

                to

                	return _radio.sendWithRetry(to,data,len,5);
                

                btw i use not the dev version

                https://github.com/mysensors/MySensors/pull/440 see comment from trlafleur

                there is my testing node (molgan PIR )

                /**
                 * 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_NODE_ID 4
                #define MY_RADIO_RFM69
                #define MY_RFM69_FREQUENCY RF69_868MHZ
                #define MY_RFM69_NETWORKID 121
                #define MY_RFM69_ENABLE_ENCRYPTION
                #define MY_RFM69_Enable_ATC
                #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
                #define CHILD_ID_RSSI 7 // Id for RSSI Value
                
                // Initialize motion message
                MyMessage msg(CHILD_ID, V_TRIPPED);
                // Initialize RSSI message
                MyMessage rssiMsg(CHILD_ID_RSSI,V_TEXT);
                void setup()  
                {  
                  
                  
                  #ifdef MY_RFM69_Enable_ATC
                    _radio.enableAutoPower(-70);
                    Serial.println("ATC Aktiviert");
                  #endif
                  
                  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("Molgan-PIR", "1.0");
                
                  // Register all sensors to gw (they will be created as child devices)
                  present(CHILD_ID, S_DOOR);
                  present(CHILD_ID_RSSI, S_INFO);
                }
                
                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 
                  
                  int var1 = _radio.RSSI;
                  send(rssiMsg.set(var1));  // Send RSSI value to gw
                
                  // Sleep until interrupt comes in on motion sensor. Send update every two minute.
                  sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
                }
                
                

                i hope this helps :) im just learing mysensors & co :expressionless:

                david

                frenchoF Offline
                frenchoF Offline
                frencho
                wrote on last edited by
                #42

                @Fleischtorte
                thanks for the details, I'll look into it, as soon as I have my RFM69 GW talking to my RFM69 node

                Your second life begins when you understand you only have one !

                1 Reply Last reply
                0
                • FleischtorteF Fleischtorte

                  @frencho @BenCranston
                  This is my implementation of PR440

                  first download new RFM69 driver from LowPowerLab https://github.com/LowPowerLab/RFM69/archive/master.zip
                  Replace the files from libraries\MySensors\drivers\RFM69 (copy all and replace)

                  Change in file RFM69.cpp line 31-32

                  #include <RFM69.h>
                  #include <RFM69registers.h>
                  

                  to

                  #include "RFM69.h"
                  #include "RFM69registers.h"
                  

                  in RFM69_ATC.cpp line 32-34

                  #include <RFM69_ATC.h>
                  #include <RFM69.h>   // include the RFM69 library files as well
                  #include <RFM69registers.h>
                  

                  to

                  #include "RFM69_ATC.h"
                  #include "RFM69.h"   // include the RFM69 library files as well
                  #include "RFM69registers.h"
                  

                  i think this was the driver..

                  next was mysensors

                  in file libraries/MySensors/MySensor.h line 268

                  #include "drivers/RFM69/RFM69_ATC.cpp"
                  

                  in file libraries/MySensors/core/MyTransportRFM69.cpp
                  first in line 24

                  #include "drivers/RFM69/RFM69_ATC.h"
                  

                  line 25-26

                  RFM69 _radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
                  uint8_t _address;
                  

                  to

                  #ifdef MY_RFM69_Enable_ATC
                     RFM69_ATC 	_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);
                  #else
                     RFM69 		_radio(MY_RF69_SPI_CS, MY_RF69_IRQ_PIN, MY_RFM69HW, MY_RF69_IRQ_NUM);	
                  #endif
                  uint8_t _address;
                  

                  and line 53 idk if this is necessary

                  return _radio.sendWithRetry(to,data,len);
                  

                  to

                  	return _radio.sendWithRetry(to,data,len,5);
                  

                  btw i use not the dev version

                  https://github.com/mysensors/MySensors/pull/440 see comment from trlafleur

                  there is my testing node (molgan PIR )

                  /**
                   * 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_NODE_ID 4
                  #define MY_RADIO_RFM69
                  #define MY_RFM69_FREQUENCY RF69_868MHZ
                  #define MY_RFM69_NETWORKID 121
                  #define MY_RFM69_ENABLE_ENCRYPTION
                  #define MY_RFM69_Enable_ATC
                  #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
                  #define CHILD_ID_RSSI 7 // Id for RSSI Value
                  
                  // Initialize motion message
                  MyMessage msg(CHILD_ID, V_TRIPPED);
                  // Initialize RSSI message
                  MyMessage rssiMsg(CHILD_ID_RSSI,V_TEXT);
                  void setup()  
                  {  
                    
                    
                    #ifdef MY_RFM69_Enable_ATC
                      _radio.enableAutoPower(-70);
                      Serial.println("ATC Aktiviert");
                    #endif
                    
                    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("Molgan-PIR", "1.0");
                  
                    // Register all sensors to gw (they will be created as child devices)
                    present(CHILD_ID, S_DOOR);
                    present(CHILD_ID_RSSI, S_INFO);
                  }
                  
                  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 
                    
                    int var1 = _radio.RSSI;
                    send(rssiMsg.set(var1));  // Send RSSI value to gw
                  
                    // Sleep until interrupt comes in on motion sensor. Send update every two minute.
                    sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
                  }
                  
                  

                  i hope this helps :) im just learing mysensors & co :expressionless:

                  david

                  frenchoF Offline
                  frenchoF Offline
                  frencho
                  wrote on last edited by
                  #43

                  @Fleischtorte is your code example working ? I mean do you see the RSSI going down to -70 ?
                  Cause on this page https://lowpowerlab.com/2015/11/11/rfm69_atc-automatic-transmission-control/ Felix says we must use a radio.sendwithretry ?!
                  I'm a little confused it not working so I'm digging

                  Your second life begins when you understand you only have one !

                  1 Reply Last reply
                  0
                  • B BenCranston

                    @Fleischtorte Sweet!! This I can do. I'll make the changes and start testing tonight. thanks for the explicit help.

                    -Ben

                    frenchoF Offline
                    frenchoF Offline
                    frencho
                    wrote on last edited by
                    #44

                    @BenCranston did you get it to work ?

                    Your second life begins when you understand you only have one !

                    1 Reply Last reply
                    0
                    • FleischtorteF Offline
                      FleischtorteF Offline
                      Fleischtorte
                      wrote on last edited by Fleischtorte
                      #45

                      @Frencho radio.sendwithretry is used (see line 53 in libraries/MySensors/core/MyTransportRFM69.cpp) and ATC must be enabled on GW/Node (use _radio.enableAutoPower(-70); only on the node side).
                      It seems you need continous traffic to see the effect of ATC (i use a simple relay sketch which reports the rssi with every switch command).

                      1 Reply Last reply
                      0
                      • nagelcN Offline
                        nagelcN Offline
                        nagelc
                        wrote on last edited by
                        #46

                        How is the ATC working out? I think it is a neat feature, but am reluctant to mess with the core MySensors libraries.

                        1 Reply Last reply
                        1
                        • FleischtorteF Offline
                          FleischtorteF Offline
                          Fleischtorte
                          wrote on last edited by
                          #47

                          hi ,

                          it works but not very stable... after a while the sensors become offline so i revert to the stable version of MySensors.

                          1 Reply Last reply
                          0
                          • C Offline
                            C Offline
                            cablesky
                            wrote on last edited by
                            #48

                            how is the status now?? Works the ATC now?

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

                              @cablesky
                              it is not included in Mysensors yet as it breaks compatibility with current packet protocol.
                              It's planned in an upcoming release, and working well ;)

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


                              17

                              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