Davis WeatherLink Integration

Yep, tried that. I’ll see about updating the firmware. Thanks for your help. I’ll let you know if I get it figured out.

Hi Muttly!

I was finally able to integrate weatherlink into HA using the api method. I have a usb data logger for my vantage pro 2 and using HA on Virtual Machine. I wanted to ask if HA is constantly getting data for the logger and updates it self without any additional script? Unfortunately it doesnt seem to be working that way for me. I got a reading before but it hasnt been updating to the new available data.

Ok, I’m feeling like a total noob here (I am, but still :grinning:).
I follow the instructions until “3. Head over to the HA config and set up the integration there”. And here I am completely lost. Is it supposed to be a Davis/Weatherlink-integration there all ready after the first two steps? Do I have to add an intergration there? There’s nothing there, and there’s no Davis or WeaterLink when I try to add. (Yes, rebooted HA)
The only place I can find a trace of it is in the HACS integrations list. Any tip would be nice. I AM a HA-noob so there might be something totally fundamental I haven’t grasped. :slight_smile:

Grateful for any help.

I had to add the Integration in Configuration after loading it in HACS. If I recall, it took a little time for it to become available. I might have even refreshed my cache before it showed up. it is called simply Weatherlink.

1 Like

Did you get this figured out? I’m trying to do the same thing with Weather Link Live and can’t get any of the data from the Weather Link Live device itself. I can only get the Davis Vantage Pro sensor suite data from outside. I want to add indoor temp but it will not display the value even though I can see the value under ‘developer tools’ ‘states’.

UPDATE: I figured this out. For the other sensors under the WeatherLink Live connection, change the value of the number in () after [“conditions”] in the value_template. Each step in number will search the next sensor (i.e. “Isid”). Example…

  wind_chill:
    friendly_name: 'Wind Chill'
    device_class: temperature
    unit_of_measurement: "°F"
    value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][0][("wind_chill")] }}'
  temp_in:
    friendly_name: 'Indoor Temperature'
    device_class: temperature
    unit_of_measurement: "°F"
    value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][1][("temp_in")] }}'

wind_chill is from the first sensor (i.e. Vantage Pro ISS referenced by [0]). temp_in is referenced in the data with the [1], leading the search to the weatherlink data.

Did anyone solved this problem ? i have a IP Logger on my Vantage2.
And sent my Data to Weatherlink Dashboard.
Maybe anyone can help me to get my Data of my Vantage2 or Weatherlink Dashbord inport to Home Assistant.

hello ive just linked my Davis station but am having issues accessing all the data even though it is being read as an attribute. i can get temp and hum no problem but anything past that throws errors.

sensor:
  - name: davis_vantage_pro_curr
    platform: rest
    resource: 'http://192.168.1.12/v1/current_conditions'
    json_attributes:
        - data
    value_template: 'Vantage Pro'
  - platform: template
    sensors:
        temp:
            friendly_name: 'Temperature'
            device_class: temperature
            unit_of_measurement: "°C"
            value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][0]["temp"] }}'
        hum:
            friendly_name: 'Humidity'
            device_class: humidity
            unit_of_measurement: "%"
            value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][0]["hum"] }}'
        rainfall_monthly:
            friendly_name: 'rainfall_monthly'
            device_class: rainfall_monthly
            unit_of_measurement: "mm"
            value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][0]["rainfall_monthly"] }}'


the error thrown

Thanks for posting this!

It worked nicely with my Davis AirLink with a tiny tweak to match the JSON. Now to get it to calculate AQI from the local data.

I tried using this with a vantage view station with a base station and an ethernet adapter (not sure of the official terms for all of these items) and I get stuck on the setup of the weatherstation integraiton where it wants my DID, password and API1 key. I made the API key and put in my weatherlink live password and the DID however I get an “Unknown Error” in red. it might be worth pointing out that I’m not on my local LAN when trying to do this, was hoping I could pull remote statistics but maybe that is my issue? Although if I’m using my weatherlink live ID I would think that would be web based anyway…

Did you ever get this working? I have a vantage vue on a different network and tried the github integraiton, get all the way to wanting the username / password / api for the weatherlink site but get an “Unexpected Error”

My HA and Weatherlink are on the same LAN, might be worth asking the question to the developer on github?

Ya I finally got it working after setting up MQTT, etc and a lot of tinkering…

Works well, but I think my Weatherlink drops information from like 3AM to 7AM…not sure why exactly…

After days and many month i have a configuration thats run perfectly.

I get the whole thing via the Weatherlink API V1 json
Paste this configuration into the configuration.yaml

The Weatherlink API link please insert its own data at XXXX

**It was not so easy to get all the sensor data. Depending on the sensor, the template must be different. Pretty tricky
I hope i can help many Owners of a Davis Weather Station with just the old IP Link Connector…
**


sensor:
  - platform: rest
    resource: 'https://api.weatherlink.com/v1/NoaaExt.json?user=XXXXXXXXXXX&pass=XXXXXXX&apiToken=XXXXXXXX'

    scan_interval: 300
    name: weatherlink
    json_attributes:
        - temp_c
        - relative_humidity
        - pressure_mb
        - rain_day_in
        - wind_degrees
        - temp_in_f
        - wind_mph
        - solar_radiation
        - davis_current_observation

    value_template: '{{ value_json.weatherlink }}'
  - platform: template
    sensors:

      davis_outside_temp:
        unique_id: davis_temp_out
        friendly_name: 'Davis_Temp_Out'
        unit_of_measurement: '°C'
        device_class: 'temperature'
        value_template: "{{ state_attr('sensor.weatherlink', 'temp_c') }}"

      davis_luftfeuchte:
        unique_id: davis_luftfeuchte
        friendly_name: 'Davis_Luftfeuchte'
        unit_of_measurement: '%'
        device_class: 'humidity'
        value_template: "{{ state_attr('sensor.weatherlink', 'relative_humidity') }}"

      davis_inside_temp:
        unique_id: davis_temp_in
        friendly_name: 'Davis_Temp_In'
        value_template: '{{ ((states.sensor.weatherlink.attributes["davis_current_observation"]["temp_in_f"] | float - 32) * (5/9)) | round(1) }}'
        unit_of_measurement: '°C'
        device_class: 'temperature'

      davis_wind_kmh:
        unique_id: davis_kmh
        friendly_name: 'Davis_Wind'
        unit_of_measurement: 'Km/h'
        value_template: "{{ ((state_attr('sensor.weatherlink', 'wind_mph') |float) * 1.61 )|round(1)}}"

      davis_wind_richtung:
        unique_id: davis_wind_richtung
        friendly_name: 'Davis_Wind_Richtung'
        unit_of_measurement: '°'
        value_template: "{{ state_attr('sensor.weatherlink', 'wind_degrees') }}"

      davis_solar:
        unique_id: davis_solar
        friendly_name: 'Davis_Solar'
        unit_of_measurement: 'w/m²'
        value_template: '{{ states.sensor.weatherlink.attributes["davis_current_observation"]["solar_radiation"]  }}'

      davis_regen:
        unique_id: davis_regen
        friendly_name: 'Davis_Regen'
        device_class: water
        unit_of_measurement: 'mm'
        value_template: '{{ ((states.sensor.weatherlink.attributes["davis_current_observation"]["rain_day_in"] | float * 25.4)) | round(1) }}'

      davis_luftdruck:
        unique_id: davis_luftdruck
        friendly_name: 'Davis_Luftdruck'
        unit_of_measurement: 'hPa'
        value_template: "{{ state_attr('sensor.weatherlink', 'pressure_mb') }}"
        device_class: 'pressure'



Screenshot 2022-12-20 115144

Hello,

You ay you managed to integrate vantage pro2 with USB in homeassistant. I am curious how you did do that. I have the same system (pro2 en HA on VM) and am not able yet to get the connection working.
Do you have a short manual?

Hi, for some reason my instance of HA stopped converting the data from my weatherlink (rest) from Fahrenheit to Celsius. I have checked the data via a browser and its sending it in Fahrenheit. From my understanding if i include unit_of_measurement: ‘°C’ it should be automatically converted. it was working before an upgrade.

This is what i have in my config:

sensor:
  - name: davis_vantage_pro_curr
    platform: rest
    resource: 'http://192.168.1.61/v1/current_conditions'
    json_attributes:
      - data
      - temp_c
    value_template: 'Vantage Pro'
  - platform: template
    sensors:
      temp:
        friendly_name: 'Temperature'
        device_class: temperature
        unit_of_measurement: '°C'
        value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][0]["temp"] }}'
      hum:
        friendly_name: 'Humidity'
        device_class: humidity
        unit_of_measurement: "%"
        value_template: '{{ state_attr("sensor.davis_vantage_pro_curr", "data")["conditions"][0]["hum"] }}'

Anyone else having trouble with this custom integration loading on 2023.3.0?

Thanks

My integration stopped working when I loaded 23.3.5. It had been running for a year or more. The logs show this (which is pretty meaningless to me):

2023-03-14 15:54:35.693 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{{ ((states.sensor.weatherlink.attributes[“davis_current_observation”][“temp_in_f”] | float - 32) * (5/9)) | round(1) }}")
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/template.py”, line 423, in async_render
render_result = _render_with_context(self.template, compiled, **kwargs)
File “/usr/src/homeassistant/homeassistant/helpers/template.py”, line 1942, in _render_with_context
return template.render(**kwargs)
File “/usr/local/lib/python3.10/site-packages/jinja2/environment.py”, line 1301, in render
self.environment.handle_exception()
File “/usr/local/lib/python3.10/site-packages/jinja2/environment.py”, line 936, in handle_exception
raise rewrite_traceback_stack(source=source)
File “”, line 1, in top-level template code
File “/usr/local/lib/python3.10/site-packages/jinja2/sandbox.py”, line 303, in getitem
return obj[argument]
jinja2.exceptions.UndefinedError: ‘None’ has no attribute ‘attributes’

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/template.py”, line 540, in async_render_to_info
render_info._result = self.async_render(variables, strict=strict, **kwargs)
File “/usr/src/homeassistant/homeassistant/helpers/template.py”, line 425, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: ‘None’ has no attribute ‘attributes’
2023-03-14 15:54:35.732 ERROR (MainThread) [homeassistant.helpers.template_entity] TemplateError(‘UndefinedError: ‘None’ has no attribute ‘attributes’’) while processing template ‘Template("{{ ((states.sensor.weatherlink.attributes[“davis_current_observation”][“temp_in_f”] | float - 32) * (5/9)) | round(1) }}")’ for attribute ‘_attr_native_value’ in entity ‘sensor.inside_temp’

As an alternative, I thought I would try the Weatherlink integration in HACS. I installed it and rebooted - and my original Weatherlink connection started working again! I hadn’t even worked-out where to configure the new integration, so the system probably just needed a re-boot. (Another integration that had mysteriously stopped working also go going again - the power of a reboot!)

Hello,

I do use cumulus MX. That reads the davis. With rest commands the data form cumuls come into HA.

Just wanted to give feedback, I installed an Ecowitt GW1100 weather station today and to my surprise it picked up the same sensors as the Davis Vantage Vue with IP Data Logger Weather Station with the add on. I now no longer need the add on running to get the same temperatures, humidity, wind speed / direction etc.

I find it much easier to use the ecowitt than the add on which had to be configured with MQTT.

Hopefully this helps someone else down the road