Exemple #1
0
 def setUp(self):
     self.sp = SmartPlug(None, None)
Exemple #2
0
# 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)
Exemple #3
0
# 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)
Exemple #4
0
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')
 def setUp(self):
     self.sp = SmartPlug(None, None)
Exemple #7
0
# 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}
Exemple #9
0
# 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}
Exemple #10
0
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)
Exemple #12
0
# 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},
    ]
Exemple #13
0
# 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',
Exemple #14
0
# 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')
Exemple #16
0
# 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}
Exemple #17
0
# 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: