OctoPrintからDiscordにプリンタの情報をポストする
印刷が完了したときなどに何らかのチャットシステムにポストして通知してもらいたかったのでやってみました。 普段私はSlackよりもDiscordをよく使っているので、今回はDiscordとの連携を試してみます。
- OctoPrint v1.8.7 (raspberry pi 3 Model B)
- OctoRant v1.3.2
OctoRantを導入する
OctoRantというpluginがOctoPrintとDiscordの連携を行ってくれます。 単純にテキストメッセージを送るだけでなく接続されたwebcamの画像も送ることができるようです。
導入はOctoPrintのダッシュボードから行います。
OctoPrintの設定画面を開いて、Plugin ManagerからGet Moreから選びます。
検索フォームからOctoRantで検索をかければpluginが引っかかると思うのでインストールします。
インストール後にPlugin Managerから見るとグレーアウトしているので、一度OctoPrintを再起動させます。
再起動後に再度Plugin Managerを開いてグレーアウトしていなければインストール完了です。
Discord側でWebhook URLを作成する
上記手順を参考に、投稿させたいDiscordのサーバーのチャンネルでWebhook URLを作成します。
OctoRantにWebhook URLを設定する
OctoPrintの設定画面の左カラムの"PLUGINS"の項目にOctoRantが出ていると思うので、そこからWebhook URLを設定します。
設定後にSaveして、OctoRantから設定完了のメッセージがDiscord宛に飛んでくると成功です。
飛んできた矢先に3Dプリンタとの接続エラーも飛ばしてくれました。ちゃんとエラーまわりの通知の仕組みも動いてそうです。
ちなみに、私はほとんどデフォルトの設定で利用していますが、プリントが正常に終わったかそうでないか分かれば十分なのでプリントが始まったときの通知は切って使っています。
(2023/06/11 追記)
OctoPrintのキャラクターそのままを使ってたんですが、せっかくなのでちびキャラを用意して設定してみました。
Stable diffusionを使ってタコっぽいキャラクターを作ってみましたが割とうまく行った気がします。