diff --git a/devtools/dump_devinfo.py b/devtools/dump_devinfo.py index 1108e7fb4..2f3c20e01 100644 --- a/devtools/dump_devinfo.py +++ b/devtools/dump_devinfo.py @@ -76,6 +76,8 @@ def cli(host, debug): Call( module="smartlife.iot.smartbulb.lightingservice", method="get_light_state" ), + Call(module="smartlife.iot.LAS", method="get_config"), + Call(module="smartlife.iot.PIR", method="get_config"), ] successes = [] diff --git a/kasa/tests/conftest.py b/kasa/tests/conftest.py index 2c1d1e49c..f9fc917f6 100644 --- a/kasa/tests/conftest.py +++ b/kasa/tests/conftest.py @@ -53,7 +53,7 @@ "KP401", } STRIPS = {"HS107", "HS300", "KP303", "KP400", "EP40"} -DIMMERS = {"HS220"} +DIMMERS = {"HS220", "KS220M"} DIMMABLE = {*BULBS, *DIMMERS} WITH_EMETER = {"HS110", "HS300", "KP115", *BULBS} diff --git a/kasa/tests/fixtures/KS220M(US)_1.0_1.0.4.json b/kasa/tests/fixtures/KS220M(US)_1.0_1.0.4.json new file mode 100644 index 000000000..40da46fdd --- /dev/null +++ b/kasa/tests/fixtures/KS220M(US)_1.0_1.0.4.json @@ -0,0 +1,126 @@ +{ + "smartlife.iot.LAS": { + "get_config": { + "devs": [ + { + "dark_index": 0, + "enable": 1, + "hw_id": 0, + "level_array": [ + { + "adc": 490, + "name": "cloudy", + "value": 20 + }, + { + "adc": 294, + "name": "overcast", + "value": 12 + }, + { + "adc": 222, + "name": "dawn", + "value": 9 + }, + { + "adc": 222, + "name": "twilight", + "value": 9 + }, + { + "adc": 111, + "name": "total darkness", + "value": 4 + }, + { + "adc": 2400, + "name": "custom", + "value": 97 + } + ], + "max_adc": 2450, + "min_adc": 0 + } + ], + "err_code": 0, + "ver": "1.0" + } + }, + "smartlife.iot.PIR": { + "get_config": { + "array": [ + 80, + 50, + 20, + 61 + ], + "cold_time": 60000, + "enable": 1, + "err_code": 0, + "max_adc": 4095, + "min_adc": 0, + "trigger_index": 2, + "version": "1.0" + } + }, + "smartlife.iot.dimmer": { + "get_dimmer_parameters": { + "bulb_type": 1, + "err_code": 0, + "fadeOffTime": 0, + "fadeOnTime": 0, + "gentleOffTime": 10000, + "gentleOnTime": 3000, + "minThreshold": 1, + "rampRate": 30 + } + }, + "system": { + "get_sysinfo": { + "active_mode": "none", + "alias": "Garage Entryway Lights", + "brightness": 100, + "dev_name": "Wi-Fi Smart Dimmer with sensor", + "deviceId": "0000000000000000000000000000000000000000", + "err_code": 0, + "feature": "TIM", + "hwId": "00000000000000000000000000000000", + "hw_ver": "1.0", + "icon_hash": "", + "latitude_i": 0, + "led_off": 0, + "longitude_i": 0, + "mac": "00:00:00:00:00:00", + "mic_type": "IOT.SMARTPLUGSWITCH", + "model": "KS220M(US)", + "next_action": { + "type": -1 + }, + "oemId": "00000000000000000000000000000000", + "on_time": 0, + "preferred_state": [ + { + "brightness": 100, + "index": 0 + }, + { + "brightness": 75, + "index": 1 + }, + { + "brightness": 50, + "index": 2 + }, + { + "brightness": 25, + "index": 3 + } + ], + "relay_state": 0, + "rssi": -42, + "status": "new", + "sw_ver": "1.0.4 Build 210616 Rel.193517", + "updating": 0 + } + } +} diff --git a/kasa/tests/newfakes.py b/kasa/tests/newfakes.py index 2afae2aa3..2e859e362 100644 --- a/kasa/tests/newfakes.py +++ b/kasa/tests/newfakes.py @@ -437,6 +437,8 @@ def light_state(self, x, *args): "set_brightness": set_hs220_brightness, "set_dimmer_transition": set_hs220_dimmer_transition, }, + "smartlife.iot.LAS": {}, + "smartlife.iot.PIR": {}, } async def query(self, request, port=9999):