4个版本
0.1.3 | 2023年12月4日 |
---|---|
0.1.2 | 2023年12月4日 |
0.1.1 | 2023年11月13日 |
0.1.0 | 2023年11月9日 |
1093 在 Web编程
每月下载量 29
33KB
631 代码行
太阳能API
Solar Edge API的Rust库。该库使用在此处找到的API文档
API密钥和站点ID
要访问您的安装数据,您需要获取一个API密钥。您可以从SolarEdge监控系统门户获取此密钥。使用您的SolarEdge账户登录,进入管理员部分,站点访问选项卡,并激活API访问。勾选复选框,您将看到API密钥和站点ID
速率限制
请注意,API是速率限制的,即达到每小时最大请求数量后,它将阻止请求。一小时后,它将再次可用。此外,请注意,测量值似乎限制为每十五分钟一个。您可以考虑在最后读取测量值的时间戳±15分钟后安排数据读取。例如,您可以使用15m 10s的持续时间
let next_update = last_updated_datetime + Duration::seconds(15 * 60 + 10);
有一个便利的方法来帮助解决这个问题
let site_overview: Overview = overview(api_key, site_id);
let (next_update, duration_from_now) = site_overview.estimated_next_update();
请注意,有时API会稍慢一些。在这种情况下,duration_from_now
可以是负数,您需要等待更长一段时间,如下例所示。请注意,这里需要使用checked_add
来处理添加负数的duration_from_now
。
let site_overview: Overview = overview(api_key, site_id);
let (next_update, duration_from_now) = site_overview.estimated_next_update();
let next = Instant::now()
.checked_add(Duration::from_secs(duration_from_now as u64))
.unwrap_or(Instant::now() + Duration::from_secs(30));
// wait next or set timeout at next_update before
// getting power or energy data
使用此crate中的示例
示例将调用几个API方法。要运行它,请使用
cargo run --example use_api -- <API_KEY> <SITE_ID>
要查看HTTP请求和响应,请使用
RUST_LOG=solar_api=trace cargo run --example use_api -- <API_KEY> <SITE_ID>
状态
- 站点数据API
- 站点列表
- 站点详情
- 站点数据:开始和结束日期
- 站点数据:批量版本
- 站点能源
- 站点能源:批量版本
- 站点能源 – 时间段
- 站点能源 – 时间段:批量版本
- 站点功率
- [ ]站点功率:批量版本
- 站点概览
- 站点概览:批量版本
- 站点功率 - 详细信息
- 站点能源 - 详细信息
- 站点功率流
- 存储信息
- 站点图片
- 站点环境效益
- 安装商标志图片
- 站点设备API
- 组件列表
- 库存
- 逆变器技术数据
- 设备更改日志
- 账户列表API
- 仪表API
- 获取仪表数据
- 传感器API
- 获取传感器列表
- 获取传感器数据
- 数据类型
- 时间单位
- 站点状态
- 站点类型
依赖关系
~8-24MB
~337K SLoC