A module for the MagicMirror² that displays the two best routes from an origin to a destination, using Google Directions API.
To use this module, clone this repo to your MagicMirror/modules/
directory.
git clone https://github.com/mrdis/MMM-google-route.git
And add the following configuration block to the modules array in the config/config.js
file:
var config = {
modules: [
{
module: 'MMM-google-route',
position: 'top_left',
config: {
key: '<YOUR_KEY>',
directionsRequest:{
origin: '<ROUTE START>',
destination: '<ROUTE FINISH>'
}
}
}
]
}
Option | Description |
---|---|
key |
Required Google api key. See below for help. Type: string |
directionsRequest |
Required The directions to show on the map. Type: google.maps.DirectionsRequest interface |
language |
Directions language Type: string Default value: en |
title |
Optional title to show above the map. Type: string |
height |
Height of the map. Type: string (pixels) Default value: 300px |
width |
Width of the map. Type: string (pixels) Default value: 300px |
refreshPeriod |
Period between API requests. Set to 0 to disable periodic refresh. Type: integer (minutes) Default value: 1 |
minimumRefreshPeriod |
Set a minimum period between API requests. This is useful when used in combination with listen . Type: integer (minutes) Default value: 0 |
showAge |
Show how long ago the routes were updated. Type: boolean Default value: true |
showMap |
Show the map. Type: boolean Default value: true |
fontSize |
Size of the title and routes font. Use a percentage to specify size relative to default. HTML DOM Style fontSize property Type: string Default value: 100% |
mapOptions |
Map visualization options. Type: google.maps.MapOptions interface |
listen |
Refresh the route when receiving these notifications and use the location contained in the notification as destination (if available). Specify the ID of the notifications to listen for. Type: string[] Default value: [] |
Obtain an api key at Google Developer's page.
If "Google directions service status:" error message appears, it means that the request to the Google directions service failed for some reason.
The list of error codes and their meanings can be found here.
If "Google directions service status: INVALID_REQUEST" error message appears, it could be due to an invalid setting of the current date and time on the device that is displaying the mirror interface.
This is due to the departureTime
field of the drivingOptions field passed to the directions API being set to one minute from the current time, and google service checking that this timestamp is in the future.
You can use the MMM-ModuleScheduler module to trigger route updates using a certain schedule.
This may be useful for example to refresh the route more frequently in the morning and less frequently during the rest of the day, reducing the risk of exceeding the query limit set by google.
Just set "MMM-google-route/refresh" as the notification id in the notification_schedule
configuration parameter of the module, e.g.
{
module: 'MMM-ModuleScheduler',
config: {
notification_schedule: [
// Refresh the route every minute from 7:00 AM to 8:00 AM, monday to friday
{ notification: 'MMM-google-route/refresh', schedule: '* 7 * * 1-5' }
]
}
},
The first valid location
field of the events contained in the notification payload will be used as destination.