 
					
						
					
				
				
					@martinhjelmare
Great, thanks.
The sketch now works as it should.
Below is the finished sketch.
I also added a counter so that after 10 consecutive interrupts from the motion sensor, the temp and hum get read and transmited. (motion-on generates an interrupt and motion-off generates an interrupt, so it's actually 5 motion triggers)
Otherwise if there is a lot of movement during a certain timeframe (mornings), hum and temp won't be measured.
Later I will edit the sketch to have all transmits together to save more battery power.
Here's the sketch:
/**
 * 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
 * This sketch provides an example how to implement a humidity/temperature
 * sensor using DHT11/DHT-22
 * http://www.mysensors.org/build/humidity
 */
#include <SPI.h>
#include <MySensor.h>
#include <DHT.h>
#define DIGITAL_INPUT_MOTION 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
#define INTERRUPT DIGITAL_INPUT_MOTION-2 // Usually the interrupt = pin -2 (on uno/nano anyway)
#define CHILD_ID_HUM 0
#define CHILD_ID_TEMP 1
#define CHILD_ID_MOT 2
#define HUMIDITY_SENSOR_DIGITAL_PIN 4
unsigned long SLEEP_TIME = 150000; // Sleep time between reads (in milliseconds)
MySensor gw;
DHT dht;
float lastTemp;
float lastHum;
boolean metric = true;
MyMessage msgHum(CHILD_ID_HUM, V_HUM);
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
MyMessage msgMot(CHILD_ID_MOT, V_TRIPPED);
int node_id = 20;
boolean lastTripped = false ;
int wake = 0;
int motionCount = 0;
void setup()
{
  gw.begin();
  dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);
  // Send the Sketch Version Information to the Gateway
  gw.sendSketchInfo("Humidity and motion", "1.1");
  pinMode(DIGITAL_INPUT_MOTION, INPUT);      // sets the motion sensor digital pin as input
  // Register all sensors to gw (they will be created as child devices)
  gw.present(CHILD_ID_HUM, S_HUM);
  gw.present(CHILD_ID_TEMP, S_TEMP);
  gw.present(CHILD_ID_MOT, S_MOTION);
  metric = gw.getConfig().isMetric;
}
void loop()
{
  Serial.println(wake);
  if (wake == 1 && motionCount <= 10) {
    Serial.println("wake by motion");
    Serial.println("reading motion");
    motion();
    motionCount = motionCount + 1;
    Serial.println(motionCount);
  }
  else {
    Serial.println("wake by timer");
    Serial.println("reading motion");
    motion();
    Serial.println("reading temp/hum");
    humTemp();
    motionCount = 0;
    Serial.println("motionCount is reset");
  }
  Serial.println("going to sleep now.");
  wake = gw.sleep(INTERRUPT, CHANGE, SLEEP_TIME);
}
void motion() {
  // Read digital motion value
  boolean tripped = digitalRead(DIGITAL_INPUT_MOTION);
  Serial.println(tripped);
  if (lastTripped != tripped) {
    gw.send(msgMot.set(tripped ? "1" : "0")); // Send tripped value to gw
    lastTripped = tripped;
  }
}
void humTemp() {
  gw.wait(dht.getMinimumSamplingPeriod());
  float temperature = dht.getTemperature();
  if (isnan(temperature)) {
    Serial.println("Failed reading temperature from DHT");
  } else if (temperature != lastTemp) {
    lastTemp = temperature;
    if (!metric) {
      temperature = dht.toFahrenheit(temperature);
    }
    gw.send(msgTemp.set(temperature, 1));
    Serial.print("T: ");
    Serial.println(temperature);
  }
  float humidity = dht.getHumidity();
  if (isnan(humidity)) {
    Serial.println("Failed reading humidity from DHT");
  } else if (humidity != lastHum) {
    lastHum = humidity;
    gw.send(msgHum.set(humidity, 1));
    Serial.print("H: ");
    Serial.println(humidity);
  }
}