IoT MQTT Panel FAQ and Feedback

The purpose of this article is to provide FAQ answers of “IoT MQTT Panel” application. This is the place where you can leave your feedback and suggestion for this app.

Google Play Store links:

Pro version: IoT MQTT Panel Pro

Free version: IoT MQTT Panel

Which protocols are supported?

This app supports MQTT (TCP) and Websocket protocol.

Does it support TLS/SSL?

Yes, it supports SSL. You can use ca or self-signed x509 certificate for encryption.

Which QoS supported?

Only Qos 0, 1 and 2 are supported.

What is the datatype of the payload?

To keep the app simple all payloads are implemented as string type.

Is it possible to publish and subscribe with different topic?

This application has multiple panels which can publish a message as well as subscribe message. For these panels, you have options to configure publish and subscribe topic separately.

Does it support JSON Data?

Yes, it supports JSON Data.

Subscribe JSON Data: You can parse received messages using simple JsonPath. The supported JsonPath are listed below.

$ The root object/element
@ The current object/element
. Child member operator
.. Recursive descendant operator
* Wildcard matching all objects/elements regardless their names
[ ] Subscript operator
[ , ] Union operator for alternate names or array indices as a set
?( ) Applies a filter (script) expression via static evaluation
( ) Script expression via static evaluation

Note: Only single quote is supported inside JsonPath expression. Script expressions inside of JSONPath locations are not recursively evaluated by JsonPath. Only the global $ and local @ symbols are expanded by a simple regular expression. This application does not validate JsonPath you provided. In case JsonPath is invalid or it does not match with any data it simply gets ignored. For debugging please use the Text Input and Text Log Panel.

Publish JSON Data: You can wrap publish data into a JSON format. For example, you have configured {“kitchen”: {“fan”: “<slider-payload>”}} as JSON pattern. Now if you set slider value to 10, then <slider-payload> will be replaced by 10 and finally {“kitchen”: {“fan”: “10”}} will be published. You can use multiple replaceable variable like <timestamp>, <client-id> etc. depending on the context. To know all available variables, press the inline help button while configuring the panel.

How all devices are organized?

When we make a Smart Home ideally, we generally deal with multiple devices, sensors. Each device connects multiple sensors and transducers which have their own topic and messages. IoT MQTT Panel application is not only designed to visualize the various IoT states but also organize these connections, devices, messages etc. The below figure represents basic architecture of a typical Smart Home application.

IoT MQTT Panel User Guide



Connections: This application can manage multiple connections. Each connection can be connected to a configured broker. For an instance, you have a local broker hosted in Raspberry Pi and another one in a public broker in internet. When you are at outside of home public broker is used and inside home you use local broker for faster response. To manage this two connection efficiently you should create two connections with appropriate configuration.
Devices: Every connection contains multiple devices. This provides visual separation when you are using multiple IoT devices. For example, you have a Raspberry Pi in your drawing room and a ESP 8266 in kitchen. For this you should add two separate devices under a connection.
Panel: In most cases, you connect multiple sensor and transducers to an IoT device. Suppose you have a temperature sensor connected to Raspberry Pi in drawing room. Additionally, the Raspberry Pi is connected to light switch and fan speed controller. So, you should create a Vertical Meter (for monitoring temperature), a Switch (to turn on or off light) and a Slider (to control fan speed manually) panel under the Raspberry Pi device.

What is device prefix?

When you configure device prefix it will be automatically prepended to all panel’s topic under the same device. This is helpful for public broker. Please refer the User Guide for detailed explanation.

How device status works?

To make the device status work you need to configure it in device settings. This does not work out of the box. You need to explicitly implement the logic inside the device (e.g. ESP 8266 module or Raspberry Pi). It should publish online or offline message to notify the mobile application. Please refer the User Guide inside the app for detailed explanation.

Why panel state lost when starting the app or navigating to another page?

When the mobile app starts, it does not know the actual state of the IoT device. For this reason, the panels get reset to default value. While you navigate to other page, you have privilege to update configuration. To get desired output we need to re-initialize device every time you open it.

Is it possible to retain the panels state?

Yes, to retain the state, you need to enable retain flag of each panel. This will ask broker to send the last published message whenever the device get connected.

I hope this FAQs are useful to you. For detailed user guide please refer info page inside the application. If you have any other question please feel free to leave a comment.

Posted in IoT

218 thoughts on “IoT MQTT Panel FAQ and Feedback

  1. Hello. I have problem with panels. When i add more than 2 gauges im losing connectin. Topic is the same for all. Any idea what im doing wrong. Im using jsonpath to choose variable.

    1. Hi Sławomir,
      I have tested with more than 3 gauge panel and it works perfectly. If you can share your exported configuration over email I will be able to help you further. You must remove your username and password from configuration file before sharing it to me.

  2. Hi Rahul,
    many thanks for this great app with a very clear layout. You did a great job indeed. I can easily manage any of my home IOT stuff which I put on MQTT.
    I have a simple question:
    Is it already or would it be possible to add own icons to the very nice big list of yours ?
    E.g. in one of my setups I show our windows and doors status. Actually you have provided a nice door icon, open and closed. So I could imagine a window icon as well – an open and a closed one. And some others…
    Is it already possible that you also read icons from a user writeable folder e.g. the Android data storage folder of your app ?
    Best regards,

    1. Thanks Torsten for your feedback.
      Unfortunately right now the app does not provide flexibility to use custom icon or read from user writeable folder. I understand the provided icons can’t fulfil all scenario. I will keep your suggestion in my future enhancement.

  3. Hi Rahul
    Thanks for this excellent app, I have it working well on my phone. Have you ever tried running it on a Windows PC, maybe with an emulator?
    If so could you let me know what you used, or if not is it likely to work?
    Many thanks

    1. I have not tried it, but it should work in Android TV too. I believe the only difference is the screen size and I did not put any screen size restriction. Also for your information this app works perfectly in Android tablet.

  4. Hi Rahul,
    I’ve just noticed that a switch will change its display state when pressed, even if it has a subscribe topic that does not change straight away.
    Also, are you able to add a feature so the publish payload on a switch toggles between on and off and is not dependent at all on the subscribe topic?
    I have multiple inputs for my lights, and am currently just XORing them, just like old school multi-way switching. So when one input changes, the light will toggle on or off. I want to display this change on the switch in the app, but I want a switch press to toggle between two payloads.


    1. The switch change does not wait for delivering the data. Otherwise the app will get unresponsive in-between. I could not understand your second query. Can you please explain with some example.

  5. Hi Rahul,
    Very nice app indeed!
    Something I’ve been looking for in an MQTT app is the ability to have a button on the lock screen to be able to quickly toggle lights without needing to unlock.
    Also, are you able to make it so when the the app is opened through a shortcut and the “back” button is pressed, it closes the app as opposed to going back to connection selection? Maybe even make the shortcut not have the option to leave the device?
    Thank you for your excellent app!

    1. I have doubt about the feasibility of Button in a lock screen. However I am trying to achieve home widget. This needs a major re-design and still in POC phase.
      Currently I do not have mechanism to detect if the app is opened from shortcut or primary app icon. I will explore about it and add if I get a reliable way to implement it.

  6. Great tool and it has been very helpful.

    Have been using the line graph widget and was wondering if there is a way to display data that arrives within a timeframe rather than a fixed number of data points. When one device does not report as much or as frequently as my other devices I get a bunched-up effect as the tool shows as !any points (up to 100) as it can regardless of how old the data is. Let !e know if you need a screenshot to understand what I am trying to explain…

    Thanks again for a very useful tool!


  7. Hello Rahul,

    Very nice app.
    But I have a problem connecting to my MQTT broker via dynamic DNS address at
    Neither TCP nor Websocket protocol is working.
    When I’m using IP address instead of DNS address the connection works.
    Other Android app has no problem connecting to my MQTT broker via dynamic DNS address. Thus I assume the problem is not on my side.
    I appreciate any suggestions for debugging this issue.
    Thanks in advance.

      1. Thanks for your reply.
        I’ve made some progress in investigating this issue.
        DNS address resolution of supplies IPv4 and IPv6 addresses, but my mosquitto broker is only reachable via IPv4 ports.
        I temporarily removed IPv6 address from DNS at and now the DNS address resolution of your app is working.
        Maybe you can change the DNS address resolution of your app to first try IPv6 address and if this address is not responding then try IPv4 address instead in a second approach.

    1. Yes, it absolutely possible. Go to settings page and export your settings. You can share the exported file to any device.

  8. Hi Rahul,
    Great work you did there with this app!
    I have a small problem and tought you might be able to help me with that.
    I’m receiving JSON objects with sensor data and want to plot them over time. I do receive data with the text log panel, but as soon as i try to parse it the app drops the data.
    I honestly don’t know what I did wrong, different online JSON Validators say that my JSON Code is correct.
    Here is the data I’m receiving, I tried to use string and float, both didn’t work.


    The JSON Paths were as following:

    I tried this with line graph panel and text log panel.

    1. Hi Andreas,
      I have tried with all the combination you provided and all of them works perfectly for me. Not sure how to help.

      Fill free to share more feedback.

  9. Hi,
    My device sending out JSON with a general MQTT protocoll.
    I would like to configure the A tag with a Gauge object inside your software.
    I saw a small example that $.A[0] for the payload could be the solution.
    I’m not able to change out coming result from my device.
    Do you have any solution for my JSON string to get the result in the object?


    1. Your device sending array of number as string. It is very difficult to extract the value using JSON path. If you use $.tags.A then it will return [65] as a string. However, if your device send {“connected”:”true”,”tags”:{“A”:”65″},”timestamp”:”2019-02-12T06:29:51.000Z”} or {“connected”:”true”,”tags”:{“A”:[65]},”timestamp”:”2019-02-12T06:29:51.000Z”} or {“connected”:”true”,”tags”:{“A”:[“65″]},”timestamp”:”2019-02-12T06:29:51.000Z”}, it can be parsed using JSON path.

  10. Can you please post example of access to
    Is it possible to access REST api?
    I’am a bit confused with app’s config menu.
    Thanks, Tom

    1. I am not sure how exactly works. As long as it supports MQTT it will work with my app.

      No, this app does not support REST API. This app is based on MQTT technology.

  11. Hello YES your APP ist really great. Thank you for it.
    Maybe I missed the point in your blog but a list of devices supporting the MQTT protocol would be really helpful.
    Do you have a hint about this?

    1. MQTT is an ISO standard protocol. It is free to use. So practically any vendor can use it. There are thousands of devices that use MQTT as communication protocol. Though all of these devices does not offer user to customise the configuration. Also the availability depends on country.

  12. Hi Rahul! Thank you for your app! After close app and open again, some time not show retained messages. After reconnect, messages show again. Please correct. Thank you an regards! Waiting new versions!

  13. You mentioned: You can use multiple replaceable variable like , etc. depending on the context. To know all available variables, press the inline help button while configuring the panel.

    Now, I’m publishing from my device a JSON like this: {“value”: “ON”}. What should I do to tell the app that my payload is JSON and configure the value for on and off?

    1. Use JSON payload as {“value”: ““}
      will be replaced by the on or off payload before publishing. So if your on and off payloads are ON and OFF, then at rerceiving end you will receive {“value”: “ON”} or {“value”: “OFF”}

  14. Great app! but I think I facing with a bug: I cannot deal to work with the retain feature… this does might not work? Tried with a local mosquitto server and also with cloudMQTT, the payload isn’t retained at all.

    1. Hi Igor,
      The retain feature works. This app only sets the retain flag. Whether the message will be really retained that is completely up to the broker. I suggest you check your broker log for debugging. FYI I tested the retain flag in cloudMqtt and it works fine for me. If it is not working for a particular panel please let me know.

  15. Hi,
    Very promising App. But I cant get JSON working.
    I publish a message:
    as ‘JsonPath for suscribe’ I have:
    to get the temperature. But Panel shows nothing. Panel is a ‘text Log’.
    If I have ‘Payload is JSON Data’ unchecked i receive the payload but without the ”
    So it look like this:
    Any Help?
    Thanks a lot.

    1. The answer is present in your question 🙂
      The sender is sending without the quote ” symbol, which makes it an invalid JSON. As the app can’t parse an invalid JSON it simply dropping the data. I would suggest verifying the sender device.

    1. Go to connection list view. Tap on option icon on the connection and the edit icon. In the edit connection view you can delete. You can not delete the default device. To delete it first mark another device as default and then delete previous one.

  16. Hi, great app.
    I want to know about:
    1) change text log height
    2) could you implement a check box in each connection so we can choose between “clean session” or “persistent”.
    Thanks and happy new year.

    1. Hi Juan,
      1. You can change text log height. Tap on Aditional options and enter Max no of visible lines (e.g. 20). Now log panel will expand accordingly.
      2. In the panel where you do not want persistent just mention No of persistence as 0. It will clear persistent.

  17. The app is perfect! Ultra stable! Now with landscape!
    Thank you!!
    Where is the publicity in the free version? I didn’tsee advertising:)

    1. Thank you for your feedback.
      Yes, even the app is still tagged as beta, it is quite stable. No update breaks, compatibility with older versions.

      I have not explored about the publicity. I will spend time on this 🙂

  18. Hello Rahul,
    thanks for the new version. The landscape mode works perfect.
    I just got a problem when importing via MQTT. It gives me an error/alert message that theJSON schema validation has been failed. When I continue the import, it’s just fine, I can’t see any problem.
    Continue your great work

    1. Hi Markus,
      Thanks for your feedback. The entire application is dependent on the configuration JSON. Most of the cases I try to handle configuration errors, but in some case it breaks the entire flow and application get crash. The only way to recover from this is to clear all data from Android settings. For this reason I have implemented the schema validation which significantly improve application reliability. I regularly update the app and in some cases I had to update the data structure. So I also update the schema time to time. As I said earlier most of the cases I handle configuration error, I allow configuration import even schema validation gets fail.

      The validation also may failed due to version mismatch between configuration sender and receiver. It could be due to bug in my schema too. Therefore it would be helpful if you share your configuration file (from the mobile of you are publishing). From the settings page you will be able to export the configuration to file. You can send me it through email and you must remove your username and password before sharing it with me.

  19. In background mode the app spend a lot of an battery resource! I had to disable this option.
    and I’ve noticed the app not send a message at connection to a procker (it is in advanced options for a brocker connection)!?

    1. Hi Aleksanr,
      While the app running in background / foreground it continuously send packets to the broker to keep the connection alive. This sometime causes battery drainage for some mobile phones. However I will try my best to optimize the application.
      I could not understand “I’ve noticed the app not send a message at connection to a procker”. Can you please give me some more information?

  20. Hi Rahul,
    thanks a lot for your great App.
    I like to ask for some features. Is it possible to make the App compatible for landscape mode? I use it on my smartphone and on my tablet. It works perfect even on the tablet, it would be so nice when I don’t have to rotate it.
    The other thing is already suggestet by many people here. It’s an export/import as json object via the broker. In the Google App store you will find MQTT Dash, which is doing the export/import this way. With this method it would be so easy to keep all devices in the household on the same level.

    1. Hi Markus,

      I have added the landscape mode option. Hope this is useful for tablet.
      Also I have introduced share connection via MQTT feature. In connection page press option icon on any connection. Now press share button to send or receive all devices of that connection.

  21. Very nice application.
    Can you write an example how to retrive json data sent from device to MQTT server?
    I am using tasmota with sonoff TH16 and it sends json data with temperature humidity and time but i can not retrive only temperature and in your manual there is instruction only how to publish json data and not how to recieve and pharse and retrive values.. thank you.

    1. Hi Karenbhai,
      This can be achieved using JSON Path feature. Suppose your tasmota is sending following data.
      “temperature”: “12”,
      “humidity”: “60”,
      “time”: “06:30:00”
      To fetch temperature from it you should use json path $.temperature
      Similarly for humidity and time you should use $.humidity and $time

      JSON path is a standard implementation and you can get more information in internet also.

      If you have more question feel free to ask me.

      1. Cool app IMHO.
        Taking the above example, I have something like the following JSON from broker:
        “temperature”: “12”,
        “humidity”: “60”,
        “time”: “06:30:00”
        where “nn” is a number which pointing to the different devices. I want to filter the device according to idx value, and get the value from eg. temperature field. I tried different methods with the JsonPath filter possibilities but till didn’t success.

        1. Hi norbim,
          It’s a quite interesting scenerio. The JSON Path is designed to extract value from a unique path. For your case all the values have same path. The only way is to distinguish between the devices is to use different topics (if you have access to modify device topic). Meanwhile I will try to find a solution which is simple for users and works for different scenarios.

  22. Hi, I wanted to compliment the app really well done, the only thing missing is to be able to release decimal values ​​from the slider for the rest is a great app.

    1. Actually you can use upto 3 decimal point in slider. For example use Payload min and max as 0 and 9.99, then you can slider steps will be automatically adjusted to 0.01

  23. Hi Rahul,
    thanks for good application, good work.
    I have a question, I set the “out1” switch, the status is displayed correctly, but when I change its status, the command will not be executed. The command “out1 = 1” or “out1 = 0” is sent, but “cmdout1 = 1” or “cmdout1 = 0” is required to switch the status. How can I set it up?
    Thank you for your time.

    1. Hi Radek,
      I could not understand your query properly. Can you provide some more details e.g. what is your topic, how your target device responds etc.

      1. Hi Rahul,
        thank you for answer.
        Situation is as follows:
        I’ll set up the settings switch in the app, setting details:
        name: relay
        Topic: out1
        Payload on: 1
        Payload off: 0
        This switch correctly displays its state, the state of the switch in the application also changes when the device changes status.
        The problem is, when I need to change the status of the relay from an application, I switch the switch but there is no relay change in the device. A “out11” or “out10” command is sent to the Broker as requested. However, this command is not executed on the device.
        When I capture this command on the original sw control, the command “cmd” is preceded by change, so “cmdout1=1” or “cmdout1=0” is sent for the change.
        Is it possible to seting?
        Thank you

        1. Hi Radek,
          This is still confusing for me. However your requirement may be achieved by using JSON pattern and Subscribe Topic. I suggest you to play around with it.
          I have written a detailed User Guide in the App info section. This also might be helpful for you.

  24. Good afternoon. I propose to add a sound alert in Android when going beyond these limits. This will add a decent functionality in the form of alarm, not just monitoring.

    1. Similar functionality can be achieved by notification feature. This is available in pro version. Although this app does not provide decision making functionality. So you must publish a separate message when a value goes beyond a limit. The app will only respond to that message and show a notification.

  25. Hi,
    really nice app. I am just learning about the possibilities, and there seems to be a lot of them 🙂

    I (my mobile’s wifi access point) am located behind a firewall which blocks mqtt-connection on port 1883 and mqtts on port 8883.

    My options are web-socket. Port 80 is working great, but I was not able to configure a “secure websocket” on port 443. I could not find how to configure it in the documentation. Any link?
    I would prefer an option to accept a self-signed certificate, which provides enough security in my case without the hassle of involving a CA.

    In addition IMHO two features might improve usability even more:
    – allow reordering in the list of connections
    – the _red_ icon on successfully established connection and a _blue_ icon on failure continuously confuses me. I just suggest to make the red icon green.

    thanks for the great app

    1. Thank you Stefan for you feedback.
      — I will explore about ssl option for websocket.
      — Did not add reordering connection functionality because it can be easily achieved by clone and delete feature. Besides I am trying to tradeoff between essential features and too many features 🙂 .
      — Will think about the color. Also I have to consider that lots of user (right now number of active device is more than 5,500) may be already used to current color scheme.

      Feel free to share more feedback.

    2. Hi Stefan,
      I have implemented secure websocket functionality. Now you should be able to connect to port 443. Please let me know in case you face any issue.

      1. Hi Rahul,
        thank you so much for the secure websocket connection. It is working like a charm.
        It is even accepting my self created CA certificate witch I used to sign my server’s certificate.
        So, all data and credentials are encrypted now, and they pass the firewall.
        Great stuff.

  26. Configuring a screen “just right” ™ can be quite a bit of work. An option to publish a device/panel/screen in a topic and have other phones pick up that config would be absolutely wonderful.

    1. Thank you Zappy for your feedback. I will do feasibility and impact analysis of your suggestion. Alternatively, you can export and share entire configuration. This will reduce your configuration effort. Only thing you need to remember to change client id of each connection after importing configuration. Duplicate client id will cause auto disconnect.

      1. The min and max payload accepts negative value. Configure them according to your need to get negative value as payload. For example set min as -100 and max as 100. Now the gauge will be able to plot negative value upto -100.

  27. Hi, like your application. But how is the TLS option working. When using this, I assume you are currently only validating the certificate of the broker to be valid.
    This is – unfortunately – not enough. One also has to send client (subscriber or publisher) certificate to authenticate towards the server.
    when using mosquitto client e.g.:
    mosquitto_pub -t “topic” -m “value” –key client.key –cert client.crt –cafile own CA-certificate.crt -h “servername” -p 8883
    You currently support the –cafile option (indeed you support –capath).
    Can you please add also the –key and –cert functionality. Normally the CA certificates reside in ca_certificate directory, whereas key and client cert in certs directory.

    thank you

    1. Hi Martin,
      Thank you for your feedback. As an android application the MQTT communication is handled by Paho JAVA client. I will explore how to implement your suggestion with JAVA client.

  28. If bar graph shows the value, it will be so easy for understanding, I suggest at the position of timestamp , if value of particular graph presents, it will look good and easy to know the value.

  29. Hello. I wan’t to know if my scenario is possible to achieve. I have a switch subscribed to home/light/status and the payload is a json, for example {“channel”:2, “state”:”ON”}. My problem is, how to distinguish between many channels, so each switch correspond only to specific channel. It is possible with jsonpath to select state value only when payload channel value match?

    1. No, It is not possible because one JSONpath can extract one value at a time. The ideal way to implement it is to use unique topic or unique JSONpath for each switch.

  30. I have tried to use the text log panel to monitor a JSON value. It works fine unless the value is 0 (zero). In this case nothing is displayed. Example: {“801”:{“170”:{“100″:”2018-09-15″,”101″:”21:06:23″,”102”:66}}} displays 66 but {“801”:{“170”:{“100″:”2018-09-15″,”101″:”21:06:23″,”102”:0}}}. JSON path used is $.801.170.102.

    1. Oops! This was a bug. I fixed it and deployed a patch. Please update your app from play store. Thank you very much for bringing my attention.

  31. Hi Rahul,

    New option with sent/received message timestamp is really great – it is what I have missed a lot in previous versions.

    The new feature of merging panels is quite nice as it gives more flexibility in organizing things, but it has also few drawbacks I have observed so far:

    1) Using multiple switches/LEDs/buttons in a single panel allowed to give that panel some common name like “Kitchen” or whatever. Now it is not possible anymore when I merge individual switches that were previously on the same panel. I thought about simplest solution and I guess that introduction of a new kind of panel (named “Title”, “Note”, or something like that) with user defined text field only (no MQTT topics, etc.) should do the thing – you could create such text panel and merge with other panels to create logical group with some user-defined name/title/header.
    Once playing with that, it could be nice to have an option to define its font size. Maybe also font/background color?

    2) Panels heights – previously I had a single switch panel with multiple switches. It was of 1/2 screen width, so kind of vertical layout. Next to it, I had a single slider panel of 1/2 screen width too, that was logically related to the switches group – it’s height was automatically adjusted to the height of switches’ panel. With new merging feature, I am not able to reproduce similar layout – slider panel must be added (merged) as the last in the group with related switches, but it generates the waste of screen space as switches are now full screen width, but with relatively short names…
    Have you thought about more advanced panel sizing options like width and height? You could try to use grid layout used in many web pages (described for example here: – I think it would give an option to size the panels both horizontally and vertically in quite easy way.

    In addition, while playing with various layout options, maybe you could add as well option to define font size of the text displayed on panels? It would add almost limitless options of adjusting layouts to ones needs. I think it could be done for each panel separately or as some “global” device or even connection/app setting. What do you think?

    And on final note – layout adjusting requires a lot of changes in panels’ sizes and locations – it is obvious and perfectly fine. But one annoying thing is that every time you change anything, whole device re-connects generating really unneeded MQTT traffic. If you try to workaround this by switching internet connection off – every change in the layout generates “Failed to connect” message. Maybe there could be added kind of “edit mode” that would cause no re-connections while turned on, to allow for quick layout adjustment without unnecessary traffic or error messages generation?

    1. Hi Powel,

      Thank you for your feedback.

      To be true, I had to drop multiple switch and buttons because of this new timestamp feature. I had to run so many loops every time a message is sent or received, which was creating large performance impact. On the other hand so many users asked for this timestamp feature and I could not ignore it any more. Now answering to your question.

      1. I also thought about the Common title problem. Thats why I created Layout Decorator panel. This should fulfill your purpose. Right now you can only configure the panel name. In up coming version I will add more customizable options like panel name font size, alignment etc.
      2. I agree that you can’t occupy two column height for a single panel. The grid layout reference you sent is possible if you already know what is the layout going to be. But I will try to find an way to implement it because it would be an awesome idea.
      3. The font size varies depending on it’s purpose, position and space availability for different panel width. It is not possible to set a global font size. I try to apply font size in a way that user gets best experience. I provide options to change font size on very few occasions (e.g. log panel with show last message only flag true). I think giving too many options makes user more confuse 🙂
      4. I purposefully placed “try reconnect” on every edit. I will see if I get any better solution to fix it.

    1. Hi Simone,

      Thank you for contacting me. This software should work with any broker which follows MQTT v3.1 or v3.1.1 specification. It does not matter where the broker is installed or what technology it uses. There is no restriction which port can be used. Only you need to be careful that the port is not blocked by your firewall or your network provider firewall.

      Feel free to reach out to me for any further query.

  32. Hi,
    I am searching for an MQTT Dashboard for PC. Your App looks promising (from the screenshots, never used it). It looks like you did not yet open the source. Would it be technically possible to also port this as a (linux/web) desktop version or is this more complex with your code base?

    I have not found something similar yet for non-phone users like me. If you have any suggestions, let me know 🙂 Unlike from what I’ve heard I am also willing to donate 10,- for a good software. 🙂


    1. Hi Nico,
      This app primarily build for Android platform and currently not available for other platforms.

      If you are looking for a bigger screen to use this software as IoT HMI interface, I want inform that it works with Android tablet (Android 5.1 and upper) as well.

      1. Thanks for your reply.
        I did a quick test and the App looks REALLY professional, good work! And I had the following idea:

        You can im/export all settings as JSON. How about sending panels as json data over mqtt? The device can suggest you preconfigured panels via a special mqtt topic. Then you can simply select some or all of the suggested panels and can continue to arrange them. This makes it easier to get started inside the app and you can also specify some unique ID and update panels from the device.

        You got the idea?

          1. Could you please upload the json schema for the file import/export? Or give me a sample that contains all widgets configured once? I guess you have some for testing.

  33. Hello,
    tnx for exelent program… :))))

    i try to connect from yours program to
    I use standard config.
    From arduino and other android program make connect to mqtt server without problem.

    With your program and connect is not possible, I try different config.

    I use server name, port (tcp) username and password.

    Any suggestion?


    1. Hi Greg,
      I have tested connection with and it works fine. I used TCP connection. I request you to verify your server-address, host, port, username, password and try once again. All fields are case sensitive. Make sure you are using right one.

  34. Only one needed: add way to set notification value, if received value more or less notification velue – notification come on screen. Need add three options: more, less and within limit. Currently notification come only if value changed. All the rest – very very GOOD!

    1. Hi Dmitry, thank you for your suggestion.
      This application is primarily a dashboard application. I try to give my best effort to provide better visualization of a MQTT based project. Unfortunately this application still does not offer decision making or automation feature.

      What you can do is create simple Log panels for notification purpose (you may group all of them under a seperate Device to keep them hidden). Now you can send an extra message to this panel for notification purpose only. Here is an example. Suppose you are monitoring temperature using Vertical Meter panel and you want to get notified when temperature goes below 10°C or more than 30°C. While publishing the temperature from sensor just check the value and publish an extra message to the Log panel when the sensor value is out of that range.

      I believe the automation logic should be in a separate centralized entity e.g. an extra ESP8266. This is specifically helpful in a place where you do not have privilege to change the logic as I described above. This device will take the responsibility to publish the extra message for the notification. This device can also do other automation task too. Like it can publish turn on cooler message when temperature goes beyond 30°C. It can publish scheduled message and many more.

      Please feel free to provide more suggestion.

  35. Hi, I want to ask a question about the status of a button with JSON, it would be $.stat.sonoff.POWER, but I do not receive anything. You would have to receive the status of the button, either ON or OFF.

    1. Thanks Miguel for contacting.

      The Button panel is designed to only send value, like fire and forget. For two state scenario like ON or OFF you should use Switch panel. Switch panel not only publishes the value but also subscribes same or separate topic..

      For the scenario where you have more than two state you should use Combo Box or Radio Button panel.

      Feel free to reach out to me in case you have more question.

  36. Hi Rahul,

    I have few additional ideas how to improve the app furthermore:

    1) Possibility to reorder devices on the list. Currently they are placed in the order in which they were created. To change that order, I must export configuration, play manually with the json file’s content and import that again.

    2) Multi-state LEDs. Current implementation of LED panel supports only two states (ON and OFF). Maybe it would be possible to add more states (similarly to as you add multiple LEDs, switches or buttons to the panels) to a single LED? Possible use case is a battery level indication from the IoT device with three (or possibly more) states: full, medium, low. Each state could have its dedicated icon and color (as current ON/OFF states).

    3) Multi-topic text panels. Currently it is possible to add multiple switches, buttons, LEDs, etc. to a single panel creating some logical group. It would be great to have possibility to combine multiple text entries in single panel as well. In my case, I have device as a logic group for many sensors in my home. Within such group (device) I need to create separate text panels for each and every reading (even from the same sensor), which turns quite inconvenient and hard to read for many sensors. Possibility of adding multiple readings to single text panel would allow for creating more readable layout – one text panel could be used to show several readings from single sensor.

    4) Bar graph enhancements. I do not know if that is possible, but it would be awesome to have possibility to define max and min values for Y axis (for example for temperature readings from inside the house that will be always in some narrow range of 15-30 degrees) – now it starts from 0, which is screen space/results resolution wasting in my opinion. Additionally, it would be great to have an option to add some minor gridlines as well (as on the graphs in MS Excel for example) with automatically calculated or user-defined (if easy to be implemented) resolution/step.

    5) Text log panel showing topics of the messages in case # wildcard is used. Currently it is possible to subscribe to some topic’s group using # wildcard, which is more convenient for testing some new device or bigger solution with multiple subordinate topics, but in the log panel only message values are displayed without indication of particular topic. Maybe it would be good to think of adding possibility to show specific message topic if + or # MQTT wildcards in panel’s subscribe topic are used? Only part of the topic from that wildcard should be enough, I think.

    Best regards,

    1. Hi Paweł,

      Thank you very much for these nice ideas. Please find bellow my updates.

      1. I have added the reorder device functionality. Now you can move the device from Edit Connection page.
      2. Multi State panel introduced.
      3. I have deprecated the multiple switch, button and LED in a single panel due to performance issue. Now I have introduced Merge Panel feature. Using this feature you can combine any panels (including different type of panels). I suggest you to create two log panels (or any other suitable panel) and combine them.
      4. I have added min and max range in Bar graph panel as per your suggestion. The guidelines are determined dynamically. Unfortunately the plugin I am using for graph does not support minor guideline. Apart from that I don’t think it will be very good experience to add more line in such a small space.
      5. I have added topic info with message for wild card subscription

      Please update the app from play store to get these feature. Feel free to share more feedback.

  37. Hello Rahul,
    I’ve a question for you. I’ve just upgraded my phone from Oreo to Pie and used Titanium backup without thinking to backup and restore all user apps. IOT pro did not restore correctly and simply starts as though it has no configuration. This could be my issue only, i didnt particularly take care/check my backup and had the non pro version installed at the same time. This is a bit of a personal pain for me but not impossible situation. I’m assuming any normal upgrade (upgrade in place, not my backup/wipe/restore) should be okay? But my question is would you consider, as export to json seems such a quick operation, keeping daily automated json backups in the filesystem for maybe 10 days. Extra points for cloud/google drive back copies. I know there are security/password concerns but we’re talking about Mqtt for houses (mostly) not banks. Thanks for your time. (Lineages 15.1 on redmi note4 to Asop Pie)

  38. Looks like if two phones are trying to access the panel one or another gets a recurring out of connection. Is this possible?

    1. If you are using same MQTT client id, when one connection get established another gets automatically disconnected. This behavior is followed by most of the MQTT broker. So please check your client Id.

  39. Hi Rahul,

    Thanks a lot for really extensive comment 🙂

    Yes, I agree that such automatic state changes might potentially introduce some confusion if misunderstood, especially for beginners.

    Using “Remote Device Status” is also an option as you mentioned, but, on the other hand, it gets a bit tricky once you have a lot of IoT devices and you want to group them, for example by functionality, as I do. I have plenty of IoT devices in my home, and to avoid creation of separate “device” panles for each and every of them, I have goruped them into more convenient “lights” or “sensors” panels. It means that I have several switches and sliders under single “device” – each pair of switch and slider to control separate lamp. I can use “Remote Device Status” to send common status request to each lamp subscribed to defined “Remote Device Status” topic, but then I will never get unambiguous responce from them as “Remote Device Status” accepts only single value on predefined topic as “online”. For that reason I had to add also LED panel to my “lights” device indicating status of each lamp (online or offline).

    In my deployment it is important to have the response from end devices, because it can be then used for decision making in some home automation scenarios – this is also the reason why I have reused that to handle switch state in your app (as a confirmation of execution of requested operation).

    I guess it is on of more complex use-cases and I do not have any good suggestion for changes in this matter (if any are really needed here), but just wanted to share with you what could be faced also by other users in their deployments. I believe it will help you to enhance your already great app further more 🙂


    1. Hi Pawel,

      Yes, you have a valid point. Logical grouping was one of the most important reason for creating “Device” feature. The way you are grouping is necessary in some use cases. But I have to I agree that “Device Status” is not much helpful in this scenerio. I will re-think how to improve in this area.

      I am hoping some other users also read our extensive discussion and we will get awesome ideas. I believe that is the only way to make this app better. I want to thank you for sharing your idea and use cases. 🙂

  40. I dont know if this happened earlier, but right now the app is a battery hog. Took 60% of the battery usage in 4 hours.

    BTW, implement a bug/suggestion tracking system, this page is too cumbersome and unprofessional.

    1. Thanks Gabriel for your comment. Yes, this app is little bit battery hungry if background mode is on. This is due to keeping a connection open pings broker in every few seconds. I am always trying to optimise it as much as possible. But I hope you understand technical limitations.

      I will try to improve this page for easy tracking or I will move it to another suitable place in future.

      1. I do not have the background mode on and it still sits comfortably as the most battery hungry app even when used just a couple of minutes a day. Background and front usage is not high, but still. I have to force close it.

        1. Hi Gabriel,
          If you are just minimizing the app, it will run in background even background mode is turned off. This is more like Android behavior. But if you pressing back-button to exit from app it should terminate the app when background mode is turned off. Please let me know if you are experiencing differently.

          1. Thanks Gabriel for your feedback.

            Maintaining multiple communication channel is little bit difficult for me. It may take some time to open an another channel as I am focusing some core functionality improvement.

  41. Hi Rahul,

    I really like the last update with possibility of creating shortcuts to certain devices – nice work 🙂

    I have two more ideas:
    1) current icon of the shortcut is exactly the same as main app icon – I am not sure if that is possible, but maybe shortcuts could use the device-specific icons that you have added few days ago?

    2) maybe more important that point 1 🙂 -> message timeout. For some of the panels (for example switch), there is possibility to define “Topic” and “Subscribe topic”. I use that to send command to “Topic” and get the response (status of the operation) on “Subscribe topic”. I have observed that in case the physical device if offline for any reason, I can send the request (to turn on the lamp or whatever), but the response never arrives obviously. Nevertheless, switch changes to the “on” position, even there is no status confirmation. Maybe it would be good to add kind of timeout option – when there are defined both topics, you can send the request and wait some time (5 seconds?) and revert to the previous state if no response on “Subscribe topic” is received?
    In case of my lamp it would behave as follows: I use switch to turn it on, message is sent to the “Topic” and icon/control on the panel changes to the “on” state, if no response on “Subscribe topic” received within timeout period, icon/control on the panel reverts to “off” state

    1. I am glad to know that you like the shortcut feature.

      1. I also thought about the same. Current image is a base-64 image. The icons for devices are SVG image. Right now I have no knowledge how to dynamically generate or combine base-64 images. I will do some research for it. I believe it will be cool if I can achieve it.

      2. Lets discuss about some challenges about message timeout.

      – The timeout duration is really tricky even it is user configurable. Some time it takes time longer than expected. Every time you turn on / off the switch you have to wait timeout duration e.g. 5 seconds.
      – Your physical device is configured to send back feedback message. But the feedback message may not follow the sequence. For example you send “On” and “Off” message sequentially. There is a possibility that feedback for “Off” message reached before feedback of “On” message. Now even the physical device is off switch panel will show it is on.
      – To avoid above state issue you may use same topic for subscribe and publish. In this case automatic reverting the switch after timeout is really confusing for determining the state of last published message. For example you changed the switch from “Off” to “On”. Now the “On” message did not reach to the physical device. After 5 seconds the switch will be moved to “Off” state again but this time it did not publish “Off” state. This is a big confusion. The last payload was “On” but the switch is showing “Off” state.
      – The different publish and subscribe topic option is available in all panels where it can do both publish and subscribe. Think about other panels apart from the switch like slider, combo box or radio buttons. It crates flickering everywhere. I don’t think the experience with waiting for feedback will be very pleasant for those panels.

      I understand your concern. When I started the project I also thought about some kind of feedback. The experience was really bad. I realized that I am not going in MQTT protocol’s way. So I took an alternate approach that is more aligned with MQTT. I implemented “Remote Device Status” which tells you if a physical device is connected or not. The configurations are available in device settings. There you can configure three messages 1) online 2) offline and 3) sync request. Your physical device must publish “online” message when it establishes a connection. You also need to configure the “offline” message as physical device will message. Both of these messages must enable “retain flag”. Now your device titlebar always indicates if the physical device is connected or not. Ideally your physical device(e.g. ESP8266) contains multiple input and outputs(light switch, fan switch, temperature sensor etc). If you know your physical device is online you can reliably publish any message for it. You should also consider MQTT protocols built in QoS and Retain feature. By enabling retain flag you can assume that message will be delivered once the physical device is online. The “sync request” message helps you to manually tell your physical device to re-publish it’s current status (sensor, transducers).

      The Remote device status and Retain flag together provides some level of reliability. In case more specific info is needed you always can use log panel. Log panel accept wild card. So you can monitor multiple topics in a single panel. This is helpful if you do not mind to add an extra panel. 🙂

      As an IoT user I also want to implement message feedback. But we need to consider some points. 1) It must be reliable in all scenarios. 2) The working principle should be understandable to both beginner and advanced users. 3) Should not break the way MQTT expected to work to avoid confusion 4) The implementation should be feasible and maintainable.

      I am hoping I will get some perfect idea by myself or from my app users suggestion. I am exited to do some improvement in this area.

      Feel free share more thoughts.

      Rahul Kundu

  42. Hi Rahul Kundu

    I bought Pro Version: IoT MQTT Panel Pro,
    but I do not know how Enable notification works. Do you have a document about this?

    After 12 hours the App has restarted and I lost the collected data is normal this.

    1. Hi Abilio,

      Thank you for purchasing pro version.
      Enabling notification is pretty much straight forward. Any panel that can subscribe a topic, you will get an option to enable notification. Click option icon (3 dots) on the panel, then edit panel and enable it. Two things you need to remember.
      1. When a connection is in foreground the notification is turned off. It is bit annoying to get notification when you are looking at the panels.
      2. You must enable background running and auto connect options to get the notification seamlessly.

      Notification still is in experimental phase. If you get any issue feel free to make a comment in this blog.

      I believe for “collected data” you are referring data in “line graph”. Yes, when the app is restarted line graph starts from beginning. If the app gets terminated it does not get any data and plotting will be inaccurate. Also as this is a mobile app it can handle limited data, beyond that performance gets impacted very much. Right now the max limit is 100. When this buffer is full older data gets deleted.

  43. Hi Rahul, this is the nicest dashboard i’ve seen, well done and thanks for all the hard work.
    Here’s a couple of suggestions:
    Can the panels that don’t have a subscribe option get them? I’m thinking Time Picker, Text Input.
    Can buttons have a narrower panel without title?
    How about a ‘lock’ mode that still allows inputs but hides the 3 dot menu on each panel? Would look neater and stop accidental presses and make vertical scrolling easier.
    I would like a range slider with start and end settings. For example, to set active hours for a device to 8-17 with a slider would be neat and use much less space than two Time Pickers. Would need two sets of topics.
    Finally, anything you can do to reduce the height of he panels to squeeze more on a page would be great.
    Thanks again for the rapid responses you have given to others, great work!

    1. Thanks Peter for your suggestions. This will definitely help me to improve the app in future. Keep updating the app from play store.

  44. Hi, one suggestion, I wish there was a button style “on and off” with timer.
    Thank you, your work is very good.

    1. Hi Raphael,

      Thank you for your comment. “on and off” with timer eventually means publishing a message automatically. As this is a dashboard application it does not provide automation feature for now. I will analyze the scope and feasibility and update in near future.

  45. Hi, Its really nice application, thank you. Do you plan to implement “image” panel? I’m using MQTT Dash, where you can add image panel with three options. First, image can be received as payload from topic, second, in payload can be URL for image and the last one, MQTT message is only an event to reload preset URL of the image. I thing, it can be very useful, for example Interactive door camera, which send you photo when someone ring the bell.

    1. Hi Filip,
      Thank you for your comment. The second scenerio can be achieved by “URI Launcher”, though it will open in an external application. I will analyze all of these use cases and update the app soon.

      1. Hi Rahul,

        the possibility to display an image (e.g. binary payload?) would be great for showing actual pictures from IP cam etc.

        I am using your app and it is great!

        1. Hi Kortas,
          This still does not support image received as binary payload. Currently, the only way to receive an url is through URI Launcher panel which will help you to easily open the image in the browser. I will explore the image option and if there is any standard way of implementing it I will add in upcoming version.

    1. Hi Gabriel,

      I also thought about combo panel or mixing panels. But I realized that the possibilities of combo panels are endless. So took a different approach. I introduced flexible panel width. It is not exactly same as combo panel but you can make similar visual appearance. For example you want mix and one button and two switches in a panel. So what you can do is create a button panel and a switch panel (both of these panels accepts multiple items of same type). Now you can give 1/3 panel width to button panel and 2/3 panel width to switch panel. So the two panels will appear in a single row. This approach helps to keeps the app more clean, maintainable and robust.

      1. Combining this panels is really a big challenge. Still I will look for UIX improvement and update in future releases.

  46. Love this app! Suggestions:
    1. As already stated, widgets.
    2. 8 bucks for the pro version is too much, 5 is more palatable. You may allow widgets in the pro version, would be a good selling point. But again, 5 bucks, not 8.

    Keep up the good work!

    1. Hi Gabriel,

      1. Yes, home widget is one improvement kept in my todo list. The technology I am using is not giving me enough flexibility to implement it in straight foreword fashion. Still I am trying to find a way to achieve it. Will update as soon as possible.
      2. There is couple of reason for the price. I believe there is no app available in the market at present which is offering as much features and flexibility as my app. To build these many features and maintain them it takes huge amount of effort. It took more than 2 years to build it and I still adding features regularly. And most important thing is the number of target audience is negligible compared to common consumer app. I hope you understand me. Support from users is my only motivation. Hence I request everyone to provide positive feedback at play store and purchase the app so that I can continue development and maintenance.

    2. Hi Gabriel,
      I have implemented “shortcut” feature for devices. This will allow you to open any device directly without opening connection page.

  47. Sometimes it is very important to know how much time has passed since the information was updated. It’s good to add the ability to display in each panel in fine print the elapsed time since the last update.

    1. Yes, I thought about this concern for number times. But this is a limitation from MQTT behavior. Let me explain.

      In MQTT protocol publisher and subscriber does not know each other, they are connected through the broker. The protocol relies on QoS and Retain. This guarantees that the message will be delivered at some point of time. There could be many reason (e.g. network delay or network down etc.) for a large time lag between message sent and received. The mobile app only can know when the message is received. But completely unaware about the timestamp when it actually published. If the ‘sent timestamp’ is critical for someone ‘received timestamp’ can be misleading.

      So what the workaround can be done. The publisher can also publish the ‘sent timestamp’ as an additional message or combine with actual data in JSON format. Again this is only possible if you have complete access to the publisher. In my app each panel is designed to fulfill a single purpose. So if the timestamp is published you can levarage Text Log panel to display it. Text Log is very flexible, you can configure it according to your need. You can place these two related panels (timestamp and actual panel) side by side for better visualization.

      A limitation from my app is placing the timestamp. There are huge number of users who has mobile with low resolution. The timestamp also could be a very large string (time and date). This can easily break the UI completely. Believe me, this is a real pain to make it work for all panels with all mobile resolution.

      Still I will keep looking for a better solution, which is appropriate for most of the scenarios.

  48. Your app is really good! Would it be hard to implement landscape mode? Also you could add text panel. To receive and display data without any other buttons, icons etc. Just text, it would be good if you want to only display temperature and not interact with it anymore.

    1. Hi Damien,

      Thanks for your comment.

      Yes, landscape mode is a very big effort. Number of things will brake because of huge variety of resolution. I will work on this once other major things are done.

      Indeed you have a text only panel called “Text Log”. This panel was initially intended for debugging purpose. Now I have added multiple options to it. You can easily configure to display a single value and hide all unwanted contents. However for displaying temperature I will suggest you to use “Vertical Meter”. This will not only allow to display the text but also shows visual representation. There are number of panels that are read only. You can use any one of them according to your need.

      1. But using “Text Log” does not allow to add units (for example Fahrenheit/Celcius degrees for temperature, etc.) – it would be great to add possibility of adding the unit as in case of other read-only fields – it would instantiate fully operational log and text field

  49. Hi!
    Error is noticed highly discreet eye.
    In establishing a panel type “gauge” with specified ranges “payload” when entering values for border sets the pointer visually incorrectly.
    The arrow should be rest against delimiters.
    Insert the trimming values to the range.
    I hope my message will help application better.

    1. Hi Andrey,
      Constructive feedback defiantly helps to make the application better. Thanks for your comment.
      Can you please share the range and some sample value so that I can reproduce the issue easily.

      1. Yes of course! The range of values that a variable takes is between -9 and 255. It is important to display only the range from 160 to 255. For values less than 160, the arrow goes to the next circle. With a value equal to -9, it is fun to stick out in the first third of the scale. Is it possible to apply a function similar to “constrain (x, a, b)”? And the coloring of the scale only to the left of the arrow is not very obvious, if the arrow is at the very beginning. And if the left part is the most critical, and a narrow strip is barely visible – due attention will not attract. I suggest painting the entire sector.

        1. Thanks Andrey for your explanation.
          Ideally you should select the range from -9 to 255 if the possible values of that variable between -9 and 255. Alternatively if you only care about 160-255 you should only publish when the value is in the range. In this case you can select the range 160-255.

          But still I think this is an interesting use-case. What I will do is discard all out of range values. Also address other suggestion as much as possible in upcoming releases.

          1. Published raw data, due to the fact that they use other equipment in the entire range. And the user is only interested in a small range.

          2. Yes, I understand your point. No worries, updates will be available in couple of hours, and this scenario will be handled.

        2. Hi Andrey,
          I have updated the app. Now the gauge will discard out of range values (but the text will show actual value). Also color will fill entire arc to get better visibility for smaller values.

          Feel free to share more feedback.

  50. Hi have iot mqtt pro, like this App and will never miss, good work, have one question regarding the led panel. If I try to adapt digital input channel of donkovi SmartDEN_Notifier board to led panel, than i get no update on it, if I add it to Text Log Panel than i get on of messages, will it be possible to adapt this to led panel also. Thanks A.K.

    1. Hi Ahmet,

      If you are getting on message to Text Log Panel it should work with LED Panel too. Unfortunately I do not have SmartDEN_Notifier board to test. But if you can share the topic and on / off message published by SmartDEN_Notifier, I can help you to configure. I believe the configuration would be very simple.

  51. Hi,
    I’m also among those looking for a cool app controlling my various MQTT devices, and this one looking really promising!
    What I’m missing right in the beginning are two security related things:
    – no user/password authentication
    – SSL CA certificate to be stored in my mobile’s file system
    – no way to use an already existing certificates stored in device’s ‘trusted credentials’ area.

    Also, I’ve read you’ve enabled ‘any character’ for Connection, Device and Panel names – could the same (UTF-8) also be allowed for Topic and Subsribe Topic, as specified here: ?

    Thanks a lot for doing all this, will consider using this with added security (and, of course, going Pro).

    1. Thanks Andreas, for your feedback.
      – Indeed this app does have user / password authentication. Press “Advance options” while adding / editing connection to get username and password field.
      – This app allows to establish SSL connection through CA certificate. I will explore about ‘trusted credentials’ in future.
      – Yes, as per the protocol UTF-8 characters are allowed as topic. I introduced this validation to increase reliability and reduce some coding complexity. I will update the app after re-analysing complexity and impact of removing this validation.

      Feel free to share more feedback.

    2. Hi Andreas,

      I have updated the app and now it will accept UTF-8 characters as topic. Please update the app from play store.

  52. It is a wonderful app. I’m developing my home device with esp8266.
    Is there a way to have pushed notification when the app is in back ground. I.e when some telemetry values reach some defined values or threshold? This could be interesting to use it like warning monitor.

    1. Hi Alex,
      In simple yes, you can do it using this app.

      In the pro version of this app has notification feature. It can run in background and notify you.
      Now, this app is a dashboard app. I strongly believe, this app is not proper place to write automation logic. But this should not block you anything. So, what you can do is write your decision making code inside ESP8266 and use this app as notification medium. I am giving you an example.
      Suppose you wish to get notified when temperature goes higher than 35°C. While you are measuring the temperature in ESP8266, check if the temperature is going beyond 35°C. If yes then publish a MQTT message “Temperature alert”. Now, in the mobile app choose any suitable panel(e.g. Text Log / LED Indicator) and subscribe the alert message with notification flag enabled. The app will show notification once it gets the warning message. Remember the app shows notification if the same connection is connected but not in open condition.

      For critical warning monitor you always should consider unpredictability of internet and network delay.

      Please feel free to share your thought.

  53. Meant to also say, THANK YOU, I’m excited to experiment with this app and contribute toward your support via the purchased edition.

    1. Thanks Eric for your comment.
      Yes, as per MQTT standard spaces are allowed as topic name. But this is not a good practice. The link provided by you clearly mentioned it. See the section “Don’t use spaces in a topic” under “Best practices”. I feel they are right about “A space is the natural enemy of each programmer, they often make it much harder to read and debug topics, when things are not going the way, they should be.”

      I added the validation so that user can use MQTT reliably. Apart from that I don’t see any use case that is blocked because of this.

      I am really happy to know that you are going to purchase the paid version. This will definitely encourage me to continue the development. Feel free to share more feedback or question.

      1. If it’s allowed then validation shouldn’t block it, in my opinion. Since this tool doesn’t deal with allowing users to create topics, it shouldn’t be opinionated about it (beyond the requirements of MQTT). In my case I have no choice about the spaces–they’re automatically added by the bridging between my SmartThings home automation and MQTT. Because the validation oversteps the minimal requirements of MQTT, I’m unable to use it for my home automation. 🙁

        1. Ok, I will check if this app can handle spaces in topic name without compromising reliability. I will update as soon as possible.

        2. I have allowed spaces in topic name. Note that trailing (at beginning and end) spaces will get trimmed.
          Please update the app from playstore to get this change. Let me know if this works for you.

  54. Hello, really nice app! Can you give us an example for charts?
    I’ve tried with comma separated data in the topic (timestamp, value an then newline) an json ( [{“stamp”:”2018-06-09T19:35:58.813856056Z”, “level”:”17.7980613708″}, etc) but nothing works.
    Is there any explanation for these types of panels? Thx

    1. The time stamp is only applicable for Line Graph. I believe you are referring the same.
      You need not to publish timestamp along with your message. The app takes the message received timestamp for reference. For example you published the level 15,16 and 17 at 10:00am, 10:05am and 10:10am respectively. The mobile app automatically captures corresponding times when it receives the messages. You can use plain message or JSON data for sending these values.

      It is very hard to provide the flexibility to capture timestamp from publisher. This timestamp could be seconds, minutes, hours, days, months apart. It’s format could be anything. And more than that I could not see much real world scenerio. Because you can publish the value immediately you capture it. The only down side I can see the network delay. Most of the cases it will be 1-2sec. I believe that is acceptable considering this is a light weight mobile app and can’t provide precision in milli-seconds. Only you should keep in mind not to retain these values.

      The chart (pie) and Bar graph does not need the time stamp. It only shows last received value. You can refer the screenshots provided at User Guide for better understanding. Here are examples.
      1. Bar graph: You want to plot three different temperatures (e.g. Kitchen, Dining, Outdoor) in a single graph. You can configure individual topics(home/kitchen, home/dining, home/outdoor) for each them. Once the value received by the app it will show in graph. If the value is re-published then the app replaces old value. Alternatively you can send the values in a single topic using JSON data (with different JSON path).
      2. Chart: It behaves similarly but represents the value in percentage share.

      Feel free to ask more question or sharing your thoughts.

  55. Hi Rahul, thank you for your work again and again! I need time picker in 24 format hour, because there is not difference in published payload, between pm and am. Can you help me?

    1. Thank you Michele, for bringing my attention. Yes the time should be in 24 hours format. I will fix this bug as soon as possible and update you.

  56. Hello, nice app, please inform if it already accepts IPV6 as broker address. Here in Brazil we are not getting outside IPV4 access anymore (ISPs are using CGNAT).

  57. Hello, i need to get (or understand how to) a specific json field, can you tell me what to read to understand how to do it myself?
    im publishing this {“tierra”:20,”humedad”:54,”temp”:20}

    1. You can use following jsonPaths to get tierra, humedad and temp individually.
      $.tierra, $.humedad, $.temp

  58. Hi Rahul. Best MQTT app I have seen! If I could make a wish, I would like to be able to change the text size of the text inside a text log panel.

  59. Hi Rahul, the bug I mentioned, if I configure the text log panel device, it actually shows me the topic path on the final displayed panel, as well as the payload. That’s fine for debugging log files but if I want to display only the payload (which is text only in this case) then that’s not ideal. I guess I’m asking for a pure text display panel really. 🙂 happy to send a screen shot if you pm me. Thanks for your comment re the widget. Cheers dave

    1. Thanks Dave,
      I understand your point. I will add an option to hide the log panel topic in upcoming releases.
      Thanks for your feedback.

  60. Thanks Dave for your feedback,

    I have kept home widget in my to do list. I will work on this once other priority tasks are done.

    The text log panel intended for basic debugging purpose. Yes, it does not keep the payloads once you move from the device page. Ideally full log should be configured in broker level. I also think that full topic text is helpful for debugging purpose.

    I could not understand the bug you are referring. It will be very helpful if you can provide a complete example.

    Feel free to share more feedbacks.

  61. IoT mqtt panel, most excellent.
    A widget link to the home or selectable device would be great.
    How can I display a topics (text) payload, the text log is nearly there but I don’t want it to disappear. There is I think a bug there, it also displays the whole topic path as well as the payload. I’d like to display a topics textual payload ‘OK’, ‘green’, or ‘7 bananas’ whatever.
    Keep up the good work.
    Still learning mqtt so I may not know what I’m talking about.
    Thanks dave

    1. Hi Dave,
      I have implemented “shortcut” feature for devices. This will allow you to open any device directly without opening connection page.

  62. Hi Rahul,

    first of all, many compliments for your App.
    I kindly ask you if it’s possible to introduce into the SWITCH PANEL the possibility to visulize the “timestamp” on the last status change of the IOT device. This could be useful in order to be aware when a remote action has been taken by the remote IOT device.

    Many thanks for your kind support.

    1. Thanks Raffaele for your feedback. Lets analyze the various scenarios.

      You published one message from your mobile. You closed the app and reopened it. The mobile does not have any info when it published messages last time.

      Another scenerio, suppose you have two mobiles X and Y interacting with your IoT system Z.
      1. RETAIN FALSE: Mobile X publishes a message and Z responds accordingly. At this time if Y is offline and Y will never get updated state. Even Z publishes it’s current state after Y come online, it does not tell when X published the message.
      2. RETAIN TRUE: Y was offline when X sent the message last time. When Y comes online and subscribes same topic it immediately receives last message published by X. But still it does not tell when X published the message.

      These are very simple scenerios. In practical we deal with number of devices and it is very difficult to predict timestamp from client side.

      Another major challenge is placement of timestamp text. Lots of user have small mobile screen size. Adding too much information will brake the panel UI.

      I will keep looking for appropriate solution and address it in future releases.

  63. Hihi!!! This is really a good job! Are you very strong! App in my opinion, needs notification alarms, so it Will be completed! So thank you very much for your work!

    1. Hi Michele,

      Thanks for your comment. I admit that notification is one of the major feature this app does not offer till now. Unfortunately the library I am using for MQTT communication does not have notification functionality. I am working hard to make it work. Once I succeed I will update the app.

    2. Hi Michele,
      I have implemented notification feature and it is available in pro version. Please note this feature is in very early stage. Feel free to report any bug or suggestion.

  64. Hi,
    the app is very good but I’m not good enough to use it.
    I have a sonoff basic with tasmota firmware but is not working with this app, but work with mqtt dash.
    Very strange, can you help me with the configuration of payload function?
    My suggestion is to have the possibility to schedule the function, like turn on/off light at certain time and day.
    Anyway I want to try to make it work with my tasmota basic because I will like to automate all my house.
    keep going.

    1. Hi Luca,
      This application should work with all IoT devices based one MQTT protocol. Unfortunately I do not have a sonoff device for testing. From internet I came to know that tasmota firmware works with MQTT. So, I believe that this app will work with your sonoff. I will try to load tasmota firmware in my ESP8266 and share my findings.

      I will be very happy to help you to configure the app. You also can drop me a mail ( your requirements.

      This app is primarily a dashboard app and you can’t schedule a task inside it. The ideal place to schedule would be inside the device. This app will help you to visualize current status of any input or change any output manually.

    1. Thanks Rudi for your suggestion. The notification functionality is not currently available. I will explore about it and integrate in future.

    2. Hi Rudi,
      I have implemented notification feature and it is available in pro version. Please note this feature is in very early stage. Feel free to report any bug or suggestion.

  65. Hey, one more request.

    Is it possible to implement some sensor in order to detect an open door? I have a sensor in place, it answer 1 for open, 0 for closed. I can use a switch but the switch can be switched (off course) and I just wanted a graphic representation of opened and closed. Is this possible?

    1. Yes it is possible. I have created LED Panel to view generic digital state. This panel should fulfil your requirement. Very soon I will add an option to change LED icon too.

      1. The idea is exactly this, but, could it be like a ball or a square, color as you said and a message, like open and closed based on the payload and a label or something like that?

        1. Update the app from play store. You will be able to change LED icons with color. The door symbolic icon is also available. This will allow to visualize if the door is open or closed. Alternatively you can use lock icons too.

  66. Is it possible to implement a function to create a shortcut on home screen to a connection? So, I could click and open directly to my buttons.

    Thanks in advance!!

  67. Hi, really good job Guys 🙂

    I have a few comments/suggestions in case you plan to develop the app any further:
    1) support for diacritic characters in the panel names – I can use Polish diacritic characters in the labels, however trying to use them in the panel name causes “Only character, number, space and – are allowed” error.
    2) icons for faster panel recognition – to be honest, I am testing now few MQTT Android clients – your app looks the most promising, but what I like in the others (such like MQTT Dash) is possibility to add icon to particular panel/controller. At the beginning they could be static just to depict device controlled by particular panel, but in the future you could think of doing them “dynamic” – changing depending on the received content. You could design your own icons or try to adapt free icons available on the Internet (like FlatIcons, FontAwesome, etc.).
    3) resizeable panels – all panels are currently displayed on the whole screen width, which consumes a lot of screen space when there is just a single switch or button on the panel. It would be great to be able to place for example 2 panels side-by-side, etc.
    4) missing “unit” on the slider panel. I guess each panel could have possibility to define unit as there might be numerous usecases.
    5) dynamic colors of the bars on progress and meter panels – for example to define three ranges for temperature, such like: blue – below X (too cold), green – between X and Y (optimal) , red – above Y (too hot). It could be used as well for other metrics like humidity, battery level, light level, etc. Colors could be fully customizable (full RGB range) or selected from the limited set of predefined colors.
    6) home screen widgets of the panels for instant access without a need to open the app
    7) notifications when the values presented on the panels meet certain customizable conditions – for example when the temperature/battery level of connected IoT device drops below X, PIR sensor detects movement or doors are opened, etc.

    1. Thank you very much for your feedback. I will update the app according to your feedback as much as possible in upcoming releases.

      1. Thanks – that would be really great!

        I have another idea to be considered in the future – timer for each and every panel separately, indicating when the last pub/sub action for that panel was triggered (i.e. how many seconds/hours/days ago the panel was updated the last time).

    2. Updates
      1. Restriction for Connection, Device and Panel names are removed. Now you can provide any character.
      2. Panels are resizable now. You can configure them to 100%, 66%, 50% and 33% according to your need.
      3. Unit added for Slider panel
      4. Vertical meter can be configured to multicolor (For now it is not dynamic as you suggested).
      5. Icon change flexibility added to Button, Switch and LED panels
      Please update the app from Play Store to get these features.

      Feel free to share more feedback.

      1. I liked the updates. I’d like to suggest also;
        – create groups of different sensors. For example, I go to Home and create groups by rooms, like living room, bedroom, kitchen and then have the ability to have different kinds of sensors on each group (Kitchen – Lamps, Thermometer, Humidity Sensor, smoke detector, etc)….

        – Also, change background collors to better identify (For example, Living room = green, kitchen = red, etc…)

        1. Thanks Leo for your suggestion,
          – Grouping the sensors and controls is always a good idea. I introduced “Device” for exactly same reason. Group all panels(e.g. Lamps, Thermometer, Humidity Sensor, smoke detector, etc) under same device (name it as Kitchen). You can easily switch between the devices(or Groups) using the left menu in device page. For more info about the architecture please refer User Guide inside the app.
          – I will explore to make device background / theme customizable for quick identification. For now you can use Device name displaying at the top.

        2. Hi Leo,
          Now you can configure the background colors of titlebar for easy identification. Please update the app from playstore.
          I apologies for delay to implement this useful feature. I was too focused to implement other features, I could not get time.

          1. Hi Rahul,

            The update with customizable titlebar background color is great, but here are few suggestions from my side:

            1) colors are visible only once you open certain device – if you open the menu with the list of all available devices, they are still blue, so you still need to pay attention to the text and can not depend on color-coding only – it would be great if the background colors were also applied to the menu list items

            2) you have already added quite nice set of icons to the app – why not to allow the user to define separate icon for each device (along with the titlebar color)? It would increase readability and ease of use further more 🙂

          2. Thanks Pawel for nice ideas. This will help to improve user experience. Keep updating the app regularly. Feel free to share more feedback at any time.

      2. I didn’t expect such quick update – really great job!
        That is awesome – I can’t wait to more new features to come 🙂

    3. Hi Pawel,
      I have added the notification in pro version. The implementation is in very early stage. It can only show the last value received by any particular panel. Please feel free to raise any bug or suggestion.

    4. Hi Paweł,
      Finally I am able to implement “shortcut” for devices. This will allow you to open any device directly without opening connection page. I think this will help you access panels instantly.

    1. Hi Evangelos,
      This application should work with any MQTT device. Unfortunately I do not have tasomota sonoff device for testing right now.

  68. Nice work! How about having some widgets that display data coming from a device?
    So far all I see is the availability of control widgets. I’d like to display my room temperature.
    For that, quite often, we need to “parse” the payload value as a JSON object.
    It would be nice to also support JSON path to extract the value to be displayed.

    1. Thank you Greet for your suggestion. I will add panels for displaying value very soon. Also I will explore about JSON path and integrate with this application.

    2. Hi Greet,
      I have added 3 new panels Linear Progress, Circular Progress and Vertical Meter. These panels will be useful for displaying value. I will add jsonpath support very soon.

    3. The JSON support is available now. You can parse the subscribed data using JsonPath as well as you can wrap the input values into a JSON format.

      1. Hello Rahul,
        Thank you for your app and it is nice to use and powerfull!
        JSONPath query parsing work with simple JSON and I have configured in app :
        measures (to parse {“measures”:”34.5″)}
        measures[0] (to parse {“measures”:”measures”:[12.56])}

        But when it doesn’t work when I try to configure app with:
        measures[0].value (to parse {“measures”:[{value:11.12},{value:33.44}]}

        This page easily show this 3 basics JSONPath query

        Do I did something bad in the app parsing configuration ?
        Is there a bug ?

  69. Very Nice, looks promosing.
    What i’m missing is the possibility to export/import the settings to for example an other phone.
    Wife and son have also phone and i don’t like to enter everything 3 Times.

    1. Thank you Evert for your suggestion.

      Actually I am building this feature and it will be available very soon. The application is completely build on user’s settings which resides only on device memory. The exported file will be a human readable json file. If user modify it with invalid settings / syntax it might cause crash of the application in his mobile. So currently I am implementing proper validation before the settings can be imported.

    2. Hi Evert,
      I have implemented the import/export configuration. You can get this option at settings page. Additionally I have introduced SSL, Dark theme and many more updates. Some new panels are also coming soon. Please update the app to get the latest features. Also feel free to share your feedback. This will help me to improve the application.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.