Home About Meetings FOSS

October 9 2017 MQTT, MODX and CiviCRM Meet

Posted on October 20, 2017
( 7 minute read )

Bernard demonstrated the software he is developing for the Todmorden Astronomy Centre to enable members remotely to control the Remscope, a robotic telescope currently being constructed at the site.

The project consists of a public facing server which members can log into and a Raspberry Pi controlling the telescope and linked to the public facing server over the Internet. He is using MQTT for communications and Redis as the database. Apart from controlling the telescope, the Raspberry Pi is connected to sensors so that, for example, it can detect when it is raining and close the telescope.

The public facing server enables members to log in, to book sessions, to find out about the status of the telescope and to send commands to the telescope via the Raspberry Pi.

Redis saves and recovers data as key value pairs though it can also save lists so that, for example, it can save a list of the temperatures sensed over time. Redis can receive commands in a wide variety of languages — including Python, Perl, Ruby, C, Erlang and even, as Bernard demonstrated, BASH. Though the database is held in memory, it is dumped to long term storage every so often.

The Raspberry Pi subscribes to the webserver so that whatever the webserver publishes is received by the Raspberry Pi.

Bernard then demonstrated the Chrome extension, MQTTlens, which allows you to manage MQTT messaging. Using /# at the end of the URL gets everything that the server is publishing. Note that the server does not have to know about the Raspberry Pi.

You can also configure quality of service in MQTT from 0 to 2, with 2 offering the most handshaking, but he has found 0 works well enough.

Darren reported that he has started MU123: Discovering mathematics, which assumes that you only need to be able to add, subtract, multiply, divide and understand powers, and TM129: Technologies in practice, which introduces people to computing and information technology including ‘robotics, networking, and Linux.’

John then demonstrated MODX which the Green Party uses to provide websites for its local parties. John said that, despite the lack of documentation, he had been impressed at how easy it was so scale up so that the party now has over 300 subdomains, typically labelled <localparty>.greenparty.org.uk using it.

Those managing a site see a list of folders on the left hand side of the screen, each of which can be edited in the rest of the screen.

The topmost folder contains the settings for the subdomain, URL, name of the election agent, Google Analytics code, links to Facebook, Twitter and Youtube, etc.

Each page has a number of settings at the top including a Long title which is what search engines use and an option to Hide from menus which means that it does not appear on the website menu but can usually be accessed from another page.

Content may be entered in rich text or HTML.

The Home page also has options to have up to four banners cycling at the top of the page, to have buttons linking to particular pages, to create footer columns normally containing links to other sites which might be of interest to visitors, to add various items to the right hand column of each page and to determine which news items appear on the News page apart from local news items.

Apart from the list of subdomains on the left hand side of the screen, there is also a list of folders in which website editors can store images and files for use on the website.

John then explained how to send bulk emails in CiviMail, one of the modules of CiviCRM. Each mailing has a name, which is simply intended to allow someone to find the email in future, a sender selected from a list of permitted senders, recipients either selected from a predefined list of recipients, which is created on the fly by an SQL command to the database, or from a list generated using Advanced Search, a subject and then the body text which may be rich text or HTML.

Bulk emails must satisfy certain legal requirements, including having an unsubscribe option, which are normally handled by tokens, but these have been included in the recommended header and footer to avoid users having to bother with tokens.

Once the email is complete, there is an option to send a test email to an individual or a group for checking before moving on to sending it. One problem that users may experience is that emails are always sent sequentially; so, if someone decides to send an email to all members, it can take some time before the server can send the next email!

Financial transactions, for example, for events or membership, are handled by a contributions module which must be linked to the organisation’s accounting software.

Because CiviCRM is modular, every instance has the means to manage contacts but not every organisation will have a membership module; some may have a client module or a module for managing grants, depending on what the organisation does.

The Green Party runs CiviCRM on top of Drupal and so those members with access permissions for CiviCRM log in first to Drupal where they find pages relating to their own local party among other things. John had found that he could revise the Green Party guide to using CiviCRM by writing it in HTML outside Drupal and then copying and pasting it into Drupal which made it easy to test everything before uploading it.