diff options
-rw-r--r-- | bigclown-leds/Makefile | 31 | ||||
-rwxr-xr-x | bigclown-leds/files/bigclown-leds | 32 | ||||
-rwxr-xr-x | bigclown-leds/files/init | 21 |
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" +} |