Skip to content

feat(homelab): 3D プリンタの操作盤 (Bambuddy) を建てる - #548

Merged
gapul merged 1 commit into
mainfrom
feat/bambuddy
Sep 2, 2026
Merged

feat(homelab): 3D プリンタの操作盤 (Bambuddy) を建てる#548
gapul merged 1 commit into
mainfrom
feat/bambuddy

Conversation

@gapul

@gapul gapul commented Sep 1, 2026

Copy link
Copy Markdown
Owner

なにを

bambu.gapul.netBambuddy を建てる。ブラウザから 3D プリンタのファイル管理と印刷開始ができる操作盤。

なぜ

プリンタを LAN Only + Developer Mode にしたことで、ローカルからの制御 (FTPS 転送 / MQTT の印刷開始) は通るようになったが、引き換えに Bambu Handy が使えなくなった。Handy はクラウド前提のアプリなので、同じ Wi-Fi にいても繋がらない。外から様子を見る先と、スマホからファイルを選んで刷る先が要る。

実機で確認した切り分けはこう:

  • Developer Mode 前: FTPS は通るが MQTT の project_file はエコーだけ返って無視される (gcode_stateFINISH のまま)
  • Developer Mode 後: result: success が返り、print_type: local で印刷が始まる

ha-bambulab と重ならないのか

重ならない。既に /var/lib/hass/custom_components/bambu_lab (v2.2.22) が入っているが、あちらは監視とオートメーション側で、公開サービスは send_command 一つだけ。pybambu に FTP のコードが無く、SD カードのファイル一覧が取れないので「選ぶ」ができない。置く・選ぶ・消すは Bambuddy が持つ。

構成の判断

上流の compose は network_mode: host を既定にしているが、bridge にした。host が要るのは SSDP でプリンタを発見するためで、この箱では 8000 (conmon) も 3000 (homepage) も既に埋まっている。プリンタは IP (192.168.116.97) で手動追加できるので、discovery を捨てて衝突を避けるほうが得。仮想プリンタ機能 (990 / 8883 / 322 / 50000-50029) も使わないため、開けるのは UI の 8010 だけ。

PUID=0 / PGID=0 は bind mount 元が root 所有のため。既定の 1000:1000 だと entrypoint の chown 後に書けない。

秘密は無い。プリンタのアクセスコードは UI から入れてデータディレクトリに入る。rebuild 前に手で置くファイルは無い。

確認したこと

  • nix eval .#nixosConfigurations.homeserver.config.system.build.toplevel.drvPath が通る
  • just fmt / pre-commit (deadnix, gitleaks, nixfmt, shellcheck) 通過
  • homeserver で 8010 が空いていることを確認

rebuild 後にやること

UI からプリンタを追加する (IP 192.168.116.97、シリアルとアクセスコードは本体の LAN Only Mode 画面)。sites に載せたので gatus の監視 vhost も自動で生える。

おまけ

LAN-only 向けのファームウェア更新ヘルパーが入っていて、公開済みの全バージョンに Usable / Unavailable / Installed のバッジが付く。月一で新版を見に行く先はここでよくなったので、ntfy に流す timer を自作する話は要らなくなった。更新作業自体は LAN Only の間 OTA が来ないので microSD 経由の手作業のまま。

Bambu の Authorization Control で、サードパーティのスライサーから印刷を開始する
経路が塞がれている。プリンタを LAN Only + Developer Mode にすればローカルからの
制御は戻るが、代償に Bambu Handy が死ぬ (クラウド前提のアプリなので、同じ Wi-Fi
にいても繋がらない)。Handy が持っていた「外から様子を見る」「ファイルを選んで
刷る」の行き先を用意する。

Home Assistant の ha-bambulab は既に入っているが役割が違うので両方置く。あちらは
監視とオートメーション側で、公開サービスが send_command 一つだけ、pybambu に FTP
が無いので SD のファイル一覧が取れない。置く・選ぶ・消すはこちらが持つ。

LAN-only 向けのファームウェア更新ヘルパーも入っているので、月一で新版を見に行く
先もここになる。

bridge で動かす。上流の compose は host networking を既定にしているが、それは SSDP
でプリンタを見つけるためで、この箱では 8000 も 3000 も既に埋まっている。プリンタは
IP で足せるので discovery は捨てた。仮想プリンタ機能も使わないので、開けるのは UI の
8010 だけ。
@gapul
gapul merged commit 1cc1c3e into main Sep 2, 2026
5 checks passed
@gapul
gapul deleted the feat/bambuddy branch September 2, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant