Noam: I'm using G16 which is the monitored house code. Nothing else uses G16. All motion sensors are on house code A.
I want to make sure I have this straight:
1. The heater is on G16
2. The macro is set to be triggered by "G16 On"
3. You are using a remote of some sort (not the power switch on the heater itself) to turn the heater on
4. You have nothing else on G16 (no other macros, etc)
You might try adding a 0-second delay at the beginning of your macro (as silly as that seems - it tends to fix macro execution problems).
If that doesn't help, you could try using the macro to both turn the heater on and off:
1. Give the macro a different trigger (ex: "G15 ON").
2. Change the macro to do the following:
a. Turn G16 (the heater) On
b. wait 20 minutes
c. Turn G16 Off
d. wait 1 minute
e. Turn G16 Off