WeatherFlow Weather

Are you giving the integration the correct weather station ID?

Iā€™m pretty sure that I am. I followed the documentation and got it from this screen. Iā€™m using 43205.

Edit: Sorry. Attached wrong screen shot initially

Hmmm that looks correct. You created the API key with the same account you are using to manage the device correct? I would assume so but just in case.

Yes - the only thing a little bit unusual is that itā€™s not my account. Itā€™s my fathers. However, I have his credentials and was able to log in as him and generate the API Key.

But since the integration doesnā€™t ask for an email address, I donā€™t see how that would matter.

(I have one also - but itā€™s been offline for 3 months because of power problems. I have a battery pack I plan to connect when the snow melts and Iā€™m not even trying to add mine to home assistant until itā€™s operational.)

Correct me if Iā€™m wrong, but this integration only uses the cloud API. It doesnā€™t attempt to contact the local Tempest or hub, right?

Is there any super debug mode feature for this integration that I can enable to have it log the actual api call itā€™s making and the response that comes back?

Thanks.

Correct. There is a UDP version which is local but I havenā€™t tried it.

@briis
Okay - Iā€™ve troubleshot this about as far as Iā€™m capable of without getting a lot better with Python.

The error is occurring in pyweatherflowrest\api.py in the update_observations() function. It starts with:

    async def update_observations(self) -> None:
        """Update observation data."""
        if self._station_data is None:
            return

        data = await self._api_request(self.observation_url)
        try:
            if data is not None:
                obervations: dict = data['obs'][0]

The API request is successful, but the ā€œtryā€ block doesnā€™t return successfully. It raises the following exception:

        except TypeError as err:
            error_message = "Timeout fetching weatherflow data."

This is extremely misleading - and I assume a typo? If Iā€™m not mistaken, this exception occurs because of a type conversion error while parsing the data returned by the API call - but the error message (which is the only thing that gets displayed to the user in the GUI) seems to imply that no data was returned and a timeout was reached.

In any case, here is the data that was returned. Can you please look it over and find the unexpected data value which causes the exception - and then update the api.py script to a) handle/ignore the unexpected data type, and b) improve the error message that is displayed when a TypeError occurs? (Iā€™m curious as to what data, my Tempest is returning that causes this integration to break for me - but not for anybody else that is using the integration.)

If you need me to manually apply an updated api.py before you check-in an official update, Iā€™d be happy to do so. I hope Iā€™ve done enough to help you identify and resolve the issue - but if you need anything else from me, let me know.

data: {'station_id': 43205, 'station_name': 'Lakenest Weather', 'public_name': 'Greenberg Crescent', 'latitude': 44.59999, 'longitude': -79.09999, 'timezone': 'America/Toronto', 'elevation': 241.0, 'is_public': True, 'status': {'status_code': 0, 'status_message': 'SUCCESS'}, 'station_units': {'units_temp': 'c', 'units_wind': 'kph', 'units_precip': 'mm', 'units_pressure': 'inhg', 'units_distance': 'km', 'units_direction': 'cardinal', 'units_other': 'metric'}, 'outdoor_keys': ['timestamp', 'pressure_trend', 'precip_minutes_local_day_indoor'], 'indoor_keys': ['timestamp', 'air_temperature_indoor', 'barometric_pressure_indoor', 'station_pressure_indoor', 'sea_level_pressure_indoor', 'pressure_trend_indoor', 'relative_humidity_indoor', 'precip_indoor', 'precip_accum_last_1hr_indoor', 'rain_accum_local_day_indoor', 'precip_accum_local_yesterday_final_indoor', 'precip_minutes_local_yesterday_final_indoor', 'wind_avg_indoor', 'wind_direction_indoor', 'wind_gust_indoor', 'wind_lull_indoor', 'solar_radiation_indoor', 'uv_indoor', 'brightness_indoor', 'lightning_strike_last_epoch_indoor', 'lightning_strike_last_distance_indoor', 'lightning_strike_count_indoor', 'lightning_strike_count_last_1hr_indoor', 'lightning_strike_count_last_3hr_indoor', 'feels_like_indoor', 'heat_index_indoor', 'wind_chill_indoor', 'dew_point_indoor', 'wet_bulb_temperature_indoor', 'wet_bulb_globe_temperature_indoor', 'delta_t_indoor', 'air_density_indoor'], 'obs': [{'timestamp': 1677385594, 'pressure_trend': 'falling', 'air_temperature_indoor': -5.8, 'barometric_pressure_indoor': 985.5, 'station_pressure_indoor': 985.5, 'sea_level_pressure_indoor': 1014.8, 'relative_humidity_indoor': 94, 'precip_indoor': 0.0, 'precip_accum_last_1hr_indoor': 0.0, 'rain_accum_local_day_indoor': 0.0, 'precip_accum_local_yesterday_indoor': 0.0, 'precip_accum_local_yesterday_final_indoor': 0.0, 'precip_minutes_local_day_indoor': 0, 'precip_minutes_local_yesterday_indoor': 0, 'precip_minutes_local_yesterday_final_indoor': 0, 'precip_analysis_type_yesterday_indoor': 0, 'wind_avg_indoor': 1.6, 'wind_direction_indoor': 161, 'wind_gust_indoor': 2.3, 'wind_lull_indoor': 1.1, 'solar_radiation_indoor': 0, 'uv_indoor': 0.0, 'brightness_indoor': 0, 'lightning_strike_last_epoch_indoor': 1667708798, 'lightning_strike_last_distance_indoor': 7, 'lightning_strike_count_indoor': 0, 'lightning_strike_count_last_1hr_indoor': 0, 'lightning_strike_count_last_3hr_indoor': 0, 'feels_like_indoor': -8.6, 'heat_index_indoor': -5.8, 'wind_chill_indoor': -8.6, 'dew_point_indoor': -6.6, 'wet_bulb_temperature_indoor': -6.1, 'wet_bulb_globe_temperature_indoor': 1.2, 'delta_t_indoor': 0.3, 'air_density_indoor': 1.28412, 'pressure_trend_indoor': 'falling'}]}

Thanks.

Interestingā€¦.I donā€™t see ā€˜obsā€™ in your data JSON feed. This would cause the error and sudden halt.

Add ā€˜tryā€™ in front of observations: to see if the script keeps moving forward.

Itā€™s there. About 23 lines up from the bottomā€¦

So - I was able to figure out how to add a traceback to the TypeError exception and this is what I see:

> 2023-02-26 16:08:03.300 DEBUG (MainThread) [custom_components.weatherflow] JIM:  Exception raised: Timeout fetching weatherflow data.Traceback (most recent call last):
>   File "/usr/local/lib/python3.10/site-packages/pyweatherflowrest/api.py", line 285, in update_observations
>     battery_mode, battery_mode_description = self.calc.battery_mode(
> TypeError: cannot unpack non-iterable NoneType object

So I tried a few more things and actually got the integration to load!

I commented out the call to the function that triggers the TypeError exception - and then I hard-coded the 2 battery values it was intended to set:

                self._observation_data = entity_data
                await self._read_device_data()

                # Update Tempest Specific Data
                if self._station_data.is_tempest:
#                    battery_mode, battery_mode_description = self.calc.battery_mode(
#                        self._observation_data.voltage_tempest,
#                        obervations.get("solar_radiation")
#                    )
                    entity_data.battery_mode =int(0)
                    entity_data.battery_mode_description = "Wind sampling interval set to 6 seconds"

When I restart with the above modifications to the api.py, the integration loads and I get 1 Device and 12 Entities - and it all appears to be working. I donā€™t see any obvious errors in any of the code - but thereā€™s obviously something wrong with the code (or my data). In any case - I look forward to an official update that works with my device/data - but until then, at least Iā€™m not completely stuck anymore.

In case it aids in the troubleshooting, when it was failing, the OBS data was:


"obs":[[1677449722,0.18,1.72,2.98,300,3,980.4,-2.1,75,6359,0.18,52,0,0,0,0,2.77,1,0,0,0,0]]}

And hereā€™s my ā€œcleanā€ startup log:

2023-02-26 17:49:39.159 DEBUG (MainThread) [custom_components.weatherflow] JIM: Added some extra debug logging
2023-02-26 17:49:39.159 DEBUG (MainThread) [custom_components.weatherflow] JIM: StationID: 43205
2023-02-26 17:49:39.159 DEBUG (MainThread) [custom_components.weatherflow] JIM: API Token: 99995a8b-6242-4d84-9021-87c653389999
2023-02-26 17:49:40.036 DEBUG (MainThread) [custom_components.weatherflow] JIM: StationData: StationDescription(key=43205, name='Lakenest Weather', public_name='Greenberg Crescent', latitude=44.59999, longitude=-79.09999, timezone='America/Toronto', elevation=241.0, is_tempest=True, hub_device_id=127XXX, hub_device_type='hub', hub_hardware_revision='0', hub_firmware_revision='171', hub_serial_number='HB-00023XXX, device_list=[DeviceDescription(device_id=127XXX, name='ST-000305XX', device_type='tempest', hardware_revision='1', firmware_revision='156', serial_number='ST-00030XXX')])
2023-02-26 17:49:40.037 DEBUG (MainThread) [custom_components.weatherflow] JIM: data returned from load_unit_system(): {'none': None, 'altitude': 'm', 'density': 'kg/mĀ³', 'distance': 'km', 'length': 'm/s', 'length_km': 'km/h', 'pressure': 'hPa', 'precipitation': 'mm', 'precipitation_rate': 'mm/h', 'temperature': 'Ā°C'}
2023-02-26 17:49:40.037 DEBUG (MainThread) [custom_components.weatherflow] JIM:  About to call async_update_data()
2023-02-26 17:49:40.521 DEBUG (MainThread) [custom_components.weatherflow] JIM: Back from update_observations()
2023-02-26 17:49:40.521 DEBUG (MainThread) [custom_components.weatherflow] Finished fetching weatherflow data in 0.484 seconds (success: True)
2023-02-26 17:49:40.521 DEBUG (MainThread) [custom_components.weatherflow] JIM:  About to call async_update_forecast()
2023-02-26 17:49:41.491 DEBUG (MainThread) [custom_components.weatherflow] JIM: data returned from async_update_forecast: ForecastDescription(key=43205, utc_time='2023-02-26T22:44:38+00:00', conditions='Snow Likely', icon='snow', air_temperature=-3.0, temp_high_today=0.0, temp_low_today=-7.0, station_pressure=None, sea_level_pressure=1010.8, pressure_trend='rising', relative_humidity=68, wind_avg=28.8, wind_direction=290, wind_direction_cardinal='WNW', wind_gust=46.8, solar_radiation=None, uv=0, brightness=None, feels_like=-10.0, dew_point=-8.0, wet_bulb_temperature=-5.0, delta_t=2.0, air_density=None, lightning_strike_count_last_1hr=None, lightning_strike_count_last_3hr=None, lightning_strike_last_distance=None, lightning_strike_last_distance_msg=None, lightning_strike_last_epoch=None, precip_accum_local_day=None, precip_accum_local_yesterday=None, precip_minutes_local_day=None, precip_minutes_local_yesterday=None, forecast_daily=[ForecastDailyDescription(utc_time='2023-02-26T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677412760, sunset=1677452377, air_temp_high=0.0, air_temp_low=-7.0, precip=0.1, precip_probability=80, wind_avg=19.8, wind_direction=299), ForecastDailyDescription(utc_time='2023-02-27T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677499058, sunset=1677538858, air_temp_high=-4.0, air_temp_low=-13.0, precip=2.7, precip_probability=90, wind_avg=18.0, wind_direction=112), ForecastDailyDescription(utc_time='2023-02-28T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677585356, sunset=1677625338, air_temp_high=1.0, air_temp_low=-4.0, precip=6.5, precip_probability=100, wind_avg=20.5, wind_direction=207), ForecastDailyDescription(utc_time='2023-03-01T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677671653, sunset=1677711818, air_temp_high=1.0, air_temp_low=-5.0, precip=2.8, precip_probability=80, wind_avg=12.6, wind_direction=118), ForecastDailyDescription(utc_time='2023-03-02T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677757950, sunset=1677798298, air_temp_high=0.0, air_temp_low=-8.0, precip=1.0, precip_probability=60, wind_avg=14.4, wind_direction=247), ForecastDailyDescription(utc_time='2023-03-03T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677844246, sunset=1677884778, air_temp_high=-4.0, air_temp_low=-12.0, precip=5.7, precip_probability=80, wind_avg=16.2, wind_direction=62), ForecastDailyDescription(utc_time='2023-03-04T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1677930541, sunset=1677971257, air_temp_high=-1.0, air_temp_low=-9.0, precip=1.7, precip_probability=80, wind_avg=13.0, wind_direction=168), ForecastDailyDescription(utc_time='2023-03-05T05:00:00+00:00', conditions='Snow Possible', icon='possibly-snow-day', sunrise=1678016835, sunset=1678057736, air_temp_high=0.0, air_temp_low=-8.0, precip=0, precip_probability=20, wind_avg=12.6, wind_direction=283), ForecastDailyDescription(utc_time='2023-03-06T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1678103129, sunset=1678144215, air_temp_high=2.0, air_temp_low=-7.0, precip=2.7, precip_probability=60, wind_avg=12.6, wind_direction=241), ForecastDailyDescription(utc_time='2023-03-07T05:00:00+00:00', conditions='Snow Likely', icon='snow', sunrise=1678189422, sunset=1678230693, air_temp_high=1.0, air_temp_low=-4.0, precip=2.2, precip_probability=60, wind_avg=15.1, wind_direction=272)], forecast_hourly=[ForecastHourlyDescription(utc_time='2023-02-26T23:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-3.0, sea_level_pressure=1012.29, relative_humidity=46, precip=0.1, precip_probability=80, wind_avg=28.8, wind_direction=293, wind_direction_cardinal='WNW', wind_gust=46.8, uv=0.0, feels_like=-10.0), ForecastHourlyDescription(utc_time='2023-02-27T00:00:00+00:00', conditions='Snow Possible', icon='possibly-snow-night', air_temperature=-4.0, sea_level_pressure=1013.09, relative_humidity=50, precip=0, precip_probability=30, wind_avg=25.2, wind_direction=294, wind_direction_cardinal='WNW', wind_gust=43.2, uv=0.0, feels_like=-11.0), ForecastHourlyDescription(utc_time='2023-02-27T01:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-4.0, sea_level_pressure=1013.85, relative_humidity=50, precip=0, precip_probability=0, wind_avg=21.6, wind_direction=296, wind_direction_cardinal='WNW', wind_gust=36.0, uv=0.0, feels_like=-10.0), ForecastHourlyDescription(utc_time='2023-02-27T02:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-5.0, sea_level_pressure=1014.45, relative_humidity=53, precip=0, precip_probability=0, wind_avg=18.0, wind_direction=297, wind_direction_cardinal='WNW', wind_gust=28.8, uv=0.0, feels_like=-11.0), ForecastHourlyDescription(utc_time='2023-02-27T03:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-6.0, sea_level_pressure=1015.4, relative_humidity=58, precip=0, precip_probability=0, wind_avg=14.4, wind_direction=302, wind_direction_cardinal='WNW', wind_gust=18.0, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-27T04:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-7.0, sea_level_pressure=1016.0, relative_humidity=62, precip=0, precip_probability=0, wind_avg=10.8, wind_direction=316, wind_direction_cardinal='NW', wind_gust=10.8, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-27T05:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-8.0, sea_level_pressure=1016.6, relative_humidity=67, precip=0, precip_probability=5, wind_avg=7.2, wind_direction=339, wind_direction_cardinal='NNW', wind_gust=7.2, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-27T06:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-10.0, sea_level_pressure=1017.0, relative_humidity=79, precip=0, precip_probability=10, wind_avg=7.2, wind_direction=355, wind_direction_cardinal='N', wind_gust=7.2, uv=0.0, feels_like=-14.0), ForecastHourlyDescription(utc_time='2023-02-27T07:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-10.0, sea_level_pressure=1017.4, relative_humidity=79, precip=0, precip_probability=10, wind_avg=7.2, wind_direction=15, wind_direction_cardinal='NNE', wind_gust=7.2, uv=0.0, feels_like=-14.0), ForecastHourlyDescription(utc_time='2023-02-27T08:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-11.0, sea_level_pressure=1017.61, relative_humidity=85, precip=0, precip_probability=10, wind_avg=7.2, wind_direction=35, wind_direction_cardinal='NE', wind_gust=7.2, uv=0.0, feels_like=-15.0), ForecastHourlyDescription(utc_time='2023-02-27T09:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-12.0, sea_level_pressure=1017.6, relative_humidity=92, precip=0, precip_probability=10, wind_avg=10.8, wind_direction=41, wind_direction_cardinal='NE', wind_gust=10.8, uv=0.0, feels_like=-18.0), ForecastHourlyDescription(utc_time='2023-02-27T10:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-13.0, sea_level_pressure=1017.6, relative_humidity=100, precip=0, precip_probability=10, wind_avg=7.2, wind_direction=59, wind_direction_cardinal='ENE', wind_gust=7.2, uv=0.0, feels_like=-18.0), ForecastHourlyDescription(utc_time='2023-02-27T11:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-night', air_temperature=-13.0, sea_level_pressure=1017.6, relative_humidity=100, precip=0, precip_probability=10, wind_avg=7.2, wind_direction=84, wind_direction_cardinal='E', wind_gust=7.2, uv=0.0, feels_like=-18.0), ForecastHourlyDescription(utc_time='2023-02-27T12:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=-13.0, sea_level_pressure=1017.6, relative_humidity=100, precip=0, precip_probability=10, wind_avg=7.2, wind_direction=101, wind_direction_cardinal='E', wind_gust=7.2, uv=0.0, feels_like=-18.0), ForecastHourlyDescription(utc_time='2023-02-27T13:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=-12.0, sea_level_pressure=1017.3, relative_humidity=92, precip=0, precip_probability=10, wind_avg=10.8, wind_direction=104, wind_direction_cardinal='ESE', wind_gust=10.8, uv=0.0, feels_like=-18.0), ForecastHourlyDescription(utc_time='2023-02-27T14:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=-10.0, sea_level_pressure=1016.85, relative_humidity=79, precip=0, precip_probability=5, wind_avg=14.4, wind_direction=102, wind_direction_cardinal='ESE', wind_gust=18.0, uv=1.0, feels_like=-17.0), ForecastHourlyDescription(utc_time='2023-02-27T15:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=-8.0, sea_level_pressure=1015.95, relative_humidity=67, precip=0, precip_probability=5, wind_avg=14.4, wind_direction=108, wind_direction_cardinal='ESE', wind_gust=18.0, uv=1.0, feels_like=-14.0), ForecastHourlyDescription(utc_time='2023-02-27T16:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=-6.0, sea_level_pressure=1014.91, relative_humidity=58, precip=0, precip_probability=5, wind_avg=18.0, wind_direction=116, wind_direction_cardinal='ESE', wind_gust=28.8, uv=1.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-27T17:00:00+00:00', conditions='Cloudy', icon='cloudy', air_temperature=-5.0, sea_level_pressure=1013.41, relative_humidity=53, precip=0, precip_probability=5, wind_avg=18.0, wind_direction=115, wind_direction_cardinal='ESE', wind_gust=28.8, uv=1.0, feels_like=-11.0), ForecastHourlyDescription(utc_time='2023-02-27T18:00:00+00:00', conditions='Cloudy', icon='cloudy', air_temperature=-5.0, sea_level_pressure=1011.81, relative_humidity=53, precip=0, precip_probability=10, wind_avg=21.6, wind_direction=119, wind_direction_cardinal='ESE', wind_gust=32.4, uv=1.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-27T19:00:00+00:00', conditions='Snow Possible', icon='possibly-snow-day', air_temperature=-4.0, sea_level_pressure=1010.24, relative_humidity=50, precip=0, precip_probability=20, wind_avg=21.6, wind_direction=113, wind_direction_cardinal='ESE', wind_gust=36.0, uv=1.0, feels_like=-10.0), ForecastHourlyDescription(utc_time='2023-02-27T20:00:00+00:00', conditions='Snow Possible', icon='possibly-snow-day', air_temperature=-4.0, sea_level_pressure=1008.84, relative_humidity=50, precip=0, precip_probability=25, wind_avg=25.2, wind_direction=105, wind_direction_cardinal='ESE', wind_gust=39.6, uv=1.0, feels_like=-11.0), ForecastHourlyDescription(utc_time='2023-02-27T21:00:00+00:00', conditions='Snow Possible', icon='possibly-snow-day', air_temperature=-4.0, sea_level_pressure=1007.24, relative_humidity=50, precip=0.2, precip_probability=45, wind_avg=25.2, wind_direction=100, wind_direction_cardinal='E', wind_gust=43.2, uv=0.0, feels_like=-11.0), ForecastHourlyDescription(utc_time='2023-02-27T22:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-4.0, sea_level_pressure=1006.16, relative_humidity=50, precip=0.2, precip_probability=55, wind_avg=25.2, wind_direction=96, wind_direction_cardinal='E', wind_gust=43.2, uv=0.0, feels_like=-11.0), ForecastHourlyDescription(utc_time='2023-02-27T23:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-4.0, sea_level_pressure=1005.26, relative_humidity=50, precip=0.2, precip_probability=70, wind_avg=28.8, wind_direction=102, wind_direction_cardinal='ESE', wind_gust=46.8, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-28T00:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-5.0, sea_level_pressure=1004.06, relative_humidity=53, precip=0.45, precip_probability=80, wind_avg=28.8, wind_direction=101, wind_direction_cardinal='E', wind_gust=50.4, uv=0.0, feels_like=-13.0), ForecastHourlyDescription(utc_time='2023-02-28T01:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-5.0, sea_level_pressure=1002.96, relative_humidity=53, precip=0.58, precip_probability=85, wind_avg=28.8, wind_direction=97, wind_direction_cardinal='E', wind_gust=46.8, uv=0.0, feels_like=-13.0), ForecastHourlyDescription(utc_time='2023-02-28T02:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-4.0, sea_level_pressure=1001.96, relative_humidity=50, precip=0.4, precip_probability=85, wind_avg=28.8, wind_direction=97, wind_direction_cardinal='E', wind_gust=50.4, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-28T03:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-4.0, sea_level_pressure=1000.96, relative_humidity=50, precip=0.3, precip_probability=80, wind_avg=28.8, wind_direction=96, wind_direction_cardinal='E', wind_gust=50.4, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-28T04:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-4.0, sea_level_pressure=1000.06, relative_humidity=50, precip=0.4, precip_probability=85, wind_avg=28.8, wind_direction=99, wind_direction_cardinal='E', wind_gust=50.4, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-28T05:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-4.0, sea_level_pressure=999.16, relative_humidity=50, precip=0.4, precip_probability=85, wind_avg=28.8, wind_direction=101, wind_direction_cardinal='E', wind_gust=50.4, uv=0.0, feels_like=-12.0), ForecastHourlyDescription(utc_time='2023-02-28T06:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-3.0, sea_level_pressure=998.26, relative_humidity=46, precip=0.4, precip_probability=85, wind_avg=28.8, wind_direction=103, wind_direction_cardinal='ESE', wind_gust=50.4, uv=0.0, feels_like=-10.0), ForecastHourlyDescription(utc_time='2023-02-28T07:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-3.0, sea_level_pressure=997.46, relative_humidity=46, precip=0.4, precip_probability=85, wind_avg=28.8, wind_direction=106, wind_direction_cardinal='ESE', wind_gust=46.8, uv=0.0, feels_like=-10.0), ForecastHourlyDescription(utc_time='2023-02-28T08:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-2.0, sea_level_pressure=996.56, relative_humidity=43, precip=0.7, precip_probability=90, wind_avg=25.2, wind_direction=108, wind_direction_cardinal='ESE', wind_gust=46.8, uv=0.0, feels_like=-8.0), ForecastHourlyDescription(utc_time='2023-02-28T09:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-2.0, sea_level_pressure=995.96, relative_humidity=43, precip=1.1, precip_probability=95, wind_avg=25.2, wind_direction=108, wind_direction_cardinal='ESE', wind_gust=43.2, uv=0.0, feels_like=-8.0), ForecastHourlyDescription(utc_time='2023-02-28T10:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-1.0, sea_level_pressure=995.92, relative_humidity=40, precip=1.1, precip_probability=95, wind_avg=21.6, wind_direction=107, wind_direction_cardinal='ESE', wind_gust=39.6, uv=0.0, feels_like=-7.0), ForecastHourlyDescription(utc_time='2023-02-28T11:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-1.0, sea_level_pressure=996.02, relative_humidity=40, precip=1, precip_probability=95, wind_avg=21.6, wind_direction=107, wind_direction_cardinal='ESE', wind_gust=36.0, uv=0.0, feels_like=-7.0), ForecastHourlyDescription(utc_time='2023-02-28T12:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-1.0, sea_level_pressure=996.32, relative_humidity=40, precip=0.5, precip_probability=90, wind_avg=18.0, wind_direction=106, wind_direction_cardinal='ESE', wind_gust=32.4, uv=0.0, feels_like=-6.0), ForecastHourlyDescription(utc_time='2023-02-28T13:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=-1.0, sea_level_pressure=996.92, relative_humidity=40, precip=0.3, precip_probability=85, wind_avg=14.4, wind_direction=103, wind_direction_cardinal='ESE', wind_gust=18.0, uv=0.0, feels_like=-6.0), ForecastHourlyDescription(utc_time='2023-02-28T14:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=0.0, sea_level_pressure=997.8, relative_humidity=37, precip=0.25, precip_probability=80, wind_avg=10.8, wind_direction=98, wind_direction_cardinal='E', wind_gust=10.8, uv=0.0, feels_like=-4.0), ForecastHourlyDescription(utc_time='2023-02-28T15:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=0.0, sea_level_pressure=998.77, relative_humidity=37, precip=0.11, precip_probability=70, wind_avg=10.8, wind_direction=278, wind_direction_cardinal='W', wind_gust=10.8, uv=1.0, feels_like=-4.0), ForecastHourlyDescription(utc_time='2023-02-28T16:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=0.0, sea_level_pressure=999.86, relative_humidity=37, precip=0.1, precip_probability=60, wind_avg=10.8, wind_direction=278, wind_direction_cardinal='W', wind_gust=10.8, uv=1.0, feels_like=-4.0), ForecastHourlyDescription(utc_time='2023-02-28T17:00:00+00:00', conditions='Snow Likely', icon='snow', air_temperature=1.0, sea_level_pressure=1001.16, relative_humidity=34, precip=0.1, precip_probability=50, wind_avg=18.0, wind_direction=278, wind_direction_cardinal='W', wind_gust=32.4, uv=1.0, feels_like=-4.0), ForecastHourlyDescription(utc_time='2023-02-28T18:00:00+00:00', conditions='Wintry Mix Possible', icon='possibly-sleet-day', air_temperature=1.0, sea_level_pressure=1002.64, relative_humidity=34, precip=0, precip_probability=20, wind_avg=25.2, wind_direction=287, wind_direction_cardinal='WNW', wind_gust=43.2, uv=1.0, feels_like=-5.0), ForecastHourlyDescription(utc_time='2023-02-28T19:00:00+00:00', conditions='Cloudy', icon='cloudy', air_temperature=0.0, sea_level_pressure=1004.24, relative_humidity=37, precip=0, precip_probability=15, wind_avg=28.8, wind_direction=290, wind_direction_cardinal='WNW', wind_gust=43.2, uv=1.0, feels_like=-6.0), ForecastHourlyDescription(utc_time='2023-02-28T20:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=0.0, sea_level_pressure=1005.94, relative_humidity=37, precip=0, precip_probability=10, wind_avg=25.2, wind_direction=290, wind_direction_cardinal='WNW', wind_gust=43.2, uv=1.0, feels_like=-6.0), ForecastHourlyDescription(utc_time='2023-02-28T21:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=-1.0, sea_level_pressure=1007.54, relative_humidity=40, precip=0, precip_probability=10, wind_avg=25.2, wind_direction=287, wind_direction_cardinal='WNW', wind_gust=39.6, uv=0.0, feels_like=-7.0), ForecastHourlyDescription(utc_time='2023-02-28T22:00:00+00:00', conditions='Partly Cloudy', icon='partly-cloudy-day', air_temperature=0.0, sea_level_pressure=1009.09, relative_humidity=37, precip=0, precip_probability=10, wind_avg=25.2, wind_direction=287, wind_direction_cardinal='WNW', wind_gust=39.6, uv=0.0, feels_like=-6.0)])
2023-02-26 17:49:41.491 DEBUG (MainThread) [custom_components.weatherflow] Finished fetching weatherflow data in 0.970 seconds (success: True)
2023-02-26 17:49:41.615 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Beaufort
2023-02-26 17:49:41.615 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Pressure Trend
2023-02-26 17:49:41.616 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Voltage Tempest
2023-02-26 17:49:41.616 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Battery Tempest
2023-02-26 17:49:41.616 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Battery Mode Tempest
2023-02-26 17:49:41.616 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Beaufort Description
2023-02-26 17:49:41.616 DEBUG (MainThread) [custom_components.weatherflow.sensor] Adding sensor entity Station Information
2023-02-26 17:49:46.362 DEBUG (MainThread) [custom_components.weatherflow.binary_sensor] Adding binary sensor entity Is Freezing
2023-02-26 17:49:46.362 DEBUG (MainThread) [custom_components.weatherflow.binary_sensor] Adding binary sensor entity Is Raining
2023-02-26 17:49:46.362 DEBUG (MainThread) [custom_components.weatherflow.binary_sensor] Adding binary sensor entity Is Lightning
2023-02-26 17:49:46.421 DEBUG (MainThread) [custom_components.weatherflow.weather] Adding weather entity Day based Forecast
2023-02-26 17:49:46.421 DEBUG (MainThread) [custom_components.weatherflow.weather] Adding weather entity Hourly based Forecast
2023-02-26 17:49:47.979 DEBUG (MainThread) [custom_components.weatherflow] JIM: normal exit returning True
2023-02-26 17:51:41.167 DEBUG (MainThread) [custom_components.weatherflow] JIM:  About to call async_update_data()
2023-02-26 17:51:41.352 DEBUG (MainThread) [custom_components.weatherflow] JIM: Back from update_observations()
2023-02-26 17:51:41.352 DEBUG (MainThread) [custom_components.weatherflow] Finished fetching weatherflow data in 0.185 seconds (success: True)
2023-02-26 17:53:41.167 DEBUG (MainThread) [custom_components.weatherflow] JIM:  About to call async_update_data()
2023-02-26 17:53:41.313 DEBUG (MainThread) [custom_components.weatherflow] JIM: Back from update_observations()

Thanks to those that tried to help!

Glad you figured it out! Btw what version are you running of WeatherFlow Weather? Mine is v1.0.14

Iā€™m also on 1.0.14 - I only installed it 2 weeks ago and itā€™s never worked (until today).

I had Home Assistant running on a Raspberry Pi five or six years ago - and even contributed a custom component (named Places) - but then I kind of got tired of trying to keep up with all of the breaking changes that seemed to come on a monthly basis - so I stepped away from the platform and have been without it for 4+ years.

Iā€™ve just decided to dive back in and Iā€™m running HA in a docker container on an ASUSTOR NAS. So much has changed in terms of configuration and the interface and itā€™s taking a lot longer to get familiar with the new way than I expected. I think Iā€™d have been less overwhelmed if I had never seen HA before. There are a lot of improvements to what I remember (especially in the UI) - but I am kind of surprised to find that there are a still a lot of mainstream devices that still lack support.

Anyhow - thanks very much for trying to help with this problem. Next up I need to try and figure out why my Ecovacs vacuum wonā€™t connect - and why my 360 S9 doesnā€™t seem to have ANY support at all here.

Thanks for all the details. As soon as I have time I will have a look at the data, and see how to prevent the error - and change the error message :slight_smile: should it happen anyway.

I am sorry for the newbie question, but I am new to both HA and The Tempest, but I have been using other systems for many years.
I see I have rain data for both current, and daily, if I wanted to start storing historical data (year to date, and all time), can I do that, and can I display it? And if so, can I at least load the ā€œstartingā€ totals from my old system somehow?

Home Assistant stores the data for you, so you can get the data from there. Tak a look at this page to learn more about statistical data in HA. As far as I know, there is no way to manually alter this, to enter your old data.

Thank you, I will check that out. In this case, I just want to add a number to the statistic it shows (+100" or so). Frankly, it can just lie to me by adding something to what it shows on the screen. I will worry about that part later I suppose. I am sure there is some way to add to the variable I assume.

Actually, those entries do not work as statistics since they are recorder data, and will disappear in x days (10 by default). I did some more research, and weatherflow DOES keep this data. I can see it in the app, so the question is how can it be scarped and picked up in HA?
Or what do I need to do to start storing this on my own? I have been looking around, and I see you can store historical data in another database, and then I guess show it in a graph. That seems like a lot of work to just keep track of one thing that I assume others want to know as well?

I just brought up Weewx on one of my always-on systems (a Pi in my case, but could be several platforms.) and it does a great job of both capturing the data and giving you several ways of storing it or integrating with other platforms. More important for me, it does this by monitoring the UDP data stream, so data collection and visualization isnā€™t affected by internet outages.

You will need to configure the Tempest Driver but if you can manage HA, this wonā€™t be hard.

I need help.

EDIT (the next morning): No I donā€™t. It was late. ā€œdocker cpā€ did it. :man_facepalming:

I moved my entire Home Assistant setup from my NAS server to a dedicated mini-pc (i9-9880H with 32GB RAM) and installed ProxMox. Then I created a Debian VM with 4 virtual cores and 8GB of memory just for Home-Assistant and itā€™s related docker containers.

Since I was running the container version on the NAS and Iā€™m also running the container version now on the mini-pc, almost everything migrated without a hitch - but Weatherflow didnā€™t - because I had to modify the api.py on the old system in order to get Weatherflow to work, and the api.py script isnā€™t in the ā€œconfigā€ folder, itā€™s in ā€œ/usr/lib/python3.10/site-packages/pyweatherflowrest/ā€ so it didnā€™t get copied to the new system along with everything else.

I still have the modified copy of the api.py script that WILL work for my use case - but - and this is the embarrassing part - I canā€™t remember how I managed to replace or modify the api.py file inside of the HomeAssistant docker container. I can open a console - but thereā€™s no ā€œnanoā€? I read the history of this ticket - but it doesnā€™t look like I ever explained ā€œhowā€ I had modified the api.py file the first time through (probably because at the time I thought it was ā€œobviousā€ :roll_eyes:).

But in any case - can you (or anybody else) please suggest a way that I can replace the api.py script inside the HomeAssistant container so I can get this up and running again? Or alternatively - is there any chance youā€™ve had time to figure out how to fix the problem permanently? Is there perhaps a new api.py available now? :grin:

Thanks in advance.

Iā€™m seeing a similar issue after updating to 2023.7.1. Getting this in the logs: ā€˜[custom_components.weatherflow] Finished fetching weatherflow data in 0.040 seconds (success: False)ā€™ and failing to setup. No other changes on my end outside of the upgrade to 7.1. Anyone else seeing the same issue? I tried rolling back to 2023.6.X but had an issue doing so thus canā€™t determine if it was the upgrade that broke things even though thatā€™s specifically when it started.