Bambuddyにライブアクティビティ表示を追加する

Bambulab製3Dプリンターの集中管理システムBambuddy導入の記事はこちら。

神ツールですがBambulabのサードパーティツール締め出し施策の絡みで、これを使うには開発モードを有効にする必要があり、結果としてBambu純正のスマホアプリBambu Handyが使用できなくなります。多くの機能はBambuddyに直接スマホブラウザからアクセスすれば事足りるのですが、どうしても弱いのが通知系です。Bambuddyは代わりにDiscordなどの連携したチャットツールに進捗やエラー情報をポストする機能があるのですが、さすがにiOSのライブアクティビティ(ロック画面やDynamic Islandに進捗バーを表示するアレ)には対応できません。Home AssistantやBambuddyまでは進捗データが来ているので、そこから適当なREST APIに出力するパッチをClaudeさんに書いてもらって、なにか汎用のREST APIからLive Activityを作製するアプリを探すか、これもAIに作ってもらうか?と考えてチャットで相談してみたら、なんと既に同様のことができるソリューションがあるという返答が。

■notify-bambuddyとNotify!で実現

2026.10.13追記: この記事で紹介しているnotify-bumbuddyが本家Bambuddyにマージされ標準機能となったようです。これを書いている時点ではまだ開発版のDaily Beta Build v1.2.6b1-daily.20261009で反映されたのみですが、おそらく次に出る正式版でも使えるようになるでしょう。私は正式版待ちなのでまだ試せてないですが、おそらくNotify!でデバイスIDとトークンを取得するところまでは同じで、それを直接入力する設定画面が追加されるのではないかなと思います。

notify-bambuddyはsimplytoast1氏が公開しているオープンソースプロジェクトで、Bambuddy用のコンパニオンツールです。Bambuddyの稼働しているマシンに同一または独立のDockerコンテナとしてインストールすれば、Bambuddyからプリント状況を取得し、Notify!アプリ(後述)のサーバーに投げてくれるというもの。ほぼ1人で開発されており、あまり注目されていないプロジェクトのようですがClaudeさんが見つけ出してくれました。

Notify!は様々なサーバーから状況を取得してLive Activityを発行する汎用アプリで、Bambuプリンタ->Bambuddy->notify-bambuddy->Notify!サーバー->Notify!アプリ->ライブアクティビティというチェーンで実現します。

Notify!のサーバーを経由するのでnotify-bambuddyはポート開放する必要がないのもナイス。

またBamby Handyのライブアクティビティは一度アプリを開いて印刷中のデータを都度取得する必要がありました。ひとつの印刷に対してのみ有効なライブアクティビティが生成されるという感じ。それがNotify!を通じたシステムだと、一度アプリを起動してサーバーとPUSH通知のパスを通しておけば、それ以降に開始した印刷の進捗が自動的にライブアクティビティに追加されます。このサーバー基点で新規アクティビティを発行する機能(push-to-start)はiOS17.2から実装されたらしく、それまではiPhone内のアプリからしか開始できず、アプリを開かない限り更新されないという制約がありました。Bambu Handyはその時点の仕様を元に作られており、push-to-startに未対応、ということなのかと理解しました。もうこの時点でBambu Handyを超えました。

■notify-bambuddyのセットアップメモ

この記事を執筆した時点で、リリースされている0.5.0だとiOSの最新仕様に追いつけていないのか、一部問題が発生しました。Claudeさんに解析してもらいパッチを作製してIssueとして投げておいたので、そのうち反映されるかも知れませんが、一応やったことをメモしておきます。DockerでBambuddyと同一ホストに別コンテナとして作製する想定です。同一コンテナで作ると起動/終了は一本化できて楽ですが、BambuddyのAPIキーをdocker-config.ymlファイルに平文で書くことになりセキュリティ的に微妙だったり、Bambuddyの更新時に設定が上書きされるリスクがあるので、完全独立でコンテナを作製する方針としました。

BambuddyのAPIキーを作る

Bambuddyの「設定」->「APIキー」で読み取り以外の権限を抜いたAPIキーを1つ発行しておきます。

iPhoneにNotify!アプリをセットアップ

アプリをインストールして起動すると三択画面が出るので、一番下のNorification Onlyを選択。画面がわかったら「Settings」タブを開き、1台1台固有のDevice IDとTokenが表示されるのでメモしておきます。

notify-bambuddyのコンテナを作製

コンテナ用に適当なフォルダを作り、docker-config.ymlをリポジトリのREADMEからコピペします。

同じフォルダに.envファイルを作り、以下の内容を記述します。

BAMBUDDY_URL: Bambuddy本体にアクセスできるURL(LANアドレスでOK)
BAMBUDDY_API_KEY: 上で発行したAPIキー
NOTIFY_DEVICE_ID=Notify!アプリで確認したDevice ID
NOTIFY_DEVICE_TOKEN=Notify!アプリで確認したToken
DRY_RUN=(テスト実行なら1、本番なら0)

という感じ。追加で、以下の項目も書けるようです。

.envを保存したら

を実行して所有者以外は読み取れないようにしておきます。

DRY_RUN=1の状態で、テスト起動します。

2026.10.13追記:以下のデバッグ情報は作者さんにレポートしたところ0.5.1に取り込まれました。今後は0.5.1以降を使用すれば無視してOKのはずです。また、時を同じくしてnotify-bumbuddyがBambuddy本家に統合されたようです。まだ開発ブランチのようなので、次の正式版で試してみる予定です。

ここからが問題です。コンソールに

というエラーが出ました。.envに記入したDevice IDの形式が「8文字のはずなのに多すぎる、これは正しいDevice IDじゃない。」と言っているわけです。しかしNotify!アプリの設定画面には確かに16文字表示されているんだからしょうがない。notify-bambuddyの最新0.5.0は2026年9月1日更新のようなので、もしかするとその後で正式版がリリースされたiOS27でDevice IDのフォーマットが変わった可能性があります。実際、curlでNorifyサーバーにDevice IDとTokenの組み合わせを送ると正常と判定されます。Notify!アプリが発行し、Notifyサーバーは有効だといっているものを、notify-bambuddyが勝手に不正な形式だと怒っているだけです。

そこでさらにClaudeさんにGithubリポジトリを読んでもらって判定箇所を特定、パッチを作製してもらいました。そのdiffがこちら。

いや、Claude優秀だな!

Docker内のソースを一時的に書き換えて実行する手順な以下の通り。

  • コンテナディレクトリ(docker-compose.ymlがあるフォルダ)で、「git clone https://github.com/simplytoast1/notify-bambuddy.git」して、最新の0.5.0をローカルに展開。
  • cd notify-bumbuddy/src/notify-bambuddy/するとconfig.pyファイルがあるので上記パッチを適用。
  • コンテナディレクトリに戻って「docker build -t notify-bambuddy:local .」でビルド
  • docker-cimpose.ymlのimage行を「image: notify-bambuddy:local」に書き換え。

これでDockerが取得したままの0.5.0のかわりに、ローカルでアップデートしたビルドを実行してくれます。もし後日公式でアップデートされたら、image行を最初の通りに戻します(その際は0.5.0ではなくなっているでしょう。latestでもいいはず)。

■動作の様子

こんな感じでロック画面に進捗バーが復活しました。2台同時に動いている時もちゃんと2つ出ます。これでBambu Handyへの未練がなくなります。

エラーで止まっている時はこんな感じ。

■追加設定

・通知領域タップ時の遷移先

ライブアクティビティの制限として、通知をタップした場合、そのアクティビティを作製したアプリ、つまりNotify!アプリが開いてしまいます。できればBambuddyの画面にとばしたい。それには、.envに以下を書けば、通知ボックス上にリンクが出現するようです。

ただし、BambuddyのURLはグローバルアドレスでないと自宅外からは参照できません。またあくまで通知ボックスの中にリンクが出るだけで、通知ボックス全体のタップ遷移先はあくまでNotify!アプリになってしまうようです。設置してみたものの、まだ結果が見られてないので、反映されたらまたスクショ貼ります。

だだあくまでURLをブラウザで開くのみなので、PWAとして動かすことはできなそう。

追記: ボタンは出現したもののタップしてもNotify!アプリにしか遷移せず。

・複数デバイスへの通知

iPhoneの他にiPadでも同じライブアクティビティを表示したいですが、.envに記入するDevice IDとTokenはアプリをインストールした端末毎に固有です。Notify!アプリにGroup IDという機能があって同じ通知を別端末で受けることも可能なようですが、ライブアクティビティでも反映されるかは不明。

Claudeはnotify-bambuddyコンテナを複数立てる(正確には1つのコンテナに複数のインスタンスを動かす)方法を提案してきました。どちらを使えば実現できるのか今後検証予定です。

追記:やはりGroup IDを登録してもiPadには表示されないので、Docker上でサービスを二重に起動するようにしました。2つのサービスがBambuddyに問い合わせをすることになりますが、同一ホストの通信だしたいした不可ではないでしょう。

docker-compose.ymlはこんな感じに。

ポイントはenv_fileに別々のファイル名を指定し、それぞれにDevice IDとTokenが違う設定を書いたこと。volumesも独立で2つ作成されます。

もとのiPhone用コンテナも名前を変更したので、普通に再起動するだけではサービスが3つになってしまいました。

でymlファイルから消えた迷子のサービスを消去し、volumeも削除しておきます。

あなたが神か?BambuddyでBambuプリンターの造形キュー管理

私は小規模ながら3Dプリントアイテムの販売をしています、BambuLabのX1-CarbonとA1 miniの二台のプリンターを駆使して注文が入ったアイテムを次々に造形しています。そんな日々の作業の中でBambu Studioで毎回スライスしてプリンターに造形データを送るというワークフローに色々と限界を感じはじめました。

■オンデマンド大量生産におけるBambuLabプリンター課題

BambuLab製プリンターにはSDカードが刺さっており、直近のプリントについてはデータが入っているので本体タッチパネルからそれを選択して再プリントすることはできます。また予めBambu Studioからデータを送信しておくこともできます。ただ、本当にベタでSDカードに保存されるだけで、フォルダ分けとかお気に入りフラグといった気の利いたことは一切できません。プリントするアイテムが何十種類にも及ぶと目的のデータを探すのが非常に困難です。長いファイル名だと画面上で確認すらまともにできません。

結局毎回PCでBambu Studioを開く->データを読み込みスライス->プリンターに送信、という手順を踏むことになります。プロジェクトファイルである.3mfデータにはプリント設定も一緒に保存できるので、基本的に開けば同じ設定でプリント指示を出せるはずなのですが、実用上はいくつか問題点があります。それはプリンターとの同期機能によるノズルやプレートがプリンターの現況に釣られてしれっと上書きされてしまう点。0.4mmノズルで設定するべきなのに、たまたまプロジェクトファイルを開いた瞬間にプリンターに0.2mmノズルが取り付けられていると、いつのまにか0.2mm設定に書き換えられたりしがち。また最近プリンターを複数台にしたのですが、そのハンドリングもヒドいものでした。マルチプレートのプロジェクトなどでX1cのプロジェクトを開いた時、たまたまつながっているのがA1 miniだと、Bambu Studioが自動で切り替えるかダイアログで聞いてきます。うっかり「はい」にしてしまうと、接続先がX1cになるのではなく、プロジェクトがA1 mini用に書き換えられてしまうのです。プレートサイズが違うのでレイアウトが滅茶苦茶になり、自動保存をオンにしていると直す間もなく上書き保存されるという事故になります(なりました)。全体的に.3mfファイルをBambu Studioで開くと設定がいつのまにか書き換えられがち。

■Bambu Farm Managerは発展途上

  • 同じデータで繰り返し出力
  • 多数のプリンターを効率よく回して大量出力

というプリンターファーム向けにBambuLab公式でBambu Farm Managerというツールがリリースされています。サーバー・クライアント方式で一旦サーバーにデーターが送られ、サーバーがスペックの合う空きプリンターにプリント指示を出す、といた仕組みです。ウチは2台しかないし機種毎に作るアイテムもわけているので、空きプリンターに自動選択などについてはさほど重要ではないのですが、スライス済みの完成データを壊さずに再送信でき、かつそれなりにリスト管理できるのであれば充分活用できるのではないかと考えました。

しかし残念ながら現時点ではWindows版しかない。macOSもLinuxも予定はあるらしいですが今はまだ気配なし。Win/Mac混合環境である我が家ではちょっと厳しい。

■Bambu Connectが使えるかも?

次に考えたのは同じく公式ツールのBambu Connectです。本稿執筆時点ではまだβ版ですが、少し前にBambuLabが他社ツールからのコントロール(プリントを含む)をブロックした時に、かわりに用意したツールです。macOS版もリリース済み。例えばOrcaSlicerなどサードパーティ製品でスライスしたデータをBambuプリンターに送るだけの単機能ツールです。コマンドラインオプション(URLスキーム)からスライス済みデータを送信できるので、AIでデータ管理ツールを作って、Bambu Connectで送信するということを考えました。例えば、NASに置いたスライスデータのパスをWebアプリで管理して、ブラウザからURLスキーム付きリンクをクリックすればローカルでBambu Connectが立ち上がりNASにあるファイルをプリンターに送信してくれるのでは?と考えました。WindowsとmacOSでパス記法が違いますが、それくらい簡単に自動変換できます。NASだったりBambuConnectのインストールだったり環境条件はありますが、一応やりたいことはできるのかな?というところ。

しかしこれも難点があり、できるのはあくまでデータ送信であって、AMSのフィラメント指定などはプリンター側で手動で行う必要があるとのこと。

■そこでBambuddyですよ!

そんなリサーチをしてる中で見つけたのがサードパーティ製ツールのBambuddyです。日本語だとバンバディとでも発音すればいいのかな?Bambu + buddyからきてるんでしょうか。BIQU Pandaのように「竹とはマブだぜ」感を醸すネーミングですね。ブラウザからアクセスして使用するWebアプリなのでWindows/macOSを問わずに使用できなんならスマホからでも使えてしまいます。海外のメンテナーさんが作っていますがUIは日本語化対応済みです。Docker環境があれば簡単にセットアップできます。無料です。

プリンターと同じネットワーク内にサーバーを建ててプリンターをLANモード/開発モードにして接続します。つまり、Bambuクラウドからは切り離されるためBambu Handyは使えなくなります。ここが大きなハンデというか難点にはなります。ただHandyでMakerWorldを検索することはあっても印刷キューを出すことはなく、プリントの進捗の表示やカメラ映像の確認、緊急停止などはBambuddyからでもできるのでいさぎよくHandyは捨てることに。

■Bambuddyでできること

スライス済みの.3mfデータである、.gcode.3mf形式のファイルをサーバーのストレージに保管しておき、再スライスなしでプリンターに送信してプリントできます。またキュー(印刷順リスト)として追加していくことができ、プリンターが空いたら順にプリントしていくような管理ができます(人力でプレート上の造型物をよけてスタンバイ状態になったことは知らせる必要がある)。つまり、繰り返しプリントするものは一度gcodeを作ってサーバーに置いておけば、再スライスの手間やうっかり設定が入れ替わってしまうリスクなしに完全同一条件で再プリントができるわけです。これがやりたかった!(まぁ、室温とかフィラメントの乾燥度合いとかで結局微調整が必要になったりするのが3Dプリントの難しいところなんですが…)

アップロードしたデータはフォルダ分けやタグ付けができるので、プリンター本体のストレージ(SDカード)で下がるよりもずっと効率的に大量のデータを置いても見つけやすいです。

また複数台のプリンターがある場合、空いているものに自動で振り分けたりといったこともしてくれるので、プリントファームを運用している人にも便利。ウチはX1cとA1 miniが1台ずつで、基本的になにをどちらで作るかは固定なので、自動割り当てはまだ活用していません。

時間指定で開始もできるので、朝出かけた後に開始、深夜に開始、ちょうど帰宅することに終わるように、みたいな使い方も便利でしょう。3Dプリンターはプリント開始にノズルやプレートを急速加熱する時がもっとも電力を食いますが、複数台のプリンターがある時に一斉に電気を使わないように開始タイミングをズラすといった制御まであるようです。

ブラウザ上で3Dモデルをグリグリしてプレビューすることもできるので、ファイル名だけでなく中身を直接確認してプリントキューに入れることが可能なのも嬉しい。

ノズル、ベッド、チャンバー温度などを固定したり、カメラ映像をストリームでみたり、印刷のポーズや停止など基本的な操作もできます。MQTT経由でできることは一通り実装されていると思います。

あと地味に良いなと思ったのはビルドプレートの事前過熱やヒートソーク(プレート全体が充分に温まるまで長めに過熱してから印刷開始すること)ができる点。PAなどのプリントだと単にセンサーが指定温度に到達したと認識した時点でプリントを開始すると充分に均一に温まってなくて失敗したりしがちなので、手動で100°とかにして数分余計にまったりしますが、それを自動化できるわけです。

HTMLはリキッドレイアウトに対応しており、スマホからでも操作できます。PWAにも対応しているので、Safariなどからホーム画面にブックマークすると、ナビゲーションバーを非表示にして疑似アプリ状態で使うこともできます(ただし割と頻繁にログインが外れて面倒 → 初期設定が24時間なだけで設定で延ばせました)。

通知は外部チャットサービスに連携して送信できます。我が家ではDiscordで専用サーバーを作成して、そこの特定のチャットスレッドに流れてくるようにしています。例えば一層目が造形された時や完成された時にカメラの静止画が添付されて通知されます(この時のメッセージは設定画面で定義できるのですが、ここだけ初期値が英語で、全部日本語に書き直すのが大変でした)。

Home Assistantにも対応していて、外部のカメラや温度計と連携したりもできるようです。グラフで時系列データを表示してくれるので、「これを造形している時に室温やチャンバー温度がどうなっていたか」みたいなことを後で調べたりも可能。

総じてBambu Studio/Handyでできないことが数多く実現しています。公式サイトにライブデモがあるので興味がある方はアクセスしてみてください。

また連携ツールのSpoolBudyというプロジェクトがあり、専用の量りとNFCリーダーを組み込んだDIYハードを作成すると、スプールの在庫/材料管理も統合して行えるようです。これもいずれ挑戦してみたいです。

■Bambuddyでできないこと、不便な点

まず先も書いたようにBambuクラウドから完全に切り離されます。結果として、

  • Bambu Handyが使えなくなる。

ただ、これはほとんどの機能は代替可能な気がしています。ただいまのところエラーが発生した時の内容(フィラメント切れ、ファン異常など)が出ない気がします(どこかにあるだろうと思うけど見当たらない)。外出先からアクセスしたい場合は、VPNで自宅に入るか、Tailscaleをサポートしているのでそれ経由でアクセスする、もしくはWebサーバーをインターネットに公開する形になります。二段階認証なども設定できるので、ID/PWのみの認証よりも安全に外に出せる感じです。ウチは毎度愛用のCloudflareのtunnneldを使って専用ホスト名を割り当ててアクセスできるようにしています。スマホのブラウザやPWA化してBambu Handyの代替ツールとして使うにはそれが一番な気がします。

なお、Bambu Handyの主要機能であるMaker Worldからの直接インポートですが、Bambuddyの場合は、URLを貼り付けると印刷キューに追加することはできるみたいです。試してないですが。

■惜しい点

キューに名前がつけられない

.gcode.3mfのファイル名がデフォルトで名前になり、変更も可能です。ただそこから印刷キューに入れた個々のインスタンスに名前をつけられないっぽい。可能であれば「〇〇様注文分」とか個別に名前かメモがつけられるとキューの一覧で見分けがついて最高なんですが。

■画面例

「プリンター」画面

プリンター一覧の画面です。純正ツールでわかる情報はおおむね網羅されている気がします。独自要素は、右のX1cで見えている「次のキュー」と、左のA1 miniの方で出ている「プレートをクリア済みにする」です。前の造形物を片付けてビルドプレートがクリーンになった時点でこのボタンをクリックすると次に控えたキューが繰り上がって造形がスタートする感じです。

「印刷キュー」画面

以下、サイドバーは省略します。

実行予定のリストです。2Dプリンターでお馴染みのあれです。

プリンターが空き次第、上から順に送信され造形が開始します。このリスト上でドラッグ&ドロップして順番を入れ替えたり削除することもできます。

「ファイル管理」画面

アップロードした.gcode.3mfファイルのブラウザです。

目的のファイルが探しやすいように、階層付きフォルダに分類したり、タグをつけておくことができます。もちろん名前で検索も。

多種多様なプリントファイルを管理するという意味では、Bambu Studioや本体タッチパネルを遥かに凌駕する使いやすさ、安心感です。登録はFinder/エクスプローラーから直接ドラッグ&ドロップもできます。

惜しむ楽は、

  • リスト表示ができず、ファイル名が切れて見えないので、似たような形状のファイルを見分け辛い
  • 別のフォルダに移動するのにドラッグ&ドロップが使えない
  • タグやカードを色分けできない
  • プリンター内のSDカードにあるファイルが「アーカイブ」画面から閲覧できるが、直接ここに登録できない(多分。一度PCローカルにダウンロードしてここにアップロードしなおす必要がありそう。)

キュー投入ポップアップ

ファイル管理画面などから「印刷」を選ぶとこのようなオーバーレイのポップアップウインドウが表示され、様々なパラメーターを指定してキューに追加できます。

写真では既にプリンターを選んで、詳細項目を表示した様子です。

一番上の「Any X1C」を選ぶと、多数ある同型機から空いているものが自動選択されるようです(ないので試せてない)。

「フィラメントマッピング」でAMS上のどのスロットのフィラメントを使うか指定できます。gcode内の指定にマッチするものがあればデフォルトで選択されますが、例えばここで同種別カラーを選びなおしてプリントすることも可能です。

印刷オプションはデフォルト値を設定で決めておけて、ここで個別に例外設定ができるという感じ。Bambu Studioでは個別指定できない「振動キャリブレーション」「第1層検査」もここでオンオフできるようです。
「プレヒート&ヒートソーク」は残念ながらプリンター毎のデフォルト値を記憶させておくことはできません。ウチだとチャンバー機のX1cではオン、オープン機のA1 miniはオフ、というのをデフォルトにしたいんですが。まぁここで個別指定できることは良いですね。

「印刷タイミング」でキューに入れて順番待ちをする他、即時やスケジュールなど事細かに選べます。

■まとめ

量産プロダクトを繰り返し造形するのに、Bambu Studioはやや面倒くさいばかりか、しれっと一部の設定を上書きしてくれるのでミスやデータ破損にもつながりかねませんでした。

Bambu Lab自身もそれを見越してBambu Farm Managerというフリート管理ツールを提供していますが、現状はWindows専用で発展途上な感が否めません。

Bambuddyはその救世主となるサードパーティツールで、LAN内にDocker環境があればものの数分でセットアップして使うことができます。プロジェクトやフィラメント管理などまだ活用しきれてない部分もありますが、当面ほしかった機能は網羅されている気がします。プリンターをLANモード/開発モードにする必要があるため、Bambu Handyが使えなくなりますが、インターネットからアクセスできるよう設定して、通知はDiscordなどに投げるようにすればさほど不便はないかなという印象です。
スライス済みファイルをスライサー(=PC)無しでプリントできるので、最悪PCが急に故障した、となっても既存データのみなら早計できるなど、ウチのような超小規模環境でもメリットはあると感じます。

主要開発者であるmaziggy氏や多くの貢献者に深く感謝します。なお開発支援としてGithubの月額スポンサーになる他、ko-fiというサイトで単発のチップを送ることもできます(決済はPayPal)。Bumbuddyが有用だと感じたら是非支援しておきましょう。