{"id":265,"date":"2017-05-21T21:10:11","date_gmt":"2017-05-21T21:10:11","guid":{"rendered":"http:\/\/steffmaster.dnshome.de\/wordpress\/?p=265"},"modified":"2017-09-04T20:34:23","modified_gmt":"2017-09-04T20:34:23","slug":"installation-von-octoprint","status":"publish","type":"post","link":"https:\/\/wordpress.steffmaster.mooo.com\/?p=265","title":{"rendered":"Installation von Octoprint"},"content":{"rendered":"<p>User octoprint (oder eigenen Benutzer) erstellen und dann mit octoprint am Server anmelden<\/p>\n<pre class=\"lang:default decode:true \">adduser octoprint<\/pre>\n<p>Wechsel in das Heimverzeichnis des Benutzers octoprint<\/p>\n<pre class=\"lang:default decode:true \">cd ~<\/pre>\n<p>Benutzer octoprint in die sudoers Datei aufnehmen<\/p>\n<pre class=\"lang:default decode:true \">su\r\nnano \/etc\/sudoers<\/pre>\n<p>Zeile einf\u00fcgen und mit Strg+O speichern &#8212;&gt; STRG+X SCHLIESSEN<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">octoprint ALL=(ALL) ALL<\/pre>\n<p>Download und Installation der ben\u00f6tigten Pakete<\/p>\n<pre class=\"lang:default decode:true \">sudo apt-get install python-pip python-dev git\r\nsudo apt-get install python-setuptools<\/pre>\n<p>Download des Octoprint-Installationsverzeichnises (es wird im Homedirectory des Benutzers octoprint angelegt (\/home\/octoprint\/OctoPrint)<\/p>\n<pre class=\"lang:default decode:true \">git clone https:\/\/github.com\/foosel\/OctoPrint.git<\/pre>\n<p>Wechsel in das neue (heruntergeladene) Verzeichnis OctoPrint (beachte GROSS-\/kleinschreibung)<\/p>\n<pre class=\"lang:default decode:true \">cd OctoPrint<\/pre>\n<p>Start der Installation von Octoprint (es handelt sich um ein python-Script, welches mit Root-Rechten ausgef\u00fchrt wird (sudo))<\/p>\n<pre class=\"lang:default decode:true \">sudo python setup.py install<\/pre>\n<p>Erstellen eines Verzeichnisses (.octoprint) im Homedirectory des Benutzers octoprint<\/p>\n<pre class=\"lang:default decode:true \">mkdir ~\/.octoprint<\/pre>\n<p>Damit der Benutzer octoprint auch die serielle Schnittstelle uneingeschr\u00e4nkt benutzen darf, muss ihm dies gestattet werden.<\/p>\n<p>Hinzuf\u00fcgen des Benutzers pi zur Gruppe tty und dialout (Nutzung der seriellen Schnittstellen (auch virtuelle via USB-Port))<\/p>\n<pre class=\"lang:default decode:true\">sudo usermod -a -G tty octoprint\r\nsudo usermod -a -G dialout octoprint<\/pre>\n<p><strong>Erststart<\/strong><\/p>\n<p>Zum Starten geben wir Folgendes ein:<\/p>\n<pre class=\"lang:default decode:true \">octoprint serve<\/pre>\n<p>Das Antwort sollten einige Textzeilen erscheinen, in der in der letzten Zeile u.A. zu lesen ist:<br \/>\n&#8230; Listening on 0.0.0.0:5000<br \/>\nDies bedeutet, dass der Octoprint-Server erfolgreich gestartet ist und auf dem Port 5000 (Standard-Port) zur Verf\u00fcgung steht.<\/p>\n<p>Webinterface des Octoprints \u00f6ffnen (IP.des.Servers:5000<\/p>\n<pre class=\"lang:default decode:true \">192.168.0.111:5000<\/pre>\n<p>STRG+X stoppt den OctoPrintServer wieder<\/p>\n<p><strong>Cura Engine installieren<\/strong><br \/>\nwechseln ins Home Verzeichniss<\/p>\n<pre class=\"lang:default decode:true \">cd ~<\/pre>\n<pre class=\"lang:default decode:true \">sudo apt-get -y install gcc-4.7 g++-4.9\r\ngit clone -b legacy https:\/\/github.com\/Ultimaker\/CuraEngine.git<\/pre>\n<p>ins Curaverzeichniss wechseln &#8230;<\/p>\n<pre class=\"lang:default decode:true \">cd CuraEngine<\/pre>\n<pre class=\"lang:default decode:true \">wget http:\/\/bit.ly\/curaengine_makefile_patch -O CuraEngine.patch<\/pre>\n<pre class=\"lang:default decode:true \">patch &lt; CuraEngine.patch<\/pre>\n<pre class=\"lang:default decode:true \">make CXX=g++-4.9<\/pre>\n<p>Danach findet man die CuraEngine unter<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">\/home\/octoprint\/CuraEngine\/build\/CuraEngine<\/pre>\n<p>Der OctoPrint Deamon wird gestartet mit<\/p>\n<pre class=\"lang:default decode:true \">octoprint daemon start<\/pre>\n<p>Weitere Befehle<\/p>\n<pre class=\"lang:default decode:true \">octoprint daemon start|stop|restart<\/pre>\n<p><strong>OctoPrint Autostart bei Serverstart<\/strong><\/p>\n<p>\/etc\/rc.local editieren<\/p>\n<pre class=\"lang:default decode:true \">sudo nano \/ect\/rc.local<\/pre>\n<p>Zeile vor exit 0 eintragen<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">sudo -u octoprint octoprint daemon start<\/pre>\n<p>STRG+O speichert &#8212;&gt; SRTG+X beendet nano<\/p>\n<p><strong><span style=\"color: #ff0000;\">WebCam:<\/span><\/strong><\/p>\n<p>Streamer download und compilieren.<\/p>\n<pre class=\"lang:default decode:true \">cd ~\r\napt-get install subversion libjpeg62-turbo-dev imagemagick libav-tools libv4l-dev cmake\r\ngit clone https:\/\/github.com\/jacksonliam\/mjpg-streamer.git\r\ncd mjpg-streamer\/mjpg-streamer-experimental\r\nexport LD_LIBRARY_PATH=.\r\nmake<\/pre>\n<p>Stream starten mit<\/p>\n<pre class=\"lang:default decode:true \">.\/mjpg_streamer -i \".\/input_uvc.so\" -o \".\/output_http.so\"<\/pre>\n<p>F\u00fcr einige Webcams (einschlie\u00dflich der PS3 Eye) mu\u00df der YUV-Modus mit dem folgenden Startbefehl erzwungen werden:<\/p>\n<pre class=\"lang:default decode:true \">.\/mjpg_streamer -i \".\/input_uvc.so -y\" -o \".\/output_http.so\"<\/pre>\n<p>Der Stream ist nun unter:<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">http:\/\/&lt;your IP&gt;:8080\/?action=stream<\/pre>\n<p>verf\u00fcgbar. (Wenn du eine Fehlermeldung \u00fcber fehlende Dateien oder Verzeichnisse bekommst, kann das Ausgabe-Plugin mit -o &#8222;.\/output_http.so -w .\/www&#8220; weiter helfen.)<\/p>\n<p>Kamera in Octoprint einf\u00fcgen:<\/p>\n<p>\u00d6ffne:<\/p>\n<pre class=\"lang:default decode:true \">nano \/home\/octoprint\/.octoprint\/config.yaml<\/pre>\n<p>(erstelle die Datei einfach, wenn sie noch nicht existiert) und f\u00fcge die folgenden Zeilen hinzu:<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">webcam:\r\n  stream: http:\/\/&lt;your IP&gt;:8080\/?action=stream\r\n  snapshot: http:\/\/127.0.0.1:8080\/?action=snapshot\r\n  ffmpeg: \/usr\/bin\/avconv<\/pre>\n<p>Starte den OctoPrint-Server neu, l\u00f6sche den Cache in Ihrem Browser und lade die OctoPrint-Seite neu. Du solltest nun den Stream von der Webcam auf der Registerkarte &#8222;Control&#8220; und eine Registerkarte &#8222;Timelapse&#8220; mit Optionen sehen.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>WebCam in OctoPrint ein\/aus schalten<\/strong><\/span><\/p>\n<p>In<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">\/home\/octoprint\/OctoPrint\/scripts<\/pre>\n<p>2 Dateien erstellen<\/p>\n<pre class=\"lang:default decode:true \">touch \/home\/octoprint\/OctoPrint\/scripts\/webcam<\/pre>\n<pre class=\"lang:default decode:true \">touch \/home\/octoprint\/OctoPrint\/scripts\/webcamDaemon<\/pre>\n<p>webcam f\u00fcllen mit<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">#!\/bin\/bash\r\n# Start \/ stop streamer daemon\r\n\r\ncase \"$1\" in\r\n    start)\r\n        \/home\/octoprint\/OctoPrint\/scripts\/webcamDaemon &gt;\/dev\/null 2&gt;&amp;1 &amp;\r\n        echo \"$0: started\"\r\n        ;;\r\n    stop)\r\n        pkill -x webcamDaemon\r\n        pkill -x mjpg_streamer\r\n        echo \"$0: stopped\"\r\n        ;;\r\n    *)\r\n        echo \"Usage: $0 {start|stop}\" &gt;&amp;2\r\n        ;;\r\nesac<\/pre>\n<p>webcamDaemon f\u00fcllen mit<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">#!\/bin\/bash\r\n\r\nMJPGSTREAMER_HOME=\/home\/octoprint\/mjpg-streamer\/mjpg-streamer-experimental\r\nMJPGSTREAMER_INPUT_USB=\"input_uvc.so\"\r\nMJPGSTREAMER_INPUT_RASPICAM=\"input_raspicam.so\"\r\n\r\n# init configuration\r\ncamera=\"auto\"\r\ncamera_usb_options=\"-r 1280x720 -f 10\"\r\ncamera_raspi_options=\"-fps 10\"\r\n\r\nif [ -e \"\/boot\/octopi.txt\" ]; then\r\n    source \"\/boot\/octopi.txt\"\r\nfi\r\n\r\n# runs MJPG Streamer, using the provided input plugin + configuration\r\nfunction runMjpgStreamer {\r\n    input=$1\r\n    pushd $MJPGSTREAMER_HOME\r\n    echo Running .\/mjpg_streamer -o \"output_http.so -p 5100 .\/www\" -i \"$input\"\r\n    LD_LIBRARY_PATH=. .\/mjpg_streamer -o \"output_http.so -p 5100  .\/www\" -i \"$input\"\r\n    popd\r\n}\r\n\r\n# starts up the RasPiCam\r\nfunction startRaspi {\r\n    logger \"Starting Raspberry Pi camera\"\r\n    runMjpgStreamer \"$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options\"\r\n}\r\n\r\n# starts up the USB webcam\r\nfunction startUsb {\r\n    logger \"Starting USB webcam\"\r\n    runMjpgStreamer \"$MJPGSTREAMER_INPUT_USB $camera_usb_options\"\r\n}\r\n\r\n# we need this to prevent the later calls to vcgencmd from blocking\r\n# I have no idea why, but that's how it is...\r\nvcgencmd version\r\n\r\n# echo configuration\r\necho camera: $camera\r\necho usb options: $camera_usb_options\r\necho raspi options: $camera_raspi_options\r\n\r\n# keep mjpg streamer running if some camera is attached\r\nwhile true; do\r\n    if [ -e \"\/dev\/video0\" ] &amp;&amp; { [ \"$camera\" = \"auto\" ] || [ \"$camera\" = \"usb\" ] ; }; then\r\n        startUsb\r\n    elif [ \"`vcgencmd get_camera`\" = \"supported=1 detected=1\" ] &amp;&amp; { [ \"$camera\" = \"auto\" ] || [ \"$camera\" = \"raspi\" ] ; }; then\r\n        startRaspi\r\n    fi\r\n\r\n    sleep 120\r\ndone<\/pre>\n<p>Nun die Datei<\/p>\n<pre class=\"theme:eclipse lang:default decode:true \">\/home\/octoprint\/.octoprint\/config.yaml<\/pre>\n<p>\u00f6ffnen.<\/p>\n<p>Am Ende einf\u00fcgen<\/p>\n<pre class=\"lang:default decode:true \">system:\r\n  actions:\r\n   - action: streamon\r\n     command: \/home\/octoprint\/OctoPrint\/scripts\/webcam start\r\n     confirm: false\r\n     name: Start video stream\r\n   - action: streamoff\r\n     command: \/home\/octoprint\/OctoPrint\/scripts\/webcam stop\r\n     confirm: false\r\n     name: Stop video stream<\/pre>\n<p><strong>OctoPrint Updaten:<\/strong><\/p>\n<pre class=\"lang:default decode:true \">cd \/home\/octoprint\/OctoPrint\r\ngit pull\r\npython setup.py clean\r\npython setup.py install<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>User octoprint (oder eigenen Benutzer) erstellen und dann mit octoprint am Server anmelden adduser octoprint Wechsel in das Heimverzeichnis des Benutzers octoprint cd ~ Benutzer octoprint in die sudoers Datei aufnehmen su nano \/etc\/sudoers Zeile einf\u00fcgen und mit Strg+O speichern &#8212;&gt; STRG+X SCHLIESSEN octoprint ALL=(ALL) ALL Download und Installation der ben\u00f6tigten Pakete sudo apt-get install &hellip; <a href=\"https:\/\/wordpress.steffmaster.mooo.com\/?p=265\" class=\"more-link\"><span class=\"screen-reader-text\">Installation von Octoprint<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,2],"tags":[],"class_list":["post-265","post","type-post","status-publish","format-standard","hentry","category-3d-druck","category-linux"],"_links":{"self":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts\/265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=265"}],"version-history":[{"count":21,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts\/265\/revisions\/301"}],"wp:attachment":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}