.gitignore | ||
davisconditions.py | ||
LICENSE | ||
README.md | ||
riverconditions.py |
HomeAssistant command line scripts
Overview
This repository contains scripts for the command_line
integration in HomeAssistant.
The scripts access external resources, typically via the Internet, and print various
values as elements of data
in a JSON output. The output can be captured by a
HomeAssistant "sensor" and then included into individual sensors.
Scripts include:
davisconditions.py
: weather conditions from a Davis WeatherLink Live (local network)riverconditions.py
: river conditions from the USGS National Water Information System
Installation
The scripts can be installed into any directory that HomeAssistant can run scripts from.
Make sure they're executable (e.g., chmod 755 riverconditions.py
).
The first line of the scripts should be changed to:
#!/path/to/homeassistant/python3
where the path is for the Python executable used by HomeAssistant. This might be
/usr/bin/python3
, or it might be something like /home/homeassistant/bin/python3
.
The only non-standard package that's needed is requests
, though you shouldn't need to
install it if you're using HomeAssistant's python3
executable, since HomeAssistant already
installs requests
.
Usage
Running the scripts
Each script takes a single argument that specifies the resource being accessed. riverconditions.py
takes the station identifier, which is an 8-digit number. For example, to get statistics for the
Rogue River at Raygold near Central Point, OR, you would run:
riverconditions.py 14359000
because the station identifier is 14359000. Note that this identifier is part of the URL for the (human-readable) station page, and is prominently listed on the page as well.
To get data from a Davis WeatherLink Live,
run davisconditions.py
as follows:
davisconditions.py 192.168.1.200
where 192.168.1.200
is the address of the WeatherLink Live device. You can use the IP address or,
if you've assigned a DNS name to the device, the DNS name. This address must remain constant
across reboots of the device and/or router, so you may want to use a static IP address or reserve
an address in your DHCP server.