Data logger and Desktop GUI for Davis WeatherLink
Requres Java 11 or newer.
Download the weatherlink.jar file for your platform from the release folder.
Depending on if/how you have java installed, you may be able to just double-click the jar file.
If not, run with
java -jar weatherlink<Platform>.jar [ip address] [sensor id]
If you don't have java, grab the latest 11 version for your platform: https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot
You will want to use a x64 installer. It should work with either the JDK or JRE.
For windows, the file name will be something like: OpenJDK11U-jre_x64_windows_hotspot_11.0.9.1_1.msi
The [ip address] and [sensor id] variables are optional - and typically do not need to be specified.
It should be able to auto-locate your WeatherLinkLive, so long as it is on the local network.
If it fails to find your Weather Link Live, you can set the IP address as a command line parameter after the jar file name.
When you first run it, things may be a bit sparse. Data will fill in as it runs.
Data and logs will be stored in your user home directory under Weather Link Live GUI Data. It maintains a data store of the data it pulls from your WeatherLinkLive every 10 seconds.
Data older than 7 days will be migrated from the weatherLinkData.mv.db database to the weatherLinkDataArchive.mv.db database - and the stored data points will be trimmed to 1 per minute (instead of one every 10 seconds).
If you do not wish to maintain the historic data, you can simply delete the archive database (when the application is running)
If you need to specify the ip address and/or the sensor id, on windows, the easiest way to do this is to is to make a shortcut to the .jar file.
Then, right click on the shortcut, click properties, and go to the Shortcut tab.
In that tab, in the "Target" box, replace what is there with:
javaw -jar weatherlinkWindows.jar yourWLLIp yourSensorId
If you need to specify an just the sensorID, but not the IP address, you can pass garbage like 'notAnIP' as the ip address, and it will ignore it and continue to autodetect the IP.
If you have multiple outdoor sensors, and the GUI is trying to display the wrong one - for now, you have to tell it which sensor id to display with a startup parameter.
First, look in the debug log file
C:\Users<username>\Weather Link Live GUI Data\weatherLinkDebug.log
for lines like this:
2021-01-13 15:13:53,693 DEBUG [gui-init] gui.WeatherLinkLiveGUIController - Using sensor id '279091' for outside info
2021-01-13 15:13:53,693 DEBUG [gui-init] gui.WeatherLinkLiveGUIController - NOT using sensor id '123456' for outside info
2021-01-13 15:13:53,693 DEBUG [gui-init] gui.WeatherLinkLiveGUIController - NOT using sensor id '223456' for outside info
Copy the id of the sensor that you wish to be displayed, if there are more than 2, you may have to just guess.
Pass in the id value as the second paramter after the jar file name. The first parameter is for the IP of your weather link live - if you don't wish to provide a static IP here, just pass in garbage, and it will ignore it and continue to auto-locate the IP address.
Example:
java -jar weatherlinkWindows.jar notAnIP 223456
Future enhancments will allow for customizing the GUI and sensor selection from within the GUI.
Feel free to open open trackers here.
#TODOs There are lots of TODOs.... useful things I may add (pull requests welcome)
- Add options for exporting data to TSV/CSV
- Add config options for some string constants that are currently hardcoded (like "garage"
- Add the ability to enable/disable gauges, and change their order
- Add the ability to generate graphs from historical data with user specified options
- Package the app as a self-contained JavaFX application
- Push data to user-configured upstream stores like CWOP.
Change version in WeatherLinkLiveGUI.java too
mvn -B gitflow:release-start gitflow:release-finish -DreleaseVersion=1.14 -DdevelopmentVersion=1.15