internal void updateStateFromTCP(tcpPackage pack)
    {
        foreach (UDPEvent e in pack.events)
        {
            Logger.addToLogNewLine(smartToyName, " sensor " + e.typ + " " + e.id + " value " + e.val + " " + e.dur);
            switch (e.typ)
            {
            case "touchsensor":
                touchsensor.updateFromUDP(e.val, e.dur);
                break;

            case "button":
                button.updateFromUDP(e.id, e.val, e.dur);
                break;

            case "rfidsensor":
                rfidsensor.updateFromUDP(e.id, e.val, e.dur);
                break;

            //case "accelerometer": objectposition.updateAccFromUDP(e.id, e.val, e.dur); break;
            //case "gyroscope": objectposition.updateGyrFromUDP(e.id, e.val, e.dur); break;
            case "position":
                objectposition.updatePosFromUDP(e.id, e.val, e.dur);
                break;

            default:
                break;
            }
        }
    }
    /// <summary>
    /// update the smart object from an event form event stream
    /// </summary>
    /// <param name="content"></param>
    internal void updateFromTCPEvent(string content)
    {
        Debug.Log(content);
        tcpPackage package = JsonUtility.FromJson <tcpPackage>(content);

        updatefromTCPmessage(package);
        Logger.addToLogNewLine("ServerToy", "Got TCP event " + content);
    }
 /// <summary>
 /// update the message form event messages
 /// </summary>
 /// <param name="pack"></param>
 public void updatefromTCPmessage(tcpPackage pack)
 {
     for (int i = 0; i < transform.GetChild(1).childCount; i++)
     {
         if (transform.GetChild(1).GetChild(i).name == pack.id)
         {
             transform.GetChild(1).GetChild(i).GetComponent <SmartToy>().updateStateFromTCP(pack);
         }
     }
 }