Davis Weather Integration IP Logger Weatherlink API V1

After many hours and months, I have now found a solution for the integration.
This solution is for owners of the WeatherLink-Datalogger (WeatherLinkIP, WeatherLinkUSB and WeatherLinkSER) and Vantage Connect who send their data to Weatherlink.
Not for the new “Weatherlink Station”.

It all starts with https://www.weatherlink.com/. I think you have an account. Because that’s where the data is retrieved.
There you will also get the API key & Api token. And build yourself the API call address in json format.

I picked out the best of all the threads and tried out what works for me.

!! Please replace the XX with your data !!

My programming is metric ! But you can customize it all.

I think you know a bit about Home Assistant and have already made entries in the configuration.yaml.

If not then it will be like me. I know my way around now :wink:

If this post helped you, then please give a positive answer for my work. Have fun testing !!


configuration.yaml


sensor:
  - platform: rest
    resource: 'https://api.weatherlink.com/v1/NoaaExt.json?user=XXXXXXXX&pass=XXXXXXXX&apiToken=XXXXXXXXXXXXXXXX'
    scan_interval: 300
    name: weatherlink
    json_attributes:
        - temp_c
        - dewpoint_c
        - uv_index
        - windchill_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_windchill:
        unique_id: davis_windchill
        friendly_name: 'Davis_Windchill'
        unit_of_measurement: '°C'
        value_template: "{{ state_attr('sensor.weatherlink', 'windchill_c') }}"
        device_class: 'temperature'
    
      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     
      
      davis_uv:
        unique_id: davis_uv
        friendly_name: 'Davis_UV_Index'
        value_template: '{{ states.sensor.weatherlink.attributes["davis_current_observation"]["uv_index"] | round(0) }}'
      
      davis_taupunkt:
        unique_id: davis_taupunkt
        friendly_name: 'Davis_Taupunkt'
        unit_of_measurement: '°C'
        device_class: 'temperature'
        value_template: "{{ state_attr('sensor.weatherlink', 'dewpoint_c') }}"
2 Likes

Thank you for working on this, I have been thinking about getting a Davis weather station for sometime. Knowing that it is supporting the Home Automation enthusiast just adds to the needed info on my purchase check list.

Excellent work. Works like a charm!
Is it possible to add more sensors to the yaml?
Thanks

1 Like