CHANGELOG.md

# Changelog

## 1.0.1

* Documentation updates, including fixing incorrect examples

### Breaking Changes

* Changed rain accumulation field in Sky observations to include units.
  local_day_rain_accumulation became local_day_rain_accumulation_mm
* Changed battery field in Air observations to include units. 
  It is now battery_volts, like the other device types use.

## 1.0.0

* Update Elixir dependency to 1.10 or greater
* Documentation and code formatting updates
* Update for changes in Weatherflow API v171

### Enhancements

* Added :hub_sn key to the hub_status event. (Duplicates the :serial_number key
  as a convenience to allow matching against :hub_sn on all event types.)
* Added ability to pass callback functions to the client that will be used
  to handle parsed weatherflow events. (No longer strictly depends on pubsub)

### Breaking Changes

Version 1.0.0 has changed the API and will very likely break *any* existing uses
of the library. (This is why it's being released as 1.0.0, rather than 0.2.0)

  * The structs returned by library have changed. Keys are standardized to use
    atoms for all protocol keys, and only use strings for device serial numbers.
    For example:

    ```elixir
    device_statuses: %{
        "AR-00000001" => %{
            firmware_revision: 23
        }
    }
    ```

  * Returned :uptime key to being integer second (String description that was
    previously here is now in the :uptime_string field.)
  * Renamed WeatherflowTempest.PubSub.subscribe_udp_events/0 to
    `WeatherflowTempest.PubSub.subscribe_to_udp_events/0` for linguistic clarity.
  * Renamed the :windspeed_mps in a rapid_wind event to :wind_speed_mps for
    consistency with other field names.
  * Events are now emitted via the Phoenix.PubSub.broadcast method as
    {{:weatherflow, event_name}, object} tuples, rather than using
    %Phoenix.Socket.Broadcast{} struct, allowing the library to work correctly
    outside of a Phoenix app.
  * No longer automatically starts a Phoenix.PubSub if one is not defined
    via config.
  * No longer has Phoenix.PubSub as a :prod dependency, must be required by the
    parent app if the PubSub is going to be used.

## 0.1.0

* Initial Release