Skip to content
A module for the MagicMirror project which creates a table filled with a list gathered from a json request.
JavaScript
Branch: master
Clone or download
Latest commit bdc1135 Jul 9, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitattributes Initial commit Mar 11, 2018
MMM-JsonTable.js Text size improve. Jun 4, 2019
README.md Add size option: default, h1, h2 and h3. Jun 4, 2019
example1.png Make format date configurable Apr 2, 2018
example2.png Make format date configurable Apr 2, 2018
node_helper.js Allow multiple instances Apr 3, 2018

README.md

MMM-JsonTable

A module for the MagicMirror project which creates a table filled with a list gathered from a json request.

All the variables of the objects in the array are represented by a table column. For every column it checks if a valid DateTime is given, and then formats it to HH:mm:ss if it is today or YYYY-MM-DD otherwise.

Example 1

End result:

Raw json response:

{
    "items": [
        {
            "name": "Watt",
            "value": "270 Watt"
        },
        {
            "name": "Today",
            "value": "5.85 kWh"
        },
        {
            "name": "ThisWeek",
            "value": "5.83 kWh"
        },
        {
            "name": "ThisMonth",
            "value": "12.8 kWh"
        },
        {
            "name": "LastMonth",
            "value": "246.75 kWh"
        }
    ]
}

Configuration:

{
	module: 'MMM-JsonTable',
	position: 'top_right',
	header: 'HouseDB Sevensegment',
	config: {
		url: 'https://xyz/abc/get.json', // Required
		arrayName: 'items' // Optional
	}
}

Example 2

Raw json response:

{
    "currentUsages": [
        {
            "deviceName": "P1",
            "currentWattValue": 180,
            "todayKwhUsage": 5.902,
            "lastUpdate": "2018-04-02T18:12:06Z"
        },
        {
            "deviceName": "Studie - MainDown",
            "currentWattValue": 76,
            "todayKwhUsage": 0.46,
            "lastUpdate": "2018-04-02T18:06:52Z"
        },
        {
            "deviceName": "BoilerPower",
            "currentWattValue": 0,
            "todayKwhUsage": 2.21,
            "lastUpdate": "2018-04-02T17:30:01Z"
        },
        {
            "deviceName": "Koelkast",
            "currentWattValue": 1.3,
            "todayKwhUsage": 0.55,
            "lastUpdate": "2018-04-02T18:09:55Z"
        },
        {
            "deviceName": "Vaatwasser",
            "currentWattValue": 0.5,
            "todayKwhUsage": 0.01,
            "lastUpdate": "2018-04-02T18:10:51Z"
        },
        {
            "deviceName": "Wasmachine",
            "currentWattValue": 0,
            "todayKwhUsage": 0,
            "lastUpdate": "2018-04-02T18:12:06Z"
        }
    ]
}

Configuration:

{
	module: 'MMM-JsonTable',
	position: 'top_right',
	header: 'HouseDB Current Usages',
	config: {
		url: 'https://xyz/abc/get.json', // Required
		arrayName: 'currentUsages', // Optional
		tryFormatDate: true
	}
}

Example 3 (with font awesome icons)

Raw json response:

{
   "cups":[  
      {  
         "icon":"fa-calendar",
         "data":"Senaste bryggning",
         "value":"2019-03-07",
         "type":""
      },
      {  
         "icon":"fa-clock-o",
         "data":"Klockan",
         "value":"17:32:06",
         "type":""
      },
      {  
         "icon":"fa-coffee",
         "data":"Totalt antal bryggda koppar",
         "value":60,
         "type":"st"
      },
      ...
   ]
}

Installation

git clone https://github.com/timdows/MMM-JsonTable.git

Config Options

Option Default Description
url "" The full url to get the json response from
arrayName null Define the name of the variable that holds the array to display
keepColumns [] Columns on json will be showed
tryFormatDate false For every column it checks if a valid DateTime is given, and then formats it to HH:mm:ss if it is today or YYYY-MM-DD otherwise
size 0-3 Text size at table, 0 is default, and 3 is H3
updateInterval 15000 Milliseconds between the refersh
You can’t perform that action at this time.