home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.82k stars 30.08k forks source link

Tomorrow.io integration not working anymore #75485

Closed Remko76 closed 1 year ago

Remko76 commented 2 years ago

The problem

I have the Tomorrow.io integration set up and it has been working fine for weeks now. Since about 3 days it stopped working, all sensors show as unavailable and I have the corresponding messages about templates not being able to render. I tried deleting the integration and setting it up again, but that fails. After I enter my API key and press the "submit" button, it just sits there for a couple of minutes and then returns an "unknown error".

What version of Home Assistant Core has the issue?

2022.7.5

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Tomorrow.io

Link to integration documentation on our website

https://www.home-assistant.io/integrations/tomorrowio

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

lymanepp commented 2 years ago

What version of HA is everyone with problems using?

zacs commented 2 years ago

2022.6.6 for me

Remko76 commented 2 years ago

I had the issue with 2022.7.5. I updated to 2022.7.6 today and now everything works again.

Altycoder commented 2 years ago

2022.7.5 it was broken, just upgraded to 2022.7.6 and working for me again now, thanks

bigcookie commented 2 years ago

I am using HA in a docker environment. When noticing the issue I used 2022.4.4, then I upgraded to 2022.7.5, also noticing the issue. After then modifying the tomorrow components manifest file to use the pytomorrow lib to 0.3.4 and restarting the container (not only HA), all works like a charm.

robin-vandaele commented 2 years ago

It's clear that for most, it's fixed by the bumped dependency? Could it be that some calls still return 206? I've had another app that uses the API and stopped working at the same time. Screenshot_20220721-093346_FX.jpg

Altycoder commented 2 years ago

I guess it will take 24-48 hours for those of us who've moved to 2022.7.6 to be able to answer that

kitkat270 commented 2 years ago

Upgrading to 2022.7.6 fixed the problem for me after it being unavailable for 2 to 3 weeks.

lymanepp commented 2 years ago

Is anyone still having problems after upgrading to 2022.7.6?

Remko76 commented 2 years ago

No more problems for me

apetryk2 commented 2 years ago

Fixed here.

kreene1987 commented 2 years ago

Agreed, fixed. Thanks!

JonathanTroyer commented 2 years ago

Not fixed for me. I'm definitely on 2022.7.6 (with pytomorrowio on 0.3.4). I get Config entry 'Tomorrow.io - Home' for tomorrowio integration not ready yet; Retrying in background. I've had at least 4 successful calls from the integration, but still have no entities. Removing and re-adding the integration results in image

No logs as far as I can tell. No amount of restarting, adding/removing integrations, etc. seems to get it to work.

lymanepp commented 2 years ago

@JonathanTroyer, please capture the curl output with -i option to a file and attach the file to a reply. I need the entire output to see if there's something different about it.

zacs commented 2 years ago

Does anyone know what the units are on these fields, I'm currently being rate limited and trying to figure out when I can expect thing to work again. The fields aren't documented in the API docs.

ratelimit-reset: 3230
retry-after: 3230

The other curl dumps in here just have 1 for that value so I'm hoping I haven't banned myself for 3200 days 😬.

lymanepp commented 2 years ago

Does anyone know what the units are on these fields

Seconds

JonathanTroyer commented 2 years ago

@JonathanTroyer, please capture the curl output with -i option to a file and attach the file to a reply. I need the entire output to see if there's something different about it.

I fail to see how this helps, but here ya go:

HTTP/2 200
date: Fri, 22 Jul 2022 00:11:57 GMT
content-type: application/json; charset=utf-8
x-ratelimit-remaining-hour: 23
ratelimit-limit: 3
ratelimit-remaining: 2
ratelimit-reset: 1
x-ratelimit-limit-second: 3
x-ratelimit-limit-hour: 25
x-ratelimit-limit-day: 500
x-ratelimit-remaining-second: 2
x-ratelimit-remaining-day: 498
x-request-id: 728d96c2-4682-448d-b7e0-ac6385ab566b
vary: Origin
access-control-allow-origin: *
x-moesif-transaction-id: edcae87a-e790-46ab-b3f7-1a53252db4ed
x-kong-upstream-latency: 15
x-kong-proxy-latency: 1
via: 1.1 google
cf-cache-status: DYNAMIC
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 72e7f640da2f9ece-DFW

No logs in HomeAssistant

lymanepp commented 2 years ago

I fail to see how this helps, but here ya go:

That's not what I asked for...

JonathanTroyer commented 2 years ago

I fail to see how this helps, but here ya go:

That's not what I asked for...

Can you give me a full curl command or at least the endpoint that's needed? "the curl output" isn't very specific unfortunately.

lymanepp commented 2 years ago

Here are the two API calls that are made by the integration in the default configuration. Fill in your API key and latitude & longitude. The output of each command will be written to output1.txt and output2.txt. Attach the files to your reply (not copy-and-paste).

curl -i -o output1.txt -H 'content-type: application/json' -H 'apikey: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' -d '{"location": "LAT,LON", "units": "metric", "timesteps": ["15m", "1h", "1d"], "startTime": "2022-07-22T01:27:10+00:00", "fields": ["temperatureMin", "temperatureMax", "windSpeed", "windDirection", "weatherCode", "precipitationIntensityAvg", "precipitationProbability"]}' https://api.tomorrow.io/v4/timelines

curl -i -o output2.txt -H 'content-type: application/json' -H 'apikey: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' -d '{"location": "LAT,LON", "units": "metric", "timesteps": ["current"], "fields": ["temperature", "humidity", "pressureSeaLevel", "windSpeed", "windDirection", "weatherCode", "visibility", "pollutantO3", "windGust", "cloudCover", "precipitationType", "pollutantCO", "mepIndex", "mepHealthConcern", "mepPrimaryPollutant", "cloudBase", "cloudCeiling", "cloudCover", "dewPoint", "epaIndex", "epaHealthConcern", "epaPrimaryPollutant", "temperatureApparent", "fireIndex", "pollutantNO2", "pollutantO3", "particulateMatter10", "particulateMatter25", "grassIndex", "treeIndex", "weedIndex", "precipitationType", "pressureSurfaceLevel", "solarGHI", "pollutantSO2", "windGust"]}' https://api.tomorrow.io/v4/timelines

JonathanTroyer commented 2 years ago

Thanks!!

output1.txt output2.txt

lymanepp commented 2 years ago

@JonathanTroyer, output1.txt is getting a 206 error. I know that you've installed 0.3.4, but I suspect that the 0.3.4 code change somehow isn't there. If you're able to login to the homeassistant container, can you run the following command and reply with the output?

grep -n HTTPStatus.OK /usr/local/lib/python3.10/site-packages/pytomorrowio/pytomorrowio.py

JonathanTroyer commented 2 years ago

215: if resp.status in (HTTPStatus.OK, HTTPStatus.PARTIAL_CONTENT):

lymanepp commented 2 years ago

You definitely have the 0.3.4 code installed. @raman325 do you have any ideas?

JonathanTroyer commented 2 years ago

If it helps, setting up the integration results in the popup displaying Unknown error occurred after a few minutes. Nothing in the logs either, unfortunately. image

JonathanTroyer commented 2 years ago

Aaaaaaaaaaand it's working now.

steveredden commented 2 years ago

the integration isn't even attempting API calls anymore.

image

I manually invoke-restmethod'd their API to ensure it counted, and got two hits. prior to my manual API query, it was 0:

image
github-actions[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.