{"id":371,"date":"2020-05-21T14:05:34","date_gmt":"2020-05-21T11:05:34","guid":{"rendered":"https:\/\/silviamarin.ro\/?p=371"},"modified":"2020-05-21T14:05:34","modified_gmt":"2020-05-21T11:05:34","slug":"instalare-zigbee2mqtt","status":"publish","type":"post","link":"https:\/\/marinelvis.xyz\/index.php\/2020\/05\/21\/instalare-zigbee2mqtt\/","title":{"rendered":"INSTALARE ZIGBEE2MQTT"},"content":{"rendered":"<p>Se instaleaza <em>node<\/em> si <em>npm<\/em> ca <a href=\"https:\/\/silviamarin.ro\/index.php\/2019\/07\/02\/instalare-node-red-2\/\">aici<\/a>.<br \/>\nDaca nu sunt instalate:<\/p>\n<pre>sudo curl -sL https:\/\/deb.nodesource.com\/setup_12.x | sudo -E bash -\nsudo apt-get install -y nodejs git make g++ gcc<\/pre>\n<p>Pentru Raspberry Pi B si Zero:<\/p>\n<p>Ca utilizator <em>elvis<\/em>:<\/p>\n<pre>NODE=16.9.1\nwget https:\/\/unofficial-builds.nodejs.org\/download\/release\/v$NODE\/node-v$NODE-linux-armv6l.tar.xz\ntar -xvf node-v$NODE-linux-armv6l.tar.xz\nsudo cp -R node-v$NODE-linux-armv6l\/* \/usr\/local\/\nrm -rf node-v$NODE-linux-armv6l node-v$NODE-linux-armv6l.tar.xz\nsudo apt-get install -y git make g++ gcc<\/pre>\n<p>Versiunea <em>$NODE<\/em> se ia de <a href=\"https:\/\/unofficial-builds.nodejs.org\/download\/release\/\">aici<\/a><br \/>\nComenzile pentru Raspberry Pi se aplica numai dupa ce s-a instalat Node Red.<br \/>\nSe verifica:<\/p>\n<pre>node --version\nnpm --version<\/pre>\n<p>Ca utilizator <em>elvis<\/em> se instaleaza <em>zigbee2mqtt<\/em> din <em>github<\/em>:<\/p>\n<pre>sudo git clone https:\/\/github.com\/Koenkk\/zigbee2mqtt.git \/opt\/zigbee2mqtt\nsudo chown -R elvis:elvis \/opt\/zigbee2mqtt<\/pre>\n<p>Se verifica dependentele:<\/p>\n<pre>cd \/opt\/zigbee2mqtt\nnpm ci<\/pre>\n<p>Se produce o serie de <em>warning<\/em> care se pot ignora.<br \/>\nRezultatul ar trebui sa fie de forma:<\/p>\n<blockquote><p><em>node-pre-gyp info ok<\/em><br \/>\n<em>added 383 packages in 111.613s<\/em><\/p><\/blockquote>\n<p>Se editeaza fisierul de configurare:<\/p>\n<pre>nano \/opt\/zigbee2mqtt\/data\/configuration.yaml<\/pre>\n<p>Se introduc datele corespunzatoare serverului MQTT: locatia, topicul si modul de autentificare:<\/p>\n<blockquote><p><em>homeassistant: false<\/em><br \/>\n<em>permit_join: true<\/em><br \/>\n<em>mqtt:<\/em><br \/>\n<em>base_topic: zigbee2mqtt<\/em><br \/>\n<em>server: &#8216;mqtt:\/\/localhost&#8217;<\/em><br \/>\n<em>user: elvis<\/em><br \/>\n<em>password:<span style=\"color: #ff0000;\"> parola<\/span><\/em><\/p><\/blockquote>\n<p>Se salveaza si se inchide fisierul de configurare.<br \/>\nSe configureaza <em>zigbee2mqtt<\/em> ca serviciu:<\/p>\n<pre>sudo nano \/etc\/systemd\/system\/zigbee2mqtt.service<\/pre>\n<p>Se introduce urmatorul continut:<\/p>\n<blockquote><p><em>[Unit]<\/em><br \/>\n<em>Description=zigbee2mqtt<\/em><br \/>\n<em>After=network.target<\/em><br \/>\n<em>[Service]<\/em><br \/>\n<em>ExecStart=\/usr\/bin\/npm start<\/em><br \/>\n<em>WorkingDirectory=\/opt\/zigbee2mqtt<\/em><br \/>\n<em>StandardOutput=inherit<\/em><br \/>\n<em>StandardError=inherit<\/em><br \/>\n<em>Restart=always<\/em><br \/>\n<em>User=elvis<\/em><br \/>\n<em>[Install]<\/em><br \/>\n<em>WantedBy=multi-user.target<\/em><\/p><\/blockquote>\n<p>Pentru Raspberry Pi locatia <em>&#8222;ExecStart=\/usr\/bin\/npm&#8221;<\/em>\u00a0este <em>&#8222;ExecStart=\/usr\/local\/bin\/npm&#8221;.(NU MAI E)<\/em><br \/>\nSe salveaza si se inchide fisierul apoi se activeaza si se porneste serviciul:<\/p>\n<pre>sudo systemctl daemon-reload\nsudo systemctl enable zigbee2mqtt.service\nsudo systemctl start zigbee2mqtt.service\nsudo systemctl status zigbee2mqtt.service<\/pre>\n<p>Se imperecheaza dispozitivele (detalii <a href=\"https:\/\/www.zigbee2mqtt.io\/getting_started\/pairing_devices.html\">aici<\/a>)care se regasesc ulterior in fisierul de configurare:<\/p>\n<blockquote><p><em>homeassistant: false<\/em><br \/>\n<em>permit_join: true<\/em><br \/>\n<em>mqtt:<\/em><br \/>\n<em>base_topic: zigbee2mqtt<\/em><br \/>\n<em>server: &#8216;mqtt:\/\/localhost&#8217;<\/em><br \/>\n<em>user: elvis<br \/>\n<em>password: <span style=\"color: #ff0000;\">parola<\/span><\/em><br \/>\n<em>serial:<\/em><br \/>\n<em>disable_led: true<\/em><br \/>\n<em>port: \/dev\/ttyACM0<\/em><br \/>\n<em>devices:<\/em><br \/>\n<em>&#8216;0x00158d0003fa6dd5&#8217;:<\/em><br \/>\n<em>friendly_name: &#8216;0x00158d0003fa6dd5&#8217;<\/em><br \/>\n<em>&#8216;0x00158d0003ce8ad6&#8217;:<\/em><br \/>\n<em>friendly_name: &#8216;0x00158d0003ce8ad6&#8217;<\/em><\/em><\/p><\/blockquote>\n<p>Pentru adaptor din retea se completeaza:<\/p>\n<blockquote><p><em>port: tcp:\/\/192.168.0.118:8888<\/em><br \/>\n<em>adapter: zstack<\/em><\/p><\/blockquote>\n<p>Se opreste serviciul pentru editarea fisierului:<\/p>\n<pre>sudo systemctl stop zigbee2mqtt.service\nnano \/opt\/zigbee2mqtt\/data\/configuration.yaml<\/pre>\n<p>Se editeaza <em>permit_join: false<\/em> si <em>friendly_name<\/em> apoi se salveaza fisierul.<br \/>\nSe creeaza scriptul pentru oprirea si repornirea dupa 5 secunde a serviciului:<\/p>\n<pre>sudo nano \/root\/zigbee2mqtt.sh<\/pre>\n<p>Se introduce comanda:<\/p>\n<blockquote><p><em>systemctl stop zigbee2mqtt.service &amp;&amp; sleep 3 &amp;&amp; systemctl start zigbee2mqtt.service<\/em><\/p><\/blockquote>\n<p>Se schimba proprietarul scriptului si se transforma in executabil:<\/p>\n<pre>sudo chown root:root \/root\/zigbee2mqtt.sh\nsudo chmod +x \/root\/zigbee2mqtt.sh<\/pre>\n<p>Se editeaza fisierul <em>crontab<\/em> pentru rularea la fiecare 15 minute a scriptului:<\/p>\n<pre>sudo crontab -e<\/pre>\n<p>Se introduce linia:<\/p>\n<blockquote><p><em>*\/15 * * * * \/root\/zigbee2mqtt.sh &gt; \/dev\/null 2&gt;&gt; \/var\/log\/cron.log<\/em><\/p><\/blockquote>\n<p>Se salveaza si se inchide fisierul apoi se reporneste <em>zigbee2mqtt<\/em>:<\/p>\n<pre>sudo systemctl restart zigbee2mqtt.service<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Se instaleaza node si npm ca aici. Daca nu sunt instalate: sudo curl -sL https:\/\/deb.nodesource.com\/setup_12.x | sudo -E bash &#8211; sudo apt-get install -y nodejs git make g++ gcc Pentru Raspberry Pi B si Zero: Ca utilizator elvis: NODE=16.9.1 wget https:\/\/unofficial-builds.nodejs.org\/download\/release\/v$NODE\/node-v$NODE-linux-armv6l.tar.xz tar -xvf node-v$NODE-linux-armv6l.tar.xz sudo cp -R node-v$NODE-linux-armv6l\/* \/usr\/local\/ rm -rf node-v$NODE-linux-armv6l node-v$NODE-linux-armv6l.tar.xz sudo apt-get [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-371","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/posts\/371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=371"}],"version-history":[{"count":0,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/posts\/371\/revisions"}],"wp:attachment":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}