スズハドットコム

IT関連や3Dプリンタの記事、たまに生活のメモを書いていきます。

OctoPi(OctoPrint+RaspberryPi)で3Dプリンタをワイヤレス化する その4 スマートプラグで電源管理

続きです。 suzu-ha.com

今回は、スマートプラグで3Dプリンタの電源管理します。とりあえず半自動くらいですね。

まとめると

OctoPrintのWeb画面から3Dプリンタの電源オンオフができた。
3Dプリンタが電源オフの状態でOctoPrintに印刷ジョブを投げても、自動電源オンはできなかった。

環境

OctoPrint バージョン1.8.6
スマートプラグ TAPO P105

TAPOの電源プラグは片方の端子が幅広(極性があるプラグ)なので、壁コンセントにはささりますが、たいていの延長タップにはささりません。
ささらない場合、片側の穴が大きい延長タップを変換アダプタ的な感じで間に入れる必要があります。

スマートプラグ TAPOの設定

製品同梱の設定ガイド(紙切れ)に従って、TAPOの設定を済ませておきます。
できれば、IPアドレスが変わらないように、ルータ側の設定でIPアドレスを固定しておきます。
(TAPOには固定IPアドレスを設定する機能はなさそうです。)

プラグインのインストール

OctoPrintの設定画面にあるプラグインマネージャを開きます。
「Get More」ボタンを押します。

検索欄に「psu」と入力して絞り込み、「PSU Control」をインストールします。
他に「PSU Control - 〇〇〇」というモノが複数表示されますが、「PSU Control」を選んでください。

インストールが完了したら「Restart now」ではなく「Close」を押します。

検索欄に「tapo」と入力して絞り込み、「PSU Control - TAPO」をインストールします。

インストールが完了したら「Restart now」を押します。

再起動が終わると以下のような画面が表示されますが、特にやることはないので「Finish」を押します。

PSU Controlの設定項目はこのような感じです。

動作確認と設定

電源オンオフの確認

PSU Controlの設定で、SwitchingとSensingの項目を画像のように設定します。
その他は変更しません。

PSU Control - TAPOの設定で、IPアドレスとアカウントを画像のように設定します。
Saveボタンを押します。

正しく設定できると、TAPOのオンオフ状態を検知して、オンであればPSU Controlの稲妻アイコンが緑、オフであればグレーになります。

余談ですが、この稲妻アイコンは表示位置が不安定なようで、この画像のように設定アイコンの左に出ることもあれば、「Progress 0%」の左に出ることもありました。

稲妻アイコンをクリックしてオフにしてみます。

確認ダイアログが表示されます。

オフになり、アイコンがグレーになりました。
また、3Dプリンタも認識されなくなりました。
今度は稲妻アイコンをクリックしてオンにしてみます。

オンになり、アイコンが緑になりました。
3Dプリンタも起動していますが、電源オンと連動して3Dプリンタに接続する設定はしていないので、接続状態にはなりません。

設定

うまく動作したので、ほかの設定も入れていきます。
Power On Options
Automatically turn PSU ON:3Dプリンタへのコマンドをトリガーとして電源オンする設定です。今回は使いません。
Post On Delay:電源オンしてから次の動作をするまでの遅延時間です。ゼロのままだと「Connect when powered on」がうまく動作しなかったので、10秒にしました。
Connect when powered on:電源オンと連動して3Dプリンタに接続する設定です。有効にします。
Turn on prior to printing after API upload:API経由でアップロード後、印刷を開始する前に電源オンする設定です。

Power Off Options
Automatically turn PSU OFF when idle:アイドル状態が一定時間続くと電源オフする設定です。有効にします。
Idle Timeout:電源オフするまでの時間です。デフォルトの30分のままにしました。
Wait For Temperature:ノズルが指定の温度に下がるまで電源オフを待つ設定です。デフォルトの50度のままにしました。
Disconnect on power off:電源オフと連動して3Dプリンターを切断する設定です。有効にします。

動作確認

スマートプラグの電源オフ状態で、OctoPiを再起動します。

自動電源オンは設定していないので、電源オフのままです。

稲妻アイコンを押して電源オンにすると、自動的に3Dプリンタと接続されました。

稲妻アイコンを押して電源オフにすると、自動的に3Dプリンタから切断されました。

電源オフの状態で、CuraからOctoPrintに印刷ジョブを投げてみます。

OctoPrintが不明なエラーを返してきました。
当然、印刷も開始されません。
「Turn on prior to printing after API upload」って、こういう場面で電源オンしてくれる機能ではないのでしょうか?