Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

セッションが切断された後にエラーループに陥る問題の修正 #1

Merged
merged 1 commit into from
May 19, 2023

Conversation

zuku
Copy link
Owner

@zuku zuku commented Apr 27, 2023

メーターとのセッションが意図せず切断された後にSKJOINに失敗し続けてエラーループに陥る問題を修正します。

スマートメーターとの接続セッションは定期的に更新する必要があります。
通常は自動的にセッションが更新されますが、更新処理が何らかの原因で失敗すると以降の通信が行えなくなります。
この状態になった場合、再起動した後の初期化処理で(キャッシュされた値を使用するので)SKSCANを省略してSKJOINを行うと失敗し続ける動作となる場合があります。再接続するためには、使用する値に変更がなくともSKSCANを行う必要があるようです。

初期化処理の一部を見直し、SKJOINに失敗した場合は1回だけSKSCANを(値がキャッシュされていても)実行するようにします。

変更前

  1. (セッション更新に失敗)
  2. 瞬時電力量の取得に規定回数連続して失敗
  3. 再起動
  4. キャッシュの値があるのでSKSCAN省略
  5. SKJOINに失敗
  6. 3に戻る(再起動を繰り返す)

変更後

  1. (セッション更新に失敗)
  2. 瞬時電力量の取得に規定回数連続して失敗
  3. 再起動
  4. キャッシュの値があるのでSKSCAN省略
  5. SKJOINに失敗
  6. SKSCANを強制的に実行
  7. SKJOINを実行

セッション切断時の挙動についてはこちらのWikiにTipsが掲載されていました。

Bルートやってみた - Skyley Official Wiki#Tipsをご紹介

SKJOIN失敗時にSKSCANを再実行する処理を追加
@zuku zuku added the bug Something isn't working label Apr 27, 2023
@zuku zuku self-assigned this Apr 27, 2023
@zuku zuku merged commit 71406a7 into main May 19, 2023
@zuku zuku deleted the handle-session-termination branch May 19, 2023 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant