コード例 #1
0
            static void GetFloors()
            {
                (List <Floorplan>, string)floorResults = DomoticzAPI.GetFloors();

                if (floorResults.Item1 != null)
                {
                    Console.WriteLine("IDx : Naam");
                    foreach (Floorplan dev in floorResults.Item1)
                    {
                        Console.WriteLine("{0} : {1}", dev.Idx, dev.Name);
                    }
                    Console.WriteLine();
                }
                else
                {
                    CustomLogWrites.LogWriter("Geen floors gevonden!");
                }
            }
コード例 #2
0
            static void GetRoomsByFloor()
            {
                Console.WriteLine("Geef naam van floor");
                (List <Floorplan>, string)roomResults = DomoticzAPI.GetRoomsbyFloor(Console.ReadLine());

                if (roomResults.Item1 != null)
                {
                    Console.WriteLine("IDx : Naam");
                    foreach (Floorplan room in roomResults.Item1)
                    {
                        Console.WriteLine("{0} : {1}", room.Idx, room.Name);
                    }
                    Console.WriteLine();
                }
                else
                {
                    CustomLogWrites.LogWriter("Geen rooms gevonden!");
                }
            }
コード例 #3
0
            /*
             * CUSTOM FUNCTIONS
             * These functions are for running the server
             */

            // DOMOTICZ FUNCTIONS
            static void GetDevicesByRoom()
            {
                Console.WriteLine("Geef IDx van kamer");
                (List <Device>, string)deviceResults = DomoticzAPI.GetDevicesByRoom(Console.ReadLine());

                if (deviceResults.Item1 != null)
                {
                    Console.WriteLine("IDx : Naam");
                    foreach (Device dev in deviceResults.Item1)
                    {
                        Console.WriteLine("{0} : {1}", dev.Devidx, dev.Name);
                    }
                }
                else
                {
                    CustomLogWrites.LogWriter("Geen devices gevonden!");
                }

                Console.WriteLine();
            }
コード例 #4
0
 static void SensorSwitch(bool switchState)
 {
     Console.WriteLine("Geef IDx van device");
     CustomLogWrites.LogWriter(DomoticzAPI.TriggerMotionDetector(Console.ReadLine(), switchState));
 }
コード例 #5
0
        static void Main(string[] args)
        {
            Assembly        assembly        = Assembly.GetExecutingAssembly();
            FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);

            Console.WriteLine("Verstoppertje server");
            Console.WriteLine("Version: " + fileVersionInfo.FileVersion);


            /*
             * STARTUP
             */

            // SETTINGS FILE
            Dictionary <String, String> settings = DataAccessLayer.getSettings();


            // SOCKETSERVER IP AND PORT
            string ipaddress  = settings["SERVER_IP"];
            int    portnumber = Int32.Parse(settings["SERVER_PORT"]);

            // DOMOTICZSERVER IP AND TESTCONNECTION
            DomoticzAPI domoticz = new DomoticzAPI(settings["DOMOTICZ_IP"]);

            (string responseCategory, string responseMessage) = domoticz.TestConnection();
            if (responseCategory == "success")
            {
                CustomLogWrites.LogWriter(responseMessage);
            }
            else if (responseCategory == "log")
            {
                CustomLogWrites.ErrorWriter(responseMessage);
                CustomLogWrites.DomoticzLogWriter(DomoticzAPI.GetLogInfo());
            }
            else if (responseCategory == "error")
            {
                CustomLogWrites.ErrorWriter(responseMessage);
                Console.WriteLine("Druk op enter om te stoppen...");
                Console.ReadLine();
                Environment.Exit(0);
            }

            // STARTING SOCKETSERVER
            CustomLogWrites.LogWriter("Socket server aanmaken");
            SocketServer.SocketServer.PrepareSocket(ipaddress, portnumber);
            CustomLogWrites.LogWriter("Socket server aangemaakt op ipaddress: " + ipaddress + " en poort " + portnumber.ToString());
            //SocketServer.SocketServer.StartListening();

            // Console for executing commands

            // List with all the executable functions (FUNCTIONNAME, DESCRIPTION, FUNCTION TO EXECUTE)
            List <(string, string, Action)> commands = new List <(string, string, Action)>()
            {
                ("quit", "Stopt de server", () => Environment.Exit(0)),
                ("domoticzlog", "Haalt log van Domoticz Server op", () => CustomLogWrites.DomoticzLogWriter(DomoticzAPI.GetLogInfo())),
                ("getfloors", "Geeft vloerplannen van de afdelingen van Domoticz terug", () => GetFloors()),
                ("getrooms", "Geeft vloerplannen van de kamer van Domoticz terug", () => GetRoomsByFloor()),
                ("get_devices_by_room", "Geeft devices van de kamer in Domoticz terug", () => GetDevicesByRoom()),
                ("triggerSensor", "Triggert een sensor", () => SensorSwitch(true)),
                ("sensorOn", "Zet sensor aan", () => SensorSwitch(true)),
                ("sensorOff", "Zet sensor uit", () => SensorSwitch(false)),
                ("startSocket", "Zet socket server aan", () => SocketServer.SocketServer.StartListening()),
                ("getClients", "Geeft alle verbonden clients terug", () => SocketServer.SocketServer.GetConnectedClients()),
                ("sendTestMessage", "Stuurt bericht naar client", () => SendTestMessage()),
                ("createDatabase", "Maak een nieuwe database", () => DataAccessLayer.DatabaseInitializer()),
                ("getUser", "Haal gebruiker op", () => GetAUser()),
                ("newUser", "Maak een nieuwe gebruiker aan", () => MakeNewUser()),
                ("changeUser", "Pas een bestaande gebruiker aan", () => ChangeAUser()),
                ("deleteUser", "Verwijder een bestaande gebruiker", () => DeleteAUser())
            };


            bool done = false;

            while (!done)
            {
                Console.Write("Geef een commando. Typ 'help' voor hulp.\n: ");
                string commandResponse = Console.ReadLine();

                if (commandResponse == "help")
                {
                    Console.WriteLine("COMMANDO'S\n-----------------------");
                    foreach ((string functionName, string description, Action function) in commands)
                    {
                        Console.WriteLine("{0} : {1}", functionName, description);
                    }
                    Console.WriteLine();
                }
                else
                {
                    foreach ((string functionName, string description, Action function) in commands)
                    {
                        if (commandResponse == functionName)
                        {
                            function.Invoke();
                        }
                    }
                }
            }