// Permet d'associer un token à une zibase. Ce token sera ensuite utilisé pour récupérer des données depuis la plateforme zodianet (liste des scénarios par exemple)
        public void SetZibaseToken(string sZibaseName, string sToken)
        {
            if ((m_ZibaseList.Keys.Contains(sZibaseName)))
            {
                var zb = new ZibaseInfo();

                zb = m_ZibaseList[sZibaseName];
                zb.sToken = sToken;
                m_ZibaseList[sZibaseName] = zb;
            }
        }
        private void AddZibaseToCollection(string sZibaseName, long lIpAddress)
        {
            var seInfo = new SensorInfo();

            if ((string.IsNullOrEmpty(sZibaseName)))
            {
                sZibaseName = "Unknown";
            }

            if ((!m_ZibaseList.Keys.Contains(sZibaseName)))
            {
                var zb = new ZibaseInfo {sLabelBase = sZibaseName, lIpAddress = lIpAddress};
                m_ZibaseList.Add(sZibaseName, zb);
                if (NewZibaseDetected != null)
                    NewZibaseDetected(zb);
                if (WriteMessage != null)
                    WriteMessage("New Zibase Detected : " + sZibaseName, MSG_INFO);

                // Creation d'un sensor virtuel pour la detection de l'availability de la Zibase
                seInfo.sName = "Zibase State";
                seInfo.sID = sZibaseName;
                seInfo.sType = "lnk";
                seInfo.sValue = "Online";
                seInfo.sHTMLValue = "Online";
                seInfo.dwValue = 2;

                if ((_SensorList.Keys.Contains(sZibaseName + "lnk")))
                {
                    seInfo.sHSName = _SensorList[sZibaseName + "lnk"].sHSName;
                    seInfo.sDevice = _SensorList[sZibaseName + "lnk"].sDevice;

                    _SensorList[sZibaseName + "lnk"] = seInfo;
                }
                else
                {
                    _SensorList.Add(sZibaseName + "lnk", seInfo);
                    if (NewSensorDetected != null)
                        NewSensorDetected(seInfo);
                }
                if (UpdateSensorInfo != null)
                    UpdateSensorInfo(seInfo);
            }
        }
        public string GetScenarioList(string sZibaseName)
        {
            string functionReturnValue = null;
            if ((m_ZibaseList.Keys.Contains(sZibaseName)))
            {
                var zb = new ZibaseInfo();

                zb = m_ZibaseList[sZibaseName];

                if ((zb.sToken == null))
                {
                    functionReturnValue = "Token must be defined";
                }
                else
                {
                    // On charge la liste des scènarios depuis la plateforme zodianet
                    var xDoc = new XmlDocument();

                    xDoc.Load("http://www.zibase.net/m/get_xml.php?device=" + sZibaseName + "&token=" + zb.sToken);

                    XmlNodeList scenario = xDoc.GetElementsByTagName("m");
                    string sSceList = null;

                    sSceList = "";

                    {
                        string s = null;
                        string sce_name = null;

                        foreach (XmlNode node in scenario)
                        {
                            s = node.Attributes.GetNamedItem("id").Value;
                            sce_name = node.ChildNodes.Item(0).InnerText;

                            if ((!string.IsNullOrEmpty(sSceList)))
                                sSceList = sSceList + "|";
                            sSceList = sSceList + sce_name + ";" + s;
                        }

                        functionReturnValue = sSceList;
                    }
                }
            }
            else
            {
                functionReturnValue = "Zibase not found";
            }
            return functionReturnValue;
        }