def setUp(self): self.sp = SmartPlug(None, None)
# all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to turn the plug ON and OFF. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with IP 172.16.100.75, login admin and password 1234 p = SmartPlug("172.16.100.75", ('admin', '1234')) # change state of plug to ON p.state = "ON" print("Plug is now: ", p.state) # change state of plug to OFF p.state = "OFF" print("Plug is now: ", p.state)
# copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to read some device info. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with IP 172.16.100.75, login admin and password 1234 p = SmartPlug("192.168.1.108", ("admin", "1234")) # device info is returned as dictonary for i in sorted(p.info.items()): print("%s: %s" % i)
class TestParseSchedule(unittest.TestCase): def setUp(self): self.sp = SmartPlug(None, None) def test_parse_schedule_empty(self): rs = self.sp._parse_schedule( '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [], 'Wrong values') def test_parse_schedule_edges(self): rs = self.sp._parse_schedule( 'FFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFF' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 0], [1, 0]], [[23, 00], [23, 59]]], 'Wrong values') def test_parse_schedule_short_interval_8(self): rs = self.sp._parse_schedule( '800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 0], [0, 1]]], 'Wrong values') def test_parse_schedule_short_interval_C(self): rs = self.sp._parse_schedule( 'C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 0], [0, 2]]], 'Wrong values') def test_parse_schedule_short_interval_E(self): rs = self.sp._parse_schedule( 'E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 0], [0, 3]]], 'Wrong values') def test_parse_schedule_short_interval_F(self): rs = self.sp._parse_schedule( 'F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 0], [0, 4]]], 'Wrong values') def test_parse_schedule_short_interval_7(self): rs = self.sp._parse_schedule( '7FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 1], [1, 0]]], 'Wrong values') def test_parse_schedule_short_interval_3(self): rs = self.sp._parse_schedule( '3FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 2], [1, 0]]], 'Wrong values') def test_parse_schedule_short_interval_1(self): rs = self.sp._parse_schedule( '1FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 3], [1, 0]]], 'Wrong values') def test_parse_schedule_short_interval_4(self): rs = self.sp._parse_schedule( '400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 1], [0, 2]]], 'Wrong values') def test_parse_schedule_short_interval_6(self): rs = self.sp._parse_schedule( '600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 1], [0, 3]]], 'Wrong values') def test_parse_schedule_short_interval_2(self): rs = self.sp._parse_schedule( '200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual(rs, [[[0, 2], [0, 3]]], 'Wrong values') def test_parse_schedule_short_interval_seq(self): rs = self.sp._parse_schedule( '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ) print(("parsed result ist: ", rs)) self.assertEqual( rs, [[[13, 2], [13, 3]], [[13, 4], [13, 5]], [[13, 6], [13, 7]]], 'Wrong values')
class TestRenderSchedule(unittest.TestCase): def setUp(self): self.sp = SmartPlug(None, None) def test_render_schedule_empty(self): rs = self.sp._render_schedule([]) print("rendered result ist: ", rs) self.assertEqual(rs, '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_edges(self): rs = self.sp._render_schedule([[[0, 0], [1, 0]], [[23, 00], [0, 0]]]) print("rendered result ist: ", rs) self.assertEqual(rs, 'FFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFF', 'Wrong values') def test_render_schedule_short_interval_8(self): rs = self.sp._render_schedule([[[0, 0], [0, 1]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_C(self): rs = self.sp._render_schedule([[[0, 0], [0, 2]]]) print("rendered result ist: ", rs) self.assertEqual(rs, 'C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_E(self): rs = self.sp._render_schedule([[[0, 0], [0, 3]]]) print("rendered result ist: ", rs) self.assertEqual(rs, 'E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_F(self): rs = self.sp._render_schedule([[[0, 0], [0, 4]]]) print("rendered result ist: ", rs) self.assertEqual(rs, 'F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_7(self): rs = self.sp._render_schedule([[[0, 1], [1, 0]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '7FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_3(self): rs = self.sp._render_schedule([[[0, 2], [1, 0]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '3FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_1(self): rs = self.sp._render_schedule([[[0, 3], [1, 0]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '1FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_4(self): rs = self.sp._render_schedule([[[0, 1], [0, 2]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_6(self): rs = self.sp._render_schedule([[[0, 1], [0, 3]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_2(self): rs = self.sp._render_schedule([[[0, 2], [0, 3]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_seq(self): rs = self.sp._render_schedule([[[13, 2], [13, 3]], [[13, 4], [13, 5]], [[13, 6], [13, 7]]]) print("rendered result ist: ", rs) self.assertEqual(rs, '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values')
# The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to turn the plug ON and OFF. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with given IP, login admin and password 1234 p = SmartPlug("192.168.1.117", ('admin', '1234')) # change state of plug to ON p.state = "ON" print(("Plug is now: ", p.state)) # change state of plug to OFF p.state = "OFF" print(("Plug is now: ", p.state))
# in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to set the schedule of one day. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with IP 172.16.100.75, login admin and password 1234 p = SmartPlug("172.16.100.75", ('admin', '1234')) # write schedule for one day to plug (Saturday, 11:15 - 11:45) p.schedule = {'state': u'ON', 'sched': [[[11, 15], [11, 45]]], 'day': 6}
# in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to set the schedule of one day. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with given IP, login admin and password 1234 p = SmartPlug("192.168.1.117", ('admin', '1234')) # write schedule for one day to plug (Saturday, 11:15 - 11:45) p.schedule = {'state': u'ON', 'sched': [[[11, 15], [11, 45]]], 'day': 6}
class TestRenderSchedule(unittest.TestCase): def setUp(self): self.sp = SmartPlug(None, None) def test_render_schedule_empty(self): rs = self.sp._render_schedule([]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_edges(self): rs = self.sp._render_schedule([[[0, 0], [1, 0]], [[23, 00], [0, 0]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, 'FFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFF', 'Wrong values') def test_render_schedule_short_interval_8(self): rs = self.sp._render_schedule([[[0, 0], [0, 1]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_C(self): rs = self.sp._render_schedule([[[0, 0], [0, 2]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, 'C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_E(self): rs = self.sp._render_schedule([[[0, 0], [0, 3]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, 'E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_F(self): rs = self.sp._render_schedule([[[0, 0], [0, 4]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, 'F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_7(self): rs = self.sp._render_schedule([[[0, 1], [1, 0]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '7FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_3(self): rs = self.sp._render_schedule([[[0, 2], [1, 0]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '3FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_1(self): rs = self.sp._render_schedule([[[0, 3], [1, 0]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '1FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_4(self): rs = self.sp._render_schedule([[[0, 1], [0, 2]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_6(self): rs = self.sp._render_schedule([[[0, 1], [0, 3]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_2(self): rs = self.sp._render_schedule([[[0, 2], [0, 3]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values') def test_render_schedule_short_interval_seq(self): rs = self.sp._render_schedule([[[13, 2], [13, 3]], [[13, 4], [13, 5]], [[13, 6], [13, 7]]]) print(("rendered result ist: ", rs)) self.assertEqual( rs, '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', 'Wrong values')
# The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to turn the plug ON and OFF. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with IP 172.16.100.75, login admin and password 1234 p = SmartPlug("172.16.100.75", ('admin', '1234')) # change state of plug to ON p.state = "ON" print("Plug is now: ", p.state) # change state of plug to OFF p.state = "OFF" print("Plug is now: ", p.state)
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to set the schedule of one week. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with given IP, login admin and password 1234 p = SmartPlug("192.168.1.117", ('admin', '1234')) # write schedule for one week p.schedule = [ {'state': u'ON', 'sched': [[[1, 0], [1, 30]]], 'day': 0}, {'state': u'ON', 'sched': [[[2, 0], [2, 30]]], 'day': 1}, {'state': u'ON', 'sched': [[[3, 0], [3, 30]]], 'day': 2}, {'state': u'ON', 'sched': [[[4, 0], [4, 30]]], 'day': 3}, {'state': u'ON', 'sched': [[[5, 0], [5, 30]]], 'day': 4}, {'state': u'ON', 'sched': [[[6, 0], [6, 30]]], 'day': 5}, {'state': u'ON', 'sched': [[[7, 0], [7, 30]]], 'day': 6}, ]
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to set the schedule of one week. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with given IP, login admin and password 1234 p = SmartPlug("192.168.1.117", ('admin', '1234')) # write schedule for one week p.schedule = [ { 'state': 'ON', 'sched': [[[1, 0], [1, 30]]], 'day': 0 }, { 'state': 'ON', 'sched': [[[2, 0], [2, 30]]], 'day': 1 }, { 'state': 'ON',
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API query week schedule. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with given IP, login admin and password 1234 p = SmartPlug("192.168.1.117", ('admin', '1234')) # helper to map numerical days to named days days = { 0: "Sunday", 1: "Monday", 2: "Tuesday", 3: "Wednesday", 4: "Thursday", 5: "Friday", 6: "Saturday" } # request schedule from plug, display information for each day for day in p.schedule:
class TestParseSchedule(unittest.TestCase): def setUp(self): self.sp = SmartPlug(None, None) def test_parse_schedule_empty(self): rs = self.sp._parse_schedule('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [], 'Wrong values') def test_parse_schedule_edges(self): rs = self.sp._parse_schedule('FFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFF') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 0], [1, 0]], [[23, 00], [23, 59]]], 'Wrong values') def test_parse_schedule_short_interval_8(self): rs = self.sp._parse_schedule('800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 0], [0, 1]]], 'Wrong values') def test_parse_schedule_short_interval_C(self): rs = self.sp._parse_schedule('C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 0], [0, 2]]], 'Wrong values') def test_parse_schedule_short_interval_E(self): rs = self.sp._parse_schedule('E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 0], [0, 3]]], 'Wrong values') def test_parse_schedule_short_interval_F(self): rs = self.sp._parse_schedule('F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 0], [0, 4]]], 'Wrong values') def test_parse_schedule_short_interval_7(self): rs = self.sp._parse_schedule('7FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 1], [1, 0]]], 'Wrong values') def test_parse_schedule_short_interval_3(self): rs = self.sp._parse_schedule('3FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 2], [1, 0]]], 'Wrong values') def test_parse_schedule_short_interval_1(self): rs = self.sp._parse_schedule('1FFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 3], [1, 0]]], 'Wrong values') def test_parse_schedule_short_interval_4(self): rs = self.sp._parse_schedule('400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 1], [0, 2]]], 'Wrong values') def test_parse_schedule_short_interval_6(self): rs = self.sp._parse_schedule('600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 1], [0, 3]]], 'Wrong values') def test_parse_schedule_short_interval_2(self): rs = self.sp._parse_schedule('200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[0, 2], [0, 3]]], 'Wrong values') def test_parse_schedule_short_interval_seq(self): rs = self.sp._parse_schedule('0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') print("parsed result ist: ", rs) self.assertEqual(rs, [[[13, 2], [13, 3]], [[13, 4], [13, 5]], [[13, 6], [13, 7]]], 'Wrong values')
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API to set the schedule of one day. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with given IP, login admin and password 1234 p = SmartPlug("192.168.1.117", ('admin', '1234')) # write schedule for one day to plug (Saturday, 11:15 - 11:45) p.schedule = {'state': u'ON', 'sched': [[[11, 15], [11, 45]]], 'day': 6}
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. ## __author__ = 'Stefan Wendler, [email protected]' """ Very simple example showing how to use the SmartPlug API query week schedule. """ # import plug API from ediplug.smartplug import SmartPlug # create plug object for plug with IP 172.16.100.75, login admin and password 1234 p = SmartPlug("172.16.100.75", ('admin', '1234')) # helper to map numerical days to named days days = { 0: "Sunday", 1: "Monday", 2: "Tuesday", 3: "Wednesday", 4: "Thursday", 5: "Friday", 6: "Saturday" } # request schedule from plug, display information for each day for day in p.schedule: