2 releases

0.1.1 Aug 25, 2021
0.1.0 Aug 24, 2021

#21 in #smart-home

MIT license

98KB
2K SLoC

SmartCast Api

crates.io Documentation Build

This library provides an API for connecting to and controlling Vizio SmartCast TVs and Speakers. The struct Device provides a client for interfacing with the SmartCast device.

Get Started

You can use smartcast::discover_devices() to find SmartCast devices on your local network by issuing an SSDP Query or attempt to connect directly using Device::by_ip() or Device::by_uuid().

Example

use smartcast::Device;

async fn example_main() -> Result<(), smartcast::Error> {

    let ssdp_devices = smartcast::discover_devices().await?;

    let dev_by_ssdp = ssdp_devices[0].clone();
    let ip_addr = dev_by_ssdp.ip();
    let uuid = dev_by_ssdp.uuid();

    let dev_by_ip = Device::from_ip(ip_addr).await?;
    let dev_by_uuid = Device::from_uuid(uuid).await?;

    assert_eq!(dev_by_ssdp.name(), dev_by_ip.name());
    assert_eq!(dev_by_ssdp.name(), dev_by_uuid.name());

    Ok(())
}

Task List

  • Connect
  • Pairing
  • Get device state
  • Virtual remote commands
  • Readable settings
  • Writeable settings
  • Current App
  • App launching

Dependencies

~8–24MB
~341K SLoC