Coverage for src/sharp_hems_status.py: 0%

11 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-08-19 01:39 +0900

1#!/usr/bin/env python3 

2""" 

3定義されたデバイスに対しで電力データが取得できているかチェックします。 

4 

5Usage: 

6 sharp_hmes_status.py [-c CONFIG] [-s SERVER_HOST] [-p SERVER_PORT] [-T] [-D] 

7 

8Options: 

9 -c CONFIG : 設定ファイルを指定します。 [default: config.yaml] 

10 -D : デバッグモードで動作します。 

11""" 

12 

13import logging 

14 

15import my_lib.sensor_data 

16 

17import sharp_hems.device 

18 

19SCHEMA_CONFIG = "config.schema" 

20 

21 

22def hems_status_check(config, dev_define_file): 

23 sharp_hems.device.reload(dev_define_file) 

24 

25 for dev_name in sharp_hems.device.get_list(): 

26 data_valid = my_lib.sensor_data.fetch_data( 

27 config["influxdb"], 

28 "{tag}.{label}".format( 

29 tag=config["fluentd"]["data"]["tag"], label=config["fluentd"]["data"]["label"] 

30 ), 

31 dev_name, 

32 config["fluentd"]["data"]["field"], 

33 "-1h", 

34 )["valid"] 

35 if data_valid: 

36 logging.info("%0s: OK", dev_name) 

37 else: 

38 logging.error("%0s: NG", dev_name) 

39 

40 

41###################################################################### 

42if __name__ == "__main__": 

43 import pathlib 

44 

45 import docopt 

46 import my_lib.config 

47 import my_lib.logger 

48 

49 args = docopt.docopt(__doc__) 

50 

51 config_file = args["-c"] 

52 debug_mode = args["-D"] 

53 

54 my_lib.logger.init("hems.wattmeter-sharp", level=logging.DEBUG if debug_mode else logging.INFO) 

55 

56 config = my_lib.config.load(config_file, pathlib.Path(SCHEMA_CONFIG)) 

57 

58 dev_define_file = pathlib.Path(config["device"]["define"]) 

59 

60 hems_status_check(config, dev_define_file)