Wio Terminal版Wi-SUNゲートウェイの作成

Wio Terminalとラズパイ用Wi-SUNインタフェースボードとの接続実験で試していたものですが、ようやくプログラムが完成しました。

内容は、こちらに記載しています。

ずっとラズパイ版で運用してきましたが、しばらくWio Terminal版に切り替えて運用してみたいと思っています。

なお、WiFi接続でうまく動かせなかったので、Ethernet接続のみの対応(Ethernet HAT必須)となっています。(WiFi対応は、今後の課題として継続調査します)

AppStoreの申請、通りました。

情報取得対象の機器(太陽光発電/蓄電池システムのモニタ)とiPhoneで操作しているところを別のiPhoneで撮影したビデオをアップロードして、なんとか申請が通ってくれました。

ダメだったことを考えて、三脚をポチったところでした。(エアコンを操作しているところでも撮影し直そうかと…)

Download on the App StoreEchonetScanner

AppStoreの申請⇒その日のうちに却下されました

昨日申請した、iOSアプリですが申請当日に却下されました。

時間的な流れは、

  • 4/14 15:56に「Waiting for Review(申請待ち)」メール
  • 4/14 21:48に「In Review(申請中)」メール
  • 4/14 22:53に「New Message from App Store Review Regarding EchonetScanner」メールで申請を却下する旨、通知される

といった感じです。思ったより、迅速に対応してもらえるんですね…

“AppStoreの申請⇒その日のうちに却下されました” の続きを読む

Echonetスキャナ(改めEcohnetScanner)をAppStoreに申請してみました。

EchonetScannerですが、だいぶ使えるようになってきたのでAppStoreに申請してみました。AppStoreにアプリを登録したのは1月頃でしたが、TestFlightでテストしていたので4月の申請となりました。

初のiOSアプリ申請です。さて、どうなることやら…

“Echonetスキャナ(改めEcohnetScanner)をAppStoreに申請してみました。” の続きを読む

EchonetScannerをiOS14.1で動かすと、Fatal Errorになってしまう。

少しずつ機能追加しながらEchonetScannerの開発を続けています。手持ちのiPhoneで動作確認して問題なく動いていたのですが、最近購入したiPhone 12 miniで試したところ、クラッシュが発生してしまいました。

事象発生はいつも同じ操作で、バックグラウンドで情報要求のUDPパケットを送信、受信データを画面に反映させるところです。

  • 問題なく動作したデバイス
    • iPhone 11 Pro(iOS13.5.1)
    • iPhone X(iOS14.4)
    • iPhone 7(iOS14.4)
  • クラッシュが発生したデバイス
    • iPhone 12 mini(iOS14.1)
“EchonetScannerをiOS14.1で動かすと、Fatal Errorになってしまう。” の続きを読む

W5500のマルチキャストの挙動に注意

Wio Terminal用Ethernet HATに使うつもりのW5500(WIZnet社製)ですが、マルチキャスト通信を行うには注意が必要ということがわかりました。

結論としては、マルチキャスト受信とユニキャスト送信が必要な場合、ソケットを2つ使う必要があるようです。

ググったところ、こちらの情報(can’t receive multicast packet and respond)にも同様のことが書かれていました。

“W5500のマルチキャストの挙動に注意” の続きを読む

ECHONETスキャナを作ってみる(5)

なんとかひと段落

各プロパティ値の表示を意味ある形にして、ノード一覧をソートしました。プロパティの設定は制約としてできないようにしていますが、スキャナ(Echonet機器のプロパティ値の取得)としては、それなりに使えるようになったと思います。

プログラムソースはGitHubで公開しています。

ECHONETスキャナを作ってみる(4)

先日の課題が一応解決

しばらく待たないと情報取得できない件ですが、依存ライブラリのELSwiftに1行追加したところ、すんなり情報が返ってくるようになりました。(後述の通り、依存ライブラリの修正は不要

追加したのは、ELSwift.swiftのinitialize()メソッドの最後に、自ノードインスタンスリストSの取得パケット送信(マルチキャスト)。

try ELSwift.sendOPC1( EL_Multi, [0x0e,0xf0,0x01], [0x0e,0xf0,0x01], 0x62, 0xd6, Node_details["d6"]! );

オリジナルのコードでは、

  1. インスタンス通知(0xD5のINF)

だけだったのが、

  1. インスタンス通知(0xD5のINF)
  2. 自ノードインスタンスリストS取得(0xD6のGet)

となる格好となります。

よく見たら、追加する行はELSwift.search()メソッドの内容と同じでした。

依存ライブラリをオリジナルに戻し、ELSwift.initialize()を呼び出した直後にELSwift.search()を呼び出せば同等の結果になることを確認できました。