summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-09-07 22:56:08 +0200
committerKarel Kočí <cynerd@email.cz>2018-09-07 23:13:58 +0200
commitc3fb448c05022ea78ee59215f3c9aa4dbd859b9f (patch)
treeb450c30ae649b2cb28cbe3676fb642830d134bb4
parentea39800cfac6469212013b2c459f54c3da64c613 (diff)
downloadopenwrt-personal-pkgs-c3fb448c05022ea78ee59215f3c9aa4dbd859b9f.tar.gz
openwrt-personal-pkgs-c3fb448c05022ea78ee59215f3c9aa4dbd859b9f.tar.bz2
openwrt-personal-pkgs-c3fb448c05022ea78ee59215f3c9aa4dbd859b9f.zip
Add BigClown gateway software
-rw-r--r--bigclown-gateway/Makefile40
-rw-r--r--bigclown-gateway/files/bc-gateway-usb-dongle.config9
-rwxr-xr-xbigclown-gateway/files/bc-gateway-usb-dongle.init59
3 files changed, 108 insertions, 0 deletions
diff --git a/bigclown-gateway/Makefile b/bigclown-gateway/Makefile
new file mode 100644
index 0000000..60f659a
--- /dev/null
+++ b/bigclown-gateway/Makefile
@@ -0,0 +1,40 @@
+#
+## Copyright (C) 2016-2017 CZ.NIC z.s.p.o. (http://www.nic.cz/)
+#
+## This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+# #
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bigclown-gateway
+PKG_RELEASE:=1
+PKG_SOURCE_URL:=https://github.com/bigclownlabs/bch-gateway.git
+PKG_MAINTAINER:=Karel Kočí <cynerd@email.cz>
+
+include $(TOPDIR)/package/autopkg-tag.mk
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python3-package.mk)
+
+define Package/$(PKG_NAME)
+ TITLE:=BigCLown gateway
+ DEPENDS:=+python3 +mosquitto +mosquitto-client +kmod-usb-serial-ftdi +kmod-usb-acm
+endef
+
+define Py3Package/$(PKG_NAME)/install
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) ./files/bc-gateway-usb-dongle.config $(1)/etc/config/bc-gateway-usb-dongle
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/bc-gateway-usb-dongle.init $(1)/etc/init.d/bc-gateway-usb-dongle.init
+endef
+
+define Package/$(PKG_NAME)/conffiles
+/etc/config/bc-gateway-usb-dongle
+endef
+
+define Build/Compile
+ $(call Build/Compile/Py3Mod,,install --prefix="/usr" --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call Py3Package,$(PKG_NAME)))
+$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/bigclown-gateway/files/bc-gateway-usb-dongle.config b/bigclown-gateway/files/bc-gateway-usb-dongle.config
new file mode 100644
index 0000000..7fa3977
--- /dev/null
+++ b/bigclown-gateway/files/bc-gateway-usb-dongle.config
@@ -0,0 +1,9 @@
+
+config config 'gateway'
+ option name 'usb-dongle'
+ option device '/dev/ttyUSB0'
+ option automatic_rename_kit_nodes '1'
+
+config config 'mqtt'
+ option host 'localhost'
+ option port '1883'
diff --git a/bigclown-gateway/files/bc-gateway-usb-dongle.init b/bigclown-gateway/files/bc-gateway-usb-dongle.init
new file mode 100755
index 0000000..bae6d11
--- /dev/null
+++ b/bigclown-gateway/files/bc-gateway-usb-dongle.init
@@ -0,0 +1,59 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+STOP=1
+
+USE_PROCD=1
+
+PROG=/usr/bin/bcg
+
+CONF=/tmp/bc-gateway-usb-dongle.generated.conf
+
+UCI_STARTED=
+UCI_DISABLED=
+
+append() {
+ local cfg="$1"
+ local uci_name="$2"
+ local out_name="$3"
+ local default="$4"
+ config_get val $cfg $uci_name $default
+ if [ -n "$val" ]; then
+ echo "$out_name $val" >> $CONF
+ fi
+}
+
+start_service() {
+ config_load bc-gateway-usb-dongle
+
+ rm -rf $CONF
+ echo "Generating bc-gateway-usb-dongle config file in $CONF"
+
+ append gateway name 'name:' usb-dongle
+ append gateway device 'device:' /dev/ttyUSB0
+ append gateway automatic_rename_kit_nodes 'automatic_rename_kit_nodes:' 1
+ append gateway base_topic_prefix 'base_topic_prefix:'
+
+ echo "mqtt:" >> $CONF
+
+ append mqtt host ' host:' localhost
+ append mqtt port ' port:' 1883
+ append mqtt cafile ' cafile:'
+ append mqtt certfile ' certfile:'
+ append mqtt keyfile ' keyfile:'
+
+ procd_open_instance
+ procd_set_param respawn
+ procd_set_param command "$PROG" -c "$CONF" -W
+ procd_close_instance
+}
+
+stop_service() {
+ service_stop "$PROG"
+ ps | grep "$PROG" | grep -v grep | sed -e 's/^\s*\([0-9]\+\)\s.*$/\1/' | xargs -r -- kill -9
+}
+
+service_triggers()
+{
+ procd_add_reload_trigger 'bc-gateway-usb-dongle'
+}