#protobuf #proto #definition #energyleaf

energyleaf-proto

Energyleaf 的 Protobuf 定义

10 个版本 (4 个稳定版本)

新版本 1.2.0 2024年8月23日
1.1.1 2024年8月12日
1.0.1 2024年6月27日
0.2.3 2024年6月27日
0.1.6 2024年6月4日

#2275编码 分类中

Download history 308/week @ 2024-06-03 184/week @ 2024-06-10 3/week @ 2024-06-17 292/week @ 2024-06-24 55/week @ 2024-07-01 81/week @ 2024-07-29 117/week @ 2024-08-12

每月 198 次下载

MIT 许可协议

5KB

Energyleaf Proto - Rust

包含与 energyleaf 后端交互的 protobuf 文件。

安装

安装 energyleaf-proto

  cargo add energyleaf-proto

协议

syntax = "proto3";

package energyleaf;

enum SensorType {
  ANALOG_ELECTRICITY = 0;
  DIGITAL_ELECTRICITY = 1;
  GAS = 2;
  WATER = 3;
}

message TokenRequest {
  string client_id = 1;
  SensorType type = 2;
  optional bool need_script = 3;
}

message TokenResponse {
  optional string access_token = 1;
  optional uint32 expires_in =
      2;             // in seconds (look documentation for correct value)
  uint32 status = 3; // In range of 200-299 correct, else bad
  optional string status_message = 4;
  optional string script = 5;
  optional uint32 analog_rotation_per_kwh = 6;
}

message SensorDataRequest {
  string access_token = 1;
  SensorType type = 2;
  double value = 3;                  // kWh total
  optional double value_current = 4; // W currently
  optional double value_out = 5;     // kWh total out (e.g. pv)
  optional uint64 timestamp = 6;
}

message SensorDataResponse {
  uint32 status = 1; // In range of 200-299 correct, else bad
  optional string status_message = 2;
}

message ScriptAcceptedRequest { string access_token = 1; }

message ScriptAcceptedResponse {
  uint32 status = 1;
  optional string status_message = 2;
}

依赖

~0.2–2MB
~27K SLoC