The company Mersive manufacturers a product called the Solstice Pod that allows for users to wirelessly share/cast the screens of their phones and computers to displays. They are popular devices for conference rooms where HDMI ports can be worn out or damaged. They also benefit from not needing any special hardware dongles/adapters/hubs and also reduce driver conflicts that can sometimes exist.
Solstice Pods are easy to monitor with Zabbix since Mersive uses HTTP GET commands which are easy to integrate with Zabbix. From the commands there are a lot of options that provide useful insight into Solstice Pod usage and status.
Let’s take a look at what information a Solstice Pod tells us via the API:
https://{IP-ADDRESS}:8443/api/stats?password={PASSWORD}

This information can be brought into Zabbix items so that the Solstice Pod can be monitored.
Template
Start by creating a Template for the Solstice Pods. I named mine “Mersive Solstice Pod”. I also created a group called “Solstice Pod”:

Some Macros are also necessary so navigate there and create the following:
{$APIPASSWORD} | Put your password here |
{$DEVICENOTUSED1} | Specify a number of days to alert on when a Pod has not been connected to. I use 90d (days) |
{$DEVICENOTUSED2} | Specify a number of days to alert on when a Pod has not been connected to. I use 60d (days) |
{$DEVICENOTUSED3} | Specify a number of days to alert on when a Pod has not been connected to. I use 15d (days) |
{$HTTP_TIMEOUT} | 3s |
{$MIN_SOFTWARE_VERSION} | If you have a minimum firmware level put it here. 4.4 is a very stable release I like to use |

Update as of June 2020: Zabbix 5.0 now supports secret MACROs so it is much safer to store passwords in MACROs.
Also add a Linked Template so we can get some stats on ICMP (Ping). Within the Mersive Solstice Pod template, click “Linked Templates”:

Click “Add” and find “Template Module ICMP Ping”:

Now click “Add” and “Update”. This will add ICMP checks to the devices associated with the Mersive Solstice Pod template.
Items
Now navigate to Items so we can specify what will be monitored:

The first thing that needs to be created is the Solstice device stats JSON item which will tell Zabbix how to access all of the information from the Solstice Pod. All information will be retrieved at the same time, then the items with specific stats will grab the specific information they need.
The parameters I have set are:
Name | Solstice device stats JSON |
Type | HTTP Agent |
Key | solstice_stats_json |
URL | https://{HOST.CONN}:8443/api/stats?password={$APIPASSWORD} |
Request Type | GET |
Timeout | {$HTTP_TIMEOUT} |
Update interval | {$NORMAL_UPDATE_INTERVAL} |

Click “Update” and now the initial item is created and Zabbix can poll the API off the Solstice Pod. Now items can be created to grab information to monitor and alert on.
Let’s start with the device name. Create a new item:
Name | Stats m_displayid |
Type | Dependent item |
Key | stats.m_displayid |
Master item | Mersive Solstice Pod: Solstice device stats JSON |
Type of information | Character |

Don’t forget Preprocessing, which will actually define that is being looked for to associate with the item:
JSON Path | $.m_displayId |

Click “Update” and there should be two items created now. Continue adding all of the possible items, which can be found by visiting https://{IP-ADDRESS}:8443/api/stats?password={PASSWORD} or a table is available below:
Name | Key | Type of Information | Preprocessing |
Stats m_displayid | stats.m_displayid | Character | JSON path : $.m_displayId |
Stats m_displayInformation m_displayName | stats.m_displayinformation.m_displayname | Character | JSON path : $.m_displayInformation.m_displayName |
Stats m_serverVersion numeric | stats.m_serverversion.num | Numeric (float) | JSON path : $.m_serverVersion Regular expression: Pattern: ^(\d+.\d+)..+ Output: \1 |
Stats m_statistics m_connectedUsers | stats.m_statistics.m_connectedusers | Numeric (unsigned) | JSON path : $.m_statistics.m_connectedUsers |
Stats m_statistics m_timeSinceLastConnectionInitialize | stats.m_statistics.m_timesincelastconnectioninitialize | Numeric (unsigned) | JSON path : $.m_statistics.m_timeSinceLastConnectionInitialize Custom multiplier: 0.001 |
All of these items are a “Dependent item”
You should also be associating each item with an application so that it is easier to build dashboards later. Application names can be completely up to you and different host templates can share the same application names to show a variety of data together.
Here is what the current template should roughly look like:

If you go to Latest Data on a host you should see all of your items populating. This may take a few minutes though.

You can view graphs from here to see connected users or see the time since last connection slowly increase.
Triggers
Triggers are based on items, so we can create a trigger based on any item that we just made. There should be 3 triggers already made that are from the ICMP Ping template. Let’s create triggers specific to the Solstice Pod.
Firmware is out-of-date is a good start. Navigate to Triggers and click “Create Trigger” in the top right corner. Name the trigger “Device firmware is out-of-date” or something similar.

Set the severity for whatever you would like, I will set mine for Information level. Click “Add” next to Expression. This will allow you to easily create an expression that determines how the trigger will engage. Set the Item for “Stats m_serverVersion numeric”, leave Function as last(), leave Last of (T) and Time shift blank, and set the Result to = {$MIN_SOFTWARE_VERSION}

Stats m_serverVersion numeric is the serverVersion from the Solstice Pods API, this is the latest software version running on the device.
Function last() is that the last result of stat
Last of (T) is how many times the stat was checked. If you leave this blank it uses the server default.
Time Shift sets how much time passes between each stat check to determine if its triggered. If you leave this blank it uses the server default.
{$MIN_SOFTWARE_VERSION} is a MACRO that we set earlier. This allows you to apply the same value to every device to check by only setting one field.
Now just click Add and your trigger should be set:

Let’s test it by setting the {$MIN_SOFTWARE_VERSION} MACRO to “5”. Since the device being tested is running 4.4 we should see a trigger. Click on “Monitoring”, “Problems”, and set the Host to the name of the Solstice Pod:

It looks like it is working now. Triggers are easy to setup and can be very custom.