This is a module for MagicMirror.
MMM-JSONStatusChecker
will periodically call a URL and display a "true / false" (or "connected / disconnected) status based on the results of a value in a JSON response from the API call.
Multiple instances of the module can be used to call different URLs/APIs using the same background helper. Each instance has it's own configuration and refresh time.
The AirVPN service provides an API which can be called to check service status and if a user is connected or not from an external source. This module was originally created to periodically verify that a NAS was still connected to the VPN.
- Navigate to your MagicMirror
modules
directory. - Execute
git clone https://github.com/shbatm/MMM-JSONStatusChecker
. - Add the module to your MagicMirror's
config.js
file (see next section).
To use this module, add it to the modules array in the config/config.js
file:
modules: [
...,
{
module: 'MMM-JSONStatusChecker',
header: 'JSON Status',
position: 'top_left',
config: {
// See Configuration Options below
}
},
...
]
Note: Multiple instances of this module can be added to the config and the node_helper.js
will manage the multiple calls to various locations.
Option | Description |
---|---|
name |
Required - The name for this instance of the module. This is used to allow multiple instances of the module with only one node_helper . |
apiKey |
Optional Your API Key from the service to be used. Will be injected into the url provided. |
urlApi |
Optional - The URL to call to get the connected status. To inject your API into the URL, add {{APIKEY}} into the URL where the API key goes.Example: https://airvpn.org/api/?service=userinfo&format=json&key={{APIKEY}} |
updateInterval |
Optional - The interval in ms for updating the informationDefault: 60000ms (10 minutes) |
keyToCheck |
Optional - The dot-separated path to the key in the JSON response that will be checked. The JSON Response will be recursively checked for the key. Default: user.connected |
keyValue |
Optional - The value for which to check the keyToCheck . The module will evaluate if JSONResponse[keyToCheck] === keyValue to determine what status it should show.Default: true . |
trueString ,falseString |
Optional - The values to display if the keyValue is true or false, respectively Default: "VPN Connected" and "VPN Disconnected" |
icon |
Optional - The Font Awesome icon to use (omit the fa- ).Default: plug . Set '' to not show an icon. |
trueClass ,falseClass |
Optional - The CSS classes to add if the keyValue is true or false, respectively. Default: None. |
showTrueAlert |
Optional - Show an alert when the query returns a true value.Default: false (e.g. no alert is shown). |
showFalseAlert |
Optional - Show an alert when the query returns a false value.Default: true (e.g. alert is shown). |
{
module: "MMM-JSONStatusChecker",
position: "bottom_left", // This can be any of the regions.
header: "SABnzbd Download Status",
config: {
// See 'Configuration options' for more information.
name: "SABnzbd_status",
updateInterval: 60000,
apiKey: "<your api key>",
urlApi: "http://<server>:<port>/sabnzbd/api?output=json&apikey={{APIKEY}}&mode=queue&limit=0",
keyToCheck: "queue.status",
keyValue: "Downloading",
trueString: "Downloading",
falseString: "Idle",
icon: "download",
trueClass: "small",
falseClass: "dimmed small",
showTrueAlert: false,
showFalseAlert: false,
}
},
{
module: "MMM-JSONStatusChecker",
position: "bottom_left", // This can be any of the regions.
header: "SABnzbd History",
config: {
// See 'Configuration options' for more information.
name: "SABnzbd_history",
updateInterval: 60000,
apiKey: "<your api key>",
urlApi: "http://<server>:<port>/sabnzbd/api?output=json&apikey={{APIKEY}}&mode=history&failed_only=1",
keyToCheck: "history.noofslots",
keyValue: 0,
trueString: "All Downloads Succeeded",
falseString: "Failed Downloads in History",
icon: "history",
trueClass: "dimmed small",
falseClass: "small",
showTrueAlert: false,
showFalseAlert: true,
}
},
MMM-JSONStatusChecker
is licensed under the MIT License.