{"id":6909,"date":"2016-04-09T20:43:11","date_gmt":"2016-04-09T18:43:11","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=6909"},"modified":"2021-11-22T17:14:15","modified_gmt":"2021-11-22T16:14:15","slug":"node-red","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=6909","title":{"rendered":"Node-RED von IBM f\u00fcr den Raspberry Pi auf Jessie"},"content":{"rendered":"<p>Node-RED, ein Tool von IBM mit einem grafischer Editor als Herzst\u00fcck. Damit geht Programmiern sehr flink.<\/p>\n<p><a href=\"https:\/\/nodered.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Node-RED<\/a> l\u00e4uft auf dem Raspberry Pi (BPlus) ziemlich gut. Die Installation ist gut auf der <a href=\"https:\/\/nodered.org\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">node-RED Homepage<\/a> beschrieben oder auch hier auf <a href=\"https:\/\/entwickler.de\/iot\/ein-baukasten-fur-das-internet-der-dinge\/\" target=\"_blank\" rel=\"noopener noreferrer\">deutsch<\/a>. Man muss nur darauf achten, das die richtige Version f\u00fcr den Raspberry Pi gew\u00e4hlt wird. Ich hatte nicht die Version f\u00fcr die B Version installiert, das f\u00fchrte dann beim starten zu einer Fehlermeldung. <\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red-kleinhirn-eu.png\" rel=\"attachment wp-att-6916\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red-kleinhirn-eu.png\" alt=\"node-red-kleinhirn-eu\" width=\"640\" height=\"453\" class=\"aligncenter size-full wp-image-6916\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red-kleinhirn-eu.png 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red-kleinhirn-eu-300x212.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Also f\u00fcr den Raspberry Pi (B) wie <a href=\"https:\/\/nodered.org\/docs\/hardware\/raspberrypi#manual-install\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a> beschrieben vorgehen:<!--more--><\/p>\n<pre class=\"lang:default decode:true \" >\r\n# ...\r\nwget http:\/\/node-arm.herokuapp.com\/node_archive_armhf.deb\r\nsudo dpkg -i node_archive_armhf.deb\r\nsudo apt-get install build-essential python-rpi.gpio\r\n...\r\n<\/pre>\n<p>Dann hatte ich noch einige Erweiterungen installiert, das dauert dann etwas:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nnpm install moment\r\nnpm install node-red-contrib-grove\r\nnpm install node-red-contrib-bigtimer\r\nnpm install node-red-contrib-esplogin\r\nnpm install node-red-node-pushbullet\r\nnpm install node-red-contrib-freeboard\r\nnpm install node-red-node-openweathermap\r\nnpm install node-red-node-google\r\nnpm install node-red-node-sqlite\r\nnpm install node-red-contrib-ui\r\nnpm install node-red-node-emoncms\r\nnpm install node-red-node-geofence\r\nnpm install node-red-contrib-ivona\r\nnpm install node-red-contrib-moment\r\nnpm install node-red-contrib-particle\r\nnpm install node-red-contrib-graphs\r\nnpm install node-red-node-ledborg\r\nnpm install node-red-node-ping\r\nnpm install node-red-node-random\r\nnpm install node-red-node-smooth\r\nnpm install node-red-node-serialport\r\nnpm install node-red-contrib-npm\r\nnpm install raspi-io\r\nnpm install node-red-contrib-gpio\r\nnpm install node-red-contrib-admin\r\nnpm install node-red-node-sqlite\r\nnpm install sense-hat\r\n<\/pre>\n<p>Starte von node-RED dann \u00fcber  <\/p>\n<pre class=\"lang:default decode:true \" >\r\nnode-red-pi\r\n<\/pre>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red.png\" rel=\"attachment wp-att-6910\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red.png\" alt=\"node-red\" width=\"846\" height=\"614\" class=\"aligncenter size-full wp-image-6910\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red.png 846w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red-300x218.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/node-red-768x557.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Wenn &#8222;Started flows&#8220; erscheint kann im Browser \u00fcber die Adresse <strong>http:\/\/(Pi-Adresse):1880<\/strong> die Anwendung aufgerufen werden. <\/p>\n<p>Dann mal ein &#8222;<strong>Hallo Welt<\/strong>&#8220; zusammen klicken. Wir ben\u00f6tigen per drag and drop aus dem Input Bereich ein &#8222;inject&#8220; und aus dem output Bereich ein &#8222;debug&#8220;, dann beide verbinden. Dann noch ein doppelklick auf den &#8222;inject&#8220; und &#8222;debug&#8220;. Dann das ganze mit den klick auf &#8222;deploy&#8220; bereitstellen. Nun kann man das Programm mit klick auf den linken Bereich des &#8222;inject&#8220; starten und im rechten Debug Tab wird &#8222;Hallo Welt&#8220; angezeigt. Cool.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/hallo-welt.png\" rel=\"attachment wp-att-6911\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/hallo-welt-1024x612.png\" alt=\"hallo-welt\" width=\"640\" height=\"383\" class=\"aligncenter size-large wp-image-6911\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/hallo-welt-1024x612.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/hallo-welt-300x179.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/hallo-welt-768x459.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/hallo-welt.png 1922w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>So, nun mal etwas mehr. Wir wollen mal ein Zitat aus dem Internet abfragen. Da gibt es ja einige REST-Schnittstellen.<\/p>\n<p>Wer das nich selbst zusamen klicken m\u00f6chte, kann \u00fcber das Men\u00fc oben rechts importieren. Dazu diesen Code in die Zwischenablage kopieren:<\/p>\n<pre class=\"lang:js decode:true \" >\r\n[{\"id\":\"d19a5759.d236c8\",\"type\":\"inject\",\"z\":\"3d2b2edf.659d32\",\"name\":\"Starte das holen des Zitat des Tages\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":207.36666870117188,\"y\":78.75,\"wires\":[[\"61fe4c44.12e0ec\"]]},{\"id\":\"61fe4c44.12e0ec\",\"type\":\"http request\",\"z\":\"3d2b2edf.659d32\",\"name\":\"Zitat holen\",\"method\":\"GET\",\"ret\":\"obj\",\"url\":\"http:\/\/taeglicheszit.at\/zitat-api.php?format=json\",\"x\":299.36669921875,\"y\":212,\"wires\":[[\"56d62e26.e9f688\",\"91ed7f4a.b1bdc8\",\"4a482fa1.d6b51\"]]},{\"id\":\"f5522465.712288\",\"type\":\"debug\",\"z\":\"3d2b2edf.659d32\",\"name\":\"Debug Ausgabe\",\"active\":true,\"console\":\"false\",\"complete\":\"payload\",\"x\":768.36669921875,\"y\":166.25,\"wires\":[]},{\"id\":\"56d62e26.e9f688\",\"type\":\"contrib-json\",\"z\":\"3d2b2edf.659d32\",\"engine\":\"JSONSelect\",\"command\":\"jq\",\"expr\":\":root &amp;gt; .zitat\",\"complete\":\"property\",\"prop\":\"payload\",\"name\":\"Zitat auswerten\",\"x\":551.36669921875,\"y\":140.75,\"wires\":[[\"f5522465.712288\"]]},{\"id\":\"91ed7f4a.b1bdc8\",\"type\":\"contrib-json\",\"z\":\"3d2b2edf.659d32\",\"engine\":\"JSONSelect\",\"command\":\"jq\",\"expr\":\":root .autor\",\"complete\":\"property\",\"prop\":\"payload\",\"name\":\"Autor auswerten\",\"x\":555.36669921875,\"y\":211.75,\"wires\":[[\"f5522465.712288\"]]},{\"id\":\"4a482fa1.d6b51\",\"type\":\"json\",\"z\":\"3d2b2edf.659d32\",\"name\":\"Zitat\",\"x\":529.36669921875,\"y\":287.75,\"wires\":[[\"a265b5ad.00c108\"]]},{\"id\":\"a265b5ad.00c108\",\"type\":\"file\",\"z\":\"3d2b2edf.659d32\",\"name\":\"in Datei speichern\",\"filename\":\"zitat-des-tages.txt\",\"appendNewline\":true,\"createDir\":false,\"overwriteFile\":\"false\",\"x\":724.36669921875,\"y\":288.5,\"wires\":[]}]\r\n<\/pre>\n<p>Und dann \u00fcber das import Men\u00fc oben rechts: <strong>Import &#8211; Clipboard<\/strong> importieren. Schon hat man dieses Programm:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/zitat-des-tages.png\" rel=\"attachment wp-att-6915\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/zitat-des-tages-1024x242.png\" alt=\"zitat-des-tages\" width=\"640\" height=\"151\" class=\"aligncenter size-large wp-image-6915\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/zitat-des-tages-1024x242.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/zitat-des-tages-300x71.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/zitat-des-tages-768x181.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/zitat-des-tages.png 1648w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Bei klick auf &#8222;Starte das holen des Zitat des Tages&#8220; wird eine Webseite nach dem Zitat des Tages abgefragt und in eine Datei gespeichert und gleichzeitig auch in der rechten Debug ansicht ausgebeben. Habt Ihr weitere Ideen, dann per Kommentar. Oder eines der fast 700 vorhandenen Flows aus der <a href=\"https:\/\/flows.nodered.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">node-RED Library holen<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node-RED, ein Tool von IBM mit einem grafischer Editor als Herzst\u00fcck. Damit geht Programmiern sehr flink. Node-RED l\u00e4uft auf dem Raspberry Pi (BPlus) ziemlich gut. Die Installation ist gut auf der node-RED Homepage beschrieben oder auch hier auf deutsch. Man muss nur darauf achten, das die richtige Version f\u00fcr den Raspberry Pi gew\u00e4hlt wird. Ich &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=6909\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eNode-RED von IBM f\u00fcr den Raspberry Pi auf Jessie\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,2173,1204,2520,79,1023],"tags":[351,2474,2475,2473,2476,2477,256],"class_list":["post-6909","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-debian","category-internet-2","category-node-red","category-programmierung","category-raspberry-pi","tag-editor","tag-ibm","tag-node","tag-node-red","tag-red","tag-rot","tag-tool"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/6909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6909"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/6909\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6909"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6909"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}