From: Petter Reinholdtsen Date: Sun, 8 Jan 2023 18:35:03 +0000 (+0100) Subject: Generated. X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/commitdiff_plain/ced024a153897136786d7b06dc7d5a47c2ca936e?ds=inline;hp=bab7963b92584496cd23097a007faa44c49cdf6e Generated. --- diff --git a/blog/LinuxCNC_MQTT_publisher_component.html b/blog/LinuxCNC_MQTT_publisher_component.html new file mode 100644 index 0000000000..2dfa8b2023 --- /dev/null +++ b/blog/LinuxCNC_MQTT_publisher_component.html @@ -0,0 +1,626 @@ + + + + + Petter Reinholdtsen: LinuxCNC MQTT publisher component + + + + + + +
+

+ Petter Reinholdtsen + +

+ +
+ + +
+
LinuxCNC MQTT publisher component
+
8th January 2023
+

I watched a 2015 +video from Andreas Schiffler the other day, where he set up +LinuxCNC to send status +information to the MQTT broker IBM Bluemix. As I also use MQTT for +graphing, it occured to me that a generic MQTT LinuxCNC component +would be useful and I set out to implement it. Today I got the first +draft limping along and submitted as +a patch to the +LinuxCNC project.

+ +

The simple part was setting up the MQTT publishing code in Python. +I already have set up other parts submitting data to my Mosquito MQTT +broker, so I could reuse that code. Writing a LinuxCNC component in +Python as new to me, but using existing examples in the code +repository and the extensive documentation, this was fairly straight +forward. The hardest part was creating a automated test for the +component to ensure it was working. Testing it in a simulated +LinuxCNC machine proved very useful, as I discovered features I needed +that I had not thought of yet, and adjusted the code quite a bit to +make it easier to test without a operational MQTT broker +available.

+ +

The draft is ready and working, but I am unsure which LinuxCNC HAL +pins I should collect and publish by default (in other words, the +default set of information pieces published), and how to get the +machine name from the LinuxCNC INI file. The latter is a minor +detail, but I expect it would be useful in a setup with several +machines available. I am hoping for feedback from the experienced +LinuxCNC developers and users, to make the component even better +before it can go into the mainland LinuxCNC code base.

+ +

Since I started on the MQTT component, I came across +another video from Kent +VanderVelden where he combine LinuxCNC with a set of screen glasses +controlled by a Raspberry Pi, and it occured to me that it would +be useful for such use cases if LinuxCNC also provided a REST API for +querying its status. I hope to start on such component once the MQTT +component is working well.

+ +

As usual, if you use Bitcoin and want to show your support of my +activities, please send Bitcoin donations to my address +15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

+
+ + + + +
+ + + + + +

+ Created by Chronicle v4.6 +

+ + +