diff --git a/NodeManagerTemplate/NodeManager.cpp b/NodeManagerTemplate/NodeManager.cpp
index 56d4e6a50f5b0a1e5515352832eb47e5d1cc3bca..c747f8c6050364115fea4ea355f3f4a3d2f291f1 100644
--- a/NodeManagerTemplate/NodeManager.cpp
+++ b/NodeManagerTemplate/NodeManager.cpp
@@ -704,14 +704,18 @@ void SensorSwitch::setMode(int value) {
 int SensorSwitch::getMode() {
   return _mode;
 }
-// setter/getter
 void SensorSwitch::setDebounce(int value) {
   _debounce = value;
 }
-// setter/getter
 void SensorSwitch::setTriggerTime(int value) {
   _trigger_time = value;
 }
+void SensorSwitch::setInitial(int value) {
+  _initial = value;
+}
+int SensorSwitch::getInitial() {
+  return _initial;
+}
 
 // what do to during setup
 void SensorSwitch::onBefore() {
@@ -763,6 +767,8 @@ SensorMotion::SensorMotion(int child_id, int pin): SensorSwitch(child_id,pin) {
   setPresentation(S_MOTION);
   // capture only when it triggers
   setMode(RISING);
+  // set initial value to LOW
+  setInitial(LOW);
 }
 
 /*
@@ -1013,7 +1019,8 @@ int NodeManager::registerSensor(int sensor_type, int pin, int child_id) {
       else if (sensor_type == SENSOR_DOOR) index = registerSensor(new SensorDoor(child_id, pin));
       else if (sensor_type == SENSOR_MOTION) index = registerSensor(new SensorMotion(child_id, pin));
       // set an interrupt on the pin and activate internal pull up
-      setInterrupt(pin,((SensorSwitch*)get(index))->getMode(),HIGH);
+      SensorSwitch* sensor = (SensorSwitch*)get(index);
+      setInterrupt(pin,sensor->getMode(),sensor->getInitial());
       return index;
     }
   #endif
diff --git a/NodeManagerTemplate/NodeManager.h b/NodeManagerTemplate/NodeManager.h
index b259b08e0f063ce0ea1ce251a6a78168625e8dfc..def4712c1541e1e6a5943a4c2d6707dd068ac721 100644
--- a/NodeManagerTemplate/NodeManager.h
+++ b/NodeManagerTemplate/NodeManager.h
@@ -496,6 +496,9 @@ class SensorSwitch: public Sensor {
     void setDebounce(int value);
     // time to wait in milliseconds after a change is detected to allow the signal to be restored to its normal value (default: 0)
     void setTriggerTime(int value);
+    // Set initial value on the interrupt pin (default: HIGH)
+    void setInitial(int value);
+    int getInitial();
     // define what to do at each stage of the sketch
     void onBefore();
     void onLoop();
@@ -504,6 +507,7 @@ class SensorSwitch: public Sensor {
     int _debounce = 0;
     int _trigger_time = 0;
     int _mode = CHANGE;
+    int _initial = HIGH;
 };
 
 /*
diff --git a/NodeManagerTemplate/config.h b/NodeManagerTemplate/config.h
index c0ae2be9f13cadb655a734aa6bb8db184d53f98f..32e529600fd46758279739193cb4b94aeb7ae034 100644
--- a/NodeManagerTemplate/config.h
+++ b/NodeManagerTemplate/config.h
@@ -6,7 +6,7 @@
  */
 
 #define SKETCH_NAME "NodeManagerTemplate"
-#define SKETCH_VERSION "1.2"
+#define SKETCH_VERSION "1.3-dev"
 
 /**********************************
  * MySensors configuration