2 releases

0.1.1 Aug 25, 2021
0.1.0 Aug 24, 2021

#16 in #smart-home

22 downloads per month

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

~9–24MB
~355K SLoC