šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Sign inDemoInstall
Socket

weatherlink-live-local

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

weatherlink-live-local

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

0.4.0
PyPI
Maintainers
1

CI Documentation Status Coverage Status License: MIT PyPI PyPI - Python Version Ruff

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} °C")
    print(f"Outside temperature: {conditions.integrated_sensor_suites[0].temp:.2f} °C")
    time.sleep(10)

Keywords

api

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts