Reset ARDUINO UNO

Je voudrais faire un reset de ma carte par sms

J'ai découvert sur le net deux méthodes :

Par hard
une sortie digitale reliée à la pine reset avec une instruction digitalWrite et le reset se fait bien MAIS le reset n'est pas identique à celui du bouton-poussoir embarqué car je constate que le reset se fait uniquement sur le loop() et pas au début du croquis

Par Soft
Par les 2 lignes void(* resetFunc) (void) = 0; et resetFunc();
Ca fonctionne MAIS là aussi c'est le loop() mais c'est pire encore car les sorties digitales ne sont pas réinitialisées

Y-a-t-il une méthode qui agirait exactement comme le bouton reset embarqué?

Why do you need to reset the board ?

Pourquoi avez-vous besoin de réinitialiser la carte?

You can define a macro,

#define reset()       __asm__ __volatile__ ("JMP  0x0000 \n")

which will restart the board when you invoke reset();

DKWatson:
You can define a macro,

#define reset()       __asm__ __volatile__ ("JMP  0x0000 \n")

which will restart the board when you invoke reset();

In arduino
How to write this strange string?
As following?

#define reset() asm volatile ("JMP 0x0000 \n")

If i write it as above i have an compile error : variable or field 'asm' declared void

DKWatson:
You can define a macro,

#define reset()       __asm__ __volatile__ ("JMP  0x0000 \n")

which will restart the board when you invoke reset();

Finally i found the solution looking here : Arduino Software Reset - CodeProject

I used the Watchdog Reset - The Recommended Method
I don't know how that work but i have now a TRUE reset as if i had pressed the reset push-button

A specialist can explain the working?

Thanks DKWatson for your proposition

Why exactly do you want to reset the board ?

Sorry for the late
I use a gsm to send orders to a pellet fireplace for start, stop it and also to mesure ambient temperature of a cottage located 100kms away

I sometimes do not know if the stove is already running or already stopped ... In doubt I prefer in this case start from 0 by resetting the Arduino board