summaryrefslogtreecommitdiff
path: root/bin/gpiorelayd.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/gpiorelayd.py')
-rwxr-xr-xbin/gpiorelayd.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/bin/gpiorelayd.py b/bin/gpiorelayd.py
new file mode 100755
index 0000000..89ba78e
--- /dev/null
+++ b/bin/gpiorelayd.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+import logging
+import os
+import sys
+import __py_include
+
+from argparse import ArgumentParser
+from homekit.util import Addr
+from homekit.config import config
+from homekit.relay.sunxi_h3_server import RelayServer
+
+logger = logging.getLogger(__name__)
+
+
+if __name__ == '__main__':
+ if os.getegid() != 0:
+ sys.exit('Must be run as root.')
+
+ parser = ArgumentParser()
+ parser.add_argument('--pin', type=str, required=True,
+ help='name of GPIO pin of Allwinner H3 sunxi board')
+ parser.add_argument('--listen', type=str, required=True,
+ help='address to listen to, in ip:port format')
+
+ arg = config.load_app(no_config=True, parser=parser)
+ listen = Addr.fromstring(arg.listen)
+
+ try:
+ RelayServer(pinname=arg.pin, addr=listen).run()
+ except KeyboardInterrupt:
+ logger.info('Exiting...')