diff --git a/README.md b/README.md index bb42baf2..0da595a8 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ The following devices have been tested and confirmed as working. If your device - **Plugs**: P100, P110, P115, P125M, P135, TP15 - **Power Strips**: P300, P304M, TP25 - **Wall Switches**: S500D, S505, S505D -- **Bulbs**: L510B, L510E, L530E +- **Bulbs**: L510B, L510E, L530E, L630 - **Light Strips**: L900-10, L900-5, L920-5, L930-5 - **Hubs**: H100 - **Hub-Connected Devices\*\*\***: S200B, S200D, T100, T110, T300, T310, T315 diff --git a/SUPPORTED.md b/SUPPORTED.md index 80158681..7452b69a 100644 --- a/SUPPORTED.md +++ b/SUPPORTED.md @@ -227,6 +227,8 @@ All Tapo devices require authentication.
Hub-Connected Devices may work acros - Hardware: 3.0 (EU) / Firmware: 1.1.0 - Hardware: 3.0 (EU) / Firmware: 1.1.6 - Hardware: 2.0 (US) / Firmware: 1.1.0 +- **L630** + - Hardware: 1.0 (EU) / Firmware: 1.1.2 ### Light Strips diff --git a/kasa/tests/fixtures/smart/L630(EU)_1.0_1.1.2.json b/kasa/tests/fixtures/smart/L630(EU)_1.0_1.1.2.json new file mode 100644 index 00000000..4ca91c9b --- /dev/null +++ b/kasa/tests/fixtures/smart/L630(EU)_1.0_1.1.2.json @@ -0,0 +1,452 @@ +{ + "component_nego": { + "component_list": [ + { + "id": "device", + "ver_code": 2 + }, + { + "id": "firmware", + "ver_code": 2 + }, + { + "id": "quick_setup", + "ver_code": 3 + }, + { + "id": "inherit", + "ver_code": 1 + }, + { + "id": "time", + "ver_code": 1 + }, + { + "id": "wireless", + "ver_code": 1 + }, + { + "id": "schedule", + "ver_code": 2 + }, + { + "id": "countdown", + "ver_code": 2 + }, + { + "id": "antitheft", + "ver_code": 1 + }, + { + "id": "account", + "ver_code": 1 + }, + { + "id": "synchronize", + "ver_code": 1 + }, + { + "id": "sunrise_sunset", + "ver_code": 1 + }, + { + "id": "cloud_connect", + "ver_code": 1 + }, + { + "id": "default_states", + "ver_code": 1 + }, + { + "id": "preset", + "ver_code": 1 + }, + { + "id": "brightness", + "ver_code": 1 + }, + { + "id": "color", + "ver_code": 1 + }, + { + "id": "color_temperature", + "ver_code": 1 + }, + { + "id": "auto_light", + "ver_code": 1 + }, + { + "id": "on_off_gradually", + "ver_code": 3 + }, + { + "id": "device_local_time", + "ver_code": 1 + }, + { + "id": "light_effect", + "ver_code": 1 + }, + { + "id": "iot_cloud", + "ver_code": 1 + }, + { + "id": "bulb_quick_control", + "ver_code": 1 + }, + { + "id": "localSmart", + "ver_code": 1 + } + ] + }, + "discovery_result": { + "device_id": "00000000000000000000000000000000", + "device_model": "L630(EU)", + "device_type": "SMART.TAPOBULB", + "factory_default": false, + "ip": "127.0.0.123", + "is_support_iot_cloud": true, + "mac": "40-AE-30-00-00-00", + "mgt_encrypt_schm": { + "encrypt_type": "KLAP", + "http_port": 80, + "is_support_https": false, + "lv": 2 + }, + "obd_src": "tplink", + "owner": "00000000000000000000000000000000" + }, + "get_antitheft_rules": { + "antitheft_rule_max_count": 1, + "enable": false, + "rule_list": [] + }, + "get_auto_light_info": { + "enable": false, + "mode": "light_track" + }, + "get_auto_update_info": { + "enable": false, + "random_range": 120, + "time": 180 + }, + "get_connect_cloud_state": { + "status": 1 + }, + "get_countdown_rules": { + "countdown_rule_max_count": 1, + "enable": false, + "rule_list": [ + { + "delay": 120, + "desired_states": { + "on": false + }, + "enable": false, + "id": "C1", + "remain": 0 + } + ] + }, + "get_device_info": { + "avatar": "", + "brightness": 35, + "color_temp": 3200, + "color_temp_range": [ + 2200, + 6500 + ], + "default_states": { + "re_power_type": "always_on", + "state": { + "brightness": 100, + "color_temp": 3100, + "hue": 0, + "saturation": 100 + }, + "type": "custom" + }, + "device_id": "0000000000000000000000000000000000000000", + "device_on": false, + "dynamic_light_effect_enable": false, + "fw_id": "00000000000000000000000000000000", + "fw_ver": "1.1.2 Build 240926 Rel.164744", + "has_set_location_info": false, + "hue": 0, + "hw_id": "00000000000000000000000000000000", + "hw_ver": "1.0", + "ip": "127.0.0.123", + "lang": "en_US", + "latitude": 0, + "longitude": 0, + "mac": "40-AE-30-00-00-00", + "model": "L630", + "nickname": "I01BU0tFRF9OQU1FIw==", + "oem_id": "00000000000000000000000000000000", + "overheated": false, + "region": "Europe/Vienna", + "rssi": -71, + "saturation": 100, + "signal_level": 1, + "specs": "", + "ssid": "I01BU0tFRF9TU0lEIw==", + "time_diff": 60, + "type": "SMART.TAPOBULB" + }, + "get_device_time": { + "region": "Europe/Vienna", + "time_diff": 60, + "timestamp": 1731224827 + }, + "get_device_usage": { + "power_usage": { + "past30": 206, + "past7": 11, + "today": 0 + }, + "saved_power": { + "past30": 6610, + "past7": 424, + "today": 0 + }, + "time_usage": { + "past30": 6816, + "past7": 435, + "today": 0 + } + }, + "get_dynamic_light_effect_rules": { + "enable": false, + "max_count": 2, + "rule_list": [ + { + "change_mode": "direct", + "change_time": 1000, + "color_status_list": [ + [ + 10, + 0, + 0, + 2700 + ], + [ + 10, + 321, + 99, + 0 + ], + [ + 10, + 196, + 99, + 0 + ], + [ + 10, + 6, + 97, + 0 + ], + [ + 10, + 160, + 100, + 0 + ], + [ + 10, + 274, + 95, + 0 + ], + [ + 10, + 48, + 100, + 0 + ], + [ + 10, + 242, + 99, + 0 + ] + ], + "id": "L1", + "scene_name": "Party" + }, + { + "change_mode": "bln", + "change_time": 3000, + "color_status_list": [ + [ + 100, + 240, + 100, + 0 + ], + [ + 100, + 195, + 100, + 0 + ], + [ + 100, + 195, + 100, + 0 + ], + [ + 100, + 240, + 100, + 0 + ] + ], + "id": "L2", + "scene_name": "Relax" + } + ], + "start_index": 0, + "sum": 2 + }, + "get_fw_download_state": { + "auto_upgrade": false, + "download_progress": 0, + "reboot_time": 5, + "status": 0, + "upgrade_time": 5 + }, + "get_inherit_info": null, + "get_next_event": {}, + "get_on_off_gradually_info": { + "off_state": { + "duration": 4, + "enable": false, + "max_duration": 60 + }, + "on_state": { + "duration": 8, + "enable": true, + "max_duration": 60 + } + }, + "get_preset_rules": { + "states": [ + { + "brightness": 100, + "color_temp": 3100, + "hue": 0, + "saturation": 100 + }, + { + "brightness": 100, + "color_temp": 4500, + "hue": 0, + "saturation": 100 + }, + { + "brightness": 50, + "color_temp": 3200, + "hue": 0, + "saturation": 100 + }, + { + "brightness": 1, + "color_temp": 3200, + "hue": 0, + "saturation": 100 + }, + { + "brightness": 1, + "color_temp": 0, + "hue": 300, + "saturation": 100 + }, + { + "brightness": 1, + "color_temp": 0, + "hue": 195, + "saturation": 100 + }, + { + "brightness": 1, + "color_temp": 0, + "hue": 240, + "saturation": 100 + } + ] + }, + "get_schedule_rules": { + "enable": false, + "rule_list": [], + "schedule_rule_max_count": 32, + "start_index": 0, + "sum": 0 + }, + "get_wireless_scan_info": { + "ap_list": [ + { + "bssid": "000000000000", + "channel": 0, + "cipher_type": 2, + "key_type": "wpa2_psk", + "signal_level": 2, + "ssid": "I01BU0tFRF9TU0lEIw==" + }, + { + "bssid": "000000000000", + "channel": 0, + "cipher_type": 2, + "key_type": "wpa2_psk", + "signal_level": 1, + "ssid": "I01BU0tFRF9TU0lEIw==" + }, + { + "bssid": "000000000000", + "channel": 0, + "cipher_type": 2, + "key_type": "wpa2_psk", + "signal_level": 1, + "ssid": "I01BU0tFRF9TU0lEIw==" + } + ], + "start_index": 0, + "sum": 3, + "wep_supported": false + }, + "qs_component_nego": { + "component_list": [ + { + "id": "quick_setup", + "ver_code": 3 + }, + { + "id": "sunrise_sunset", + "ver_code": 1 + }, + { + "id": "inherit", + "ver_code": 1 + }, + { + "id": "iot_cloud", + "ver_code": 1 + }, + { + "id": "firmware", + "ver_code": 2 + } + ], + "extra_info": { + "device_model": "L630", + "device_type": "SMART.TAPOBULB", + "is_klap": true + } + } +}