-
-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add test_properties command to device class #1014
Conversation
This allows simple testing of available properties, their values & the number of properties that can be requested at once. This is done in two steps: 1. Testing all given properties one by one to see which return non-None values 2. Testing all valid, non-None values at once and removing properties to request on failures to obtain the max_properties value Example output: ``` $ miiocli device --ip <addr> --token <token> test_properties power on off usb_on temperature wifi_led foofoo x Running command test_properties Testing properties ('power', 'on', 'off', 'usb_on', 'temperature', 'wifi_led', 'foofoo', 'x') for zimi.powerstrip.v2 Testing power.. on <class 'str'> Testing on.. None Testing off.. None Testing usb_on.. None Testing temperature.. 46.07 <class 'float'> Testing wifi_led.. off <class 'str'> Testing foofoo.. None Testing x.. None Found 8 valid properties, testing max_properties.. Testing 8 properties at once.. OK for 8 properties Please copy the results below to your report Model: zimi.powerstrip.v2 Total responsives: 8 Total non-empty: 3 All non-empty properties: {'power': 'on', 'temperature': 46.07, 'wifi_led': 'off'} Max properties: 8 Done ```
Awesome! |
Another example from my vacuum that doesn't support properties (nor info), so it shouldn't crash on unexpected replies:
and yet another from yeelight, which seems to respond with empty strings instead of Nones for invalid properties:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A very helpful feature. Hopefully with miOT support some day.
Adding similar feature to |
Feel free to merge. |
[Full Changelog](0.5.5.2...0.5.6) **Implemented enhancements:** - RFC: Add a script to simplify finding supported properties for miio [\#919](#919) - Improve test\_properties output [\#1024](#1024) ([rytilahti](https://github.com/rytilahti)) - Relax zeroconf version requirement [\#1023](#1023) ([rytilahti](https://github.com/rytilahti)) - Add test\_properties command to device class [\#1014](#1014) ([rytilahti](https://github.com/rytilahti)) - Add discover command to miiocli [\#1013](#1013) ([rytilahti](https://github.com/rytilahti)) - Fix supported oscillation angles of the dmaker.fan.p9 [\#1011](#1011) ([syssi](https://github.com/syssi)) - Add additional operation mode of the deerma.humidifier.jsq1 [\#1010](#1010) ([syssi](https://github.com/syssi)) - Roborock S7: Parse history details returned as dict [\#1006](#1006) ([fettlaus](https://github.com/fettlaus)) **Fixed bugs:** - zeroconf 0.29.0 which is incompatible [\#1022](#1022) - Remove superfluous decryption failure for handshake responses [\#1008](#1008) - Skip pausing on Roborock S50 [\#1005](#1005) - Roborock S7 after Firmware Update 4.1.2-0928 - KeyError [\#1004](#1004) - No air quality value when aqi is 1 [\#958](#958) - Fix exception on devices with removed lan\_ctrl [\#1028](#1028) ([Kirmas](https://github.com/Kirmas)) - Fix start bug and improve error handling in walkingpad integration [\#1017](#1017) ([dewgenenny](https://github.com/dewgenenny)) - gateway: fix zigbee lights [\#1016](#1016) ([starkillerOG](https://github.com/starkillerOG)) - Silence unable to decrypt warning for handshake responses [\#1015](#1015) ([rytilahti](https://github.com/rytilahti)) - Fix set\_mode\_and\_speed mode for airdog airpurifier [\#993](#993) ([alexeypetrenko](https://github.com/alexeypetrenko)) **Closed issues:** - Add Dafang camera \(isa.camera.df3\) support [\#996](#996) - Roborock S7 [\#989](#989) - WalkingPad A1 Pro [\#797](#797) **Merged pull requests:** - Add basic dmaker.fan.1c support [\#1012](#1012) ([syssi](https://github.com/syssi)) - Always return aqi value \[Revert PR\#930\] [\#1007](#1007) ([bieniu](https://github.com/bieniu)) - Added S6 to skip pause on docking [\#1002](#1002) ([Sian-Lee-SA](https://github.com/Sian-Lee-SA)) - Added number of dust collections to CleaningSummary if available [\#992](#992) ([fettlaus](https://github.com/fettlaus)) - Reformat history data if returned as a dict/Roborock S7 Support \(\#989\) [\#990](#990) ([fettlaus](https://github.com/fettlaus)) - Add support for Walkingpad A1 \(ksmb.walkingpad.v3\) [\#975](#975) ([dewgenenny](https://github.com/dewgenenny))
[Full Changelog](0.5.5.2...0.5.6) **Implemented enhancements:** - RFC: Add a script to simplify finding supported properties for miio [\#919](#919) - Improve test\_properties output [\#1024](#1024) ([rytilahti](https://github.com/rytilahti)) - Relax zeroconf version requirement [\#1023](#1023) ([rytilahti](https://github.com/rytilahti)) - Add test\_properties command to device class [\#1014](#1014) ([rytilahti](https://github.com/rytilahti)) - Add discover command to miiocli [\#1013](#1013) ([rytilahti](https://github.com/rytilahti)) - Fix supported oscillation angles of the dmaker.fan.p9 [\#1011](#1011) ([syssi](https://github.com/syssi)) - Add additional operation mode of the deerma.humidifier.jsq1 [\#1010](#1010) ([syssi](https://github.com/syssi)) - Roborock S7: Parse history details returned as dict [\#1006](#1006) ([fettlaus](https://github.com/fettlaus)) **Fixed bugs:** - zeroconf 0.29.0 which is incompatible [\#1022](#1022) - Remove superfluous decryption failure for handshake responses [\#1008](#1008) - Skip pausing on Roborock S50 [\#1005](#1005) - Roborock S7 after Firmware Update 4.1.2-0928 - KeyError [\#1004](#1004) - No air quality value when aqi is 1 [\#958](#958) - Fix exception on devices with removed lan\_ctrl [\#1028](#1028) ([Kirmas](https://github.com/Kirmas)) - Fix start bug and improve error handling in walkingpad integration [\#1017](#1017) ([dewgenenny](https://github.com/dewgenenny)) - gateway: fix zigbee lights [\#1016](#1016) ([starkillerOG](https://github.com/starkillerOG)) - Silence unable to decrypt warning for handshake responses [\#1015](#1015) ([rytilahti](https://github.com/rytilahti)) - Fix set\_mode\_and\_speed mode for airdog airpurifier [\#993](#993) ([alexeypetrenko](https://github.com/alexeypetrenko)) **Closed issues:** - Add Dafang camera \(isa.camera.df3\) support [\#996](#996) - Roborock S7 [\#989](#989) - WalkingPad A1 Pro [\#797](#797) **Merged pull requests:** - Add basic dmaker.fan.1c support [\#1012](#1012) ([syssi](https://github.com/syssi)) - Always return aqi value \[Revert PR\#930\] [\#1007](#1007) ([bieniu](https://github.com/bieniu)) - Added S6 to skip pause on docking [\#1002](#1002) ([Sian-Lee-SA](https://github.com/Sian-Lee-SA)) - Added number of dust collections to CleaningSummary if available [\#992](#992) ([fettlaus](https://github.com/fettlaus)) - Reformat history data if returned as a dict/Roborock S7 Support \(\#989\) [\#990](#990) ([fettlaus](https://github.com/fettlaus)) - Add support for Walkingpad A1 \(ksmb.walkingpad.v3\) [\#975](#975) ([dewgenenny](https://github.com/dewgenenny))
* Add test_properties command to device class This allows simple testing of available properties, their values & the number of properties that can be requested at once. This is done in two steps: 1. Testing all given properties one by one to see which return non-None values 2. Testing all valid, non-None values at once and removing properties to request on failures to obtain the max_properties value Example output: ``` $ miiocli device --ip <addr> --token <token> test_properties power on off usb_on temperature wifi_led foofoo x Running command test_properties Testing properties ('power', 'on', 'off', 'usb_on', 'temperature', 'wifi_led', 'foofoo', 'x') for zimi.powerstrip.v2 Testing power.. on <class 'str'> Testing on.. None Testing off.. None Testing usb_on.. None Testing temperature.. 46.07 <class 'float'> Testing wifi_led.. off <class 'str'> Testing foofoo.. None Testing x.. None Found 8 valid properties, testing max_properties.. Testing 8 properties at once.. OK for 8 properties Please copy the results below to your report Model: zimi.powerstrip.v2 Total responsives: 8 Total non-empty: 3 All non-empty properties: {'power': 'on', 'temperature': 46.07, 'wifi_led': 'off'} Max properties: 8 Done ``` * Consider empty strings as non-existing properties * Move pformat import to top of the file
This allows simple testing of available properties, their values & the number of properties that can be requested at once.
This is done in two steps:
Example output:
Closes #919