{"id":1090,"date":"2020-02-12T10:10:17","date_gmt":"2020-02-12T09:10:17","guid":{"rendered":"http:\/\/www.rommelkist.nl\/elec\/?p=1090"},"modified":"2020-07-23T14:02:06","modified_gmt":"2020-07-23T12:02:06","slug":"neato-robotstofzuiger","status":"publish","type":"post","link":"https:\/\/www.rommelkist.nl\/elec\/domotica\/neato-robotstofzuiger\/","title":{"rendered":"Neato robotstofzuiger"},"content":{"rendered":"\n<p>Vorig jaar in december heb ik de <a href=\"https:\/\/www.neatorobotics.com\/nl\/robot-vacuum\/d-shape-series\/neato-d4\/\">Neato Botvac D4 Connected<\/a> gekocht: een robotstofzuiger die behoorlijk goed uit verschillende testen kwam. Stofzuigen is nou niet echt mijn hobby, dus dat zou de aanschaf van zo&#8217;n robot makkelijk maken, maar dat is dan ook weer niet echt zo. Ten  eerste zijn ze best nogal prijzig en ten tweede, nog belangrijker; ze doen vaak niet goed wat ze eigenlijk uitstekend zouden moeten doen. Deze machine kwam zo&#8217;n beetje als beste uit de test van de consumentenbond.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"599\" src=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2020\/02\/973326_1205_705_contain-1024x599.png\" alt=\"\" class=\"wp-image-1091\" srcset=\"https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/973326_1205_705_contain-1024x599.png 1024w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/973326_1205_705_contain-300x176.png 300w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/973326_1205_705_contain-768x449.png 768w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/973326_1205_705_contain-425x249.png 425w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/973326_1205_705_contain.png 1205w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Op de webisite van Neato kan je precies lezen wat het ding allemaal kan, dus dat ga ik hier niet herhalen. Waar ik het hier wel over wil hebben is de aansturing. Standaard wordt ie aangestuurd vanuit een app-je: starten met schoonmaken, pauzeren, stoppen, dat soort dingen. Je kunt &#8216;m ook naar het laadstation sturen.<br>Het blijkt dat aansturing vanuit Domoticz ook zou moeten kunnen! Kijk en daar wordt het natuurlijk interessant!<\/p>\n\n\n\n<p>Via het Domoticz-forum kwam ik op de GitHub pagina van <a href=\"https:\/\/github.com\/stianaske\/pybotvac\">stianaske<\/a> terecht. Hij heeft een Pythonmodule, pybotvac, geschreven waarmee je de Neato Botvac Connected stofzuigers vanuit Domoticz kunt benaderen. Dat lijkt dan weer simpel, maar dat blijkt het dan weer niet helemaal te zijn. Hieronder mijn bevindingen.<\/p>\n\n\n\n<p>Ik heb Domoticz op een Raspberry Pi draaien, dus daar moest pybotvac module op ge\u00efnstalleerd worden. Dit kan je doen via PIP = PyPi, een packet manager onder Python.<\/p>\n\n\n\n<p>Install using pip<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">pip install pybotvac<\/pre>\n\n\n\n<p>Het blijkt dat pybotvac (bij mij) niet onder Python 2.x werkt en dat was nou net mijn standaard Python versie. Python 3.x was wel ge\u00efnstalleerd op de Raspberry Pi, maar wanneer je Python aanriep werd Python 2.x standaard gestart. Dus moest de standaard aangepast worden.<br><br>Zoekend op internet kwam ik het volgende tegen.<\/p>\n\n\n\n<p><em>To change a python version on per user basis you simply create an&nbsp;<code>alias<\/code>&nbsp;within user&#8217;s home directory. Open&nbsp;<code>~\/.bashrc<\/code>&nbsp;file and add new alias to change your default python executable:<\/em><\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">alias python='\/usr\/bin\/python3'<\/pre>\n\n\n\n<p><em>Once you make the above change, re-login or source your&nbsp;<code>.bashrc<\/code>&nbsp;file:<\/em><\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">$ . ~\/.bashrc <\/pre>\n\n\n\n<p><em>Check your default python version:<\/em><\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">$ python --version\nPython 3.5.2<\/pre>\n\n\n\n<p>Vanaf nu, wanneer je een Python aanroept, wordt standaard versie 3 gebruikt.<\/p>\n\n\n\n<p>Via pip was pybotvac ge\u00efnstalleerd binnen Python 2, dus &#8230; nu moest het ook nog via pip3 (!) onder Python 3 gedaan worden.<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">pip3 install pybotvac<\/pre>\n\n\n\n<p>Volgens de beschrijving van <a href=\"https:\/\/github.com\/stianaske\/pybotvac\">stianaske<\/a> zijn dan de volgende methodes in de Robot class beschikbaar:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>get_robot_state()<\/li><li>start_cleaning()<\/li><li>start_spot_cleaning()<\/li><li>pause_cleaning()<\/li><li>stop_cleaning()<\/li><li>send_to_base()<\/li><li>enable_schedule()<\/li><li>disable_schedule()<\/li><li>get_schedule()<\/li><\/ul>\n\n\n\n<p>Eerst moet echter het &#8216;serie\u00eble&#8217; nummer en het &#8216;secret&#8217; nummer van jouw eigen robot achterhaald worden. Hiervoor gebruik je de gegevens (jouw_emailadres, jouw_wachtwoord) die je gebruikt hebt om jouw eigen Neato te registreren. Het secretnummer bevat echter geen 32 karakters meer, maar tegenwoordig 256 hexadecimale karakters!<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">>>> from pybotvac import Account\n>>> # List all robots associated with account\n>>> for robot in Account('jouw_emailadres', 'jouw_wachtwoord').robots:\n    print(robot)\n\nName: my_robot_name, Serial: OPS01234-0123456789AB, Secret: 0123456789ABCDEF0123456789ABCDEF, Traits: ['maps']<\/pre>\n\n\n\n<p>Met deze twee nummers en de naam van de robot zijn de methodes op de volgende manier aan te roepen. Vanaf de Python prompt:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">>>> from pybotvac import Robot\n>>> robot = Robot('seri\u00eble_nummer', 'secret_nummer', 'robot_name')\n>>> print(robot)\nName: sample_robot, Serial: OPS01234-0123456789AB, Secret: 0123456789ABCDEF0123456789ABCDEF<\/pre>\n\n\n\n<p>Om een schoonmaakbeurt te starten:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">robot.start_cleaning()<\/pre>\n\n\n\n<p>Dat werkte! Nu hetzelfde voor elkaar krijgen vanuit Domoticz. Hiervoor worden de regels samengevoegd in een script. Om de Neato te laten starten met een schoonmaakbeurt heb ik het volgende script <strong>neato_start_cleaning.py<\/strong> gemaakt.<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">#!\/usr\/bin\/python\nfrom pybotvac import Robot\nrobot = Robot('seri\u00eble_nummer', 'secret_nummer', 'robot_name')\n\nrobot.start_cleaning()<\/pre>\n\n\n\n<p>De scripts moeten vervolgens &#8216;executable&#8217; gemaakt worden. Dat doe je door elk script te bewerken met: <\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">chmod +x neato_start_cleaning.py<\/pre>\n\n\n\n<p>Dan kan je een een virtuele schakelaar aanmaken in Domoticz. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"712\" src=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2020\/02\/Knipsel.jpg\" alt=\"\" class=\"wp-image-1093\" srcset=\"https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/Knipsel.jpg 776w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/Knipsel-300x275.jpg 300w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/Knipsel-768x705.jpg 768w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2020\/02\/Knipsel-425x390.jpg 425w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/><\/figure>\n\n\n\n<p>Onder &#8220;Aan actie&#8221; bepaal je welk script (in dit geval neato_start_cleaning.py) uitgevoerd moet worden. Dit start met &#8220;Script:\/\/&#8221;, vervolgens het hele pad naar waar het script staat. Hier dus: &#8220;\/home\/pi\/domoticz\/scripts\/&#8221;. Hetzelfde bepaal je voor &#8220;Uit actie&#8221;.<br>Jammer genoeg werkte dit niet. Ben een tijd bezig geweest met die slashes: \/, \/\/, of \/\/\/. Met of zonder spaties. Het mocht allemaal niet baten. Uiteindelijk bleek de eerste regel van de scripts (shebang, of hashbang line) veranderd te moeten worden van:<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">#!\/usr\/bin\/env python<\/pre>\n\n\n\n<p>&#8230;. in &#8230;.<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">#!\/usr\/bin\/python3<\/pre>\n\n\n\n<p>En ja hoor, toen werkte het eindelijk!<br>Nog een paar scripts gemaakt om Neato te pauzeren, te stoppen en om &#8216;m terug te sturen naar zijn oplaadplaats. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vorig jaar in december heb ik de Neato Botvac D4 Connected gekocht: een robotstofzuiger die behoorlijk goed uit verschillende testen kwam. Stofzuigen is nou niet echt mijn hobby, dus dat zou de aanschaf van zo&#8217;n robot makkelijk maken, maar dat is dan ook weer niet echt zo. Ten eerste zijn ze best nogal prijzig en ten tweede, nog belangrijker; ze doen vaak niet goed wat ze eigenlijk uitstekend zouden moeten doen. Deze machine kwam zo&#8217;n beetje als beste uit de test van de consumentenbond. Op de webisite van Neato kan je precies lezen wat het ding allemaal kan, dus dat ga ik hier niet herhalen.<span class=\"more-link\"><a href=\"https:\/\/www.rommelkist.nl\/elec\/domotica\/neato-robotstofzuiger\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75],"tags":[76,102,93],"class_list":["entry","author-admin","post-1090","post","type-post","status-publish","format-standard","category-domotica","tag-domotica","tag-python","tag-robot"],"_links":{"self":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/posts\/1090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/comments?post=1090"}],"version-history":[{"count":0,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/posts\/1090\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/media?parent=1090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/categories?post=1090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/tags?post=1090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}