{"id":6735,"date":"2025-06-23T15:42:28","date_gmt":"2025-06-23T06:42:28","guid":{"rendered":"https:\/\/blog.smartlight.co.jp\/?p=6735"},"modified":"2025-06-23T15:43:46","modified_gmt":"2025-06-23T06:43:46","slug":"node-red%e3%81%a7%e5%a4%a9%e6%b0%97api%e9%80%a3%e6%90%ba%ef%bc%81hue%e3%83%a9%e3%82%a4%e3%83%88%e3%81%ae%e8%89%b2%e3%81%8c%e8%87%aa%e5%8b%95%e3%81%a7%e5%a4%89%e3%82%8f%e3%82%8b%e4%bb%95%e7%b5%84","status":"publish","type":"post","link":"https:\/\/blog.smartlight.co.jp\/?p=6735","title":{"rendered":"Node-RED\u3067\u5929\u6c17API\u9023\u643a\uff01Hue\u30e9\u30a4\u30c8\u306e\u8272\u304c\u81ea\u52d5\u3067\u5909\u308f\u308b\u4ed5\u7d44\u307f\u3092\u4f5c\u3063\u3066\u307f\u305f"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u306f\u3058\u3081<\/h3>\n\n\n\n<p>\u305d\u3053\u3067\u4eca\u56de\u306f\u3001Node-RED\u3092\u4f7f\u3063\u3066<strong>\u5929\u6c17API\u3068\u9023\u643a\u3057\u3001\u6c17\u6e29\u306b\u5fdc\u3058\u3066Philips Hue\u30e9\u30a4\u30c8\u306e\u8272\u3092\u81ea\u52d5\u3067\u5909\u3048\u308b\u30b7\u30b9\u30c6\u30e0<\/strong>\u3092\u69cb\u7bc9\u3057\u3066\u307f\u307e\u3057\u305f\uff01inject\u30ce\u30fc\u30c9\u3092\u4f7f\u3063\u3066\u3001\u4e00\u5b9a\u9593\u9694\u3067\u5929\u6c17API\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u3067\u3001<strong>\u5e38\u306b\u6700\u65b0\u306e\u6c17\u6e29\u306b\u5408\u308f\u305b\u3066\u30e9\u30a4\u30c8\u306e\u8272\u304c\u5909\u308f\u308a\u7d9a\u3051\u308b\u4ed5\u7d44\u307f<\/strong>\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u69cb\u6210\u30a4\u30e1\u30fc\u30b8<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Node-RED<\/strong>\uff08Raspberry Pi 4\u4e0a\u3067\u7a3c\u50cd\uff09<\/li>\n\n\n\n<li><strong>OpenWeatherMap API<\/strong>\uff08\u6c17\u6e29\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\uff09<\/li>\n\n\n\n<li><strong>Philips Hue\u30e9\u30a4\u30c8<\/strong>\uff08API\u7d4c\u7531\u3067\u8272\u3092\u5236\u5fa1\uff09<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"> \u30d5\u30ed\u30fc<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>inject\u30ce\u30fc\u30c9<\/code>\uff1a30\u5206\u3054\u3068\u306b\u5b9f\u884c\uff08\u6b62\u3081\u306a\u3044\u9650\u308a\u5e38\u306b\u52d5\u4f5c\uff09<\/li>\n\n\n\n<li><code>http request\u30ce\u30fc\u30c9<\/code>\uff1a\u5929\u6c17API\u3078GET\u30ea\u30af\u30a8\u30b9\u30c8(URL\u3092\u8a2d\u5b9a)<\/li>\n\n\n\n<li><code>function\u30ce\u30fc\u30c9<\/code>\uff1a\u6c17\u6e29\u306b\u5fdc\u3058\u3066\u30e9\u30a4\u30c8\u306e\u8272\u3092\u8a2d\u5b9a<\/li>\n\n\n\n<li><code>Hue\u30e9\u30a4\u30c8\u30ce\u30fc\u30c9<\/code>\uff1a\u8a2d\u5b9a\u3055\u308c\u305f\u8272\u3067\u30e9\u30a4\u30c8\u3092\u66f4\u65b0<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">API\u3067\u90fd\u5e02\u3092\u81ea\u7531\u306b\u5207\u308a\u66ff\u3048\u53ef\u80fd\uff01<\/h3>\n\n\n\n<p>\u4f7f\u7528\u3057\u3066\u3044\u308bOpenWeatherMap\u306eAPI\u306eURL\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5f62\u5f0f\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">bash\u30b3\u30d4\u30fc\u3059\u308b\u7de8\u96c6\u3059\u308b<code>https:\/\/api.openweathermap.org\/data\/2.5\/weather?q=Tokyo&amp;appid=YOUR_API_KEY&amp;units=metric\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e<code>q=Tokyo<\/code>\u306e\u90e8\u5206\u3092\u5909\u3048\u308b\u3053\u3068\u3067\u3001<strong>\u4e16\u754c\u4e2d\u306e\u90fd\u5e02\u306e\u6c17\u6e29\u3092\u53d6\u5f97\u3067\u304d\u307e\u3059<\/strong>\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u4f8b\uff1a<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6771\u4eac \u2192 <code>q=Tokyo<\/code><\/li>\n\n\n\n<li>\u5927\u962a \u2192 <code>q=Osaka<\/code><\/li>\n\n\n\n<li>\u30cb\u30e5\u30fc\u30e8\u30fc\u30af \u2192 <code>q=New York<\/code><\/li>\n\n\n\n<li>\u30ed\u30f3\u30c9\u30f3 \u2192 <code>q=London<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u3064\u307e\u308a\u3001<strong>Node-RED\u30d5\u30ed\u30fc\u306e\u8a2d\u5b9a\u3092\u5909\u3048\u305a\u306b\u90fd\u5e02\u540d\u3060\u3051\u5dee\u3057\u66ff\u3048\u308c\u3070\u3001\u6d77\u5916\u306e\u6c17\u6e29\u306b\u5408\u308f\u305b\u3066\u30e9\u30a4\u30c8\u3092\u5909\u5316\u3055\u305b\u308b\u3053\u3068\u3082\u53ef\u80fd<\/strong>\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">function\u30ce\u30fc\u30c9\u306e\u4e2d\u8eab\uff08\u6c17\u6e29\u3067\u8272\u5909\u66f4\uff09<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">&lt;code&gt;<span class=\"hljs-keyword\">let<\/span> temp = msg.payload.main.temp;\n\n<span class=\"hljs-keyword\">if<\/span> (temp &lt; <span class=\"hljs-number\">10<\/span>) {\n    msg.payload = { <span class=\"hljs-attr\">on<\/span>: <span class=\"hljs-literal\">true<\/span>, <span class=\"hljs-attr\">bri<\/span>: <span class=\"hljs-number\">200<\/span>, <span class=\"hljs-attr\">hue<\/span>: <span class=\"hljs-number\">46920<\/span> }; <span class=\"hljs-comment\">\/\/ \u5bd2\u3044 \u2192 \u9752\u7cfb<\/span>\n} <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">if<\/span> (temp &lt; <span class=\"hljs-number\">20<\/span>) {\n    msg.payload = { <span class=\"hljs-attr\">on<\/span>: <span class=\"hljs-literal\">true<\/span>, <span class=\"hljs-attr\">bri<\/span>: <span class=\"hljs-number\">200<\/span>, <span class=\"hljs-attr\">hue<\/span>: <span class=\"hljs-number\">25500<\/span> }; <span class=\"hljs-comment\">\/\/ \u6dbc\u3057\u3044 \u2192 \u7dd1<\/span>\n} <span class=\"hljs-keyword\">else<\/span> {\n    msg.payload = { <span class=\"hljs-attr\">on<\/span>: <span class=\"hljs-literal\">true<\/span>, <span class=\"hljs-attr\">bri<\/span>: <span class=\"hljs-number\">200<\/span>, <span class=\"hljs-attr\">hue<\/span>: <span class=\"hljs-number\">0<\/span> };     <span class=\"hljs-comment\">\/\/ \u6691\u3044 \u2192 \u8d64\u7cfb<\/span>\n}\n\n<span class=\"hljs-keyword\">return<\/span> msg;\n&lt;<span class=\"hljs-regexp\">\/code&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">inject\u30ce\u30fc\u30c9\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30bf\u30a4\u30d7\uff1a<strong>interval<\/strong><\/li>\n\n\n\n<li>\u5b9f\u884c\u9593\u9694\uff1a<strong>30\u5206<\/strong><\/li>\n\n\n\n<li>\u81ea\u52d5\u8d77\u52d5\uff1a<strong>\u30c1\u30a7\u30c3\u30afON<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Node-RED\u3092\u8d77\u52d5\u3057\u7d9a\u3051\u308b\u9650\u308a\u3001\u30e9\u30a4\u30c8\u3082\u5b9a\u671f\u7684\u306b\u66f4\u65b0\u3055\u308c\u7d9a\u3051\u307e\u3059\u3002<br>\u30dc\u30bf\u30f3\u3067\u306e\u70b9\u6ec5\u5236\u5fa1\u306f\u4eca\u5ea6\u5b9f\u88c5\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OpenWeatherMap\u306e<strong>\u90fd\u5e02\u540d\u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u5834\u6240\u5909\u66f4\u304c\u53ef\u80fd<\/strong><\/li>\n\n\n\n<li>\u6c17\u6e29\u306b\u5fdc\u3058\u3066Hue\u306e\u8272\u304c\u81ea\u52d5\u3067\u5909\u5316<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081 \u305d\u3053\u3067\u4eca\u56de\u306f\u3001Node-RED\u3092\u4f7f\u3063\u3066\u5929\u6c17API\u3068\u9023\u643a\u3057\u3001\u6c17\u6e29\u306b\u5fdc\u3058\u3066Philips Hue\u30e9\u30a4\u30c8\u306e\u8272\u3092\u81ea\u52d5\u3067\u5909\u3048\u308b\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3057\u3066\u307f\u307e\u3057\u305f\uff01inject\u30ce\u30fc\u30c9\u3092\u4f7f\u3063\u3066\u3001\u4e00\u5b9a\u9593\u9694\u3067\u5929\u6c17API\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u3067\u3001\u5e38<\/p>\n","protected":false},"author":21,"featured_media":6737,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jin_ogp_image_url":"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/06\/thumbnails-ogp-6735.png","_jin_last_featured_id":6737,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-6735","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intern"],"jetpack_featured_media_url":"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/06\/thumbnails-featured-6735.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/6735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6735"}],"version-history":[{"count":1,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/6735\/revisions"}],"predecessor-version":[{"id":6736,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/6735\/revisions\/6736"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/media\/6737"}],"wp:attachment":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}