With the loss of the Magicseaweed integration in Home Assistant core due to a dependency breakage, I wanted a way to get nearby wave, wind, temperature etc observations. The most reliable source I could find for public data is the NDBC (National Data Buoy Centre) run by the NOAA.
Add this integration to HACS as a custom repository and then you can add the NDBC integration for as many nearby buoys as you would like. It will create sensors for:
Air Temperature
Water Temperature
Dewpoint
Air Pressure
Air Pressure Tendency
Visibility
Wave Height
Wave Period
Wave Average Period
Wave Direction
Wind Speed
Wind Gust Speed
Wind Direction
Tide Height
When you add the integration you will have to select a buoy for data. You can get the buoy ID from the NDBC website by browsing the map and selecting the buoy you are interested in: https://www.ndbc.noaa.gov/
Nice! I’ve been using the NOAA Tides integration, but this one looks great. Now if only NOAA could make their data more reliable, but I guess that’s out of our hands.
I am getting the following error… is this a value mismatch on the floating value being returned from the buoy?
2023-02-28 01:17:04.007 ERROR (MainThread) [custom_components.ndbcrealtime] Unexpected error fetching NDBC NORTHWESTERN HAWAII TWO - 186 NM NW of Kauai Is., HI data: invalid literal for int() with base 10: '7.3'
Traceback (most recent call last):
File "/config/custom_components/ndbcrealtime/__init__.py", line 117, in _async_update_data
observation = await ndbc.get_data()
File "/usr/local/lib/python3.10/site-packages/ndbcrealtime/__init__.py", line 114, in get_data
observation["waves"]["average_period"] = int(data[1]["APD"])
**ValueError: invalid literal for int() with base 10: '7.3'**
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
self.data = await self._async_update_data()
File "/config/custom_components/ndbcrealtime/__init__.py", line 123, in _async_update_data
raise ConfigEntryNotReady from error
I have two bouys locally that configured, but when I choose new ones I now get message invalid_station_id even though the station id comes from the drop down list. I am trying to get wave data that does not come from my closest bouy…any ideas on how to fix invalid station id?