このガイドでは、FlowFuse Dashboard(Node-RED Dashboard 2.0)の全体像と基本概念について、初心者の方でも理解できるように詳しく説明します。
Dashboardとは、Node-REDで収集・処理したデータを視覚的に表示するWebアプリケーションを簡単に作成できる機能です。 日常生活で例えると、自動車のダッシュボードのようなもの - 速度計、燃料計、警告灯など、必要な情報が一目で分かるように配置されています。
🚗 自動車のダッシュボードに例えると:
Dashboard 2.0(FlowFuse Dashboard)は、従来のDashboard 1.0の後継として開発されました。
| 項目 | Dashboard 1.0(旧) | Dashboard 2.0(新) |
|---|---|---|
| フレームワーク | Angular v1(非推奨) | Vue.js 3(最新) |
| UIライブラリ | Angular Material | Vuetify 3 |
| レイアウト | Gridのみ | Grid, Fixed, Notebook, Tabs |
| マルチユーザー | 限定的 | 本格対応(msg._client) |
| テーマ | 単一テーマ | ページごとに異なるテーマ |
| 開発元 | コミュニティ | FlowFuse社(積極開発中) |
| パッケージ名 | node-red-dashboard | @flowfuse/node-red-dashboard |
⚠️ 重要な注意点:
Dashboard 2.0を理解する上で最も重要なのが、Config Nodes(設定ノード)の階層構造です。
Dashboard 2.0 の階層構造図
出典: @kazutxt - Node-RED Dashboard 2.0のチートシート - Qiita
💡 建物に例えると:
Dashboard 2.0の5つの設定ノードについて詳しく説明します。これらはパレットには表示されない「設定専用」のノードです。
役割: ダッシュボード全体のURL、ナビゲーションスタイル、ヘッダー表示を制御します。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| Path | ダッシュボードのベースURL | /dashboard |
| App Icon | ブラウザタブやPWA用のアイコンURL | なし |
| Navigation Style | サイドバーの表示方法 | Collapsing |
| Title Bar Style | ヘッダーの表示方法 | Default |
開閉可能。閉じると完全に非表示
常に表示。モバイルでは自動調整
閉じてもアイコンは表示
コンテンツの上にオーバーレイ
常に非表示(ui-controlで制御)
役割: ダッシュボード内の個別ページを定義します。各ページは固有のURL、レイアウト、テーマを持てます。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| UI | 所属するui-base | - |
| Name | ページ名(ナビゲーションに表示) | - |
| Path | ページのURL(/dashboard/xxx) | - |
| Icon | Material Design Icons名 | home |
| Theme | 適用するui-theme | Default |
| Layout | レイアウトタイプ | Grid |
| Visibility | ページの表示/非表示 | Visible |
| Interactivity | ページの有効/無効 | Active |
12カラムグリッド。レスポンシブ対応
固定幅。画面サイズに関係なく一定
最大1024px幅で中央配置。記事向け
タブ切り替えでコンテンツ整理
| サイズ | ブレークポイント | カラム数 |
|---|---|---|
| Mobile | < 576px | 3 |
| Medium | ≥ 576px | 6 |
| Tablet | ≥ 768px | 9 |
| Desktop | ≥ 1024px | 12 |
役割: 複数のウィジェットをまとめる「箱」。視覚的にも機能的にも関連するウィジェットをグループ化します。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| Page | 所属するui-page | - |
| Name | グループ名(ヘッダーに表示) | - |
| Type | Default / Dialog | Default |
| Width | グループの幅(カラム数) | 6 |
| Height | グループの高さ(最小値) | 1 |
| Class name | カスタムCSSクラス | なし |
| Visibility | グループの表示/非表示 | Visible |
| Interactivity | グループの有効/無効 | Active |
通常表示。ページ読み込み時から表示
ダイアログ形式。ui-controlで表示を制御
役割: ダッシュボードの見た目(カラースキーム、間隔、サイズ)を定義します。ページごとに異なるテーマを適用可能です。
| プロパティ | 説明 | 適用箇所 |
|---|---|---|
| Surface | サーフェスカラー | ヘッダー、サイドメニュー |
| Primary | プライマリカラー | ボタン、スライダー、フォーカス状態 |
| Pages Background | ページ背景色 | ページ全体の背景 |
| Groups Background | グループ背景色 | 各グループの背景 |
| Groups Outline | グループ枠線色 | グループの境界線 |
| プロパティ | 説明 | デフォルト |
|---|---|---|
| Density | UIの密度(default / comfortable / compact) | default |
| Page Padding | ページ周囲の余白 | 12px |
| Group Gap | グループ間の間隔 | 12px |
| Group Border Radius | グループの角の丸み | 4px |
| Widget Gap | ウィジェット間の間隔 | 12px |
💡 Densityオプション:
役割: サイドナビゲーションに外部リンクを追加します。ページと同様にナビゲーションに表示されますが、クリックすると指定したURLに遷移します。
| プロパティ | 説明 | 例 |
|---|---|---|
| UI | 所属するui-base | - |
| Name | リンク名(ナビゲーションに表示) | ドキュメント |
| Path | リンク先URL | https://nodered.org |
| Icon | Material Design Icons名 | open-in-new |
@flowfuse/node-red-dashboard と入力⚠️ 注意: node-red-dashboard(1.0)と間違えないでください!
必ず @flowfuse/node-red-dashboard を選択してください。
📝 目標:
ボタンをクリックすると「Hello Dashboard!」と表示される最初のダッシュボードを作成します。
🎯 完成イメージ:
📋 手順:
http://localhost:1880/dashboard にアクセス参照元:FlowFuse Dashboard Getting Started
Node-REDエディタには、Dashboard 2.0専用のサイドバーが追加されます。
💡 サイドバーの開き方:
| タブ | 機能 |
|---|---|
| Layout | ページ、グループ、ウィジェットの構造を確認・並べ替え |
| Theme | テーマの一覧と編集 |
| Client Data | マルチユーザー対応の設定(msg._clientを受け入れるノードの選択) |
Dashboard 2.0には以下のウィジェットが含まれています:
@flowfuse/node-red-dashboard(2.0)と node-red-dashboard(1.0)を混同/dashboard(ui-baseのPath設定で変更可能)各Widgetの詳細な使い方は、以下のガイドを参照してください:
このガイドが役に立ちましたら、実際のプロジェクトで練習してみてください!
Dashboard 2.0は、IoTダッシュボード開発の強力なツールです。
参照元:FlowFuse Dashboard 公式ドキュメント