-
-
Notifications
You must be signed in to change notification settings - Fork 563
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
RFC: Add a script to simplify finding supported properties for miio #919
Comments
+1 a great idea This would have saved me around 4 hours in the weekend, when I could not correlate the missing parameters to the requested parameters easily (because there were four parameters not returning results, making it complex to spot with a casual look). I even contemplated making a simply loop to do this testing, but did not think it would take as long as it did :) |
Going a bit further (i.e., not miio only) with this same idea, it is even easier to do the property enumeration for miot devices (even if there would be no schema files available): simply enumerate over the available siids and piids until an error appears to and print out the values while doing that. Someone who has a device could then map the returned values to something they are seeing in the app. |
device won't pass xiaomi certification without having miot specs. however with brute force way you may find some props not present in specs, but somehow implemented in firmware. |
[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))
Inspired by #808 (comment), I think it could be a good idea to have a simple script (
miiotester.py
stored underdevtools
? or simply as a command forDevice
?) to automate checking what a target device (i.e., which properties, and how many can be requested using a single request) supports.This script would take a host, its token and a list of properties to test against it, so executing something like:
would query each property one by one to find out which return a valid value / do not raise an exception.
After that, the script would find out how many properties can be requested at once (to find out
max_properties
).The output for this script would look something like:
@syssi I have seen you requesting users to use
raw_command
on set of properties to help adding and improving support for devices, what do you think?The text was updated successfully, but these errors were encountered: