summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bigclown-leds/Makefile31
-rwxr-xr-xbigclown-leds/files/bigclown-leds32
-rwxr-xr-xbigclown-leds/files/init21
3 files changed, 84 insertions, 0 deletions
diff --git a/bigclown-leds/Makefile b/bigclown-leds/Makefile
new file mode 100644
index 0000000..5533588
--- /dev/null
+++ b/bigclown-leds/Makefile
@@ -0,0 +1,31 @@
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bigclown-leds
+PKG_VERSION:=1.0
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Karel Kočí <cynerd@email.cz>
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)
+ TITLE:=BigCLown LEDs
+ DEPENDS:=+python3-paho-mqtt
+endef
+
+define Package/$(PKG_NAME)/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_DATA) ./files/bigclown-leds $(1)/usr/bin/bigclown-leds
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/init $(1)/etc/init.d/bigclown-leds
+endef
+
+define Build/Compile
+ true
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/bigclown-leds/files/bigclown-leds b/bigclown-leds/files/bigclown-leds
new file mode 100755
index 0000000..8c16ffc
--- /dev/null
+++ b/bigclown-leds/files/bigclown-leds
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+import paho.mqtt.client as mqtt
+
+
+def on_connect(client, userdata, flags, rc):
+ print("Connected with result code "+str(rc))
+ client.subscribe("node/lcd-thermostat:0/led/#")
+
+
+# The callback for when a PUBLISH message is received from the server.
+def on_message(client, userdata, msg):
+ topic = msg.topic[26:]
+ client.publish(
+ 'node/power-controller:0/led-strip/-/' + topic,
+ payload=msg.payload)
+
+#def on_log(mqttc, obj, level, string):
+# print(string)
+
+
+def main():
+ client = mqtt.Client()
+ client.on_connect = on_connect
+ client.on_message = on_message
+ #client.on_log = on_log
+
+ client.connect("127.0.0.1", 1883, 60)
+ client.loop_forever()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bigclown-leds/files/init b/bigclown-leds/files/init
new file mode 100755
index 0000000..fa56a36
--- /dev/null
+++ b/bigclown-leds/files/init
@@ -0,0 +1,21 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+STOP=1
+
+USE_PROCD=1
+
+PROG=/usr/bin/bigclown-leds
+
+start_service() {
+ procd_open_instance
+ procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
+ procd_set_param command "$PROG"
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_close_instance
+}
+
+stop_service() {
+ service_stop "$PROG"
+}