huawei inverter client

Supported Devices

Usage

```rust use crate::clientimpl::HuaweiClientImpl; async fn dosomething() { let cl = HuaweiClientImpl::default(env!("HUAWEIUSER"), env!("HUAWEIPASSWORD"));

    let stations = cl.get_station_list().await.unwrap();
    let station = stations.first().unwrap();
    let realtime_data = cl.get_realtime_station_data(station.station_code.as_str()).await.unwrap();
    println!("{:?}", realtime_data);

    let devices = cl.get_device_list(station.station_code.as_str()).await.unwrap();
    println!("{:?}", devices);

    let power_sensor: &GetDevListData = devices.iter()
        .filter(|device| device.dev_type_id == DeviceType::PowerSensor)
        .collect::<Vec<&GetDevListData>>()
        .first()
        .unwrap();
    let power_sensor_data = cl.get_realtime_power_sensor_data(power_sensor.id).await.unwrap();
    println!("{:?}", power_sensor_data);

    let inverter: &GetDevListData = devices.iter()
        .filter(|device| device.dev_type_id == DeviceType::ResidentialInverter)
        .collect::<Vec<&GetDevListData>>()
        .first()
        .unwrap();
    let inverter_data = cl.get_realtime_residential_inverter_data(inverter.id).await.unwrap();
    println!("{:?}", inverter_data);
}

```

Tests

env Variables: * HUAWEIUSER * HUAWEIPASSWORD