Introduction to the Echo tutorial

Install Echo prop

Create Echo plugin from skeleton

Add Echo plugin to your room

Create a new PyCharm project

Hack Echo plugin with PyCharm

definitions.ini

constants.py

main.py (Qt event loop)

Singleton.py (class)

MqttApplet.py (base class)

PluginApplet.py (application)

PluginDialog.py (main window)

PluginSettingsDialog.py (settings dialog)

Localization (Qt Linguist)

What is a plugin ?

A plugin is a program which is started and stopped by the Room application, it communicates with the application via the MQTT server.


  • Third-party application as a plugin
    • any Windows application installed on your PC (iSpy, MorphVox Pro, etc)
  • Escape room specific applet (i.e. small application) you wrote
    • with C++ / Qt have the same Room look and feel
    • with C#, NodeJS, Python or Java as long as it supports an MQTT client
  • Escape room specific Python applet
    • with PyQt5 because it was available when we started programming Room and because PyQt5 it is also available on Raspberry Pi to code props
    • with PySide2 which was inactive at that time but during April 2016, The Qt Company decided to properly support the port (announcement)

Recommended PyQt5 plugin programming

It is easy to write a plugin in Python (with its venv virtual environment and with PyQt5) using the plugin code provided on GitHub (PySkeletonPlugin) and the classes AppletDialog and AppletSettingsDialog.


PyCharm Community or Professional is recommended to write a Python plugin for Room.

Plugin tutorial: PyEchoPlugin

For this tutorial, we'll hack PySkeletonPlugin to create PyEchoPlugin plugin :

    • with a native GUI of the plugin in English with a localization in French
    • that subscribes to the escape room MQTT root topic
    • that sends MQTT commands to an EchoProps (which replies back the command with a comment)
    • that displays messages received from the EchoProps 


🡲 Introduction to the Echo tutorial