Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lukasberbuer/weatherlink-live-local-python

Repository files navigation

WeatherLink Live Local Python API

Python library to read weather data from a Davis WeatherLink Live station + connected sensors (e.g. Vantage Vue). Features:

  • discover WeatherLink Live stations in the local network
  • read sensor values (called conditions) using the local API - no internet connection required

Although the WeatherLink Live stations are tighly coupled with the web service weatherlink.com, it can be used in offline situations aswell. The well designed HTTP interface makes it easy to read the current weather data via the local network - perfect for IoT / SmartHome applications. In fact, I couldn't find any other commercial weather station with an open ethernet-based protocol (please correct me if I'm wrong).

To set up the WeatherLink Live stations, you need the Davis WeatherLink app (Android, iOS) and a weatherlink.com account. Further sensors can be connected to the station. Afterwards, the weather data is accessible via weatherlink.com (if online) and the local API.

Documentation

Python library: https://weatherlink-live-local-python.rtfd.io/

API specification: https://weatherlink.github.io/weatherlink-live-local-api/

Install

pip install weatherlink-live-local

Example

import weatherlink_live_local as wlll

devices = wlll.discover()
print(devices)

# select first device, get IP address
ip_first_device = devices[0].ip_addresses[0]

# specify units
units = wlll.Units(
temperature=wlll.TemperatureUnit.CELSIUS,
pressure=wlll.PressureUnit.HECTOPASCAL,
rain=wlll.RainUnit.MILLIMETER,
wind_speed=wlll.WindSpeedUnit.METER_PER_SECOND,
)

# poll sensor data / conditions
while True:
conditions = wlll.get_conditions(ip_first_device, units=units)
print(f"Inside temperature: {conditions.inside.temp:.2f} degC")
print(f"Outside temperature: {conditions.integrated_sensor_suites[0].temp:.2f} degC")
time.sleep(10)

About

Read current weather data from Davis(r) WeatherLink Live units + connected sensors

Topics

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Contributors

Languages