xDarksome / lg-webos-client

LG webOS client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LG WebOs Client 0.3.1

Build Status

Simple LG webOS client written purerly in Rust. Inspired by lgtv.js

Supported commands

  • Create toast
  • Open browser
  • Turn off
  • Set channel
  • Set input
  • Set mute
  • Set volume
  • Get channel list
  • Get current channel
  • Open channel
  • Get external input list
  • Switch input
  • Is muted
  • Get volume
  • Play media
  • Stop media
  • Pause media
  • Rewind media
  • Forward media
  • Channel up
  • Channel down
  • Turn 3d on
  • Turn 3d off
  • Get services list

Example

Add to Cargo.toml

[dependencies]
lg-webos-client = "0.3.1"
tokio = { version = "1.2.0", default-features = false, features = ["full"] }

And then use the following snippet

use lg_webos_client::client::*;
use lg_webos_client::command::Command;

#[tokio::main]
async fn main() {
    env_logger::init();
    // Note: We must specify the ws protocol, and if we do not have the key, we must just use a blank str.
    let config = WebOsClientConfig::new("ws://192.168.1.62:3000/","");
    
    let mut client = WebosClient::new(config).await.unwrap();
    let resp = client.send_command(Command::GetChannelList).await.unwrap();
    println!("Got response {:?}", resp.payload);
}

The code above simply connects to tv in local network and after a successful registration lists all channels. Note that we must specify the ws protocol. If we have a key, we can pass that in the config, and the client will use said key. If no key is specified, the client will output a key generated from the device.

Contributors

  • kziemianek
  • GT3CH1

About

LG webOS client

License:MIT License


Languages

Language:Rust 100.0%