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 and 1 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

57 thoughts on “IoT MQTT Panel FAQ and Feedback

  1. 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.

  2. 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. Hi Evangelos,
      This application should work with any MQTT device. Unfortunately I do not have tasomota sonoff device for testing right now.

  3. 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. 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. 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!!

  5. 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.

    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.

  6. 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 (snrelectronicsblog@gmail.com) 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.

  7. 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.

  8. 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.

  9. 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

  10. 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.

  11. 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.

  12. 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.

  13. 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

  14. 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).

  15. 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.

  16. 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.

    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.

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

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.