Netatmo appears to have made changes to their APIs and rate limits, allowing for much quicker polling of data. From the API documentation (emphasis mine):
As you can notice from the table below, data can be obtained from 2 endpoints: /gestationsdata & /homestatus. The difference between these 2 endpoints is that /getstationsdata retrieves data from the cloud where data are updated every 10min whereas /homestatus retrieves data from the devices and data are near realtime data (<10s).
The strange thing is that any documentation about using /homestatus appears to be missing in the Weather section, but glancing from other parts in the documentation, it’s not hard to use. As an example, this indeed retrieves data from my Weather Station (I obviously didn’t use a real home_id and token below):
curl -X GET "https://api.netatmo.com/api/homestatus?home_id=0123456789abcdef" -H "accept: application/json" -H "Authorization: Bearer 0123456789|abcdef"
The question is: does this actually yield quicker updates than the Home Assistant integration currently allows? The answer is yes.
I tried this out by using the rest platform to create an entity with the API above, like so:
- platform: rest
resource: https://api.netatmo.com/api/homestatus?home_id=MY_HOME_ID
name: Netatmo Temp Test
state_class: measurement
device_class: temperature
unit_of_measurement: "°C"
scan_interval: 60
headers:
Authorization: >
Bearer MY_KEY
value_template: "{{ value_json['body']['home']['modules'][0]['Temperature'] }}"
unique_id: 'some-unique-id'
I then put an electric heater in the same room as the Weather Station to increase the temperature quickly.
After waiting some time, I pulled up a graph in History, comparing the temperature reported through the official Netatmo Integration (blue line) and the sensor I just described (purple line).
As you can see below, the purple line updates more frequently and also shows more recent data, i.e. once the blue line finally updates at around 0:02, it reports a temperature that the purple line showed 12 minutes earlier. At 0:12, the blue line again is still playing catch up.
It would be great if the official integration could be updated to take advantage of this (new rate limit for users appears to be 500 req/h, so there’s some space), but even if not, the rest platform is your friend.
Note: originally, I had set scan_interval to 15, but it looks like updates come in every minute, so changed it to 60 to prevent unnecessary calls.