You'd be best to simply write a script; so for the fire place, it would probably be better to just have this going:
(nil = [this,5,19,{_this inflame false},{_this inflame true}] execvm "firelit.sqf")
_object = _this select 0;
_time0 = _this select 1; //min daylight
_time1 =_this select 2; //max daylight
_code0 = _this select 3;
_code1 = _this select 4;
waituntil {
if ((daytime > _time0) and (daytime < _time1)) then {
_object call _code0
} else {
_object call _code1
};
sleep 60;
0 >= 1 //(or any exit condition of your choice)
}
Should do the trick, tell me if you have any problems.