Skip to content

Releases: mihai-dinculescu/tapo

v0.6.0

08 May 19:50
Compare
Choose a tag to compare

Added

  • Added support for the L920 and L930 light strips. The highlight is the tapo::ColorLightStripHandler::set_lighting_effect function, which supports all the effects that the Tapo app contains alongside user-defined effects.
  • Added support for the L900 light strips.
  • Each supported device now has it's own handler creator.

Changed

  • set_* functions like tapo::requests::ColorLightSetDeviceInfoParams::set_brightness now return Self instead of Result<Self, Error> to allow for better ergonomics. The validations will now run when tapo::requests::ColorLightSetDeviceInfoParams::send is called.
  • tapo::requests::L510SetDeviceInfoParams has been renamed to tapo::requests::LightSetDeviceInfoParams to better reflect its purpose when used for L510, L610, and L900 devices.
  • tapo::requests::L530SetDeviceInfoParams has been renamed to tapo::requests::ColorLightSetDeviceInfoParams to better reflect its purpose when used for L530, L630, L920 and L930 devices.
  • tapo::P100Handler has been renamed to tapo::PlugHandler.
  • tapo::P110Handler has been renamed to tapo::EnergyMonitoringPlugHandler.
  • tapo::L510Handler has been renamed to tapo::LightHandler.
  • tapo::L530Handler has been renamed to tapo::ColorLightHandler.
  • tapo::L930Handler has been renamed to tapo::ColorLightStripHandler.

v0.5.0

16 Apr 17:58
Compare
Choose a tag to compare

Changed

  • The creation of an API Client for a specific device is now done through handler methods on the ApiClient struct. This allows for a more ergonomic API. (thanks to Octocrab for inspirations)
// old
let device = ApiClient::<L530>::new(ip_address, tapo_username, tapo_password, true).await?;

// new
let device = ApiClient::new(ip_address, tapo_username, tapo_password)?
    .l530()
    .login()
    .await?;
  • ApiClient::new parameters are now impl Into<String> instead of String to allow for more flexibility.
  • Error handling has been reworked. All functions that could error now return a Result<..., tapo::Error>.

v0.4.0

25 Feb 18:06
Compare
Choose a tag to compare

Added

  • get_energy_data is now available for the P110 devices. (thanks to @kuhschnappel)

Changed

  • EnergyUsageResult's past24h, past7d, past30d and past1y fields are now deprecated. get_energy_data should be used instead. (thanks to @felixhauptmann)

v0.3.1

19 Feb 12:47
Compare
Choose a tag to compare

Added

  • examples/tapo_generic_device_toggle.rs demonstrates how device_info can be used to assess the current status of a generic device and toggle it.

Changed

  • on_time is now optional for the L510 and L530 devices because the v2 hardware no longer returns it.

v0.3.0

20 Nov 18:03
Compare
Choose a tag to compare

Added

  • The set API allows multiple properties to be set in a single request for the L510 and L530 devices.

Changed

  • tapo::Color has been moved to tapo::requests::Color.
  • GenericDeviceInfoResult::on_time has been changed from u64 to Option<u64> because some devices (like L930) do not provide this field.
  • All response structs have been moved under tapo::responses.
  • The docs have been improved.

v0.2.1

07 Aug 10:38
Compare
Choose a tag to compare

Changed

  • latitude and longitude in GenericDeviceInfoResult, L510DeviceInfoResult, L530DeviceInfoResult and PlugDeviceInfoResult are now signed integers to accommodate for incoming responses with negative numbers. (thanks to @JPablomr)

v0.2.0

12 Jun 23:07
Compare
Choose a tag to compare

Added

  • Generic Device example.

Changed

  • get_device_usage has been moved to the base implementation so that all devices have access to it.
  • Color now implements serde::Serialize and serde::Deserialize.

Removed

  • TapoDeviceExt is no longer has Default and serde::Serialize as supersets.

v0.1.0

07 Jun 00:07
Compare
Choose a tag to compare

Added

  • Initial Release of Tapo