Loading...
TouchPoint Church Management System
Lets Companion react to room reservations in TouchPoint. For any room, you can know when it is in setup, in use, or in teardown, and use that to light buttons or to start and stop things through Companion Triggers.
Companion gets reservations from a small Python script that runs inside TouchPoint, called CompanionMeetings. The module asks it for the rooms and for the reservations of the rooms you are watching, and works out from the times when each phase starts and ends.
You install the script in TouchPoint once, by hand. After that the module keeps it up to date itself. The rest of this page explains that in full, because the script is the one part that lives outside Companion.
What it does. It reads room and reservation information and hands it to the module:
Cancelled meetings are left out. The script does not look at people, attendance, giving, or anything else, and it never changes your data. The only thing it ever writes is itself, when it is updated.
Where it comes from. It is in this module's repository, at touchpoint/CompanionMeetings.py. Each release of the module is tagged in the repository, and the copy of the script at that tag is the one that goes with that release. The connection's settings link to exactly that copy, so you never have to work out which one you need.
What it needs.
CompanionMeetings. If you use another name, enter it as Python Script Name in the connection's settings.#API, which is what allows it to be called by the module. Save it.https://your-church.tpsdb.com/PyScript/CompanionMeetings in a browser, signed in to TouchPoint. You should see a message that the script is installed and ready, with its version.This is the only time you need to install it by hand.
The module and the script are one thing, with one version: they are released together, so a new version of the module is a new version of the script, and the other way around. The module carries a copy of the script and checks the version of the one in TouchPoint each time it refreshes:
How it is done: the module sends its copy to the installed script, which replaces itself. The script accepts that only from a user who can call it at all (the Developer and APIOnly user), and refuses a copy that isn't newer, doesn't begin with #API, or couldn't be updated itself again. Only the script named in Python Script Name is touched.
If the update fails (for instance, the script in TouchPoint is so old that it can't update itself), the module tries once, shows why in the connection's status, and waits for you rather than trying on every refresh. Install the current script by hand, as above, and the connection recovers on its own.
If you would rather control when the script changes, for example because TouchPoint changes are reviewed, turn off Update the TouchPoint script automatically. The connection then reports when the script is out of date, and you install the new version by hand using the link in the settings.
There is only one version number to think about: the module's. The script in TouchPoint should have the same one, and the link in the connection's settings is always the script for the module you have installed, so you never have to match them up yourself. The script says which version it is on its own page (step 5 above), so you can see at a glance whether TouchPoint has the one you expect.
mychurch.tpsdb.com.CompanionMeetings, unless you named it something else.You only need one connection, however many rooms you use. Rooms are chosen in each feedback.
Options:
Selecting several phases that run into each other, such as setup, event, and teardown, makes one period, so these only move its outer edges.
Use a Companion Trigger with the Room is in setup, in use, or in teardown feedback as its condition:
Because these are conditions rather than one-time events, a reservation that is already underway when Companion starts, or when a trigger is created, is treated correctly.
If TouchPoint becomes unreachable, the last known reservations stay in effect, so times continue to be applied; the connection status shows the problem.
The connection's status says what is wrong:
| Status says | What it means | What to do |
|---|---|---|
| ... is required | A setting is empty. | Fill it in. |
| TouchPoint rejected the credentials | The username or password is wrong, or the user lacks a role. | Check them. The user needs the Developer and APIOnly roles. |
| Script not found | There is no script with the name in Python Script Name, or it doesn't start #API. | Install the script, or fix the name. See Installing it for the first time. |
| The TouchPoint script is out of date | The script in TouchPoint is older than the module needs, and wasn't updated. | If automatic updates are off, install the current script by hand, or turn them on. Otherwise see the next row. |
| ... could not be updated automatically | The script in TouchPoint is too old to update itself, or the user can't change it. | Install the current script by hand. The connection recovers by itself. |
| The script returned no result / reported an error | The script ran into a problem; the message includes what it printed. | Open the script's page in TouchPoint (see step 5 above) to see if it loads. If it keeps happening, report it with the message. |
| Could not reach TouchPoint / timed out | TouchPoint (or the network) isn't answering. | Check the host name and your network. Times already known keep being applied meanwhile. |
| Reservations start or end at the wrong time | Reservation times are being read in the wrong time zone. | Check TouchPoint's LocalTimeZone setting. With debug logging on, the connection logs the offset it is using and each reservation's times. |
| A new room isn't in the dropdown | The room list is read every 10 minutes. | Run Refresh from TouchPoint. |