|
16 | 16 | import time |
17 | 17 | import sqlite3 |
18 | 18 | import decimal |
| 19 | +from uptime import uptime |
19 | 20 | from datetime import datetime |
20 | 21 | from struct import unpack |
21 | 22 | from builtins import bytes |
@@ -142,7 +143,16 @@ def on_after_startup(self): |
142 | 143 | self._tplinksmartplug_logger.debug("idleIgnoreCommands: %s" % self.idleIgnoreCommands) |
143 | 144 | self.idleTimeoutWaitTemp = self._settings.get_int(["idleTimeoutWaitTemp"]) |
144 | 145 | self._tplinksmartplug_logger.debug("idleTimeoutWaitTemp: %s" % self.idleTimeoutWaitTemp) |
145 | | - |
| 146 | + if self._settings.get_boolean(["event_on_startup_monitoring"]) is True: |
| 147 | + self._tplinksmartplug_logger.debug("powering on due to startup.") |
| 148 | + for plug in self._settings.get(['arrSmartplugs']): |
| 149 | + if plug["event_on_startup"] is True: |
| 150 | + self._tplinksmartplug_logger.debug("powering on %s due to startup." % (plug["ip"])) |
| 151 | + response = self.turn_on(plug["ip"]) |
| 152 | + if response.get("currentState", False) == "on": |
| 153 | + self._plugin_manager.send_plugin_message(self._identifier, response) |
| 154 | + else: |
| 155 | + self._tplinksmartplug_logger.debug("powering on %s during startup failed." % (plug["ip"])) |
146 | 156 | self._reset_idle_timer() |
147 | 157 |
|
148 | 158 | ##~~ SettingsPlugin mixin |
@@ -731,6 +741,12 @@ def _idle_poweroff(self): |
731 | 741 | if self._printer.is_printing() or self._printer.is_paused(): |
732 | 742 | return |
733 | 743 |
|
| 744 | + if (uptime()/60) <= (self._settings.get_int(["idleTimeout"])): |
| 745 | + self._tplinksmartplug_logger.debug("Just booted so wait for time sync.") |
| 746 | + self._tplinksmartplug_logger.debug("uptime: {}, comparison: {}".format((uptime()/60), (self._settings.get_int(["idleTimeout"])))) |
| 747 | + self._reset_idle_timer() |
| 748 | + return |
| 749 | + |
734 | 750 | self._tplinksmartplug_logger.debug( |
735 | 751 | "Idle timeout reached after %s minute(s). Turning heaters off prior to powering off plugs." % self.idleTimeout) |
736 | 752 | if self._wait_for_heaters(): |
|
0 commit comments