【RaspberryPi】Node-REDでCPU温度の可視化を行ってみる【後編】

【前編】に引き続いてNode-REDでCPU温度を可視化を行っていきます。

f:id:ueponx:20200511192621p:plain

【前編】では以下の作業を行いました。

  • RaspberryPiのCPU温度設定を取得
  • Node-REDのDashboardノードのインストール

【後編】では以下のようなことを行っていきます。

  • Node-REDのフローを作成しDashboard
  • Raspberry Pi 4Bに負荷をかけて温度変化をみる
  • Raspberry Pi 4Bに熱対策を施してどれぐらい違いがあるかをみる

【参考】

uepon.hatenadiary.com

Node-REDでDashboardを作成する

【前編】では定期的にコマンド実行して、CPU温度を取得、debugノードで表示というところまで行いました。あとはdashboardに表示する要素ノードという形で追加していきます。

f:id:ueponx:20200511200039p:plain

今回はグラフを使用して可視化を行うので、dashboardカテゴリの中からchartノードを使用します。

f:id:ueponx:20200511200346p:plain

chartノードはグラフ化する機能を持っていますが、グラフの種類は以下のものに対応しています。 折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどに対応しています。鶏頭図(Polar area chart)というグラフにも対応しているようです。鶏頭図は棒グラフと円グラフのハイブリッドな形式のようです。

f:id:ueponx:20200511201053p:plain

今回は温度変化を見たいので折れ線グラフ(Line Chart)に設定していきます。chartノードをクリックしてプロパティを開きます。

f:id:ueponx:20200511202604p:plain

今回編集するのは以下の4つの項目になります。グラフを見やすくするためにはもう少し編集してもいいかなと思いますが最低限このぐらいは編集しておいたほうがいいかなという項目だけをあげています。

  • Group
  • Label
  • Type
  • X-axis Label

Groupの編集

まずは【Group】を変更していきます。【Group】はダッシュボードを作成した際の配置位置などに関わる項目になります。

まだ、何もGroupを作っていない状況なので、 chartノードのプロパティの表示の【Group】の値の右にある【ペンのアイコン】ボタンをクリックします。

f:id:ueponx:20200511221044p:plain

dashboard groupのプロパティの表示に切り替わります。画面中の【タブ】の値の右にある【ペンのアイコン】ボタンをクリックします。こちらも新規にタブを作成していくことになります。

f:id:ueponx:20200511221049p:plain

すると、今度は新規にdashboard tabノードの設定を追加のプロパティの表示に切り替わります。画面中の【名前】の値を変更していきます。今回はRaspberryPi状態と変更しています。この値はダッシュボードにも表示されるので、わかりやすい名前にすることをおすすめします。

ちなみに表示の階層構造はタブ → Group → 表示アイテムのLabel(今回の場合はchartノード)という構造となっています。このあたりは触りながら理解していくことをオススメします。また、一度作成した階層構造は再利用もできます。今回の作業は次回は再利用することで省くことができます。

f:id:ueponx:20200511221052p:plain

値の変更を行ったら上部にある【更新】ボタンをクリックします。

f:id:ueponx:20200511221055p:plain

dashboard tabノードを編集の表示に戻るので今度は【名前】の値を変更します。ここはグラフの表題になるような名称になるので、CPU温度としました。

f:id:ueponx:20200511221058p:plain

値の変更を行ったら画面上部の【更新】ボタンをクリックします。

f:id:ueponx:20200511221101p:plain

そして、いよいよchartノードのプロパティの表示に戻ります。先程までの値の編集によりGroupの値は[RaspberryPi状態]CPU温度と変更されているのを確認します。

f:id:ueponx:20200511221108p:plain

あとはタブ内の値を順次変更していきます。

f:id:ueponx:20200511221112p:plain

【Label】の値を今回は温度なのでTempと変更しました。

f:id:ueponx:20200511221115p:plain

続いて【Type】の値をLine chartにします。この値がデフォルト値になっています。ここを変更することでグラフの形式を変更することができます。

f:id:ueponx:20200511221120p:plain

最後は【X-axis Label】を変更します。この値はx軸の表示形式となります。

f:id:ueponx:20200511221124p:plain

今回はHH:mm(時:分)形式にしました。年、月、日を表示させるといったことも可能なので、可視化には十分な機能があると思います。

f:id:ueponx:20200511221127p:plain

値の変更を確認して…

f:id:ueponx:20200511221130p:plain

これで今回の設定は完了となります。変更した値の最終確認を行ったら、画面上部の【完了】ボタンをクリックします。これで【chartノード】の設定は完了となります。

f:id:ueponx:20200511221133p:plain

ここまでの設定が終わると【ダッシュボード】タブの【配置】が以下のようになっていると思います。 先程の表示の階層構造タブ → Group → chartノードのLabelが見た目にもわかるようになっています。名称の値はここから変更することも可能です。初回設定時は適当に入力し、ここに表示させてから変更するほうが楽かもしれません。

ダッシュボードを表示するにはこの画面の右ボタンをクリックします。このボタンの名称ってなんていうのだろうか?【Windowを開く】ボタンって感じ?

f:id:ueponx:20200512205351p:plain

データが何もなくても構成だけは描画できるのでテストしてみるのも手です。グラフはありませんが、ラベルなどは表示されているのがわかります。

f:id:ueponx:20200511221139p:plain

では、【前編】で作成したフローの温度を取得したexecノードの後段に配置します。

f:id:ueponx:20200511221142p:plain

で実行するのですが…一向にグラフの描画が行われません。

f:id:ueponx:20200511221139p:plain

そこでdebugノードを確認したところ、原因がわかりました。実行結果がtemp=46.0'Cという形式になっていて、数値以外の文字列が含まれているからでした。

f:id:ueponx:20200511221145p:plain

そのため、payloadの値を数値だけにするため、changeノードを使用します。

f:id:ueponx:20200511221147p:plain

changeノードをフローエディタに配置したら…

f:id:ueponx:20200511221152p:plain

payloadの不要な文字列を削除(空白文字に置換)する設定を入れておきます。正規表現で1つのルールで削除するのでもいいのですが、面倒なので2つのルールで削除しました。

f:id:ueponx:20200511221155p:plain

最終的には以下のようなフローになります。

f:id:ueponx:20200511221200p:plain

これでRaspberryPiの温度計測をダッシュボードに表示させることができました。実行するとCPU温度がグラフ化されて表示されています。

f:id:ueponx:20200512211910p:plain

Raspberry Pi 4BのCPU温度を計測する

通常の状態でCPUの温度を測っても仕方ないので、ベンチマークソフトも使用します。 使用するベンチマークソフトはUnixBenchを使用しました。以下から取得することができます。

github.com

インストールといってもgitを使用してクローンするだけですが。ベンチマークの実行はクローンしたディレクトリ内のbyte-unixbench/UnixBenchにあるRunを実行します。以下を行うとインストールと実行ができます。

$ git clone https://github.com/kdlucas/byte-unixbench
$ cd byte-unixbench/UnixBench
$ ./Run

温度計測環境

計測環境はベンチマークUnixBench)以外にもWindows10からリモートデスクトップ接続し、Chromiumブラウザを立ち上げておくことに統一します。 計測当日の室温は24℃程度でした。

熱対策未対応

f:id:ueponx:20200511221555p:plain

ベンチマーク結果

------------------------------------------------------------------------
Benchmark Run: 日  5月 10 2020 18:18:59 - 18:46:56
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       10217509.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2385.6 MWIPS (9.6 s, 7 samples)
Execl Throughput                                896.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        112341.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           31241.2 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        318185.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              159456.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  43377.6 lps   (10.0 s, 7 samples)
Process Creation                               1862.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2622.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    755.8 lpm   (60.1 s, 2 samples)
System Call Overhead                         491969.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   10217509.4    875.5
Double-Precision Whetstone                       55.0       2385.6    433.7
Execl Throughput                                 43.0        896.7    208.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     112341.6    283.7
File Copy 256 bufsize 500 maxblocks            1655.0      31241.2    188.8
File Copy 4096 bufsize 8000 maxblocks          5800.0     318185.6    548.6
Pipe Throughput                               12440.0     159456.7    128.2
Pipe-based Context Switching                   4000.0      43377.6    108.4
Process Creation                                126.0       1862.5    147.8
Shell Scripts (1 concurrent)                     42.4       2622.2    618.5
Shell Scripts (8 concurrent)                      6.0        755.8   1259.6
System Call Overhead                          15000.0     491969.1    328.0
                                                                   ========
System Benchmarks Index Score                                         321.5

------------------------------------------------------------------------
Benchmark Run: 日  5月 10 2020 18:46:56 - 19:14:57
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       38395536.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     9327.8 MWIPS (9.8 s, 7 samples)
Execl Throughput                               2689.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        209787.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           57541.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        592232.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              603560.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 187767.6 lps   (10.0 s, 7 samples)
Process Creation                               4779.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5800.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    748.2 lpm   (60.2 s, 2 samples)
System Call Overhead                        1866372.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   38395536.5   3290.1
Double-Precision Whetstone                       55.0       9327.8   1696.0
Execl Throughput                                 43.0       2689.4    625.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     209787.8    529.8
File Copy 256 bufsize 500 maxblocks            1655.0      57541.0    347.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     592232.5   1021.1
Pipe Throughput                               12440.0     603560.9    485.2
Pipe-based Context Switching                   4000.0     187767.6    469.4
Process Creation                                126.0       4779.6    379.3
Shell Scripts (1 concurrent)                     42.4       5800.4   1368.0
Shell Scripts (8 concurrent)                      6.0        748.2   1247.0
System Call Overhead                          15000.0    1866372.1   1244.2
                                                                   ========
System Benchmarks Index Score                                         838.3

80℃オーバーってなんだよ。RaspberryPi 3Bとかだと67℃ぐらいしか行かないのですが、RaspberryPi 4Bではここまで高温になってしまいます。RaspberryPi 4Bは一応80℃から85℃ぐらいで保護機能が働いて、CPUがクロックダウンするようです。そのため、クロックダウンが発生するとかなりベンチマークの値は悪くなると予想されます。

クロックダウンがあるとしても、真夏になって負荷の高いことをすると、もしかしたら熱暴走するかも。冷却できない場合には扇風機必須のような状況でした。プラスチックケースはやめたほうが良さそう。

簡易ヒートシンクで熱対応

さっきの状態を見て無対策動作するのは正直無謀だろという感じなので、手持ちであったヒートシンクをつけてみました。あんまり効果があるとは思いませんでしたが、形状は割と大きめのものだったので効果はあったようです。

温度の変化

f:id:ueponx:20200511221603p:plain

ベンチマーク結果

------------------------------------------------------------------------
Benchmark Run: 日  5月 10 2020 11:41:13 - 12:09:12
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       10201933.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2385.7 MWIPS (9.6 s, 7 samples)
Execl Throughput                                892.3 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        113391.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           32138.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        314013.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              159352.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  42987.8 lps   (10.0 s, 7 samples)
Process Creation                               1857.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2569.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    738.7 lpm   (60.1 s, 2 samples)
System Call Overhead                         494045.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   10201933.9    874.2
Double-Precision Whetstone                       55.0       2385.7    433.8
Execl Throughput                                 43.0        892.3    207.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     113391.4    286.3
File Copy 256 bufsize 500 maxblocks            1655.0      32138.4    194.2
File Copy 4096 bufsize 8000 maxblocks          5800.0     314013.6    541.4
Pipe Throughput                               12440.0     159352.2    128.1
Pipe-based Context Switching                   4000.0      42987.8    107.5
Process Creation                                126.0       1857.3    147.4
Shell Scripts (1 concurrent)                     42.4       2569.3    606.0
Shell Scripts (8 concurrent)                      6.0        738.7   1231.1
System Call Overhead                          15000.0     494045.3    329.4
                                                                   ========
System Benchmarks Index Score                                         320.6

------------------------------------------------------------------------
Benchmark Run: 日  5月 10 2020 12:09:12 - 12:37:14
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       40535432.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     9536.9 MWIPS (9.6 s, 7 samples)
Execl Throughput                               2661.0 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        220190.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           60699.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        612824.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              605107.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 194150.1 lps   (10.0 s, 7 samples)
Process Creation                               4706.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5874.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    806.7 lpm   (60.2 s, 2 samples)
System Call Overhead                        1861585.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   40535432.4   3473.5
Double-Precision Whetstone                       55.0       9536.9   1734.0
Execl Throughput                                 43.0       2661.0    618.8
File Copy 1024 bufsize 2000 maxblocks          3960.0     220190.7    556.0
File Copy 256 bufsize 500 maxblocks            1655.0      60699.6    366.8
File Copy 4096 bufsize 8000 maxblocks          5800.0     612824.1   1056.6
Pipe Throughput                               12440.0     605107.7    486.4
Pipe-based Context Switching                   4000.0     194150.1    485.4
Process Creation                                126.0       4706.6    373.5
Shell Scripts (1 concurrent)                     42.4       5874.6   1385.5
Shell Scripts (8 concurrent)                      6.0        806.7   1344.6
System Call Overhead                          15000.0    1861585.6   1241.1
                                                                   ========
System Benchmarks Index Score                                         860.0

20℃ぐらい下がって60℃までに治まったというところです。正直期待してなかったのですが割と以外です。これなら真夏でもなんとか持ちこたえられるかな。

つよつよヒートシンク+FANをつけて熱対策

簡易ヒートシンクはまあまあ冷えましたが、さらに熱対策の最終兵器を投入! SeeedさんのICE Tower CPU Cooling Fan for Pi 4を使用しました。

jp.seeedstudio.com

圧倒的にでかいヒートシンクに58mmサイズのFANがついています。FANの電源はGPIOから5VとGNDを接続します。電源を入れるとファンがLEDでグラデーションしながら光るというド派手使用。ページでは動作温度は80℃から40℃に下がりましたと記載されてました。

同様のファンは52Piというブランドで販売されていますが、このシリーズは冷却性能では実績があるもののようです。

本製品は52Piによりデザインされます。52Piは世界リードのRaspberry Piアクセサリメーカーであり、Raspberry Pi対応の様々なHAT、スクリーンなどアクセサリのデザインや生産などを行います。

購入はSeeedさんのサイト(Bazaar)か、以下で購入可能です。(amazonでは2020.05.11現在品切れのようです)

箱の様子

f:id:ueponx:20200512212938j:plain

RaspberryPi4へ装着した様子

f:id:ueponx:20200512213025j:plain

ファンについたLEDがRGBで色々変化するのは楽しいですが、ケースには入れられないよな~

温度の変化

f:id:ueponx:20200511221617p:plain

ベンチマーク結果

------------------------------------------------------------------------
Benchmark Run: 日  5月 10 2020 19:51:20 - 20:19:16
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       10204604.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2381.7 MWIPS (9.6 s, 7 samples)
Execl Throughput                                844.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        112051.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           31316.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        309951.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              155928.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  41558.5 lps   (10.0 s, 7 samples)
Process Creation                               1601.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2579.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    703.4 lpm   (60.0 s, 2 samples)
System Call Overhead                         489764.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   10204604.5    874.4
Double-Precision Whetstone                       55.0       2381.7    433.0
Execl Throughput                                 43.0        844.4    196.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     112051.5    283.0
File Copy 256 bufsize 500 maxblocks            1655.0      31316.7    189.2
File Copy 4096 bufsize 8000 maxblocks          5800.0     309951.1    534.4
Pipe Throughput                               12440.0     155928.1    125.3
Pipe-based Context Switching                   4000.0      41558.5    103.9
Process Creation                                126.0       1601.6    127.1
Shell Scripts (1 concurrent)                     42.4       2579.4    608.4
Shell Scripts (8 concurrent)                      6.0        703.4   1172.4
System Call Overhead                          15000.0     489764.4    326.5
                                                                   ========
System Benchmarks Index Score                                         311.0

------------------------------------------------------------------------
Benchmark Run: 日  5月 10 2020 20:19:16 - 20:47:20
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       39608588.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     9232.8 MWIPS (9.6 s, 7 samples)
Execl Throughput                               2520.6 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        204987.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           56605.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        588234.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                              579679.8 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 156344.5 lps   (10.0 s, 7 samples)
Process Creation                               4352.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5586.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    767.9 lpm   (60.2 s, 2 samples)
System Call Overhead                        1799377.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   39608588.1   3394.1
Double-Precision Whetstone                       55.0       9232.8   1678.7
Execl Throughput                                 43.0       2520.6    586.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     204987.5    517.6
File Copy 256 bufsize 500 maxblocks            1655.0      56605.8    342.0
File Copy 4096 bufsize 8000 maxblocks          5800.0     588234.4   1014.2
Pipe Throughput                               12440.0     579679.8    466.0
Pipe-based Context Switching                   4000.0     156344.5    390.9
Process Creation                                126.0       4352.3    345.4
Shell Scripts (1 concurrent)                     42.4       5586.7   1317.6
Shell Scripts (8 concurrent)                      6.0        767.9   1279.8
System Call Overhead                          15000.0    1799377.6   1199.6
                                                                   ========
System Benchmarks Index Score                                         807.0

ベンチマークが開始されて一瞬50℃を超える事がありましたが、47℃-48℃程度の温度に落ち着いていました。

対策していない場合が80℃オーバーになることを考えるとかなりの効果があるかなと思います。ただ、この状態でもUSBコネクタ近辺は熱を持っててかなり温かい感じでした。このあたりも季節によっては冷却してほしいなあというところです。とはいうものの、これならオーバークロックもあり得るかなという印象をうけました。

おわりに

Node-REDを使ってRaspberryPi 4BのCPU温度を表示するダッシュボードを作ってみました。正直ここまで簡単にダッシュボードが作成できるとは思っていませんでした。センサーをいろいろとつなげて、いろいろな状態を表示するにはもってこいかなと思います。自分の所属するNode-RED UserGroup Tokaiでもダッシュボードの使い方を知りたいという方は割と多くいました。今後コミュニティでダッシュボードのワークショップを行うのもありかも。

あとRaspberryPi 4Bの動作温度がかなり高い事がわかりました。真夏に向けてある程度、熱対策を行っておいたほうがいいような印象です。今回使用したつよつよヒートシンク+FANはやりすぎかもしれませんが、金属ケース形状のヒートシンクなどもあるのでそういうのは使用したほうが懸命でしょう。

例えば、以下のようなものが該当します。

やっぱりRaspberryPi 4Bは速い!サーバー用途にもパワーを発揮してくれそうな感じですね。

今回作成したフローも参考のため、末尾においておきます。

【参考】

uepon.hatenadiary.com

【今回作成したフロー】

[
    {
        "id": "204fd68d.545d2a",
        "type": "tab",
        "label": "フロー 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "1582e329.da80bd",
        "type": "exec",
        "z": "204fd68d.545d2a",
        "command": "vcgencmd measure_temp",
        "addpay": false,
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "",
        "x": 370,
        "y": 120,
        "wires": [
            [
                "4eae35a7.6eec4c"
            ],
            [],
            []
        ]
    },
    {
        "id": "4d47cdbb.4bfbd4",
        "type": "inject",
        "z": "204fd68d.545d2a",
        "name": "定期実行(15秒)",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "15",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "x": 170,
        "y": 60,
        "wires": [
            [
                "1582e329.da80bd"
            ]
        ]
    },
    {
        "id": "4eae35a7.6eec4c",
        "type": "change",
        "z": "204fd68d.545d2a",
        "name": "",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "temp=",
                "fromt": "str",
                "to": "",
                "tot": "str"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "'C",
                "fromt": "str",
                "to": "",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 580,
        "y": 180,
        "wires": [
            [
                "cdbc6d1.876909",
                "c24f39e6.3af3d8"
            ]
        ]
    },
    {
        "id": "cdbc6d1.876909",
        "type": "ui_chart",
        "z": "204fd68d.545d2a",
        "name": "",
        "group": "62bffcd3.8c4c44",
        "order": 0,
        "width": 0,
        "height": 0,
        "label": "Temp",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "",
        "ymax": "",
        "removeOlder": 1,
        "removeOlderPoints": "",
        "removeOlderUnit": "3600",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "useOldStyle": false,
        "outputs": 1,
        "x": 770,
        "y": 240,
        "wires": [
            []
        ]
    },
    {
        "id": "c24f39e6.3af3d8",
        "type": "debug",
        "z": "204fd68d.545d2a",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 790,
        "y": 180,
        "wires": []
    },
    {
        "id": "62bffcd3.8c4c44",
        "type": "ui_group",
        "z": "",
        "name": "CPU温度",
        "tab": "9712eeb9.323d8",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "9712eeb9.323d8",
        "type": "ui_tab",
        "z": "",
        "name": "RaspberryPi状態",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    }
]
/* -----codeの行番号----- */