MySensorsTracker - a simple logger for MySensors MQTT messages



  • I needed a simple tool for keeping track of all the MySensors nodes which I had built and deployed around the house over the years:

    • what is the battery level of each sensor node?
    • what was the last time I changed the battery on that sensor node, i.e. how many months has it been running with the current battery?
    • see at a glance if a sensor has crashed, i.e. has not sent any messages for, say, more than a day
    • is a sensor node sending strange messages?

    This is implemented as a Python script running on a server, with a web-based interface for browsing and filtering messages.

    Source code and documentation in Github

    Here are a few screenshots:
    f0dc543d-0d2c-4411-9ae3-39f6da5b62a9-image.png

    b1865410-8e2e-42f5-92c1-562cdab6e604-image.png

    c2e0a623-5b2c-46b7-adc3-a54c69b67939-image.png



  • @canyouhearmenow That looks practical and useful - well done!



  • has anyone thrown this in a docker yet? 🙂



  • @canyouhearmenow I've adapted your script to support authentication and SSL connection. See my pull request 🙂

    Meanwhile, I see in your printscreens, API, version, battery changed, etc.
    Is this data filled in via your sketches? Are the nodes sending this information? Via the presentation?



  • @evb Thanks for your contribution, I will look at your pull request as soon as I can!

    I have adopted a convention for my sketches where they all report the project name and subversion revision number. In the presentation() function, I have a line like

    sendSketchInfo("MyWindowSensor", "$Rev: 1267 $" );
    

    The API version is sent by the MySensors framework automatically.

    The date of the last battery change I have to enter manually (Nodes screen, popup menu item "battery replaced" when you hover over the node number).



  • @canyouhearmenow I didn't see my version of the sketch, but then I saw that the column sk_version was commented out.
    I added again this missing column. I don't use revision, only version.

    I saw also that the api_version of my repeaters were not reported. I added support for this to the code.

    The sqlite db is filling up with all these mqtt messages.
    Do you clean up this after some time?

    Great work, thanks for putting it online 🙂



  • @evb Still haven't had a chance to look at your PR, sorry.
    Yes, the database tends to grow 🙂 I have about 80MB after a year of use. Just added a function to delete all messages older than, say, a year.



Suggested Topics

  • 42
  • 18
  • 3
  • 49
  • 2
  • 1
  • 2
  • 4

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts