Skip to content

smdn/Smdn.Net.EchonetLite

 
 

Repository files navigation

GitHub license tests/main CodeQL

Smdn.Net.EchonetLite

Smdn.Net.EchonetLiteは、ECHONET Liteやその周辺の規格/仕様を.NETで使用できるように実装したものです。 Smdn.Net.EchonetLite is the implementation of ECHONET Lite and its related standards/specifications for .NET.

Introduction

このプロジェクトはHiroyukiSakoh/EchoDotNetLiteをフォークしたものです。 This is a project forked from HiroyukiSakoh/EchoDotNetLite.

本プロジェクトでは、オリジナルであるHiroyukiSakoh/EchoDotNetLiteをよりモダンな.NET/C#コードに書き換え、NuGetパッケージとしてリリースすることを目的としています。 また、Bルートサービス(電力メーター情報発信サービス)を.NETで利用できるようにするために必要な実装を確保・維持することを主な動機としています。

現時点ではBルートサービスをターゲットとしていますが、長期的にはECHONET Liteを広くサポートすることも検討しています。

Important

本プロジェクトは、オリジナルから引き続きMIT Licenseを採用しており、同ライセンスの条項に従ってフォーク・改変を行っていますが、オリジナルとの連絡・連携・追従を行っておらず、個別のプロジェクトとして開発を行っていることを書き添えておきます。

Smdn.Net.EchonetLite

NuGet

Smdn.Net.EchonetLiteは、「ECHONET Lite SPECIFICATION 第2部 ECHONET Lite 通信ミドルウェア仕様」(en:Part II ECHONET Lite Communication Middleware Specifications)に記載されている仕様に基づく実装を提供します。

同仕様書における通信ミドルウェア(Communication Middleware)に相当する機能を.NETで実装したEchonetClient、および下位通信層(Lower Communication Layers)との通信エンドポイントを実装するためのインターフェースIEchonetLiteHandlerなどのAPIを提供します。

version 1.0.0時点では、同仕様Ver.1.13をもとに全サービスを実装しています。 またIEchonetLiteHandlerの実装として、下位通信層としてUDPを使用する、いわゆるLANのブリッジクラスUdpEchonetLiteHandlerを同梱しています。

本ライブラリは、オリジナルにおけるEchoDotNetLiteをベースにしています。

Note

Bルートで使用しないサービスのテストが不足しています。 また、全般的に異常系処理全般の考慮が不足しています。

Warning

現在のところAPIは未確定・変更予定あり、実装は一部不完全です。

Smdn.Net.EchonetLite.Appendix

NuGet

Smdn.Net.EchonetLite.Appendixは、「ECHONET SPECIFICATION APPENDIX ECHONET 機器オブジェクト詳細規定」(en:APPENDIX Detailed Requirements for ECHONET Device objects)に記載されているクラスグループ・機器オブジェクト・プロパティ構成の定義、およびその定義を参照するためのAPIを提供します。

APPENDIX ECHONET機器オブジェクト詳細規定 Release K (日本語版)をもとに生成したJSONファイルをアセンブリのリソースとして埋め込んでいます。 また、それを読み取るクラス郡を実装しています。

本ライブラリは、オリジナルにおけるEchoDotNetLite.Specificationsをベースにしています。

Note

APPENDIXからJSONへの変換過程で脱字等が発生している可能性あります。

Note

今後のバージョンで、より新しいReleaseへの追従、およびMachine Readable Appendixをベースにした生成手段を使用するよう改善予定です。

Warning

現在のところAPIは未確定・変更予定あり、実装は一部不完全です。

その他のプロジェクト/ライブラリ

オリジナルに存在していたSKSTACK-IP関連の実装は、本プロジェクトでは引き継がずに廃止しています。

SkstackIpDotNetについては、代替実装としてSmdn.Net.SkStackIPを使用することができます。

EchoDotNetLiteSkstackIpBridgeに相当する実装については、今後本プロジェクトでも実装予定です。

Usage

udp-handlerは、(Smdn.Net.EchonetLiteの実装確認を目的とした、LAN経由(UDP)で家電を操作するコントローラーの実装例です。 MoekadenRoomでサポートする機器オブジェクトとの相互通信を実装しています。

Warning

このサンプルコードはオリジナルより引き継いだものですが、本プロジェクトとしてはコンパイル可能性までの確認まではしていますが、動作確認はしていません。 したがって、現時点で動作しなくなっている可能性は否定できません。

動作確認環境

以下はオリジナルのEchoDotNetLiteについての確認状況です。

  • OS:Windows10/Raspbian Stretch
  • ミドルウェア:.NET Core 2.1 Runtime v2.1.6
  • Wi-SUNモジュール: RL7023 Stick-D/IPS
  • 機器オブジェクトエミュレーター:MoekadenRoom
  • 低圧スマート電力量メータ:中部電力管内(2機)

本プロジェクトにおけるSmdn.Net.EchonetLiteでは、以下の環境での動作を確認しています。

  • OS: Ubuntu 22.04
  • ミドルウェア: .NET Runtime v8.0.3
  • Wi-SUNモジュール: Bルート対応 Wi-SUNモジュール ROHM BP35A1
  • 低圧スマート電力量メータ: 東京電力管内・1機

参考情報

For contributers

Contributions are appreciated!

If there's a feature you would like to add or a bug you would like to fix, please read Contribution guidelines and create an Issue or Pull Request.

IssueやPull Requestを送る際は、Contribution guidelinesをご覧頂ください。 使用言語は日本語で構いません。

Notice

License

本プロジェクトはMIT Licenseの条件に基づきライセンスされています。 This project is licensed under the terms of the MIT License.

Third-Party Notices

TO BE ADDED