Skip to content

Commit

Permalink
Initial
Browse files Browse the repository at this point in the history
  • Loading branch information
hsakoh committed Jul 22, 2023
1 parent a78e07b commit 55c2a3b
Show file tree
Hide file tree
Showing 236 changed files with 33,727 additions and 1 deletion.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -396,3 +396,5 @@ FodyWeavers.xsd

# JetBrains Rider
*.sln.iml
/src/BRouteMqttApp/appsettings.Development.json
/src/BRouteMqttApp/Data/EPANDESC.json
84 changes: 84 additions & 0 deletions BRouteMqttApp.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.6.33801.468
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkstackIpDotNet", "src\EchonetLite\SkstackIpDotNet\SkstackIpDotNet.csproj", "{E255BF66-8B4A-4B75-BFFB-ED09D46DCDB7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EchoDotNetLite", "src\EchonetLite\EchoDotNetLite\EchoDotNetLite.csproj", "{569D25DE-3615-412C-B196-F931AB48618E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EchoDotNetLite.Specifications", "src\EchonetLite\EchoDotNetLite.Specifications\EchoDotNetLite.Specifications.csproj", "{2DF31A70-E4CA-4197-9B40-E8E06B956770}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EchoDotNetLiteSkstackIpBridge", "src\EchonetLite\EchoDotNetLiteSkstackIpBridge\EchoDotNetLiteSkstackIpBridge.csproj", "{BD4384A0-2D63-4B10-A279-396D21383406}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HomeAssistantAddOn.Core", "src\HomeAssistant\HomeAssistantAddOn.Core\HomeAssistantAddOn.Core.csproj", "{D5E6CC47-CDAF-4DE3-8DCB-D27A2B055CC2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HomeAssistantAddOn.Mqtt", "src\HomeAssistant\HomeAssistantAddOn.Mqtt\HomeAssistantAddOn.Mqtt.csproj", "{846BC676-8B36-462D-BE67-B386BF3756FF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HomeAssistant", "HomeAssistant", "{1C309B10-486B-46D3-8B63-AB7E0D2C11BD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EchonetLite", "EchonetLite", "{4FD98AE6-5A36-4BCB-97D9-818BA7D698F1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BRouteMqttApp", "src\BRouteMqttApp\BRouteMqttApp.csproj", "{E31E305E-FB7A-43E7-881D-815B035BDC7C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BRouteController", "src\BRouteController\BRouteController.csproj", "{A09D870B-88A0-4FCD-9B97-97697E53DD1E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ソリューション項目", "ソリューション項目", "{5C03D648-5D8B-4DCC-878C-BB671EC6AFB7}"
ProjectSection(SolutionItems) = preProject
Dockerfile = Dockerfile
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E255BF66-8B4A-4B75-BFFB-ED09D46DCDB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E255BF66-8B4A-4B75-BFFB-ED09D46DCDB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E255BF66-8B4A-4B75-BFFB-ED09D46DCDB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E255BF66-8B4A-4B75-BFFB-ED09D46DCDB7}.Release|Any CPU.Build.0 = Release|Any CPU
{569D25DE-3615-412C-B196-F931AB48618E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{569D25DE-3615-412C-B196-F931AB48618E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{569D25DE-3615-412C-B196-F931AB48618E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{569D25DE-3615-412C-B196-F931AB48618E}.Release|Any CPU.Build.0 = Release|Any CPU
{2DF31A70-E4CA-4197-9B40-E8E06B956770}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DF31A70-E4CA-4197-9B40-E8E06B956770}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DF31A70-E4CA-4197-9B40-E8E06B956770}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DF31A70-E4CA-4197-9B40-E8E06B956770}.Release|Any CPU.Build.0 = Release|Any CPU
{BD4384A0-2D63-4B10-A279-396D21383406}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD4384A0-2D63-4B10-A279-396D21383406}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD4384A0-2D63-4B10-A279-396D21383406}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD4384A0-2D63-4B10-A279-396D21383406}.Release|Any CPU.Build.0 = Release|Any CPU
{D5E6CC47-CDAF-4DE3-8DCB-D27A2B055CC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5E6CC47-CDAF-4DE3-8DCB-D27A2B055CC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5E6CC47-CDAF-4DE3-8DCB-D27A2B055CC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5E6CC47-CDAF-4DE3-8DCB-D27A2B055CC2}.Release|Any CPU.Build.0 = Release|Any CPU
{846BC676-8B36-462D-BE67-B386BF3756FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{846BC676-8B36-462D-BE67-B386BF3756FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{846BC676-8B36-462D-BE67-B386BF3756FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{846BC676-8B36-462D-BE67-B386BF3756FF}.Release|Any CPU.Build.0 = Release|Any CPU
{E31E305E-FB7A-43E7-881D-815B035BDC7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E31E305E-FB7A-43E7-881D-815B035BDC7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E31E305E-FB7A-43E7-881D-815B035BDC7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E31E305E-FB7A-43E7-881D-815B035BDC7C}.Release|Any CPU.Build.0 = Release|Any CPU
{A09D870B-88A0-4FCD-9B97-97697E53DD1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A09D870B-88A0-4FCD-9B97-97697E53DD1E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A09D870B-88A0-4FCD-9B97-97697E53DD1E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A09D870B-88A0-4FCD-9B97-97697E53DD1E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E255BF66-8B4A-4B75-BFFB-ED09D46DCDB7} = {4FD98AE6-5A36-4BCB-97D9-818BA7D698F1}
{569D25DE-3615-412C-B196-F931AB48618E} = {4FD98AE6-5A36-4BCB-97D9-818BA7D698F1}
{2DF31A70-E4CA-4197-9B40-E8E06B956770} = {4FD98AE6-5A36-4BCB-97D9-818BA7D698F1}
{BD4384A0-2D63-4B10-A279-396D21383406} = {4FD98AE6-5A36-4BCB-97D9-818BA7D698F1}
{D5E6CC47-CDAF-4DE3-8DCB-D27A2B055CC2} = {1C309B10-486B-46D3-8B63-AB7E0D2C11BD}
{846BC676-8B36-462D-BE67-B386BF3756FF} = {1C309B10-486B-46D3-8B63-AB7E0D2C11BD}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6F114C65-85D4-4CFB-B28F-8D7ECF11595E}
EndGlobalSection
EndGlobal
81 changes: 80 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,80 @@
# broute-mqtt
# ホームアシスタント アドオン BRoute-Mqtt
低圧スマート電力量メータをHoma AssistantのMQTT統合にデバイス/センサーとして統合するアドオン

ECHONET Liteプロトコル(Bルート)を経由して情報を取得する為、<br>
HA-OSの搭載された機器に接続可能な、Wi-SUN USBスティックが必要です

![ダッシュボード上の表示例 画像1](_images/01.png)

## 機能概要
* 次の情報を取得し、MQTT統合のデバイス/センサー情報として通知します([MQTT Sensor - Home Assistant](https://www.home-assistant.io/integrations/sensor.mqtt/))
* 起動時/手動での要求時/指定周期の取得
* 瞬時電流計測値(R相) A(アンペア)
* 瞬時電流計測値(T相) A(アンペア)
* 瞬時電力計測値 W(ワット)
* 起動時/手動での要求時/30分毎の定期通知の受信
* 積算電力量計測値(逆方向) kWh
* 積算電力量計測値(正方向) kWh
* 起動時(定性情報)
* メーカコード
* 規格Version情報
* 製造番号
* 設置場所
* 積算電力量、瞬時値それぞれを即時取得するボタンを提供します([MQTT Button - Home Assistant](https://www.home-assistant.io/integrations/button.mqtt/))

![MQTT統合のデバイス画面](_images/02.png)

## 前提条件
* スカイリー・ネットワークス SKSTACK-IP(Single-hop Edition) に対応した動作をする実装となっています
* 「テセラ・テクノロジー [RL7023 Stick-D/IPS](https://www.tessera.co.jp/product/rfmodul/rl7023stick-d_ips.html)」にて動作を確認しています。
* 「JORJIN WSR35A1-00」や「ROHM [BP35A1](https://www.rohm.co.jp/products/wireless-communication/specified-low-power-radio-modules/bp35a1-product)」と互換があるハズです。
* 「Wi-SUN Bルート / HAN」※1 対応のものや、「Wi-SUN Bルート /
Enhanced HAN」※2 対応のものは<br>コマンドの引数や使い方が異なる可能性があります。
* ※1 「ラトックシステム [RS-WSUHA-P](https://www.ratocsystems.com/products/wisun/usb-wisun/rs-wsuha/)」,「テセラ・テクノロジー [RL7023 Stick-D/DSS](https://www.tessera.co.jp/product/rfmodul/rl7023stick-d_dss.html)」や「ROHM [BP35C0](https://www.rohm.co.jp/products/wireless-communication/specified-low-power-radio-modules/bp35c0-product)」,「ROHM BP35C2」
* ※2 「ラトックシステム [RS-WSUHA-J11](https://www.ratocsystems.com/products/wisun/usb-wisun/rs-wsuha/)」,「ROHM [BP35C1-J11](https://www.rohm.co.jp/products/wireless-communication/specified-low-power-radio-modules/bp35c0-j11-product)[BP35C2-J11-T01](https://www.rohm.co.jp/products/wireless-communication/specified-low-power-radio-modules/bp35c0-j11-product)
* 内部ライブラリ`SkstackIpDotNet`,`EchoDotNetLiteSkstackIpBridge`の実装を少し修正すればいけるはず
* その他参考情報
* [Wi-SUNモジュール - Wi-SUNモジュール製品一覧 | ローム株式会社 - ROHM Semiconductor](https://www.rohm.co.jp/products/wireless-communication/specified-low-power-radio-modules#anc-01)
* [ローム Wi-SUN対応無線モジュール|チップワンストップ - 電子部品・半導体の通販サイト](https://www.chip1stop.com/sp/products/rohm_wi-sun-module)
* [Bルートやってみた - Skyley Official Wiki](https://www.skyley.com/wiki/index.php?B%E3%83%AB%E3%83%BC%E3%83%88%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F)

## 導入方法

3種類の方法があります

1. GitHub ContainerRegistoryに登録されたDockerイメージを参照する
1. `_from_ghcr.io`フォルダの中身(config.yamlのみ)を HA-OSの`/addons/broute-mqtt`に配置します
1. 事前に.NETアプリをコンパイルと発行したうえで、HAOS上でDockerイメージをビルドする
1. リポジトリのルートで`./_compile_self/dotnet_publish.ps1`を実行してください。
1. `_compile_self`フォルダの中身一式を HA-OSの`/addons/broute-mqtt`に配置します
1. HA-OS上でDockerイメージをビルドする際に、.NETアプリもコンパイルして発行する
1. `src`フォルダ と `_build_on_haos`フォルダの中身一式を HA-OSの`/addons/broute-mqtt`に配置します
1. HA-OS搭載のマシンが非力な場合、ビルド(インストール)に非常に時間がかかります。<br>その間HA-OSが停止しているように見える場合があります。(RasPi3B+で30分等)**推奨しません。**

## 設定項目
|設定キー|既定値|説明|
|--|--|--|
|BRoute:Id|-|配送電会社から提供される<br>Bルートの認証IDを指定します<br>通常は32文字の英数字です|
|BRoute:Pw|-|Bルートの認証パスワードを指定します<br>通常は12文字の英数字です|
|BRoute:SerialPort|`/dev/ttyUSB0`|HAOSで識別される<br>Wi-SUN USBスティックのシリアルポートを指定します|
|BRoute:ForcePANScan|`false`|PANスキャンを起動時に強制する場合、`true`を指定します<br>`false`の場合、過去の接続時のPANを参照する為、再起動時等で再接続が早くなります|
|BRoute:PanDescSavePath|`/data/EPANDESC.json`|PANの情報を保存する先を指定します|
|BRoute:InstantaneousValueInterval|`00:01:10`|瞬時値の周期的な取得間隔を指定します<br>TimeSpan(`HH:mm:ss`)形式で記述します|
|Mqtt:Host|-|MQTTブローカー<br>ホスト名を指定します|
|Mqtt:Port|`1883`|ポート番号を指定します|
|Mqtt:Id|-|認証がある場合、IDを指定します|
|Mqtt:Pw|-|認証がある場合、PWを指定します|
|Mqtt:Tls|`false`|TLS接続を受け入れる場合、指定します|
|LogLevel|`Trace`|ログレベルを設定します<br>`Trace`,`Debug`,`Information`,`Warning`,`Error`,`Critical`,`None`|

## 開発者(&アドオン外での実行)向けの情報
* アドオンとしては、Home Assistantベースイメージに .NETランタイムを導入し、<br>`.NET のコンソールアプリケーションを起動しているだけです。
* アプリケーション単体はWindows上でも実行可能です。
* シリアルポートに`COM3`等を設定してください。
* slnファイルをVisualStudioで開き、デバッグ可能です。
* Windows上では、AddOnの構成ファイル`/data/options.json`にアクセスできないと思われるので、<br>`appsettings.Development.json`に構成を行ってください。
* 発行時は、ridで`win-x64`等を指定してください。<br> [.NET Runtime Identifier (RID) カタログ | Microsoft Learn](https://learn.microsoft.com/ja-jp/dotnet/core/rid-catalog)
* [.NET での汎用ホスト 既定の builder 設定](https://learn.microsoft.com/ja-jp/dotnet/core/extensions/generic-host#default-builder-settings)の通り、<br>環境変数やコマンドライン引数からも読み込み可能です<br>(階層は`BRoute:Id`等コロンを含めて表現が必要です)
* Wi-SUN USBスティックとのやり取りは、[NuGet Gallery | System.IO.Ports 6.0.0](https://www.nuget.org/packages/System.IO.Ports/6.0.0)を使用しています。
* Linux等向けは動作環境毎の発行が必要となる場合があります。(`linux-arm64``linux-musl-arm64`の違いとか)
* 参考:[System.IO.Ports.SerialPort not working on Linux arm64 · Issue #74332 · dotnet/runtime](https://github.com/dotnet/runtime/issues/74332)
21 changes: 21 additions & 0 deletions _build_on_haos/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ARG BUILD_FROM
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine as builder

WORKDIR /src
COPY /src .
RUN dotnet restore "BRouteMqttApp/BRouteMqttApp.csproj"
RUN dotnet publish "BRouteMqttApp/BRouteMqttApp.csproj" -r linux-musl-arm64 -p:PublishSingleFile=true --self-contained false -c Release -o /app/aarch64 --no-restore
RUN dotnet publish "BRouteMqttApp/BRouteMqttApp.csproj" -r linux-musl-x64 -p:PublishSingleFile=true --self-contained false -c Release -o /app/amd64 --no-restore

FROM $BUILD_FROM as final

ARG BUILD_ARCH
ENV BUILD_ARCH=$BUILD_ARCH

# Install requirements for add-on
RUN \
apk add --no-cache \
gcompat bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib dotnet6-runtime

COPY --from=builder /app/$BUILD_ARCH /app
ENTRYPOINT ["/app/BRouteMqttApp"]
44 changes: 44 additions & 0 deletions _build_on_haos/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "BRoute-Mqtt"
description: "Wi-SUNドングル/ECHONETLiteプロトコルを通じて、低圧スマート電力量メータをHoma AssistantのMQTTにデバイス/センサーとして統合するアドオン"
version: "1.0.0"
slug: "broute_mqtt"
startup: application
boot: manual
init: false
arch:
- aarch64
- amd64
devices:
- '/dev/ttyUSB0'
services:
- 'mqtt:need'
options:
BRoute:
Id: ''
Pw: ''
SerialPort: '/dev/ttyUSB0'
ForcePANScan: false
PanDescSavePath: '/data/EPANDESC.json'
InstantaneousValueInterval: '00:01:10'
Mqtt:
Host: ''
Port: 1883
Id: ''
Pw: ''
Tls: false
LogLevel: 'Trace'
schema:
BRoute:
Id: str
Pw: password
SerialPort: str
ForcePANScan: bool
PanDescSavePath: str
InstantaneousValueInterval: str
Mqtt:
Host: str
Port: "int(0,65535)"
Id: str
Pw: password
Tls: bool
LogLevel: list(Trace|Debug|Information|Warning|Error|Critical|None)
Empty file added _build_on_haos/src/.gitignore
Empty file.
2 changes: 2 additions & 0 deletions _compile_self/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/aarch64
/amd64
13 changes: 13 additions & 0 deletions _compile_self/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
ARG BUILD_FROM
FROM $BUILD_FROM

ARG BUILD_ARCH
ENV BUILD_ARCH=$BUILD_ARCH

# Install requirements for add-on
RUN \
apk add --no-cache \
gcompat bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib dotnet6-runtime

COPY /$BUILD_ARCH /app
ENTRYPOINT ["/app/BRouteMqttApp"]
44 changes: 44 additions & 0 deletions _compile_self/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "BRoute-Mqtt"
description: "Wi-SUNドングル/ECHONETLiteプロトコルを通じて、低圧スマート電力量メータをHoma AssistantのMQTTにデバイス/センサーとして統合するアドオン"
version: "1.0.0"
slug: "broute_mqtt"
startup: application
boot: manual
init: false
arch:
- aarch64
- amd64
devices:
- '/dev/ttyUSB0'
services:
- 'mqtt:need'
options:
BRoute:
Id: ''
Pw: ''
SerialPort: '/dev/ttyUSB0'
ForcePANScan: false
PanDescSavePath: '/data/EPANDESC.json'
InstantaneousValueInterval: '00:01:10'
Mqtt:
Host: ''
Port: 1883
Id: ''
Pw: ''
Tls: false
LogLevel: 'Trace'
schema:
BRoute:
Id: str
Pw: password
SerialPort: str
ForcePANScan: bool
PanDescSavePath: str
InstantaneousValueInterval: str
Mqtt:
Host: str
Port: "int(0,65535)"
Id: str
Pw: password
Tls: bool
LogLevel: list(Trace|Debug|Information|Warning|Error|Critical|None)
3 changes: 3 additions & 0 deletions _compile_self/dotnet_publish.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dotnet restore "src/BRouteMqttApp/BRouteMqttApp.csproj"
dotnet publish "src/BRouteMqttApp/BRouteMqttApp.csproj" -r linux-musl-arm64 -p:PublishSingleFile=true --self-contained false -c Release -o "./_compile_self/aarch64" --no-restore
dotnet publish "src/BRouteMqttApp/BRouteMqttApp.csproj" -r linux-musl-x64 -p:PublishSingleFile=true --self-contained false -c Release -o "./_compile_self/amd64" --no-restore
45 changes: 45 additions & 0 deletions _from_ghcr.io/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "BRoute-Mqtt"
description: "Wi-SUNドングル/ECHONETLiteプロトコルを通じて、低圧スマート電力量メータをHoma AssistantのMQTTにデバイス/センサーとして統合するアドオン"
version: "1.0.0"
slug: "broute_mqtt"
startup: application
boot: manual
init: false
image: ghcr.io/hsakoh/broutemqtt-{arch}
arch:
- aarch64
- amd64
devices:
- '/dev/ttyUSB0'
services:
- 'mqtt:need'
options:
BRoute:
Id: ''
Pw: ''
SerialPort: '/dev/ttyUSB0'
ForcePANScan: false
PanDescSavePath: '/data/EPANDESC.json'
InstantaneousValueInterval: '00:01:10'
Mqtt:
Host: ''
Port: 1883
Id: ''
Pw: ''
Tls: false
LogLevel: 'Trace'
schema:
BRoute:
Id: str
Pw: password
SerialPort: str
ForcePANScan: bool
PanDescSavePath: str
InstantaneousValueInterval: str
Mqtt:
Host: str
Port: "int(0,65535)"
Id: str
Pw: password
Tls: bool
LogLevel: list(Trace|Debug|Information|Warning|Error|Critical|None)
Binary file added _images/01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions src/BRouteController/BRouteController.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageReference Include="EndianBitConverter" Version="1.1.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\EchonetLite\EchoDotNetLiteSkstackIpBridge\EchoDotNetLiteSkstackIpBridge.csproj" />
</ItemGroup>

</Project>
Loading

0 comments on commit 55c2a3b

Please sign in to comment.