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
« prev ^ index » next coverage.py v7.9.1, created at 2025-08-19 01:39 +0900
1#!/usr/bin/env python3
2"""
3定義されたデバイスに対しで電力データが取得できているかチェックします。
5Usage:
6 sharp_hmes_status.py [-c CONFIG] [-s SERVER_HOST] [-p SERVER_PORT] [-T] [-D]
8Options:
9 -c CONFIG : 設定ファイルを指定します。 [default: config.yaml]
10 -D : デバッグモードで動作します。
11"""
13import logging
15import my_lib.sensor_data
17import sharp_hems.device
19SCHEMA_CONFIG = "config.schema"
22def hems_status_check(config, dev_define_file):
23 sharp_hems.device.reload(dev_define_file)
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)
41######################################################################
42if __name__ == "__main__":
43 import pathlib
45 import docopt
46 import my_lib.config
47 import my_lib.logger
49 args = docopt.docopt(__doc__)
51 config_file = args["-c"]
52 debug_mode = args["-D"]
54 my_lib.logger.init("hems.wattmeter-sharp", level=logging.DEBUG if debug_mode else logging.INFO)
56 config = my_lib.config.load(config_file, pathlib.Path(SCHEMA_CONFIG))
58 dev_define_file = pathlib.Path(config["device"]["define"])
60 hems_status_check(config, dev_define_file)