mqttagent

MQTT Lua Agent
git clone https://git.instinctive.eu/mqttagent.git
Log | Files | Refs | README | LICENSE

commit 102e0ae37e6c06cf2827c22d96f99bd6c910c344
parent ffc9c24a0843e7929b461332c30f08d9e157c26a
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Sat,  4 Jan 2025 11:16:54 +0000

Basic project infrastructure
Diffstat:
ALICENSE | 13+++++++++++++
AREADME.md | 20++++++++++++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/LICENSE b/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2025, Natacha Porté + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md @@ -0,0 +1,20 @@ +# mqttagent + +[![Casual Maintenance Intended](https://casuallymaintained.tech/badge.svg)](https://casuallymaintained.tech/) + +This is a daemon MQTT client which runs Lua callbacks on received messages. + +It started with a backup graph that did not match the connectivity graph, +so some data had to be pushed while other had to be pulled. +So I needed machine-to-machine signalling to pull data from a source after it +has been pushed completely. + +I thought of MQTT for the signalling, and a kind of +cron-but-for-MQTT-messages-instead-of-time to run actions. +But then I imagined writing a parser for a crontab-like configuration file, +and then writing such a configuration file, so I reconsidered my life choices. + +It turns out that a Lua script is much easier for development (thanks to +existing interpreters), for setup (thanks to a friendlier language), and +for maintenance (thanks to basic logic not being scattered across a lot +of small shell scripts).