Tags: CodeBeaverAI/python-kasa
Tags
[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)
[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)
[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)
[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)
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)
[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)
[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)
[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)
[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)
[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)
PreviousNext