このガイドでは、Dashboard 2.0のサードパーティウィジェットui-ledについて解説します。 ui-ledは、ダッシュボード上にLEDインジケーターを表示し、デバイスやシステムの状態を視覚的に示すウィジェットです。
📦 パッケージ情報:
@flowfuse/node-red-dashboard-2-ui-led@flowfuse/node-red-dashboard) がインストール済みであることui-ledは、物理的なLED(発光ダイオード)をダッシュボード上に再現するウィジェットです。
msg.payloadの値に応じて色が変化し、機器の状態やセンサーの閾値超過などを一目で確認できます。
💡 活用シーン:
@flowfuse/node-red-dashboard-2-ui-led と入力⚠️ 前提条件: このノードを使用するには、先に @flowfuse/node-red-dashboard(Dashboard 2.0)がインストールされている必要があります。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
| name | 文字列 | (空) | エディタ上でのノード表示名 |
| Group | ui-group | (必須) | ウィジェットを配置するダッシュボードグループ |
| Size | 数値×数値 | 自動 | ウィジェットの幅×高さ(グリッド単位) |
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
| Label | 文字列 | (空) | LEDの横に表示するラベルテキスト |
| Placement | 選択 | left | ラベルの位置(left: LED左側 / right: LED右側) |
| Alignment | 選択 | left | ラベルの垂直方向の配置(left / center / right) |
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
| Shape | 選択 | circle | LEDの形状(circle: 円形 / square: 四角形) |
| Show Border | 真偽値 | true | 物理LEDのような枠線を表示する |
| Show Glow | 真偽値 | true | 発光(グロー)エフェクトを表示する |
msg.payloadの値に対応する色を定義します。一致する値がない場合はグレーで表示されます。
| プロパティ | 型 | 説明 |
|---|---|---|
| Value | 各種(str/num/bool/json/bin) | msg.payloadと照合する値 |
| Value Type | 選択 | 値のデータ型を指定 |
| Color | カラーコード | 一致した場合に表示する色(例: #FF0000) |
📌 デフォルトのマッピング:
false → 🔴 赤(#FF0000)true → 🟢 緑(#00FF00)複数のマッピングを追加して、多段階の状態表示が可能です。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
| Allow Color for Value in Message | 真偽値 | false | msg.payloadから直接色を指定可能にする |
ui-ledノードは msg.payload を受け取り、Statesで定義したマッピングに基づいてLEDの色を変更します。
⚠️ 注意: Statesに定義されていない値を受け取った場合、LEDはグレー(消灯状態)で表示されます。
最もシンプルな使い方です。真偽値でLEDのON(緑)/OFF(赤)を切り替えます。
設定例:
false → #FF0000(赤)、true → #00FF00(緑)Functionノードでセンサー値を判定し、3段階のステータスをLEDで表示します。
Functionノードの例:
ui-led States設定:
| Value | Type | Color | 意味 |
|---|---|---|---|
| "normal" | str | #00FF00 | 正常(緑) |
| "warning" | str | #FFFF00 | 警告(黄) |
| "error" | str | #FF0000 | 異常(赤) |
MQTTで受信したデバイスの状態をLEDで表示します。
Changeノードの設定:
複数のui-ledノードを並べて、複数デバイスの状態を一括表示します。
📝 課題:
Injectノードでtrue/falseを送信し、LEDの色を緑/赤に切り替えるフローを作成してください。
要件:
✅ 成功の条件:
📝 課題:
温度値(0〜100)を受け取り、3段階(正常/警告/危険)でLEDの色を変化させるフローを作成してください。
要件:
✅ 成功の条件:
📝 課題:
バッテリー残量を4段階の数値で受け取り、残量に応じたLED色で表示するフローを作成してください。
要件:
✅ 成功の条件:
| 問題 | 原因 | 解決方法 |
|---|---|---|
| LEDが常にグレーのまま | msg.payloadの値がStatesのどのマッピングにも一致しない | Statesの値と型(str/num/bool)がmsg.payloadと一致しているか確認する |
| LEDが表示されない | Groupが未設定、またはDashboard 2.0がインストールされていない | Groupプロパティを設定し、Dashboard 2.0パッケージがインストール済みか確認する |
| 色が変化しない | Value Typeが一致していない(例: 数値の1を文字列"1"で定義) | StatesのValue Typeを送信するmsg.payloadの型に合わせる |
| グローが表示されない | Show Glowが無効になっている | ノード設定でShow Glowをオンにする |
| ラベルが表示されない | Label欄が空、またはサイズが小さすぎる | Label欄にテキストを入力し、Sizeを適切に設定する |
| ノードがパレットに表示されない | インストール失敗、またはNode-RED再起動が必要 | npm installのエラーを確認し、Node-REDを再起動する |
✅ 推奨事項:
⚠️ 注意事項:
allowColorForValueInMessageを有効にする場合はセキュリティに注意(外部入力から直接色を指定できるため)