{"id":50207966,"url":"https://github.com/thewillmiller/tide-wise","last_synced_at":"2026-05-31T22:00:30.552Z","repository":{"id":359808266,"uuid":"1247577565","full_name":"TheWillMiller/tide-wise","owner":"TheWillMiller","description":"Home Assistant dashboard card for NOAA tides and fishing bite-window scoring.","archived":false,"fork":false,"pushed_at":"2026-05-26T01:19:56.000Z","size":4147,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-26T02:33:52.237Z","etag":null,"topics":["custom-card","dashboard","fishing","hacs","home-assistant","lovelace","noaa","tide","tides","weather"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheWillMiller.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-23T13:58:13.000Z","updated_at":"2026-05-26T01:19:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TheWillMiller/tide-wise","commit_stats":null,"previous_names":["thewillmiller/tide-wise"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/TheWillMiller/tide-wise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheWillMiller%2Ftide-wise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheWillMiller%2Ftide-wise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheWillMiller%2Ftide-wise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheWillMiller%2Ftide-wise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheWillMiller","download_url":"https://codeload.github.com/TheWillMiller/tide-wise/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheWillMiller%2Ftide-wise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33750474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["custom-card","dashboard","fishing","hacs","home-assistant","lovelace","noaa","tide","tides","weather"],"created_at":"2026-05-26T02:12:34.714Z","updated_at":"2026-05-31T22:00:30.544Z","avatar_url":"https://github.com/TheWillMiller.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TideWise\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/TheWillMiller/tide-wise/main/tidewise-icon.png\" alt=\"TideWise wave icon\" width=\"96\"\u003e\n\u003c/p\u003e\n\n[![GitHub release](https://img.shields.io/github/v/release/TheWillMiller/tide-wise)](https://github.com/TheWillMiller/tide-wise/releases)\n[![Validate](https://img.shields.io/github/actions/workflow/status/TheWillMiller/tide-wise/validate.yml?branch=main\u0026label=validate)](https://github.com/TheWillMiller/tide-wise/actions/workflows/validate.yml)\n[![GitHub stars](https://img.shields.io/github/stars/TheWillMiller/tide-wise?label=stars)](https://github.com/TheWillMiller/tide-wise/stargazers)\n\n\n**Latest release:** `v0.7.2`\n\nTideWise is a Home Assistant dashboard (Lovelace) custom card for tide predictions, current tide height, next high/low tides, and optional fishing bite-window scoring. The default provider is NOAA CO-OPS, with early Canada CHS/DFO support and experimental UKHO Admiralty support available for testing.\n\n## Screenshots\n\n### Main TideWise Card\n\n\u003cimg src=\"https://raw.githubusercontent.com/TheWillMiller/tide-wise/main/TIDE_CARD.png\" alt=\"TideWise card showing current tide, tide chart, moon phase, and fishing window\" width=\"720\"\u003e\n\n### Theme Modes\n\nTideWise keeps its ocean-glass style by default. It can also follow Home Assistant theme colors more closely with `theme_mode: auto`.\n\n\u003cimg src=\"https://raw.githubusercontent.com/TheWillMiller/tide-wise/main/TIDE_CARD_THEME_TIDEWISE.png\" alt=\"TideWise default ocean-glass theme mode\" width=\"720\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/TheWillMiller/tide-wise/main/TIDE_CARD_THEME_AUTO_DARK.png\" alt=\"TideWise Home Assistant theme mode on a dark dashboard\" width=\"720\"\u003e\n\n### NOAA Station Picker\n\n\u003cimg src=\"https://raw.githubusercontent.com/TheWillMiller/tide-wise/main/TideStations.png\" alt=\"TideWise NOAA station picker in the visual editor\" width=\"720\"\u003e\n\n### Visual Editor\n\n\u003cimg src=\"https://raw.githubusercontent.com/TheWillMiller/tide-wise/main/ThemeEditor.png\" alt=\"TideWise visual editor showing the theme selector and live preview\" width=\"720\"\u003e\n\nIt combines tide data with local Home Assistant entities such as weather, wind, water temperature, surf height, pressure, rain, and rip current risk. Missing optional entities are allowed; TideWise falls back to neutral scoring where possible.\n\n\u003e **Beta notice:** TideWise is still early beta software. Please expect occasional layout issues, missing-data fallbacks, and station-specific quirks while testing.\n\n## Beta Feedback\n\nTideWise is in beta. If it works for your setup, please consider starring the repo so I can gauge interest and so you can follow development:\n\n[Star TideWise on GitHub](https://github.com/TheWillMiller/tide-wise)\n\nIf you run into issues or want to confirm your station works, please open one of these quick reports:\n\n- [Beta Install Report](https://github.com/TheWillMiller/tide-wise/issues/new?template=beta-install-report.yml)\n- [Works For Me / Confirmed Station](https://github.com/TheWillMiller/tide-wise/issues/new?template=works-for-me-confirmed-station.yml)\n\nHelpful details include Home Assistant version, HACS version, TideWise version, browser/device, NOAA station ID, and a screenshot or console error if something broke.\n\n## Features\n\n- NOAA tide predictions using a configurable station ID\n- Early Canada CHS/DFO water-level prediction and forecast support\n- Experimental UKHO Admiralty tide support with a user-provided UKHO API key\n- Current interpolated tide height\n- Water temperature display when available\n- Wind display when available\n- Next high and low tide\n- 24-hour tide chart\n- High/low fallback for NOAA stations without full interval predictions\n- Visual editor support\n- Opt-in Home Assistant theme color support with `theme_mode: auto`\n- 50-station NOAA preset picker plus custom NOAA station ID\n- Canada region picker with CHS station discovery\n- UKHO station picker and API key field\n- Optional fishing bite-window score\n- Fishing modes for general, surf, inlet, flounder, trout/redfish, and sheepshead use\n- Optional NOAA/NWS public data fetching\n- Optional Home Assistant entity overrides for weather, wind, water temperature, surf height, pressure, rain, and rip current risk\n- Safety-aware fishing display that can cap the current score without globally flattening future bite windows\n- Hidden YAML-only debug panel for troubleshooting fishing inputs, score components, caps, and data sources\n- Legacy support for `custom:cherry-grove-tides-card`\n\n## Installation\n\n### Recommended: HACS Custom Repository\n\n[![Open TideWise in HACS](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=TheWillMiller\u0026repository=tide-wise\u0026category=plugin)\n\nTideWise is not yet listed in the default/searchable HACS store. Until it is accepted into the default HACS list, install it as a custom HACS repository.\n\n1. Open **HACS** in Home Assistant.\n2. Open the three-dot menu in the top right.\n3. Choose **Custom repositories**.\n4. Add this repository URL:\n\n```text\nhttps://github.com/TheWillMiller/tide-wise\n```\n\n5. For category, choose **Dashboard**.\n\n   If your HACS version uses older wording, choose the dashboard/card/frontend/plugin-style option.\n\n6. Install **TideWise**.\n7. Refresh Home Assistant.\n\nA hard browser refresh is recommended after installing or updating:\n\n- Windows/Linux: `Ctrl + F5`\n- Mac: `Cmd + Shift + R`\n\nThen add the card from your dashboard editor:\n\n1. Edit your dashboard.\n2. Add a new card.\n3. Search for **TideWise**.\n4. Open the visual editor.\n5. Select a NOAA station or enter a custom station ID.\n6. Save.\n\n### Manual Install\n\n1. Download or copy `tidewise-card.js`.\n2. Place it in your Home Assistant `www` directory.\n3. Add it as a dashboard resource:\n\n```yaml\nurl: /local/tidewise-card.js\ntype: module\n```\n\n4. Refresh Home Assistant and hard-refresh your browser.\n5. Add the card to a dashboard.\n\n### Test From GitHub CDN\n\nFor quick testing before installing locally, you can add this dashboard resource:\n\n```yaml\nurl: https://cdn.jsdelivr.net/gh/TheWillMiller/tide-wise@v0.7.2/tidewise-card.js\ntype: module\n```\n\nAfter changing resources, refresh Home Assistant and hard-refresh the browser tab.\n\n\u003e CDN testing is not the preferred long-term install method. HACS is recommended for normal use.\n\n## Quick Start\n\n```yaml\ntype: custom:tidewise-card\ntitle: Local Tides\nstation: \"8661070\"\nunits: english\nmode: general\nauto_sources: true\nauto_surf_forecast: true\ngrid_options:\n  rows: full\n  columns: 18\n```\n\n## Minimal Config\n\n```yaml\ntype: custom:tidewise-card\ntitle: Local Tides\nstation: \"8661070\"\nunits: english\nmode: general\n```\n\n## Cherry Grove Example\n\n```yaml\ntype: custom:tidewise-card\ntitle: Cherry Grove Tides\nstation: \"8661070\"\nunits: english\nmode: inlet\nauto_sources: true\nauto_surf_forecast: true\nweather_entity: weather.nws_33_8552645_78_6761264_kmyr\nwater_temp_entity: sensor.noaa_surf_water_temperature\nwave_height_entity: sensor.noaa_surf_surf_height\nrip_current_risk_entity: sensor.noaa_surf_rip_current_risk\nwind_speed_entity: sensor.noaa_weather_wind_speed\nwind_direction_entity: sensor.noaa_weather_wind_direction\npressure_entity: sensor.noaa_weather_barometric_pressure\nrain_today_entity: sensor.rain_sensor_rain_last_24h\ngrid_options:\n  rows: full\n  columns: 18\n```\n\n## Tide-Only Config\n\n```yaml\ntype: custom:tidewise-card\ntitle: Local Tides\nstation: \"8661070\"\nunits: english\nshow_fishing_score: false\ngrid_options:\n  rows: full\n  columns: 18\n```\n\n## Canada CHS Example\n\nCanada support uses the Canadian Hydrographic Service / DFO IWLS API. The visual editor can load Canadian regions and station lists, so most users should choose a station from the editor instead of writing the object ID by hand.\n\n```yaml\ntype: custom:tidewise-card\ntitle: Pointe-du-Chene Tides\nprovider: chs_iwls\nca_region: atlantic\nca_station: \"64b6e5ec8027cb190816a0c0\"\nca_station_code: \"01804\"\nunits: metric\nmode: general\nauto_sources: false\ngrid_options:\n  rows: full\n  columns: 18\n```\n\nCanadian tide predictions can render the tide chart and high/low times. NOAA/NWS auto sources are US-focused, so Canadian fishing inputs such as weather, wind, surf, water temperature, and pressure should come from Home Assistant entities when available.\n\n## UK UKHO Example\n\nUK support uses the UKHO Admiralty API directly from the browser. Each user must provide their own UKHO API key. This is experimental because browser-side API calls depend on UKHO/Azure allowing CORS from Home Assistant dashboards.\n\n```yaml\ntype: custom:tidewise-card\ntitle: Portsmouth Tides\nprovider: ukho\nukho_station: \"0390\"\nukho_api_key: \"YOUR_UKHO_API_KEY\"\nunits: metric\nmode: general\nauto_sources: false\nauto_surf_forecast: false\ngrid_options:\n  rows: full\n  columns: 18\n```\n\nUKHO tide heights are provided in metres. TideWise displays them as metres with `units: metric`, or converts them to feet with `units: english`.\n\n\u003e **UKHO key note:** This is a frontend dashboard card, so the API key is stored in your dashboard configuration and is visible to browsers/users who can inspect that dashboard. Use your own UKHO key and follow UKHO's API terms.\n\n## Dashboard Size\n\nTideWise is a dense chart card. In Home Assistant section/grid dashboards, give it enough horizontal space:\n\n```yaml\ngrid_options:\n  rows: full\n  columns: 18\n```\n\nOn narrower dashboards, use:\n\n```yaml\ngrid_options:\n  rows: full\n  columns: full\n```\n\n## Theme Support\n\nTideWise defaults to its built-in ocean-glass styling:\n\n```yaml\ntheme_mode: tidewise\n```\n\nTo make the card follow Home Assistant theme colors more closely, use:\n\n```yaml\ntheme_mode: auto\n```\n\nThe visual editor includes a **Theme** dropdown for this setting. Theme mode only changes the card styling; it does not change tide fetching, NOAA/NWS data, or fishing score behavior.\n\n## Visual Editor\n\nTideWise includes a Home Assistant visual editor. When adding the card from the dashboard editor, you can:\n\n- Choose 50 common NOAA tide stations from a dropdown\n- Enter a custom NOAA station ID\n- Switch to Canada CHS / DFO and choose a region-fed station dropdown\n- Switch to UK UKHO Admiralty, choose a UKHO station, and enter your own UKHO API key\n- Set fishing/forecast latitude and longitude\n- Fill coordinates from the selected NOAA station\n- Use your Home Assistant home latitude/longitude when that matches your fishing area\n- Select English or metric units\n- Select fishing mode\n- Choose TideWise styling or Home Assistant theme colors\n- Enable or disable fishing score\n- Enable or disable public NOAA/NWS auto sources\n- Enable or disable NWS surf/rip forecast parsing\n- Set the recommended dashboard size\n\nThe station dropdown is a 50-station starter list, not a complete NOAA station database. If your station is not listed, choose **Custom station ID** and paste the NOAA CO-OPS station ID.\n\nLatitude and longitude are used for fishing-score context such as NWS forecast lookup, surf/rip forecast lookup, and moon/solunar timing. For best results, use coordinates near the tide gauge, beach, inlet, or fishing area.\n\n## Auto Sources\n\nFor NOAA/US cards, TideWise can fetch extra public NOAA/NWS data directly from the browser when `auto_sources` is enabled:\n\n- NOAA CO-OPS water temperature, wind, and air pressure where the selected station supports those products\n- NWS hourly forecast weather and wind from latitude/longitude\n- NWS Surf Zone Forecast text for surf height, rip current risk, and water temperature where the local forecast office issues an SRF product\n\nManual Home Assistant entities take priority. If a manual entity is configured, TideWise uses it instead of the auto-fetched value.\n\nSurf Zone Forecasts are text products and vary by NWS office. TideWise parses common formats such as:\n\n- `high rip current risk`\n- `surf height 2 to 4 feet`\n- `water temperature in the mid 80s`\n\nSome locations may still show unknown surf or rip data. Manual entities or dedicated integrations remain the most reliable override.\n\nRecent rainfall totals are not yet reliably auto-filled. They work best through a local rain sensor or Home Assistant weather integration.\n\n## Fishing Score\n\nThe fishing score is advisory only. It is intended to give a quick glance at likely better and worse bite windows.\n\nDepending on available data, TideWise may consider:\n\n- Tide movement\n- Tide direction\n- Time to next high/low tide\n- Current tide height\n- Moon/solunar timing\n- Time of day\n- Weather condition\n- Wind speed\n- Wind direction\n- Water temperature\n- Surf/wave height\n- Rip current risk\n- Pressure\n- Pressure trend\n- Rainfall/runoff\n\nWhen optional data is missing, TideWise falls back to the data it has available.\n\nCurrent safety conditions such as high rip current risk can cap the **Now** score while still allowing the future curve to show improving bite potential. This is why a card may show **Slow now** with a better bite window later in the day.\n\n## Hidden Debug Panel\n\nFor troubleshooting, TideWise includes a YAML-only debug panel. It is hidden from normal users and is not exposed in the visual editor.\n\nEnable it manually only when diagnosing a station, data source, or fishing score:\n\n```yaml\ndebug:\n  enabled: true\n  panel: true\n```\n\nThe debug panel is collapsed by default and scrolls internally when expanded. It shows the current/Now score target, future curve mode, source availability, component weights, moon multiplier, safety caps, final current score, display score, and whether the future curve is globally capped.\n\n## Configuration\n\n| Option | Required | Default | Description |\n| --- | --- | --- | --- |\n| `type` | Yes |  | Use `custom:tidewise-card`. The legacy `custom:cherry-grove-tides-card` alias also works. |\n| `title` | No | `TideWise` | Card title. |\n| `provider` | No | `noaa_coops` | Tide data provider. Use `noaa_coops` for US NOAA CO-OPS, `chs_iwls` for early Canada CHS/DFO support, or `ukho` for experimental UKHO Admiralty support. |\n| `station` | Required for NOAA |  | NOAA tides and currents station ID. |\n| `ca_region` | No | `atlantic` | Canada station picker region: `atlantic`, `great_lakes`, `quebec`, `pacific`, or `arctic`. |\n| `ca_station` | Required for Canada |  | Canadian CHS/DFO IWLS station object ID. Prefer choosing it from the visual editor. |\n| `ca_station_code` | No |  | Optional Canadian CHS display code. |\n| `ukho_station` | Required for UKHO | `0390` | UKHO Admiralty tide station ID. Prefer choosing it from the visual editor. |\n| `ukho_api_key` | Required for UKHO |  | User-provided UKHO Admiralty API key. This is stored in dashboard config and visible to browsers that can load the card. |\n| `units` | No | `english` | Display units. Usually `english` or `metric`. Canadian CHS and UKHO data are metric and are converted to feet when `english` is selected. |\n| `mode` | No | `general` | Fishing score mode: `general`, `surf`, `inlet`, `flounder`, `trout_redfish`, or `sheepshead`. |\n| `theme_mode` | No | `tidewise` | Visual style mode. Use `tidewise` for the default ocean-glass look or `auto` to follow Home Assistant theme colors more closely. |\n| `show_fishing_score` | No | `true` | Set to `false` for a tide-only card. |\n| `auto_sources` | No | `true` | Fetch public NOAA/NWS weather and marine observations directly where available. US-focused; non-US providers should use Home Assistant entities for fishing context. |\n| `auto_surf_forecast` | No | `true` | Try to parse NWS Surf Zone Forecast text for surf height, rip current risk, and water temperature. US-focused. |\n| `srf_region` | No |  | Optional internal grouping for NWS-listed Surf Zone Forecast offices. Usually set by the visual editor. |\n| `nws_office` | No | Auto from NWS point metadata | Optional NWS office code such as `ILM`, `CHS`, or `SGX` for Surf Zone Forecast products. |\n| `beach_state` | No |  | Optional beach forecast state used by the visual editor. |\n| `beach_area` | No |  | Optional NWS beach/surf area preset used for rip risk and surf context. |\n| `surf_zone` | No | Auto from NWS point metadata | Optional NWS surf/beach forecast zone such as `SCZ054`; overrides coordinate-derived zone for SRF parsing. |\n| `latitude` | No | Home Assistant home latitude, then Cherry Grove fallback | Fishing/forecast latitude for NWS lookup and moon/solunar scoring. |\n| `longitude` | No | Home Assistant home longitude, then Cherry Grove fallback | Fishing/forecast longitude for NWS lookup and moon/solunar scoring. |\n| `weather_entity` | No | First available weather entity | Weather condition source. |\n| `water_temp_entity` | No |  | Water temperature sensor. Fahrenheit and Celsius are supported. |\n| `wave_height_entity` | No |  | Wave/surf height sensor. Feet and meters are supported. |\n| `rip_current_risk_entity` | No |  | Rip current risk sensor. |\n| `unsafe_to_swim_entity` | No |  | Boolean or text entity for unsafe surf/swim conditions. |\n| `wind_speed_entity` | No | Weather attribute fallback | Wind speed sensor. mph, km/h, m/s, and knots are supported. |\n| `wind_direction_entity` | No | Weather attribute fallback | Wind bearing in degrees. |\n| `pressure_entity` | No | Weather attribute fallback | Barometric pressure. hPa and inHg are supported. |\n| `pressure_trend_entity` | No |  | Pressure trend entity. |\n| `rain_today_entity` | No |  | Rainfall in the last 24 hours. Inches and mm are supported. |\n| `debug` | No | disabled | Hidden troubleshooting object. Use `debug: { enabled: true, panel: true }` only when diagnosing score/data issues. Not available in the visual editor. |\n\n## Finding a NOAA Station\n\nUse a NOAA tides and currents station ID near your location. TideWise uses the NOAA CO-OPS data API, so station IDs must support tide predictions.\n\nIf your station does not work, try a nearby NOAA station that supports tide predictions.\n\n## Finding a Canadian Station\n\nSet **Tide provider** to **Canada CHS / DFO** in the visual editor, choose a Canadian region, then choose a CHS water-level station from the station dropdown. Canadian Great Lakes stations are under **Great Lakes / Ontario**.\n\nCanada support uses CHS/DFO IWLS water-level predictions where available. Some Great Lakes stations publish water-level forecasts instead, so TideWise falls back from `wlp` predictions to `wlf` forecasts when needed. The Great Lakes picker includes a small official CHS seed list because those stations may not appear in the CHS bulk station API. Selected stations may still need testing because CHS availability can vary by station and forecast window.\n\nNOAA/NWS auto sources are US-focused. For Canadian fishing context, configure Home Assistant entities for weather, wind, pressure, water temperature, surf, rain, or safety/rip-risk data when available.\n\n## Finding a UKHO Station\n\nSet **Tide provider** to **UK UKHO Admiralty** in the visual editor, choose a UKHO station, then enter your own UKHO API key. The key is required because TideWise calls the UKHO API directly from the browser.\n\nUKHO support is experimental. It can render UK tide heights and high/low events where the selected station, API key, subscription tier, and browser access allow it. Weather, wind, water temperature, surf, rain, pressure, and fishing safety context should come from Home Assistant entities for UK cards.\n\nBecause this is a frontend card, the UKHO key is not secret storage. Anyone with access to inspect the dashboard/browser traffic can see it. If UKHO blocks browser-side CORS for your subscription, TideWise will need a future Home Assistant/backend helper for UKHO rather than a pure Lovelace-only fetch.\n\n## Beach / Surf Forecast Area\n\nFor US surf and rip-current context, TideWise can use a beach forecast area instead of relying only on latitude/longitude. The tide station still controls the tide curve, but the beach area controls NWS Surf Zone Forecast scoping for rip risk and surf height.\n\nTideWise includes a guided list of **NWS-listed SRF offices** for areas where the National Weather Service publishes Surf Zone Forecast products. This is not the same as every U.S. coastal county; some coastal offices may handle beach hazards through other products such as Hazardous Weather Outlooks.\n\nThe visual editor keeps this simple: choose a **State**, then choose the closest **Area**. Where TideWise has an exact beach/surf-zone preset, that area is used. Otherwise, the area maps to the closest NWS-listed SRF office and TideWise still uses your coordinates for local forecast context.\n\nThe first built-in precise beach-area set covers the NWS Wilmington, NC office beaches for the Grand Strand and nearby NC/SC beaches. Broader NWS-listed SRF offices are available for other supported states/regions, and more precise beach-zone presets can be added as confirmed.\n\nExample:\n\n```yaml\nsrf_region: Atlantic/Gulf/Caribbean\nbeach_state: SC\nbeach_area: sc-horry\nnws_office: ILM\nsurf_zone: SCZ054\n```\n\n## Troubleshooting\n\nIf TideWise works for you after troubleshooting, please consider starring the repo or opening a Works For Me / Confirmed Station report. If it breaks, a Beta Install Report with your versions and station ID helps a lot.\n\n### TideWise does not show in the card picker\n\n1. Confirm TideWise is installed in HACS.\n2. Hard-refresh the browser.\n3. Restart Home Assistant if needed.\n4. Check that the card resource exists.\n5. Open the browser console and look for TideWise errors.\n\n### HACS shows an old README or old version\n\nHACS may cache repository metadata.\n\nTry:\n\n1. Open HACS.\n2. Open TideWise.\n3. Open the three-dot menu.\n4. Select **Redownload**.\n5. Choose the latest version.\n6. Hard-refresh your browser.\n\nIf HACS still shows an old README, the installed card file may still be current while the HACS display cache is stale.\n\nIf HACS shows a short value like `214b6c2` instead of `v0.7.2`, that is a GitHub commit hash. HACS shows commit hashes when a repository has tags but no full GitHub Release yet. Publishing a full GitHub Release makes HACS show the release version instead.\n\n### Card does not show up\n\n1. Confirm TideWise is installed.\n2. Confirm the dashboard resource exists.\n3. Hard-refresh the browser.\n4. Redownload the latest release in HACS.\n5. Restart Home Assistant if needed.\n6. Check the browser console for `tidewise-card.js` loading errors.\n\n### Visual editor does not show\n\n1. Confirm the latest TideWise JS is loaded.\n2. Hard-refresh the browser.\n3. Redownload the latest HACS release.\n4. Check the browser console for custom element errors.\n\n### Tide data unavailable\n\n1. Verify the NOAA station ID.\n2. Try a known preset station.\n3. Confirm your browser/Home Assistant can reach NOAA.\n4. Open the browser console and check for network or station errors.\n\n### Fishing score looks limited\n\nThis usually means optional weather, wind, water temperature, surf, pressure, rain, or rip current data is unavailable.\n\nThe card should still work, but the score may be based on fewer inputs.\n\nFor deeper troubleshooting, temporarily enable the hidden debug panel in YAML:\n\n```yaml\ndebug:\n  enabled: true\n  panel: true\n```\n\nRemove it again after testing.\n\n## Privacy\n\nTideWise does not include telemetry, tracking pixels, external analytics, or phone-home behavior.\n\nWhen `auto_sources` or `auto_surf_forecast` are enabled, the card fetches the public NOAA/NWS data needed to render the configured dashboard card. Adoption tracking is based only on GitHub-native signals such as stars, issues, release activity, and tester reports.\n\nMaintainer notes for GitHub-native adoption signals are in [PROJECT_INSIGHTS.md](PROJECT_INSIGHTS.md).\n\n## Beta Tester Checklist\n\nThe full checklist is also available in [BETA_TESTER_CHECKLIST.md](BETA_TESTER_CHECKLIST.md).\n\nIf you are testing TideWise, please report:\n\n- Home Assistant version\n- HACS version\n- TideWise version\n- Browser/device\n- NOAA station ID used\n- Whether you installed from HACS custom repository, manual resource, or CDN\n- Screenshot of any layout issue\n- Browser console errors, if any\n- Whether the issue happens after a hard refresh\n\nBasic test steps:\n\n1. Install TideWise from HACS custom repository.\n2. Add the card from the dashboard card picker.\n3. Open the visual editor.\n4. Select a preset station.\n5. Save.\n6. Refresh the dashboard.\n7. Confirm the card still loads.\n8. Change fishing mode.\n9. Save and refresh again.\n10. Test on desktop and phone.\n11. Test with missing optional entities.\n12. Screenshot or copy any errors.\n\n## Safety\n\nTideWise is informational. It is not a marine safety, navigation, emergency, or surf safety tool.\n\nAlways check official local forecasts, marine advisories, beach warnings, and on-site conditions before entering the water or boating.\n\nDo not use TideWise for navigation, hazardous surf decisions, boating safety, swimming safety, or life-safety decisions.\n\n## License\n\nFree for personal and non-commercial use under PolyForm Noncommercial License 1.0.0.\n\nCommercial use requires separate written permission.\n\n## Development\n\nThe distributable card is:\n\n```text\ntidewise-card.js\n```\n\nFor HACS default repository submission, TideWise is a dashboard/custom card. HACS validation/submission uses the `plugin` category internally for dashboard plugins.\n\nRun the local syntax check before opening a pull request:\n\n```bash\nnpm run check\n```\n\n## Roadmap\n\nPlanned areas for future releases:\n\n- Map-based fishing/forecast coordinate picker\n- More station presets and station discovery improvements\n- International tide-provider research for non-NOAA regions\n- Further fishing outlook calibration based on tester feedback\n- Additional mobile layout polish\n\n### International Provider Notes\n\nTideWise uses explicit provider adapters instead of stretching NOAA-specific code paths. NOAA CO-OPS remains the default provider, Canada CHS/DFO is available for early testing, and UKHO Admiralty support is experimental with a user-provided API key.\n\nThe Environment Agency flood-monitoring API can be useful for rivers, flood gauges, and some observed level stations, but it should not be treated as the main UK tide-prediction source for TideWise.\n\nThe National Tidal and Sea Level Facility is a stronger UK research candidate because it documents the UK National Tide Gauge Network and publishes tidal predictions for selected UK and Ireland ports. It still needs licensing, CORS, and data-shape validation before TideWise can depend on it.\n\nLikely future shape:\n\n```yaml\nprovider: noaa_coops\nstation: \"8661070\"\n```\n\nOther providers should get their own station picker and validation rules. For example, Canadian or UK support may need separate station IDs, units, datum notes, and availability checks.\n\n## Contributing\n\nBug reports, confirmed-station reports, and focused feature requests are welcome through GitHub Issues.\n\nFor code changes:\n\n1. Keep TideWise as a dashboard/custom card, not an integration.\n2. Preserve existing HACS custom repository install behavior.\n3. Keep changes scoped and update `CHANGELOG.md` when behavior changes.\n4. Run `npm run check`.\n5. Include screenshots for visible UI changes when practical.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthewillmiller%2Ftide-wise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthewillmiller%2Ftide-wise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthewillmiller%2Ftide-wise/lists"}