Commit Graph

369 Commits

Author SHA1 Message Date
Andrew May
b6c3a7c54b
Move has_emeter to device level for multiple plug outlets (#41) 2020-04-12 16:00:15 +02:00
Teemu R
c90465c5dd
Remove unnecessary cache (#40)
The cache was useful trick when the property accesses caused I/O,
which is unnecessary now as dev.update() does explicitly cache results until its called again.
2020-04-12 15:57:49 +02:00
Andrew May
5ff299664e
Add in some new device types (#39)
* Add in some new device types

HS103 hardware 1.0 and 2.1
KP400

* Update conftest
2020-04-11 03:08:59 +02:00
J. Nick Koston
18d58388c1
Add test fixture for KL130 (#35)
* Add test fixture for KL130

* Update test
2020-04-10 16:16:50 +02:00
Teemu R
e9b0acaaa7
Enable Windows & OSX builds (#31)
* Enable Windows & OSX builds

* Add pypy for ubuntu

* Fix isort

* Disable PyPy

typed-ast building fails due to a missing header
ast27/Parser/tokenizer.c:17:10: fatal error: codecs.h: No such file or directory
2020-03-18 00:40:06 +01:00
Teemu R
00276e34b7
Move child socket handling to its own SmartStripPlug class (#26)
* All child device handling is moved out from the main smartdevice class, which simplifies the code.
* This will also cleanup the constructors as only the subdevices require the ID and the parent reference.
* SmartStripPlug offers SmartPlug like interface, but does not allow separate updates
  * Trying to update() on the children will cause a warning.
2020-03-16 14:52:40 +01:00
Teemu R
489a550582
Add KP303 to the list of powerstrips (#28)
Should fix #27
2020-03-16 14:52:24 +01:00
Alex Cragg
15b0c8c0e6 Adding KP303 to supported devices (#25)
* Adding KP303(UK)_1.0.json

Adding the result file for the KP303 from kasa dump-discover

* Update readme to include KP303 as a supported device
2020-01-28 14:58:20 +01:00
Angelo Gagliano
3337c574ce Remove unused save option and add scrubbing (#19)
* Removes unused save option and adds scrubbing

* Defaults to scrub and adds no-scrub option

* Adds latitude and longitude to the scrub list
2020-01-15 14:46:35 +01:00
Teemu R
80f097b5b3 use pytestmark to avoid repeating asyncio mark (#24) 2020-01-15 07:49:31 +01:00
Teemu R
72d6205ad2 Cleanup constructors by removing ioloop and protocol arguments (#23)
* Cleanup constructors by removing ioloop and protocol

* force kwarg for other arguments besides the host
2020-01-15 07:46:21 +01:00
Teemu R
7eea21f2dd
test the newly added device fixtures (#21)
* make fixture detection saner
* allow scrubbed locations
2020-01-14 19:16:30 +01:00
Angelo Gagliano
87c0dab8c8 Add real kasa device dumps (#18)
* Adds real kasa device dumps

* Adds newline to the end of the files
2020-01-14 13:34:57 +01:00
Teemu R
822ab3f8ac Fix dump-discover to use asyncio.run (#16) 2020-01-13 08:52:52 +01:00
Teemu R
0f0df481a0
Add device_id property, rename context to child_id (#15)
For regular devices, device_id is the mac address and for child devices it is a combination of the mac address and the child_id.
2020-01-13 00:17:45 +01:00
Teemu R
524d28abbc
Remove sync interface, add asyncio discovery (#14)
* do not update inside __repr__

* Convert discovery to asyncio

* Use asyncio.DatagramProtocol
* Cleanup parameters, no more positional arguments

Closes #7

* Remove sync interface

* This requires #13 to be merged. Closes #12.
* Converts cli to use asyncio.run() where needed.
* The children from smartstrips is being initialized during the first update call.

* Convert on and off commands to use asyncio.run

* conftest: do the initial update automatically for the device, cleans up tests a bit

* return subdevices alias for strip plugs, remove sync from docstrings

* Make tests pass using pytest-asyncio

* Simplify tests and use pytest-asyncio.
* Removed the emeter tests for child devices, as this information do not seem to exist (based on the dummy sysinfo data). Can be added again if needed.
* Remove sync from docstrings.

* Fix incorrect type hint

* Add type hints and some docstrings to discovery
2020-01-12 22:44:19 +01:00
Teemu R
3c68d295da
Remove --ip which was just an alias to --host (#6) 2020-01-12 20:29:19 +01:00
Teemu R
4a25cbfff7
Set minimum requirement to python 3.7 (#5) 2020-01-12 20:27:53 +01:00
Teemu R
3ef5086ffb mass rename to (python-)kasa (#1) 2019-12-18 09:11:18 +01:00