DF Robot Weather Station and Waveshare RS485 to ETH integration

Setup and configuration of my working DF Robot RS485 7-in-1 Weather Station Sensor SEN0657 and Waveshare RS485 to ETH integration (C) 30303

My first post, hoping to save others time and effort.

Both were supplied with 12v DC. The waveshare could not power the weather station from the output terminals on the RS485 connection side, I connected to the input instead. This may be something to watch out for on this device.


Waveshare Web Configuration. I had issues using DHCP and recommend static only

My configuration.yaml on a HA Green

modbus:
  - name: weather
    type: tcp
    host: 192.168.15.10
    port: 502
    sensors:
      - name: windspeed
        unique_id: "windspeed"
        slave: 0x01
        address: 0x01F4
        data_type: int16
        unit_of_measurement: m/s
        input_type: holding
        scale: 0.01
        precision: 1
        scan_interval: 5
      - name: winddirection
        unique_id: "winddirection"
        slave: 0x01
        address: 0x01F7
        data_type: int16
        unit_of_measurement: deg
        input_type: holding
        scale: 1
        precision: 1
        scan_interval: 5
      - name: humidity
        unique_id: "humidity"
        slave: 0x01
        address: 0x01F8
        data_type: int16
        unit_of_measurement: RH
        input_type: holding
        scale: 0.1
        precision: 1
        scan_interval: 5
      - name: temperature
        unique_id: "temperature "
        slave: 0x01
        address: 0x01F9
        data_type: int16
        unit_of_measurement: c
        input_type: holding
        scale: 0.1
        precision: 1
        scan_interval: 5
      - name: noise
        unique_id: "noise"
        slave: 0x01
        address: 0x01FA
        data_type: int16
        unit_of_measurement: dB
        input_type: holding
        scale: 0.1
        precision: 1
        scan_interval: 5        
      - name: PM2.5
        unique_id: "pm2_5"
        slave: 0x01
        address: 0x01FB
        data_type: int16
        unit_of_measurement: ppm
        input_type: holding
        scale: 1
        precision: 1
        scan_interval: 5        
      - name: PM10
        unique_id: "pm10"
        slave: 0x01
        address: 0x01FC
        data_type: int16
        unit_of_measurement: ppm
        input_type: holding
        scale: 1
        precision: 1
        scan_interval: 5        
      - name: pressure
        unique_id: "pressure"
        slave: 0x01
        address: 0x01FD
        data_type: int16
        unit_of_measurement: kPa
        input_type: holding
        scale: 1
        precision: 1
        scan_interval: 5        
      - name: illumination
        unique_id: "illumination"
        slave: 0x01
        address: 0x0200
        data_type: int16
        unit_of_measurement: lux
        input_type: holding
        scale: 1
        precision: 1
        scan_interval: 5
      - name: rainfall
        unique_id: "rainfall"
        slave: 0x01
        address: 0x0201
        data_type: int16
        unit_of_measurement: mm/min
        input_type: holding
        scale: 0.1
        precision: 1
        scan_interval: 5

Some scales seem off and may not be right, windspeed seems low at scale of 1.
Some data is not available for the 7in1 and/or 9in1, you can delete as needed

As other posts have covered, if waveshare is TCP to RTU then home assistant yaml should be tcp only.