In regards to the "Function not found" dilemma then went down.
So this might be a dumb idea, but it was a thought I had and being the curious person I am I figure I may as well ask it. Rather than using the functions name to locate it on the device why not use and I'd number using a short or int, or other even a byte. Rather than capping the function name at 12 bytes use the id. When registered with the cloud create some form of mapping table on the cloud. That way you could have longer function names. I'm not super familiar with the inner workings of the device firmware yet as I have only been looking at the code for a day or so now, and am also relatively new at embedded systems. But after the initial registration in the setup() function the bytes in ram from the string used .function would be reclaimed automatically after the function returns execution to wherever its initiated at, obviously unless its on the heap / there is a pointer right? The only implication I can see is used flash space, and maybe a lot of changes to the register functionality. Please correct me if Im way off!!! It's just a late night thought. I'm interested to hear why or why not it's a bad/good idea, or if it was already consider.