1. The command you want is setGroupId ... check the old online command reference for details. Search the FAQ for how to get "Papa Bear". Use toadlife's tute to change Papa Bear to something else. Use the command setIdentity to give a name to a particular unit.
However, if you want to give the group (or unit) a name to use in scripts, none of the above will help you. Write in the init field of the group leader:-
grp1 = group this
2. The answer to your never ending quest is to understand eventhandlers. Once you understand how to use the eventhandler "fired", everything else will fall into place.
The hasWeapon method you have identified might work in principle, except that smokeshells - I think - are ammo and not weapons. Worth a try though, something like
? not (MyGuy hasWeapon "smokeshellred"): MyGuy sidechat "Smoke out!"
that's only a guess though.