#!/usr/bin/env python3 import argparse import logging import tic import tic_mqtt log = logging.getLogger(__name__) def main(): parser = argparse.ArgumentParser(prog="tic2mqtt", description="MQTT client for Linky Electricity Meters installed by Enedis in France.") #parser.add_argument('input', nargs='?', type=argparse.FileType('rb', bufsize=0), default='-', # help="input file or device to read TIC messages (stdin by default)") parser.add_argument('input', nargs='?', default='/dev/stdin', help="input file or device to read TIC messages (stdin by default)") parser.add_argument('-m', '--mode', choices=['auto', 'historique', 'standard'], default='auto', help='select TIC mode') parser.add_argument('-l', '--log', choices=['debug', 'info', 'warning', 'error'], default='error', help='set the log level') parser.add_argument('-b', '--broker', help='MQTT broker hostname') args = parser.parse_args() logging.basicConfig(level=getattr(logging, args.log.upper())) my_tic = tic.Tic(args.input) if args.mode == "auto": my_tic.detect_mode() else: my_tic.set_mode(args.mode) mqtt = tic_mqtt.TicPublisher(args.broker) my_tic.set_callback_ads(mqtt.set_ads) my_tic.set_callback_msg(mqtt.send_msg) my_tic.run() if mqtt: mqtt.close() if __name__ == '__main__': main()