Hi Garry and welcome to the VC forum.
Very nice first post!
Being in North America I can't make use of a Tellstick but I hope some others will be able to get a leg up using your xml.
I can answer one or two of your questions, and maybe suggest something.
Yes, you must have at least one
normal phrase in every command. You can't just use payloads. That is because payloads carry a value for the payload, but the phrases (well the first phrase anyway) carries the ID of the command which is used to find the macro which needs to be run when your voice command is recognized. However, in the case of your toggle command, I think you might be able to replace your payloads with phrases and then use the {LastSpoken} variable, if you are careful. The other option would be to break it up into multiple commands. That said, longer command phrases are more reliable anyway (especially when you start to get a lot of commands in your tree) so adding the please at the end is good or what would be even better would be to put a "toggle" phrase at the beginning of your command, and then you could make the "please" phrase optional.
Also I can see that you are storing your light states with files. This method works fine but I think you would be happier using maps.
http://voxcommando.com/mediawiki/index.php?title=MapsI'm not too familiar with the syntax or the output of the tdtool.exe but if you have a lot of devices, you can probably use something like:
tdtool.exe --listdevices >> telstickdevices.txt
then from there you could create a payloadXML file by various methods depending on the output (either manual or automated).
Hope this helps.