Example #1
0
        private static void CheckSettings(int endSleepingHour, int endSleepingMin, int startSleepingHour, int startSleepingMin, int httpPort, bool combineChargingStates,
                                          bool useScanmyTesla, bool streamingPos, Tools.UpdateType onlineUpdates, string gPower, string gTemperature, string gLanguage, string gURLAdmin, string gRange,
                                          string gURL_Grafana, string gDefaultcar, string gDefaultCarId)
        {
            Tools.EndSleeping(out int hour, out int min);
            Assert.AreEqual(endSleepingHour, hour);
            Assert.AreEqual(endSleepingMin, min);

            Tools.StartSleeping(out int startHour, out int endHour);
            Assert.AreEqual(startSleepingHour, startHour);
            Assert.AreEqual(startSleepingMin, endHour);

            int port = Tools.GetHttpPort();

            Assert.AreEqual(httpPort, port);

            var ccs = Tools.CombineChargingStates();

            Assert.AreEqual(combineChargingStates, ccs);

            var sp = Tools.StreamingPos();

            Assert.AreEqual(streamingPos, sp);

            var scanMyTesla = Tools.UseScanMyTesla();

            Assert.AreEqual(useScanmyTesla, scanMyTesla);

            var update = Tools.GetOnlineUpdateSettings();

            Assert.AreEqual(onlineUpdates, update);

            Tools.GrafanaSettings(out string power, out string temperature, out string length, out string language, out string URL_Admin,
                                  out string Range, out string URL_Grafana, out string defaultcar, out string defaultcarid);
            Assert.AreEqual(gPower, power);
            Assert.AreEqual(gTemperature, temperature);
            Assert.AreEqual(gLanguage, language);
            Assert.AreEqual(gURLAdmin, URL_Admin);
            Assert.AreEqual(gRange, Range);
            Assert.AreEqual(gURL_Grafana, URL_Grafana);
            Assert.AreEqual(gDefaultcar, defaultcar);
            Assert.AreEqual(gDefaultCarId, defaultcarid);

            var msKeepDays = Tools.GetMothershipKeepDays();

            Assert.AreEqual(14, msKeepDays);

            int settingsInt = Tools.GetSettingsInt("SleepTimeSpanStart", -12345);

            Assert.AreEqual(-12345, settingsInt);

            settingsInt = Tools.GetSettingsInt("KeyNotExist", -12345999);
            Assert.AreEqual(-12345999, settingsInt);
        }
Example #2
0
        public static void CheckForNewVersion()
        {
            try
            {
                TimeSpan ts = DateTime.UtcNow - lastVersionCheck;
                if (ts.TotalMinutes > 120)
                {
                    Logfile.Log(" *** Check new Version ***");

                    string online_version = WebHelper.GetOnlineTeslaloggerVersion();
                    if (string.IsNullOrEmpty(online_version))
                    {
                        // recheck in 10 Minutes
                        Logfile.Log("Empty Version String - recheck in 10 minutes");
                        lastVersionCheck = lastVersionCheck.AddMinutes(10);
                        return;
                    }

                    lastVersionCheck = DateTime.UtcNow;

                    string           currentVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
                    Tools.UpdateType updateType     = Tools.UpdateSettings();

                    if (UpdateNeeded(currentVersion, online_version, updateType))
                    {
                        // if update doesn't work, it will retry tomorrow
                        lastVersionCheck = DateTime.UtcNow.AddDays(1);

                        Logfile.Log("---------------------------------------------");
                        Logfile.Log(" *** New Version Detected *** ");
                        Logfile.Log("Current Version: " + currentVersion);
                        Logfile.Log("Online Version: " + online_version);
                        Logfile.Log("Start update!");

                        string cmd_updated = "/etc/teslalogger/cmd_updated.txt";

                        if (File.Exists(cmd_updated))
                        {
                            File.Delete(cmd_updated);
                        }

                        if (Tools.IsDocker())
                        {
                            Logfile.Log("  Docker detected!");
                            File.WriteAllText("/tmp/teslalogger-cmd-restart.txt", "update");
                        }
                        else
                        {
                            Logfile.Log("Rebooting");
                            Exec_mono("reboot", "");
                        }
                    }

                    return;
                }
            }
            catch (Exception ex)
            {
                Logfile.Log(ex.ToString());
            }
        }
Example #3
0
        public static bool UpdateNeeded(string currentVersion, string online_version, Tools.UpdateType updateType)
        {
            if (updateType == Tools.UpdateType.none)
            {
                return(false);
            }

            if (updateType == Tools.UpdateType.stable || updateType == Tools.UpdateType.all)
            {
                Version cv = new Version(currentVersion);
                Version ov = new Version(online_version);

                if (cv.CompareTo(ov) < 0)
                {
                    if (updateType == Tools.UpdateType.all)
                    {
                        return(true);
                    }

                    if (ov.Build == 0 && ov.Revision == 0)
                    {
                        return(true);
                    }
                }

                return(false);
            }

            return(false);
        }