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

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

Leave a Reply

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