10000 Tags · CodeBeaverAI/python-kasa · GitHub
[go: up one dir, main page]

Skip to content

Tags: CodeBeaverAI/python-kasa

Tags

0.10.1

Toggle 0.10.1's commit message

Verified

< 8000 div class="flex-1"> This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.10.0...0.10.1)

**Release summary:**

Small patch release for bugfixes

**Implemented enhancements:**

- dustbin\_mode: add 'off' mode for cleaner downstream impl [\python-kasa#1488](python-kasa#1488) (@rytilahti)
- Add Dimmer Configuration Support [\python-kasa#1484](python-kasa#1484) (@ryenitcher)

**Fixed bugs:**

- Do not return empty string for custom light effect name [\python-kasa#1491](python-kasa#1491) (@sdb9696)
- Add FeatureAttributes to smartcam Alarm [\python-kasa#1489](python-kasa#1489) (@sdb9696)

**Project maintenance:**

- Add module.device to the public api [\python-kasa#1478](python-kasa#1478) (@sdb9696)

0.10.0

Toggle 0.10.0's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\python-kasa#1449](python-kasa#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\python-kasa#1340](python-kasa#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\python-kasa#1297](python-kasa#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\python-kasa#1451](python-kasa#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\python-kasa#937](python-kasa#937)
- Add common alarm interface [\python-kasa#1479](python-kasa#1479) (@sdb9696)
- Add common childsetup interface [\python-kasa#1470](python-kasa#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\python-kasa#1469](python-kasa#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\python-kasa#1465](python-kasa#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\python-kasa#1462](python-kasa#1462) (@rytilahti)
- Add childlock module for vacuums [\python-kasa#1461](python-kasa#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\python-kasa#1459](python-kasa#1459) (@rytilahti)
- Add setting to change carpet clean mode [\python-kasa#1458](python-kasa#1458) (@rytilahti)
- Add setting to change clean count [\python-kasa#1457](python-kasa#1457) (@rytilahti)
- Add mop module [\python-kasa#1456](python-kasa#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\python-kasa#1454](python-kasa#1454) (@sdb9696)
- Expose current cleaning information [\python-kasa#1453](python-kasa#1453) (@rytilahti)
- Add battery module to smartcam devices [\python-kasa#1452](python-kasa#1452) (@sdb9696)
- Allow update of camera modules after setting values [\python-kasa#1450](python-kasa#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\python-kasa#1438](python-kasa#1438) (@sdb9696)
- Add support for doorbells and chimes [\python-kasa#1435](python-kasa#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\python-kasa#1423](python-kasa#1423) (@rytilahti)
- Allow https for klaptransport [\python-kasa#1415](python-kasa#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\python-kasa#1413](python-kasa#1413) (@sdb9696)
- Add powerprotection module [\python-kasa#1337](python-kasa#1337) (@rytilahti)
- Add vacuum speaker controls [\python-kasa#1332](python-kasa#1332) (@rytilahti)
- Add consumables module for vacuums [\python-kasa#1327](python-kasa#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\python-kasa#1263](python-kasa#1263) (@ryenitcher)
- Add support for cleaning records [\python-kasa#945](python-kasa#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\python-kasa#944](python-kasa#944) (@rytilahti)
- Add support for pairing devices with hubs [\python-kasa#859](python-kasa#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\python-kasa#637](python-kasa#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\python-kasa#1486](python-kasa#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\python-kasa#1485](python-kasa#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\python-kasa#1483](python-kasa#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\python-kasa#1480](python-kasa#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\python-kasa#1443](python-kasa#1443) (@rytilahti)
- Fix discover cli command with host [\python-kasa#1437](python-kasa#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\python-kasa#1420](python-kasa#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\python-kasa#639](python-kasa#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\python-kasa#1476](python-kasa#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\python-kasa#1475](python-kasa#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\python-kasa#1466](python-kasa#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\python-kasa#1448](python-kasa#1448) (@sdb9696)
- Add fixture for C720 camera [\python-kasa#1433](python-kasa#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\python-kasa#1482](python-kasa#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\python-kasa#1481](python-kasa#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\python-kasa#1477](python-kasa#1477) (@sdb9696)
- Add error code 7 for clean module [\python-kasa#1474](python-kasa#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\python-kasa#1471](python-kasa#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\python-kasa#1455](python-kasa#1455) (@rytilahti)
- Add required sphinx.configuration [\python-kasa#1446](python-kasa#1446) (@rytilahti)
- Add more redactors for smartcams [\python-kasa#1439](python-kasa#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\python-kasa#1430](python-kasa#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\python-kasa#1428](python-kasa#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\python-kasa#1427](python-kasa#1427) (@sdb9696)

0.9.1

Toggle 0.9.1's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.9.0...0.9.1)

**Release summary:**

- Support for hub-attached wall switches S210 and S220
- Support for older firmware on Tapo cameras
- Bugfixes and improvements

**Implemented enhancements:**

- Add support for Tapo hub-attached switch devices [\python-kasa#1421](python-kasa#1421) (@sdb9696)
- Use repr\(\) for enum values in Feature.\_\_repr\_\_ [\python-kasa#1414](python-kasa#1414) (@rytilahti)
- Update SslAesTransport for older firmware versions [\python-kasa#1362](python-kasa#1362) (@sdb9696)

**Fixed bugs:**

- T310 not detected with H200 Hub [\python-kasa#1409](python-kasa#1409)
- Backoff after xor timeout and improve error reporting [\python-kasa#1424](python-kasa#1424) (@bdraco)
- Fix incorrect obd src echo [\python-kasa#1412](python-kasa#1412) (@rytilahti)
- Handle smartcam partial list responses [\python-kasa#1411](python-kasa#1411) (@sdb9696)

**Added support for devices:**

- Add S220 fixture [\python-kasa#1419](python-kasa#1419) (@rytilahti)
- Add S210 fixture [\python-kasa#1418](python-kasa#1418) (@rytilahti)

**Documentation updates:**

- Improve exception messages on credential mismatches [\python-kasa#1417](python-kasa#1417) (@rytilahti)

**Project maintenance:**

- Add C210 2.0 1.3.11 fixture [\python-kasa#1406](python-kasa#1406) (@sdb9696)
- Add HS210\(US\) 3.0 1.0.10 IOT Fixture [\python-kasa#1405](python-kasa#1405) (@ZeliardM)
- Change smartcam detection features to category config [\python-kasa#1402](python-kasa#1402) (@sdb9696)

0.9.0

Toggle 0.9.0's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\python-kasa#1338](python-kasa#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\python-kasa#1392](python-kasa#1392) (@sdb9696)
- Add smartcam detection modules [\python-kasa#1389](python-kasa#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\python-kasa#1371](python-kasa#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\python-kasa#1370](python-kasa#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\python-kasa#1342](python-kasa#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\python-kasa#1339](python-kasa#1339) (@rytilahti)
- Improve overheat reporting [\python-kasa#1335](python-kasa#1335) (@rytilahti)
- Provide alternative camera urls [\python-kasa#1316](python-kasa#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\python-kasa#1270](python-kasa#1270) (@Puxtril)
- Add ssltransport for robovacs [\python-kasa#943](python-kasa#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\python-kasa#1149](python-kasa#1149)
- Treat smartcam 500 errors after handshake as retryable [\python-kasa#1395](python-kasa#1395) (@sdb9696)
- Fix lens mask required component and state [\python-kasa#1386](python-kasa#1386) (@sdb9696)
- Add LensMask module to smartcam [\python-kasa#1385](python-kasa#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\python-kasa#1319](python-kasa#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\python-kasa#1245](python-kasa#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\python-kasa#1399](python-kasa#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\python-kasa#1398](python-kasa#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\python-kasa#1396](python-kasa#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\python-kasa#1390](python-kasa#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\python-kasa#1379](python-kasa#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\python-kasa#1378](python-kasa#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\python-kasa#1355](python-kasa#1355) (@ZeliardM)
- Add C520WS camera fixture [\python-kasa#1352](python-kasa#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\python-kasa#1380](python-kasa#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\python-kasa#1367](python-kasa#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\python-kasa#1365](python-kasa#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\python-kasa#1333](python-kasa#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\python-kasa#1397](python-kasa#1397) (@sdb9696)
- Handle smartcam device blocked response [\python-kasa#1393](python-kasa#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\python-kasa#1391](python-kasa#1391) (@sdb9696)
- Update C520WS fixture with new methods [\python-kasa#1384](python-kasa#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\python-kasa#1382](python-kasa#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\python-kasa#1381](python-kasa#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\python-kasa#1377](python-kasa#1377) (@sdb9696)
- Add smartcam modules to package inits [\python-kasa#1376](python-kasa#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\python-kasa#1375](python-kasa#1375) (@sdb9696)
- Force single for some smartcam requests [\python-kasa#1374](python-kasa#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\python-kasa#1373](python-kasa#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\python-kasa#1364](python-kasa#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\python-kasa#1363](python-kasa#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\python-kasa#1361](python-kasa#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\python-kasa#1358](python-kasa#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\python-kasa#1347](python-kasa#1347) (@sdb9696)
- Scrub more vacuum keys [\python-kasa#1328](python-kasa#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\python-kasa#1326](python-kasa#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\python-kasa#1320](python-kasa#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\python-kasa#1318](python-kasa#1318) (@sdb9696)
- Follow main package structure for tests [\python-kasa#1317](python-kasa#1317) (@rytilahti)

0.8.1

Toggle 0.8.1's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
This patch release fixes some issues with newly supported smartcam de…

…vices.

[Full Changelog](python-kasa/python-kasa@0.8.0...0.8.1)

**Fixed bugs:**

- Fix update errors on hubs with unsupported children [\python-kasa#1344](python-kasa#1344) (@sdb9696)
- Fix smartcam missing device id [\python-kasa#1343](python-kasa#1343) (@sdb9696)

0.8.0

Toggle 0.8.0's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.7.7...0.8.0)

**Release highlights:**

- **Initial support for devices using the Tapo camera protocol, i.e. Tapo cameras and the Tapo H200 hub.**
- New camera functionality such as exposing RTSP streaming urls and camera pan/tilt.
- New way of testing module support for individual features with `has_feature` and `get_feature`.
- Adding voltage and current monitoring to `smart` devices.
- Migration from pydantic to mashumaro for serialization.

Special thanks to @ryenitcher and @Puxtril for their new contributions to the improvement of the project! Also thanks to everyone who has helped with testing, contributing fixtures, and reporting issues!

**Breaking change notes:**

- Removed support for python <3.11. If you haven't got a compatible version try [uv](https://docs.astral.sh/uv/).
- Renamed `device_config.to_dict()` to `device_config.to_dict_control_credentials()`. `to_dict()` is still available but takes no parameters.
- From the `iot.Cloud` module the `iot.CloudInfo` class attributes have been converted to snake case.

**Breaking changes:**

- Migrate iot cloud module to mashumaro [\python-kasa#1282](python-kasa#1282) (@sdb9696)
- Replace custom deviceconfig serialization with mashumaru [\python-kasa#1274](python-kasa#1274) (@sdb9696)
- Remove support for python \<3.11 [\python-kasa#1273](python-kasa#1273) (@sdb9696)

**Implemented enhancements:**

- Update cli modify presets to support smart devices [\python-kasa#1295](python-kasa#1295) (@sdb9696)
- Use credentials\_hash for smartcamera rtsp url [\python-kasa#1293](python-kasa#1293) (@sdb9696)
- Add voltage and current monitoring to smart Devices [\python-kasa#1281](python-kasa#1281) (@ryenitcher)
- Update cli feature command for actions not to require a value [\python-kasa#1264](python-kasa#1264) (@sdb9696)
- Add pan tilt camera module [\python-kasa#1261](python-kasa#1261) (@sdb9696)
- Add alarm module for smartcamera hubs [\python-kasa#1258](python-kasa#1258) (@sdb9696)
- Move TAPO smartcamera out of experimental package [\python-kasa#1255](python-kasa#1255) (@sdb9696)
- Add SmartCamera Led Module [\python-kasa#1249](python-kasa#1249) (@sdb9696)
- Use component queries to select smartcamera modules [\python-kasa#1248](python-kasa#1248) (@sdb9696)
- Print formatting for IotLightPreset [\python-kasa#1216](python-kasa#1216) (@Puxtril)
- Allow getting Annotated features from modules [\python-kasa#1018](python-kasa#1018) (@sdb9696)
- Add common Thermostat module [\python-kasa#977](python-kasa#977) (@sdb9696)

**Fixed bugs:**

- TP-Link Tapo S505D cannot disable gradual on/off  [\python-kasa#1309](python-kasa#1309)
- Inconsistent emeter information between features and emeter cli [\python-kasa#1308](python-kasa#1308)
- How to dump power usage after latest updates? [\python-kasa#1306](python-kasa#1306)
- kasa.discover: Got unsupported connection type: 'device\_family': 'SMART.IPCAMERA' [\python-kasa#1267](python-kasa#1267)
- device \_\_repr\_\_ fails if no sys\_info [\python-kasa#1262](python-kasa#1262)
- Tapo P110M: Error processing Energy for device, module will be unavailable: get\_energy\_usage for Energy  [\python-kasa#1243](python-kasa#1243)
- Listing light presets throws error [\python-kasa#1201](python-kasa#1201)
- Include duration when disabling smooth transition on/off [\python-kasa#1313](python-kasa#1313) (@rytilahti)
- Expose energy command to cli [\python-kasa#1307](python-kasa#1307) (@rytilahti)
- Make discovery on unsupported devices less noisy [\python-kasa#1291](python-kasa#1291) (@rytilahti)
- Fix repr for device created with no sysinfo or discovery info" [\python-kasa#1266](python-kasa#1266) (@sdb9696)
- Fix discovery by alias for smart devices [\python-kasa#1260](python-kasa#1260) (@sdb9696)
- Make \_\_repr\_\_ work on discovery info [\python-kasa#1233](python-kasa#1233) (@rytilahti)

**Added support for devices:**

- Add HS200 \(US\) Smart Fixture [\python-kasa#1303](python-kasa#1303) (@ZeliardM)
- Add smartcamera devices to supported docs [\python-kasa#1257](python-kasa#1257) (@sdb9696)
- Add P110M\(AU\) fixture [\python-kasa#1244](python-kasa#1244) (@rytilahti)
- Add L630 fixture [\python-kasa#1240](python-kasa#1240) (@rytilahti)
- Add EP40M Fixture [\python-kasa#1238](python-kasa#1238) (@ryenitcher)
- Add KS220 Fixture [\python-kasa#1237](python-kasa#1237) (@ryenitcher)

**Documentation updates:**

- Use markdown footnotes in supported.md [\python-kasa#1310](python-kasa#1310) (@sdb9696)
- Update docs for the new module attributes has/get feature [\python-kasa#1301](python-kasa#1301) (@sdb9696)
- Fixup contributing.md for running test against a real device [\python-kasa#1236](python-kasa#1236) (@sdb9696)

**Project maintenance:**

- Rename tests/smartcamera to tests/smartcam [\python-kasa#1315](python-kasa#1315) (@sdb9696)
- Do not error on smartcam hub attached smartcam child devices [\python-kasa#1314](python-kasa#1314) (@sdb9696)
- Add P110M\(EU\) fixture [\python-kasa#1305](python-kasa#1305) (@sdb9696)
- Run tests with caplog in a single worker [\python-kasa#1304](python-kasa#1304) (@sdb9696)
- Rename smartcamera to smartcam [\python-kasa#1300](python-kasa#1300) (@sdb9696)
- Move iot fixtures into iot subfolder [\python-kasa#1299](python-kasa#1299) (@sdb9696)
- Annotate fan\_speed\_level of Fan interface [\python-kasa#1298](python-kasa#1298) (@sdb9696)
- Add PIR ADC Values to Test Fixtures [\python-kasa#1296](python-kasa#1296) (@ryenitcher)
- Exclude \_\_getattr\_\_ for deprecated attributes from type checkers [\python-kasa#1294](python-kasa#1294) (@sdb9696)
- Simplify omit http\_client in DeviceConfig serialization [\python-kasa#1292](python-kasa#1292) (@sdb9696)
- Add SMART Voltage Monitoring to Fixtures [\python-kasa#1290](python-kasa#1290) (@ryenitcher)
- Remove pydantic dependency [\python-kasa#1289](python-kasa#1289) (@sdb9696)
- Do not print out all the fixture names at the start of test runs [\python-kasa#1287](python-kasa#1287) (@sdb9696)
- dump\_devinfo: iot light strip commands [\python-kasa#1286](python-kasa#1286) (@sdb9696)
- Migrate TurnOnBehaviours to mashumaro [\python-kasa#1285](python-kasa#1285) (@sdb9696)
- dump\_devinfo: query smartlife.iot.common.cloud for fw updates [\python-kasa#1284](python-kasa#1284) (@rytilahti)
- Migrate RuleModule to mashumaro [\python-kasa#1283](python-kasa#1283) (@sdb9696)
- Update sphinx dependency to 6.2 to fix docs build [\python-kasa#1280](python-kasa#1280) (@sdb9696)
- Update DiscoveryResult to use mashu Annotated Alias [\python-kasa#1279](python-kasa#1279) (@sdb9696)
- Extend dump\_devinfo iot queries [\python-kasa#1278](python-kasa#1278) (@sdb9696)
- Migrate triggerlogs to mashumaru [\python-kasa#1277](python-kasa#1277) (@sdb9696)
- Migrate smart firmware module to mashumaro [\python-kasa#1276](python-kasa#1276) (@sdb9696)
- Migrate IotLightPreset to mashumaru [\python-kasa#1275](python-kasa#1275) (@sdb9696)
- Allow callable coroutines for feature setters [\python-kasa#1272](python-kasa#1272) (@sdb9696)
- Fix deprecated SSLContext\(\) usage [\python-kasa#1271](python-kasa#1271) (@sdb9696)
- Use \_get\_device\_info methods for smart and iot devs in devtools [\python-kasa#1265](python-kasa#1265) (@sdb9696)
- Remove experimental support [\python-kasa#1256](python-kasa#1256) (@sdb9696)
- Move protocol modules into protocols package [\python-kasa#1254](python-kasa#1254) (@sdb9696)
- Add linkcheck to readthedocs CI [\python-kasa#1253](python-kasa#1253) (@rytilahti)
- Update cli energy command to use energy module [\python-kasa#1252](python-kasa#1252) (@sdb9696)
- Consolidate warnings for fixtures missing child devices [\python-kasa#1251](python-kasa#1251) (@sdb9696)
- Update smartcamera fixtures with components [\python-kasa#1250](python-kasa#1250) (@sdb9696)
- Move transports into their own package [\python-kasa#1247](python-kasa#1247) (@rytilahti)
- Fix warnings in our test suite [\python-kasa#1246](python-kasa#1246) (@rytilahti)
- Move tests folder to top level of project [\python-kasa#1242](python-kasa#1242) (@sdb9696)
- Fix test framework running against real devices [\python-kasa#1235](python-kasa#1235) (@sdb9696)
- Add Additional Firmware Test Fixures [\python-kasa#1234](python-kasa#1234) (@ryenitcher)
- Update DiscoveryResult to use Mashumaro instead of pydantic [\python-kasa#1231](python-kasa#1231) (@sdb9696)
- Update fixture for ES20M 1.0.11 [\python-kasa#1215](python-kasa#1215) (@rytilahti)
- Enable ruff check for ANN [\python-kasa#1139](python-kasa#1139) (@rytilahti)

**Closed issues:**

- Expose Fan speed range from the library [\python-kasa#1008](python-kasa#1008)
- \[META\] 0.7 series - module support for SMART devices, support for introspectable device features and refactoring the library [\python-kasa#783](python-kasa#783)

0.7.7

Toggle 0.7.7's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.7.6...0.7.7)

**Release summary:**

- Bugfix for child device device creation error with credentials_hash
- PIR support for iot dimmers and wall switches.
- Various small enhancements and project improvements.

**Implemented enhancements:**

- Add PIR&LAS for wall switches mentioning PIR support [\python-kasa#1227](python-kasa#1227) (@rytilahti)
- Expose ambient light setting for iot dimmers [\python-kasa#1210](python-kasa#1210) (@rytilahti)
- Expose PIR enabled setting for iot dimmers [\python-kasa#1174](python-kasa#1174) (@rytilahti)
- Add childprotection module [\python-kasa#1141](python-kasa#1141) (@rytilahti)
- Initial trigger logs implementation [\python-kasa#900](python-kasa#900) (@rytilahti)

**Fixed bugs:**

- Fix AES child device creation error [\python-kasa#1220](python-kasa#1220) (@sdb9696)

**Project maintenance:**

- Update TC65 fixture [\python-kasa#1225](python-kasa#1225) (@rytilahti)
- Update smartcamera fixtures from latest dump\_devinfo [\python-kasa#1224](python-kasa#1224) (@sdb9696)
- Add component queries to smartcamera devices [\python-kasa#1223](python-kasa#1223) (@sdb9696)
- Update try\_connect\_all to be more efficient and report attempts [\python-kasa#1222](python-kasa#1222) (@sdb9696)
- Use stacklevel=2 for warnings to report on callsites [\python-kasa#1219](python-kasa#1219) (@rytilahti)
- parse\_pcap\_klap: various code cleanups [\python-kasa#1138](python-kasa#1138) (@rytilahti)

0.7.6

Toggle 0.7.6's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.7.5...0.7.6)

**Release summary:**

- Experimental support for Tapo cameras and the Tapo H200 hub which uses the same protocol.
- Better timestamp support across all devices.
- Support for new devices P304M, S200D and S200B (see README.md for note on the S200 support).
- Various other fixes and minor features.

**Implemented enhancements:**

- Add support for setting the timezone [\python-kasa#436](python-kasa#436)
- Add stream\_rtsp\_url to camera module [\python-kasa#1197](python-kasa#1197) (@sdb9696)
- Try default logon credentials in SslAesTransport [\python-kasa#1195](python-kasa#1195) (@sdb9696)
- Allow enabling experimental devices from environment variable [\python-kasa#1194](python-kasa#1194) (@sdb9696)
- Add core device, child and camera modules to smartcamera [\python-kasa#1193](python-kasa#1193) (@sdb9696)
- Fallback to get\_current\_power if get\_energy\_usage does not provide current\_power [\python-kasa#1186](python-kasa#1186) (@Fulch36)
- Add https parameter to device class factory [\python-kasa#1184](python-kasa#1184) (@sdb9696)
- Add discovery list command to cli [\python-kasa#1183](python-kasa#1183) (@sdb9696)
- Add Time module to SmartCamera devices [\python-kasa#1182](python-kasa#1182) (@sdb9696)
- Add try\_connect\_all to allow initialisation without udp broadcast [\python-kasa#1171](python-kasa#1171) (@sdb9696)
- Update dump\_devinfo for smart camera protocol [\python-kasa#1169](python-kasa#1169) (@sdb9696)
- Enable newer encrypted discovery protocol [\python-kasa#1168](python-kasa#1168) (@sdb9696)
- Initial TapoCamera support [\python-kasa#1165](python-kasa#1165) (@sdb9696)
- Add waterleak alert timestamp [\python-kasa#1162](python-kasa#1162) (@rytilahti)
- Create common Time module and add time set cli command [\python-kasa#1157](python-kasa#1157) (@sdb9696)

**Fixed bugs:**

- Only send 20002 discovery request with key included [\python-kasa#1207](python-kasa#1207) (@sdb9696)
- Fix SslAesTransport default login and add tests [\python-kasa#1202](python-kasa#1202) (@sdb9696)
- Fix device\_config serialisation of https value [\python-kasa#1196](python-kasa#1196) (@sdb9696)

**Added support for devices:**

- Add S200B\(EU\) fw 1.11.0 fixture [\python-kasa#1205](python-kasa#1205) (@sdb9696)
- Add TC65 fixture [\python-kasa#1200](python-kasa#1200) (@rytilahti)
- Add P304M\(UK\) test fixture [\python-kasa#1185](python-kasa#1185) (@Fulch36)
- Add H200 experimental fixture [\python-kasa#1180](python-kasa#1180) (@sdb9696)
- Add S200D button fixtures [\python-kasa#1161](python-kasa#1161) (@rytilahti)

**Project maintenance:**

- Fix mypy errors in parse_pcap_klap [\python-kasa#1214](python-kasa#1214) (@sdb9696)
- Make HSV NamedTuple creation more efficient [\python-kasa#1211](python-kasa#1211) (@sdb9696)
- dump\_devinfo: query get\_current\_brt for iot dimmers [\python-kasa#1209](python-kasa#1209) (@rytilahti)
- Add trigger\_logs and double\_click to dump\_devinfo helper [\python-kasa#1208](python-kasa#1208) (@sdb9696)
- Fix smartcamera childdevice module [\python-kasa#1206](python-kasa#1206) (@sdb9696)
- Add H200\(EU\) fw 1.3.2 fixture [\python-kasa#1204](python-kasa#1204) (@sdb9696)
- Do not pass None as timeout to http requests [\python-kasa#1203](python-kasa#1203) (@sdb9696)
- Update SMART test framework to use fake child protocols [\python-kasa#1199](python-kasa#1199) (@sdb9696)
- Allow passing an aiohttp client session during discover try\_connect\_all [\python-kasa#1198](python-kasa#1198) (@sdb9696)
- Add test framework for smartcamera [\python-kasa#1192](python-kasa#1192) (@sdb9696)
- Rename experimental fixtures folder to smartcamera [\python-kasa#1191](python-kasa#1191) (@sdb9696)
- Combine smartcamera error codes into SmartErrorCode [\python-kasa#1190](python-kasa#1190) (@sdb9696)
- Allow deriving from SmartModule without being registered [\python-kasa#1189](python-kasa#1189) (@sdb9696)
- Improve supported module checks for hub children [\python-kasa#1188](python-kasa#1188) (@sdb9696)
- Update smartcamera to support single get/set/do requests [\python-kasa#1187](python-kasa#1187) (@sdb9696)
- Add S200B\(US\) fw 1.12.0 fixture [\python-kasa#1181](python-kasa#1181) (@sdb9696)
- Add T110\(US\), T310\(US\) and T315\(US\) sensor fixtures [\python-kasa#1179](python-kasa#1179) (@sdb9696)
- Enforce EOLs for \*.rst and \*.md [\python-kasa#1178](python-kasa#1178) (@rytilahti)
- Convert fixtures to use unix newlines [\python-kasa#1177](python-kasa#1177) (@rytilahti)
- Add motion sensor to known categories [\python-kasa#1176](python-kasa#1176) (@rytilahti)
- Drop urllib3 dependency and create ssl context in executor thread [\python-kasa#1175](python-kasa#1175) (@sdb9696)
- Expose smart child device map as a class constant [\python-kasa#1173](python-kasa#1173) (@sdb9696)

0.7.5

Toggle 0.7.5's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.7.4...0.7.5)

**Release summary:**

- Fix for KP303 on Firmware 1.0.6
- Fix for `on_since` value jitter
- Various maintenance items

**Breaking changes:**

- Make iot time timezone aware [\python-kasa#1147](python-kasa#1147) (@sdb9696)

**Fixed bugs:**

- Use tzinfo in time constructor instead of astime for iot devices [\python-kasa#1158](python-kasa#1158) (@sdb9696)
- Send empty dictionary instead of null for iot queries [\python-kasa#1145](python-kasa#1145) (@sdb9696)
- Stabilise on\_since value for smart devices [\python-kasa#1144](python-kasa#1144) (@sdb9696)
- parse\_pcap\_klap: require source host [\python-kasa#1137](python-kasa#1137) (@rytilahti)
- parse\_pcap\_klap: use request\_uri for matching the response [\python-kasa#1136](python-kasa#1136) (@rytilahti)

**Project maintenance:**

- Cache zoneinfo for smart devices [\python-kasa#1156](python-kasa#1156) (@sdb9696)
- Correctly define SmartModule.call as an async function [\python-kasa#1148](python-kasa#1148) (@sdb9696)
- Remove async magic patch from tests [\python-kasa#1146](python-kasa#1146) (@sdb9696)
- Move feature initialization from \_\_init\_\_ to \_initialize\_features [\python-kasa#1140](python-kasa#1140) (@rytilahti)

0.7.4

Toggle 0.7.4's commit message

Verified

This tag was signed with the committer’s verified signature.
sdb9696 Steven B.
[Full Changelog](python-kasa/python-kasa@0.7.3...0.7.4)

**Release summary:**

- KL135 color temp range corrected to 9000k max
- Minor enhancements and project maintenance

**Implemented enhancements:**

- Add factory\_reset\(\) to iotdevice [\python-kasa#1125](python-kasa#1125) (@rytilahti)
- Add reboot\(\) to the device interface [\python-kasa#1124](python-kasa#1124) (@rytilahti)
- Add factory-reset command to cli [\python-kasa#1108](python-kasa#1108) (@rytilahti)

**Fixed bugs:**

- Extend KL135 ct range up to 9000K [\python-kasa#1123](python-kasa#1123) (@rytilahti)
- Fix cli command for device off [\python-kasa#1121](python-kasa#1121) (@sdb9696)

**Project maintenance:**

- Use pytest-socket to ensure no tests are performing io [\python-kasa#1133](python-kasa#1133) (@sdb9696)
- Enable ruff lint pycodestyle warnings [\python-kasa#1132](python-kasa#1132) (@sdb9696)
- Add autouse fixture to patch asyncio.sleep [\python-kasa#1131](python-kasa#1131) (@sdb9696)
- Mock asyncio.sleep for klapprotocol tests [\python-kasa#1130](python-kasa#1130) (@rytilahti)
- Add fixture for T110 fw 1.9.0 [\python-kasa#1129](python-kasa#1129) (@rytilahti)
- Speed up and simplify github workflows [\python-kasa#1128](python-kasa#1128) (@sdb9696)
- Add KS200M\(US\) fw 1.0.12 fixture [\python-kasa#1127](python-kasa#1127) (@GatorEG)
- Add stale PR/Issue github workflow [\python-kasa#1126](python-kasa#1126) (@sdb9696)
- Add fixture for KL135\(US\) fw 1.0.15 [\python-kasa#1122](python-kasa#1122) (@rytilahti)
0