LinuxGSM icon indicating copy to clipboard operation
LinuxGSM copied to clipboard

MQTT-support for alerts. Proof-of-concept implemented. Feedback requested

Open insensitiveclod opened this issue 4 years ago • 4 comments

TLDR:

I have implemented a method to get LGSM alerts to be distributed via the MQTT protocol. I am looking for feedback on it , review the implementation AND on guidance on how to get it prepped for inclusion into the base LGSM package.

A proof of concept is in 'insensitiveclod/LinuxGSM'

Long version:

I have implemented: alert_mqtt.sh

And altered: alert_sh (to know what to do) core_functions.sh (to know about it) core_dl.sh (to define mqttpubpath... Is possibly not the right place ?)

Also, an example config has been made for rust: rustserver/_default.cfg

Since I only started using LGSM about a month ago, and I just checked out the source 4 days ago, I dont know if there's particular requirements/ideas that I am missing in my implementation.

I aim to re-write json-format of the alert_mqtt.sh message somewhat to more correspond to something that'll be easily parseable by something like NodeRed I am thinking of doing this with a 'mqttjsontemplate' config-param that'll allow formatting things from the config-file, as it would be quite a pain to have to edit alert_mqtt.sh for most users.

The config currently knows about: mqttalert on/off mqtthost server-name/ip mqttport service-port mqttuser user to login with (anonymous-user support coming) mqttpassword password for user (see above) mqtttopic mqtt 'topic' name.

The mqtttopic is currently 'fixed'. That is, '/lgsm/rustserver' for the rust-server example. I am thinking of changing it to "mqtttopicbase" instead, so the full topic of any alert will be in the form of /lgsm/rustserver/$instancename/
If you know how MQTT works, this will mean you can subscribe to /lgsm/rustserver/# and get messages from ALL instances; of /lgsm/rustserver/rustserver1 for the 'rustserver1' instance , only.

Comments very welcome. Keen to have this be available for anyone/everyone.

insensitiveclod avatar Aug 29 '19 15:08 insensitiveclod

Issue-Label Bot is automatically applying the label type: feature request to this issue, with a confidence of 0.81. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

issue-label-bot[bot] avatar Aug 29 '19 15:08 issue-label-bot[bot]

I am looking for feedback on it

IMHO MQTT is a nice addition. Some people won't know what do with it. I like it! With MQTT enabled for LGSM I can add my Server(s) to my SmartHome via. openHAB. If I get time I will test and check your code.

BrutalBirdie avatar Aug 30 '19 09:08 BrutalBirdie

Cheers, thanks for your response.

The nice thing is that it integrates with quite a few services 'under the hood' as well. A lot of the Internet of Things infrastructure has chosen MQTT as it's default method of communication. ITTT, TheThingsNetwork (Lorawan), etc.. So that makes it nice to be able to recieve these kinds of game-server messages on your devices OR remix them in other ways.

Lemme know what changes/modifications might be useful to have it be ready for inclusion or a pull-request.

insensitiveclod avatar Sep 09 '19 09:09 insensitiveclod

+1 for this feature. I use Home Assistant would would love to be able to automatically report the server's status to it.

noldona avatar Jul 11 '22 21:07 noldona