MMM-Surf is a Magic Mirror module that will display weather (DarkSky), tides, water temp, and Magicseaweed forecast data for your favorite spot. It is currently North America centric, pulling tide and water temperature from the National Oceanic and Atmospheric Administration (NOAA). I am actively searching international data sources for tide and water temps, please open an issue if you know of sources that provide publicly accessible APIs.
The surf forecast data is minimized from the normal Magicseaweed interface to focus on "at-a-glance" information only: The Magicseaweed star rating system, height of swell at periodicity, swell direction, wind direction, and speed. These bits of information are color coded based on certain configurable items (see below): Green means the condition is right for the spot, orange means acceptable, red is slop. If I see all green, I go.
To get MMM-Surf up and running, you will need to do some scouting.
**Note: Magicseaweed's API is in beta mode and does not have an automated sign up process; however, the people are awesome and very responsive via email.
Clone the repo into the MagicMirror modules directory
cd ./MagicMirror/modules/
git clone https://github.com/Privacywonk/MMM-Surf
You will need to source a few bits of information to configure the MMM-Surf module:
Magicseaweed spot ID for the MagicSeaweedSpotID config item. For example, 391 from https://magicseaweed.com/Ocean-City-NJ-Surf-Report/391/.
NOAA Tide and Current for the station_id config item Find the closest measuring station to your spot. Click the map pin to open the details of the station. Copy the station_id number that appears before the location. 9415020 for the point Reyes, CA example below.
https://darksky.net/forecast/37.7661,-122.5107/us12/en
(SF example)module: "MMM-Surf",
debug: "0", //OPTIONAL: Default 0 (off). Turn to 1 if experiencing issues and watch the web browser dev console.
position: "top_left",
config: {
MagicAPI: "", //REQUIRED: magicseaweed API Key
MagicSeaweedSpotID: "", //REQUIRED: numeric spot ID from magicseaweed, e.g. "390"
MagicSeaweedSpotName: "", //REQUIRED: shorthand name for your spot...(e.g. Secret Spot, Lowers, Ocean Beach, OCNJ)
spotCoast: "", //REQUIRED: N,E,S.W orientation of the coast line
spotSwellHold: [], //OPTIONAL: Best swell direction that your spot handles. Accepts multiple cardinal directions, e.g. ["N"] or ["S","SSW","ESE"]
spotWind: [], //OPTIONAL: Best wind direction for spot. Accepts multiple cardinal directions, e.g. ["N"] or["S","SSW","ESE"]
spotSwellMin: "", //OPTIONAL: Define minimum swell size that works at the spot, e.g. "3"
spotSwellMax: "", //OPTIONAL: Define maximum swell size that works at the spot, e.g. "10"
greenWindMax: "10", //REQUIRED: Upper end of acceptable winds (in MPH)
orangeWindMax: "20", //REQUIRED: Upper end of "I can deal with this" winds (in MPH)
redWindMax: "21", //REQUIRED: Low end of "Oh hell no" winds (in MPH)
station_id: "", //REQUIRED: NOAA Tide and Currents monitoring, e.g. 9415020 for Point Reyes
noaatz: "lst_ldt", //NOAA time zone requests. Local Standard Time / Daylight time.
DarkSkyAPI: "", //REQUIRED: DarkSky API Key
DarkSkyLat: "", //REQUIRED: DarkSky Latitude
DarkSkyLong: "", /?REQUIRED: DarkSky Longtitude
roundTmpDecs: "1",
UseCardinals: "0",
layout: "horizontal",
debug: 0 //OPTIONAL: If having problems, turn this to 1 and look @ dev console in browser for verbose messages
}
},
For the versions available, see the tags on this repository.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license - see the LICENSE.md file for details