This is usually just an artifact of the ST App not updating quickly. This has been an issue for years. As long as the device does what it is supposed to do, thee really is no harm if the ST App is a bit sluggish. On iOS you can drag the screen down to force a refresh of the ST App.
You can control the initial conditions to make sure the outputs are in the correct states at startup by adjusting the parameters when you declare the devices in your sketch.
// Create an instance of this class in your sketch's global variable section // For Example: st::S_TimedRelay sensor1("relaySwitch1", PIN_RELAY, LOW, true, 1000, 0, 1); // // st::S_TimedRelay() constructor requires the following arguments // - String &name - REQUIRED - the name of the object - must match the Groovy ST_Anything DeviceType tile name // - byte pinOutput - REQUIRED - the Arduino Pin to be used as a digital output // - bool startingState - REQUIRED - the value desired for the initial state of the switch. LOW = "off", HIGH = "on" // - bool invertLogic - REQUIRED - determines whether the Arduino Digital Ouput should use inverted logic // - long onTime - REQUIRED - the number of milliseconds to keep the output on, DEFGAULTS to 1000 milliseconds // - long offTime - OPTIONAL - the number of milliseconds to keep the output off, DEFAULTS to 0 // - intnumCycles - OPTIONAL - the number of times to repeat the on/off cycle, DEFAULTS to 1 //