となりの日本家屋がスマートホームなわけがない

築70年の日本家屋を文化的に過ごすため、今流行りのスマートホーム化を施工した記憶領域。

OpenJDKの更新(Amazon Correttoに入替え)

前回は、RPAソフトのSikuliXのインストールまでを紹介しました。

その際、OpenJDKはオラクルさんのOpenJDK12を使用しましたが、今回は安心して使用できる物に入れ替えます。

 

[目次]

   

更新する理由

前回インストールしたのは、オラクルさんがオープンソース向けにビルドした64bit Windows版のOpenJDK12ですが、サポート期限が2019年9月で切れているようです。

 

JDK12のままでも、ネットワークに接続せず完全にスタンドアローンで使用するのであれば、ネットワーク経由でウィルスに感染することはありません。しかし、RPAで使用するにはネットワークに接続するケースがほとんどでしょうから、セキュリティリスクが伴います。

そこで、現在でもサポートされており、無償で、商用利用できるJDKに入れ替えることにします。

 

OpenJDKの選定

ネットで検索すると、各団体からOpenJDKが公開されていることがわかります。この中から今回は、Amazonさんが提供している「Amazon Corretto」を使ってみます。

 

このソフトを選んだ理由は次の3点です。

  1. 無償で使用できる。
  2. ライセンスが「Class Path Exception (GPLv2 と CPE) 付きの GNU 公衆利用許諾書バージョン 2」なので、商用利用ができる。
  3. Corretto 8であれば、2023年 6月まで長期サポート(LTS)を更新する。

特に3項は、半年に一度などでJDK環境を入れ替えしなくても良いという点では、大きなポイントでした。

 

Corretto11での不具合

Corretto11はサポート期限が2024年8月までなので、Corretto8より安心して使える期間が長いのですが、前回発生した「awt.dll」のエラーが発生します。従ってCorrettoを使う場合だと、8しか選択肢がありません。

C:\>"C:\Program Files\Amazon Corretto\jdk11.0.7_10\bin\java.exe" -jar "C:\WinAP\SikuliX\sikulixide-2.0.4.jar"
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff9fee6fa16, pid=11068, tid=16008
#
# JRE version: OpenJDK Runtime Environment (11.0.7+10) (build 11.0.7+10-LTS)
# Java VM: OpenJDK 64-Bit Server VM (11.0.7+10-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8fa16]

 

Corretto8のインストール

公式サイトからたどって、Corretto8のダウンロードページを開きます。

 

Windows x64用を探します。ZIP形式以外に、MSI形式でダウンロードできる物も用意されているので、今回はそちらを使用します。

https://corretto.aws/downloads/latest/amazon-corretto-8-x64-windows-jdk.msi

 

ダウンロードしたMSIファイルをダブルクリックしてインストールします。図1で示すように、インストーラの途中でオプションを変更することはありません。

f:id:a03:20200503111202j:plain
f:id:a03:20200503111206j:plain
f:id:a03:20200503111210j:plain
f:id:a03:20200503111214j:plain
f:id:a03:20200503111219j:plain
図1.インストーラ

 

途中、UACの確認が表示されることがあるので、「はい」を押します。

  

今回インストールされたフォルダは「C:\Program Files\Amazon Corretto\jdk1.8.0_252」でした。 

 

起動してみよう

インストールが済んだら、SikuliXを起動するショートカットを作成します。

今回は下記のショートカットを作成しました。

「"C:\Program Files\Amazon Corretto\jdk1.8.0_252\bin\java.exe" -jar "C:\WinAP\SikuliX\sikulixide-2.0.4.jar"」

f:id:a03:20200502160905j:plain
f:id:a03:20200503111227j:plain
図2.起動用ショートカット

 

 

ショートカットをダブルクリックしてしばらくすると、SikuliXの画面が表示されます。

f:id:a03:20200503111231j:plain

図3.SikuliXの画面

 

まとめ 

 以上でSikuliXでRPAをする準備が再び整いました。次回こそは実際にスクリプトを作ってみましょう。

 

自宅でできるRPA(準備編)

今回は自宅でできるRPAをご紹介します。

 

RPAとは「ロボティック・プロセス・オートメーション」の頭文字を取ったもので、ざっくり説明すると、ソフトウェアのロボットでアプリケーションを自動操作するといったもの。

昔風に荒く言うと、「Windowsで動くバッチ」と言った方が、伝わる人も多いのかもしれません。

 

ノンコーディング」というのがキーワードにあるようですが、ヤフオクの自動再出品マクロを「UWSC」とテキストエディタで組んでいた経験からすると、便利になったものだと感慨深いものです。

 

今回は準備編として、RPAソフトのセットアップを行います。

 

[目次]

   

使用するRPAソフト

今回使用するRPAソフトは「SikuliX」です。

 

このソフトを選んだ理由は次の3点です。

  1. 無償で使用できる。
  2. ライセンスが「MIT License」なので、商用利用ができる。
  3. スクリプトの条件に画像が使用できる。

画像を条件に使えるのは、UWSCでの経験が活かせると考えたから。また、無償で商用利用できるのは、職場の効率向上につながる大きなポイントでした。

 

RPAソフトの準備

SikuliXの動作には、Java環境が必要です。

Javaのインストール

公式サイトからJavaのランタイムソフトをダウンロードしてインストールするのが順当な手段ですが、公式サイトのランタイム(JavaSE)を商用利用する場合、ライセンス費用が発生します。この記事の執筆時点で、3,600円/本・年です。

f:id:a03:20200502152245j:plain

図1.JavaSEのお値段

お金を払って使う場合はオラクルストアで購入しても良いですが、今回は無償で使う方法を説明します。

それは、Oracleさんがオープンソースビルドで提供している「OpenJDK」を使用する方法です。

 

今回ダウンロードしたランタイムは、最新のJDK14ではなく、JDK12の64bitWindows版です。

https://download.java.net/openjdk/jdk12/ri/openjdk-12+32_windows-x64_bin.zip

 

Zipファイルを解凍(正式には伸張)し、適当なフォルダに移動させておきます。

今回は「C:\WinAP\Jdk-12」としました。

 

なぜJDK12なのか

ちなみに、JDK14とSikuliXの組み合わせで起動させると、こちらの環境ではエラーが発生します。

C:\>C:\WinAP\jdk-14\bin\java.exe -jar C:\WinAP\SikuliX\sikulixide-2.0.4.jar
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff9dbe6f74a, pid=11660, tid=12580
#
# JRE version: OpenJDK Runtime Environment (14.0+36) (build 14+36-1461)
# Java VM: OpenJDK 64-Bit Server VM (14+36-1461, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8f74a]

 

バージョンを下げて、JDK13とSikuliXの組み合わせで起動させても、同じようなエラーが発生します。

C:\>C:\WinAP\jdk-13\bin\java.exe -jar C:\WinAP\SikuliX\sikulixide-2.0.4.jar
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ff9dbc8f98a, pid=12328, tid=12376
#
# JRE version: OpenJDK Runtime Environment (13.0+33) (build 13+33)
# Java VM: OpenJDK 64-Bit Server VM (13+33, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8f98a]

 

「0xc0000005」。またこいつかと思う値です。例外です。VCで開発していたとき、お世話になったヤツです。

ネットを調べると同じようなエラーで苦労されている方が全世界に見受けられます。どうやらJDK14と13のawt.dllには不具合があるようです。素直にJDK12にするか、もしかしたら、有償のJavaSEだと不具合が解消されているかもしれませんのでそちらを選択しましょう。

 

SikuliXのインストール

続いてSikuliXをダウンロードします。

https://launchpad.net/sikuli/sikulix/2.0.4/+download/sikulixide-2.0.4.jar

 

最後にJythonをダウンロードします。これがないとIDE統合開発環境)でPythonが使えません。

https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.1/jython-standalone-2.7.1.jar

 

上記のリンクはバージョンアップなどにより使えなくなる可能性がありますので、その場合はSikuliXの公式ページから辿るようにしてください。

 

ダウンロードしたファイルも適当なフォルダに移動させます。

 今回は「C:\WinAP\SikuliX」に移動させました。

 

起動してみよう

ダウンロードとフォルダへの格納が済んだら、ショートカットを作成します。

今回は下記のショートカットを作成しました。

「C:\WinAP\jdk-12\bin\java.exe -jar "C:\WinAP\SikuliX\sikulixide-2.0.4.jar"」

 

f:id:a03:20200502160905j:plain
f:id:a03:20200502174000j:plain
図2.起動用ショートカット

 

ショートカットをダブルクリックしてしばらくすると、SikuliXの画面が表示されます。

f:id:a03:20200502174514j:plain

図3.SikuliXの起動画面

 

まとめ 

 以上でSikuliXでRPAをする準備が整いました。次回は実際にスクリプトを作ってみましょう。

 

Andoroidスマホで複数のSkypeアカウントを同時に使う

ITmediaMMD研究所の調査結果が記事になっていますが、Skypeの利用者が以前より増えているようです。

 

それに伴い、複数のSkypeアカウントを使う方も増えているのではないでしょうか。

マイクロソフトのサポートを確認すると、同時に複数の Skype アカウントを実行するには、以下の2つの方法が紹介されています。

  1. 複数のデバイスを使用する
  2. ブラウザなどでWebで使用する

同時に複数の Skype アカウントを実行することができますか。 | Skype サポート

 

1と2のどちらも、確かにそうすれば同時に使用できることはわかりますが、普通のSkypeの使い方とはちょっと違う気がします。

そこで、今回は1台のAndoroidスマホで複数(2つ)のSkypeアカウントを同時に使う方法を考えてみます。

 

[目次]

 

注意事項

この記事は執筆時点(2020年4月25日現在)に於いて、当方の環境で確認したものです。今後アプリケーションのバージョンアップなどにより、使用できなくなる可能性があります。

また、職場から貸与されているスマホSkypeのアカウントを使用する場合は、各職場で決められているルールに従って下さい。

 

用意するもの

  1. Androidスマホ
  2. 2つのSkypeアカウント

 

Androidは手元にあるモトローラのmoto e5を使用します。セットアップされているAndroidのバージョンは「8.0.0」ですが、それ以降であれば問題なく使用できると思います。

 

アプリケーションの準備

手元のAndoroidスマホには、すでにSkypeアプリがインストールされ、日常的に使われているものとします。しかしこのままでは1つのSkypeアカウントしかサインインできず、2つのアカウントを同時に使うことはできません。

そこでGoogle Playの早期アクセスで公開されている「Skype Lite」を追加でインストールします。

Skype Liteとはいわゆる軽量化したSkypeで、公式ページにはインド向けに設計されたとあります。もちろん日本でも日本語で使用できます。

今回の記事で使用したバージョンは下記の通りです。

No. 名称 バージョン
1 Skype 8.59.0.77
2 Skype Lite  1.84.76.1

 

ちなみに早期アクセスとは、新しい Android アプリを正式なリリース前に試すことができるサービスで、詳細は下記を参照してください。

 

Skype Liteのインストール

Skype Liteの早期アクセスに登録する画面を手元に残していなかったため、この記事では早期アクセスに登録済の状態で説明します。

そのため、これから早期アクセスに登録される方と、画面や操作方法が異なる可能性があります。従いまして、下記のインストール手順はあくまでも参考に留めてください。

 

  1. Google Playを開き、キーワード:Skypeで検索します。
    そうすると、既にインストールされているSkypeと、今からインストールするSkype Liteが表示されるので、赤丸で囲んだSkype Liteのタイトルを押します。

    f:id:a03:20200425124848p:plain

    図1.Skypeの検索結果

     

  2. Skype Liteの説明を一通り確認し、赤丸で囲んだ「インストール」を押します。

    f:id:a03:20200425125409p:plain

    図2.Skype Liteの説明

     

  3. インストールが完了したら、赤丸で囲んだ「開く」を押します。

    f:id:a03:20200425131900p:plain

    図3.Skype Liteインストール完了

     

  4. Skype Liteの起動中画面

    f:id:a03:20200425132925p:plain

    図4.Skype Liteの起動中画面

     

  5. Skype Liteのサインイン画面が開いたら、赤丸で囲んだ「サインイン」を押します。尚、2つ目のアカウントをまだ作成していなければ、「アカウントを作成」を押すことでここから追加できるようです。

    f:id:a03:20200425134745p:plain

    図5.サインイン画面

     

  6. スマホの連絡先を、Skype Liteに使用させるかの確認画面が表示されます。許可するか許可しないかを選びそれぞれの文字を押します。

    f:id:a03:20200425141448p:plain

    図6.連絡先の使用確認

     

  7. サインイン画面で、2つめのSkypeアカウントのメールアドレスやSkype IDなどを入力し、「次へ」を押します。

    f:id:a03:20200425144838p:plain

    図7.サインイン画面

     

  8. 2つめのSkypeアカウントのパスワードを入力して、「サインイン」を押すと、サイン画面が表示されます。
    f:id:a03:20200425145421p:plain
    f:id:a03:20200425145707p:plain
    図8.パスワードの入力とサインイン中

     

  9. 下図の左が初期の画面で、右が複数の人と会話した後の画面です。
    f:id:a03:20200425151133p:plain
    f:id:a03:20200425151143p:plain
    図9.Skype Liteの画面

     

  10. 左上のメニュー画面を開くと下記のように表示されます。

    f:id:a03:20200425152916p:plain

    図10.メニュー画面

     

  11. メニュー画面の「設定」から、「ダーク テーマを使用」を切り替えることで、ダークテーマが使用できます。
    f:id:a03:20200425153858p:plain
    f:id:a03:20200425153518p:plain
    図11.ダークテーマへの切り替え

     

  12. メニュー画面の「設定」から「概要」を開くと、バージョンなどの情報が参照できます。

    f:id:a03:20200425160005p:plain

    図12.概要画面

     

  13. SkypeSkype Liteのアイコンをドックに並べるとこのような感じになります。

    f:id:a03:20200425161816p:plain

    図13.ホーム画面

     

  14. SkypeSkype Liteとを実行してタスク一覧を表示すると、次のようになります。

    f:id:a03:20200425161750p:plain

    図14.タスク一覧

     

動作確認

SkypeサウンドテストサービスはSkype Liteでも使用できるので、必要に応じて通話ができるか確認しましょう。


問題なく通話ができるようでしたら、それぞれのSkypeアカウントで登録している相手から、メッセージやコールが入ってくると思います。

 

まとめ 

 以上でAndoroidスマホで複数のSkypeアカウントを同時に使用することができるようになりました。

 

OK グーグル! ライトをつけて!

前回までで、iPhoneから自分の声で「照明」と「エアコン」をコントロールできるようにしました。今回はAndroidで自分の声でコントロールしてみたいと思います。

 

[目次]

 

用意するもの

  1. SwitchBotハブミニ
  2. Android

 

SwitchBotハブミニ」は前回までで設定が済んでいます。

Androidは手元にあるモトローラのmoto e5を使用します。この記事ではAndroidのバージョンは「8.0.0」を使用しますが、Google Homeアプリが対応しており正常に動作するのであればどのバージョンでも問題ありません。

 

使用するアプリのバージョン

念のため使用するOSやアプリのバージョンを下記しておきます。

No. 名称 バージョン
1 Android 8.0.0(Oreo)
2 Homeアプリ  2.19.1.18

 

Androidの設定

詳細は以下のSwitchBotサポートページを参照してもらえばよいのですが、ざっくり説明すると。

  1. Googleの「Home」アプリに「SwitchBot」サービスを登録します。
    このとき、事前に登録していたSwitchBotサービスのユーザーIDとパスワードが必要です。
  2. 「Home」アプリに「SwitchBot」で設定したデバイスが認識されれば設定完了です。

 

参考として設定が完了した「Home」アプリの画面を図1に示します。

 

f:id:a03:20200412214100p:plain

図1.Homeの画面


 

 

動作確認

寝室のライトが消えている状態で、Androidに向かって、「OK グーグル!寝室のライトをつけて」でライトが点灯したでしょうか。問題なければライトの消灯、エアコンの動作も確認します。

 

まとめ 

こうして、Androidから音声で、照明とエアコンのコントロールができるようになりました。

次は iPhoneのショートカットアプリの小技を紹介します。

 

ヘイシリ! ライトをつけて!

前回までで、Echo Dotから「照明」と「エアコン」をコントロールできるようにしました。今回はiPhoneから自分の声でコントロールしてみたいと思います。

 

[目次]

 

用意するもの

  1. SwitchBotハブミニ
  2. iPhone

 

SwitchBotハブミニ」はすでに設定済です。

iPhoneは手元にあるiPhone7を使用します。この記事ではiPhone本体のバージョンは「7」を使用しますが、SwitchBotアプリが対応しており正常に動作するのであればどのバージョンでも問題ありません。

 

使用するアプリのバージョン

念のため使用するOSやアプリのバージョンを下記しておきます。

No. 名称 バージョン
1 iOS 13.4
2 ショートカットアプリ iOS13.4付属
3 SwitchBotアプリ 3.4.8

 

ショートカットアプリ

ショートカットアプリとは、Apple純正のRPAアプリで、以前は「Workflow」と呼ばれていました。Microsoft Power Automate(以前のFlow)のApple版といったところでしょうか。

ちなみに、RPAと声高に叫ばれる以前から、WindowsUWSCでバッチを組んで自動作業をさせていた私からすると、「指先一つで楽になったなあ」と関心しきり。

 

 

 ショートカットアプリには、SwitchBotの操作以外にもできることがたくさんあります。それは別の機会に説明します。

 

iPhoneの設定

詳細は以下のSwitchBotサポートページを参照してもらえばよいのですが、ざっくり説明すると。

  1. iPhoneの「ショートカット」アプリで「SwitchBot」のアクションを設定します。
  2. 「ショートカット」アプリに「SwitchBot」で設定したデバイスが認識されれば設定完了です。
  3. ライトの点灯、消灯。エアコンのON、OFFをそれぞれ登録します。

 

  

設定のポイント

設定のポイントは、ショートカットの名称を自分が唱えたい命令にすること。おすすめは普段使っている話し言葉にすることです。

図1は、「寝室のライトをつけて」と唱えるため、ショートカットの名称を同じものにしています。 

f:id:a03:20200405141601p:plain

図1.ショートカットの設定例

 

動作確認

寝室のライトが消えている状態で、iPhoneに向かって、「ヘイシリ!寝室のライトをつけて」でライトが点灯したでしょうか。問題なければライトの消灯、エアコンの動作も確認します。

 

まとめ 

こうして、iPhoneから音声で、照明とエアコンのコントロールができるようになりました。

次はAndroidから音声でコントロールさせます。

 

アレクサ! 電気を消して!

前回までで、スマホの画面から指による操作で「エアコン」と「照明」をコントロールできるようにしました。今回はEcho Dotから自分の声でコントロールしてみたいと思います。

 

[目次]

 

用意するもの

1)SwitchBotハブミニ

2)Echo Dot

 

SwitchBotハブミニ」の設定は前回までで済ませています。

「Echo Dot」も設定が済んでおり、スマホにAlexaアプリが入っている事を前提として説明します。

 

Alexaアプリの設定

 詳細は以下のSwitchBotサポートページを参照してもらえばよいのですが、ざっくり説明すると。

1)Alexaアプリで「SwitchBot」スキルを設定します。
  このとき、事前に設定していた「SwitchBot」のユーザー名とパスワードで

  サインインする必要があります。

2)Alexaアプリに「SwitchBot」で設定したデバイスが認識されれば設定完了です。

 

アレクサ! 電気を消して!

実際に寝室の電気を消してみましょう。

寝室のライトが点灯している状態で、Echo Dotに向かってこう唱えます。

「アレクサ! 寝室の電気を消して!」

スマホのSwitchBotアプリのエアコンのリモコン画面から操作するのと同じように、寝室の電気が消えます。

「アレクサ! 寝室の電気を点けて!」と唱えると、寝室の電気が付きます。

 

エアコンも同様、「アレクサ! 寝室のエアコンを点けて!」と唱えるとエアコンの自動運転開始。

「アレクサ! 寝室のエアコンを消して!」で停止させることができます。 

 

まとめ

こうして、Echo Dotから音声で、照明とエアコンのコントロールができるようになりました。

次はiPhoneから音声でコントロールさせます。

 

そうだ! 照明を消そう!(2/2)

 「SwitchBotハブミニ」が届いたので、次のページを参考にセットアップします。


特に問題なく本体のセットアップは完了。

次に、リモコンを登録します。

 

エアコンの霧ヶ峰は「スマートラーニング」モードで登録完了。

オーム電機のLED照明は「その他」モードで リモコンのボタンを1つずつ覚えこませました。

SwitchBotアプリのエアコンのリモコン画面は図1の通り。

 

f:id:a03:20200322180948p:plain

図1.エアコンのリモコン画面

 

オーム電機のLED照明のリモコン画面は図2の通り。

f:id:a03:20200322170104p:plain
f:id:a03:20200321193955j:plain
図2.照明リモコン画面

図2の左がSwitchBotアプリのリモコン画面、右が実物のリモコンです。紐づけは次の通り。 

SwitchBotアプリ リモコン
1 オン 電源ボタン
2 オフ 電源ボタン
3 モード 常夜灯
4 明るさ +
5 明るさ -

 

尚、上表のSwitchBotアプリの1項と2項のオン・オフには、どちらも実物のリモコンの電源ボタンを紐づけしています。これは実物のリモコンでは1つの電源ボタンを押すことで、照明のオンとオフを繰り返すのに対し、SwitchBotアプリの画面では電源のオンとオフが1つのボタンではなく、別々のボタンになっているため。

機能的には、SwitchBotアプリの「オン」ボタン1つのみに実物のリモコンの電源ボタンの機能を紐づけしてもよいのですが、それだと照明を「オン」を押して点けた後、再度「オン」を押して照明を消すという行為が、個人的に本来あるべき姿ではないと考えるためです。よってSwitchBotアプリの「オフ」ボタンにも実物のリモコンの電源ボタンの機能を紐づけしてあります。

 

 こうして、スマホの画面から手動で、照明とエアコンのコントロールができるようになりました。

次回は音声でコントロールさせます。