| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- """Find matching devices for the supplied dp list"""
- import json
- import sys
- from common_funcs import FakeDevice, load_config, make_sample_dps
- from custom_components.tuya_local.helpers.device_config import _typematch
- def main() -> int:
- rest = " ".join(sys.argv[2:])
- config = load_config(rest)
- if config is None:
- dps = json.loads(rest)
- else:
- dps = make_sample_dps(config)
- device = FakeDevice(dps)
- config = load_config(sys.argv[1])
- if config is None:
- print(f"No config could be loaded for {sys.argv[1]}")
- return 1
- for entity in config.all_entities():
- print(f"{entity.config_id}:")
- for dp in entity.dps():
- if dp.id not in dps.keys():
- print(f" {dp.name} missing from data")
- if not dp.optional:
- print(f">> dp {dp.id} is REQUIRED!!!!")
- elif not _typematch(dp.type, dps.get(dp.id)):
- print(
- f">> {dp.name} type MISMATCH, expected {dp.type.__name__}, got {dps.get(dp.id)}!!!"
- )
- else:
- values = dp.values(device)
- if values:
- values = f" from {values}"
- else:
- values = ""
- print(f" {dp.name}: {dp.get_value(device)}{values}")
- if __name__ == "__main__":
- sys.exit(main())
|