Acurite Weather Station Display ESPHome Firmware

I wrote an ESPHome firmware for my Acurite 06088-RX weather station display. I’ve been having issues with the display periodically forgetting the network configuration. That and the desire to make all my devices work on the local network drove me to write this custom firmware. You can download the YAML configuration and the C++ file on GitHub. I got everything working except the upload to myacurite. That never worked on my display unit so I wasn’t able to replicate that functionality.

You can replicate the upload to weather underground functionality using this blueprint.

I set up a command line sensor to get the forecast data from the same source that the factory firmware uses.

command_line:
  - sensor:
      command: curl https://display.myacurite.com/forecast/us/<zip code>
      name: acurite_forecast
      unique_id: 83247b0f-7eb6-4095-ab1c-e9386635daf1
      value_template: "{[{{ value_json['current']['temperature']['high'] }},{{ value_json['current']['temperature']['low'] }},{{ value_json['current']['precipitation']['probability']|replace('%', '') }},{{ value_json['current']['icon'] }},{{ value_json['tomorrow']['temperature']['high'] }},{{ value_json['tomorrow']['temperature']['low'] }},{{ value_json['tomorrow']['precipitation']['probability']|replace('%', '') }},{{ value_json['tomorrow']['icon'] }},]}"
      scan_interval: 600

Here’s the automation I use to push the forecast data to the display unit:

alias: Update Weather Forecast
description: ""
trigger:
  - platform: time_pattern
    minutes: /10
condition: []
action:
  - service: esphome.weather_station_set_forecast
    metadata: {}
    data:
      forecast: "{{ states('sensor.acurite_forecast') }}"
mode: single

The display unit has an ESP WROOM 02. The PCB has test points for RX/TX and ground. There’s a smaller test point that connects to IO0. I didn’t find that smaller test point to be terribly easy to solder to without completely removing the board from the plastic enclosure. To program the unit I soldered onto the aforementioned test points, and I soldered a jumper wire directly to IO0.


Before pushing this firmware be sure to back up the factory firmware. If you don’t know how to do that there are several tutorials out there.