aboutsummaryrefslogtreecommitdiff
path: root/utils/mqttled
diff options
context:
space:
mode:
authorTom Grime <tom.grime@gmail.com>2022-06-02 10:22:11 +0100
committerRosen Penev <rosenp@gmail.com>2022-06-09 12:31:24 -0700
commitf8b97f7962a8f4b271751c511750d5aef28a1236 (patch)
treee35a338c32b9d76244dfc0610cad5516ba288f2c /utils/mqttled
parentdb8205e5458e27152b02c57609f2224586843271 (diff)
mqttled: add new package
Signed-off-by: Tom Grime <tom.grime@gmail.com>
Diffstat (limited to 'utils/mqttled')
-rw-r--r--utils/mqttled/Makefile58
-rw-r--r--utils/mqttled/files/mqttled.config34
-rw-r--r--utils/mqttled/files/mqttled.init16
3 files changed, 108 insertions, 0 deletions
diff --git a/utils/mqttled/Makefile b/utils/mqttled/Makefile
new file mode 100644
index 000000000..1620fe155
--- /dev/null
+++ b/utils/mqttled/Makefile
@@ -0,0 +1,58 @@
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mqttled
+PKG_VERSION:=0.1.0
+PKG_RELEASE:=1
+
+PYPI_NAME:=mqttled
+PKG_HASH:=20f46b7114b6ddace6e0faaaa078640f609c3d495e4ccff8d8caeb77ac5418f7
+
+PKG_MAINTAINER:=Tom Grime <tom.grime@gmail.com>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENCE
+
+include ../../lang/python/pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/python/python3-package.mk
+
+define Package/mqttled
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=LED Control from MQTT
+ URL:=https://github.com/trevortrevor/mqttled/
+ DEPENDS:= \
+ +python3-paho-mqtt \
+ +python3-uci \
+ +python3-idna \
+ +python3-jsonpath-ng \
+ +python3-yaml \
+ +python3-schema \
+ +python3-netifaces \
+ +python3-logging \
+ +python3-urllib \
+ +python3-asyncio \
+ +python3-pkg-resources
+
+endef
+
+define Package/mqttled/description
+ Exposes the LEDs of your device to an MQTT broker with optional Home Assistant auto discovery
+endef
+
+define Py3Package/mqttled/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mqttled $(1)/usr/bin/
+
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/mqttled.init $(1)/etc/init.d/mqttled
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_DATA) ./files/mqttled.config $(1)/etc/config/mqttled
+endef
+
+define Package/mqttled/conffiles
+/etc/config/mqttled
+endef
+
+$(eval $(call Py3Package,mqttled))
+$(eval $(call BuildPackage,mqttled))
diff --git a/utils/mqttled/files/mqttled.config b/utils/mqttled/files/mqttled.config
new file mode 100644
index 000000000..e3c793a86
--- /dev/null
+++ b/utils/mqttled/files/mqttled.config
@@ -0,0 +1,34 @@
+config mqtt 'mqtt'
+ #MQTT Broker Address
+ option host '192.168.1.1'
+ option port '1883'
+ #May work without this, should bind to all interfaces. Needs to be an interface matching in /etc/config/network
+ option interface 'lan'
+ option username ''
+ option password ''
+ #Not tested
+ option tls '0'
+ option cert ''
+ option discovery 'homeassistant'
+ #Set your topic here: e.g. OpenWRTleds/CustomDevice/led1
+ option basetopic 'OpenWRTleds'
+ option subtopic 'CustomDevice'
+ #Reported in the 'device' page in Home Assistant
+ option model 'OpenWRT Device'
+
+config leds 'leds'
+ #Setting this to 1 will ignore any includes
+ option includeall '1'
+ #excluded LEDs will allways be supressed
+ list exclude 'mt76-phy0'
+ list exclude 'rt2800soc-phy1::assoc'
+ list exclude 'rt2800soc-phy1::quality'
+ list exclude 'rt2800soc-phy1::radio'
+ #list include 'blue:internet'
+
+config trigger 'triggers'
+ #Only triggers listed here will be presented to HA as 'effects'
+ list triggers 'none'
+ list triggers 'default-on'
+ list triggers 'heartbeat'
+ list triggers 'timer'
diff --git a/utils/mqttled/files/mqttled.init b/utils/mqttled/files/mqttled.init
new file mode 100644
index 000000000..3b785bb31
--- /dev/null
+++ b/utils/mqttled/files/mqttled.init
@@ -0,0 +1,16 @@
+#!/bin/sh /etc/rc.common
+
+START=99
+STOP=99
+
+USE_PROCD=1
+
+PROG=/usr/bin/mqttled
+
+start_service() {
+ procd_open_instance
+ procd_set_param command "$PROG"
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_close_instance
+}