{"id":486314,"date":"2026-07-06T09:05:24","date_gmt":"2026-07-06T09:05:24","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=486314"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=486314","title":{"rendered":"Modbus-\u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e Grafana \u0431\u0435\u0437 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0438"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7b2\/c2c\/775\/7b2c2c7755df6f9864a57c26eba4d585.jpg\" width=\"1672\" height=\"941\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7b2\/c2c\/775\/7b2c2c7755df6f9864a57c26eba4d585.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7b2\/c2c\/775\/7b2c2c7755df6f9864a57c26eba4d585.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a. \u0415\u0441\u0442\u044c RS485- \u0434\u0430\u0442\u0447\u0438\u043a, \u043d\u0430\u0448\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432. \u041d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 Python-\u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437 \u0432 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 Modbus, \u043f\u0430\u0440\u0441\u0438\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u043f\u0438\u0448\u0435\u0442 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432 CSV. \u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u0434\u0435\u043b\u044e \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0430\u0434\u0430\u0435\u0442 \u2014 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0440\u0442 \u0437\u0430\u043d\u044f\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c, \u0438\u043b\u0438 systemd \u043d\u0435 \u043f\u043e\u0434\u043d\u044f\u043b \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438\u043b\u0438 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u0442\u0440\u0438 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0438 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0432\u0438\u0441 \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438. \u0427\u0438\u043d\u0438\u043c, \u043f\u0440\u0438\u0447\u0435\u0441\u044b\u0432\u0430\u0435\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c watchdog. \u041f\u043e\u0442\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e CSV \u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f \u0438 \u043d\u0430\u0434\u043e \u043a\u0443\u0434\u0430-\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u042d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u0438\u043c \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0438\u0438, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c.\u00a0   <\/p>\n<blockquote>\n<p>\u0421\u0443\u0442\u044c \u0438\u0434\u0435\u0438: Telegraf \u0443\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c Modbus-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u2014 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b \u0432 InfluxDB. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. Grafana \u0441\u0442\u0440\u043e\u0438\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 InfluxDB. \u0412\u0435\u0441\u044c \u0441\u0442\u0435\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430.  <\/p>\n<\/blockquote>\n<p>\u041e\u0413\u041b\u0410\u0412\u041b\u0415\u041d\u0418\u0415 \u0421\u0422\u0410\u0422\u042c\u0418:<\/p>\n<p><a href=\"#1\">\u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0442\u0435\u043a\u0430<\/a><br \/><a href=\"#2\">\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u201c\u0434\u0435\u043b\u0430\u0439 \u0440\u0430\u0437, \u0434\u0435\u043b\u0430\u0439 \u0434\u0432\u0430\u201d \u043f\u0440\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438<\/a><br \/>  <a href=\"#3\">\u0428\u0430\u0433 0. \u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442<\/a><br \/>  <a href=\"#4\">\u0428\u0430\u0433 1. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u2014 Modbus TCP<\/a><br \/>  <a href=\"#5\">\u0428\u0430\u0433 2. \u041a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f Modbus RTU (\u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e RS485)<\/a><br \/>  <a href=\"#6\">\u0428\u0430\u0433 3. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b<\/a><br \/>  <a href=\"#7\">\u0428\u0430\u0433 4. Grafana \u2014 \u0434\u0430\u0448\u0431\u043e\u0440\u0434<\/a><br \/><a href=\"#8\">\u0410 \u0435\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435<\/a><br \/><a href=\"#9\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0431\u0435\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><br \/><a href=\"#10\">\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 NapiConfig \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438<\/a><br \/><a href=\"https:\/\/%E2%84%9611\">\u0412\u044b\u0432\u043e\u0434\u044b \u0438 \u0441\u0441\u044b\u043b\u043a\u0438<\/a><\/p>\n<p>\u041f\u0440\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439:<br \/><strong>Telegraf<\/strong> \u2014 \u044d\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 InfluxData. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430-\u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0444\u043e\u043d\u0435 \u043d\u0430 Linux-\u0445\u043e\u0441\u0442\u0435, \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0447\u0438\u0442\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438 \u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u043a\u0443\u0434\u0430 \u0441\u043a\u0430\u0436\u0435\u0448\u044c \u2014 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 InfluxDB. \u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f inputs.modbus \u2014 \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c Modbus-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e TCP \u0438\u043b\u0438 RS-485 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.<br \/><strong>Grafana<\/strong> \u2014 \u044d\u0442\u043e open-source \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u043d\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 (\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b) \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c DL-303 (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c, CO, CO2). \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0436\u0435\u043b\u0435\u0437\u0430 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 ARM-\u0441\u0431\u043e\u0440\u0449\u0438\u043a NAPI-C \u043d\u0430 RK3308 \u0441 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u041e\u0421 NapiLinux, \u0442\u0430\u043c Telegraf \u0438 InfluxDB 2.x \u0435\u0441\u0442\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0412\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c Linux-\u0445\u043e\u0441\u0442\u0435 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u0442\u0435\u043a\u043e\u043c.<\/p>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h3>\u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0442\u0435\u043a\u0430<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/863\/362\/da3\/863362da37432aaa7b50b98c2d4b703d.png\" alt=\"\u0420\u0438\u0441. 1. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0442\u0435\u043a\u0430: \u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\" title=\"\u0420\u0438\u0441. 1. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0442\u0435\u043a\u0430: \u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\" width=\"2048\" height=\"738\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/863\/362\/da3\/863362da37432aaa7b50b98c2d4b703d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/863\/362\/da3\/863362da37432aaa7b50b98c2d4b703d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 1. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0442\u0435\u043a\u0430: \u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<br \/><strong>\u0416\u0435\u043b\u0435\u0437\u043e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041b\u044e\u0431\u043e\u0439 Linux-\u0441\u0431\u043e\u0440\u0449\u0438\u043a \u0441 \u043f\u043e\u0440\u0442\u043e\u043c RS485 \u0438 Ethernet. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u2014 NAPI-C (RK3308), \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 ARM-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0441 NapiLinux, \u0433\u0434\u0435 Telegraf \u0438 InfluxDB 2.x \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b. \u041d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c Linux-\u0445\u043e\u0441\u0442\u0435 \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0447\u0438\u043a \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c Modbus RTU (RS485) \u0438\u043b\u0438 Modbus TCP.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a:<\/strong><\/p>\n<ul>\n<li>\n<p>Telegraf &gt;= 1.20 (\u043f\u043b\u0430\u0433\u0438\u043d inputs.modbus)<\/p>\n<\/li>\n<li>\n<p>\u00a0InfluxDB 2.x<\/p>\n<\/li>\n<li>\n<p>Grafana (\u043b\u044e\u0431\u0430\u044f \u0441\u0432\u0435\u0436\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f)<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u0448\u0430 \u041e\u0421 \u043d\u0435 NapiLinux (\u043e \u043d\u0435\u0439 \u043d\u0438\u0436\u0435 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b) \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0442\u0435\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 Docker. Compose-\u0444\u0430\u0439\u043b \u0441 \u0442\u0440\u0435\u043c\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 (telegraf, influxdb, grafana) \u2014 \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 10 \u043c\u0438\u043d\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0430.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h3>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u201c\u0434\u0435\u043b\u0430\u0439 \u0440\u0430\u0437, \u0434\u0435\u043b\u0430\u0439 \u0434\u0432\u0430\u201d \u043f\u0440\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/279\/f67\/7ac\/279f677ac4048c539c14e316a9d79d9e.png\" alt=\"\u0420\u0438\u0441. 2. \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RS485-\u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0443 NAPI-C\" title=\"\u0420\u0438\u0441. 2. \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RS485-\u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0443 NAPI-C\" width=\"2048\" height=\"1018\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/279\/f67\/7ac\/279f677ac4048c539c14e316a9d79d9e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/279\/f67\/7ac\/279f677ac4048c539c14e316a9d79d9e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 2. \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RS485-\u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0443 NAPI-C<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u0442\u0447\u0438\u043a DL-303 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e RS-485 \u0434\u0432\u0443\u043c\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u043c\u0438 \u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u043b\u0435\u043c\u043c\u0430\u043c \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430. \u041f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u0430 \u2014 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u0445 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u0442. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u0435 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f Modbus-\u0430\u0434\u0440\u0435\u0441 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1), \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0440\u0442\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 9600) \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b 8N1. \u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2014 \u043e\u043d\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435.<\/p>\n<p>\u041d\u0430 \u0448\u0438\u043d\u0443 RS-485 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043e 32 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0434\u0430\u0442\u0447\u0438\u043a\u0443 \u2014 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 (slave_id). Telegraf \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h4>\u0428\u0430\u0433 0. \u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442<\/h4>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0442\u0440\u043e\u0433\u0430\u0442\u044c Telegraf, \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u0430\u0442\u0447\u0438\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 modpoll. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0448\u043b\u044e\u0437 mbusd:<\/p>\n<pre><code>modpoll -m tcp -0 -a 1 -r 0 -c 10 127.0.0.1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0424\u043b\u0430\u0433\u0438 \u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u044b. -m tcp \u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 Modbus TCP. -0 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 PDU-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441 \u043d\u0443\u043b\u044f. -a 1 \u2014 Modbus-\u0430\u0434\u0440\u0435\u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430. -r 0 -c 10 \u2014 \u0447\u0438\u0442\u0430\u0442\u044c 10 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e.<\/p>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435 \u0432\u044b\u0432\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c:<\/p>\n<pre><code>root@napi-rk3308b-s:~# modpoll -m tcp -0 -a 1 -r 0 -c 10 127.0.0.1modpoll 3.11 - FieldTalk(tm) Modbus(R) Master Simulator Protocol configuration: MODBUS\/TCP, FC3Slave configuration...: address = 1, start reference = 0 (PDU), count = 10 -- Polling slave...[0]: 0[1]: 815[2]: 3881[3]: 2639[4]: 7950[5]: 1124[6]: 5223[7]: 0[8]: 0[9]: 0<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 DL-303 (\u0438\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u0434\u0438\u0441\u043f\u043b\u0435\u044e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u2014 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d) \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"center\"><strong>\u0420\u0435\u0433\u0438\u0441\u0442\u0440<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"177\" width=\"177\">\n<p align=\"center\"><strong>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"242\" width=\"242\">\n<p align=\"center\"><strong>\u041c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c (scale)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"center\">0<\/p>\n<\/td>\n<td data-colwidth=\"177\" width=\"177\">\n<p align=\"center\">CO (ppm)<\/p>\n<\/td>\n<td data-colwidth=\"242\" width=\"242\">\n<p align=\"center\">1.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td data-colwidth=\"177\" width=\"177\">\n<p align=\"center\">CO2 (ppm)<\/p>\n<\/td>\n<td data-colwidth=\"242\" width=\"242\">\n<p align=\"center\">1.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"center\">2<\/p>\n<\/td>\n<td data-colwidth=\"177\" width=\"177\">\n<p align=\"center\">\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c (%)<\/p>\n<\/td>\n<td data-colwidth=\"242\" width=\"242\">\n<p align=\"center\">0.1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"center\">3<\/p>\n<\/td>\n<td data-colwidth=\"177\" width=\"177\">\n<p align=\"center\">\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430<\/p>\n<\/td>\n<td data-colwidth=\"242\" width=\"242\">\n<p align=\"center\">0.1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"center\">5<\/p>\n<\/td>\n<td data-colwidth=\"177\" width=\"177\">\n<p align=\"center\">\u0422\u043e\u0447\u043a\u0430 \u0440\u043e\u0441\u044b<\/p>\n<\/td>\n<td data-colwidth=\"242\" width=\"242\">\n<p align=\"center\">0.1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"floating-image\">\n<figure class=\"float full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/841\/5fe\/231\/8415fe23176c57efa1bcef7abd8ecf8e.png\" alt=\"\u0420\u0438\u0441. 3.\u00a0 \u041e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303  \" title=\"\u0420\u0438\u0441. 3.\u00a0 \u041e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303  \" width=\"907\" height=\"907\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/841\/5fe\/231\/8415fe23176c57efa1bcef7abd8ecf8e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/841\/5fe\/231\/8415fe23176c57efa1bcef7abd8ecf8e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 3.\u00a0 \u041e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303<\/em>  <\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 2639 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 3 \u2014 \u044d\u0442\u043e 263.9, \u0442\u043e \u0435\u0441\u0442\u044c 26.39 C \u043f\u0440\u0438 scale=0.1. \u0420\u0435\u0433\u0438\u0441\u0442\u0440 4 \u0432 \u044d\u0442\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0440\u0435\u0433\u0438\u0441\u0442\u0440 5 \u2014 \u0442\u043e\u0447\u043a\u0430 \u0440\u043e\u0441\u044b.<\/p>\n<p>\u0415\u0441\u043b\u0438 modpoll \u0432\u0435\u0440\u043d\u0443\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0444\u0438\u0437\u0438\u043a\u0435 (\u043f\u0440\u043e\u0432\u043e\u0434\u0430 A\/B, \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c, \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) \u0438\u043b\u0438 \u0432 \u0430\u0434\u0440\u0435\u0441\u0435. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0442\u0430\u043c, \u043f\u043e\u0442\u043e\u043c \u0438\u0434\u0435\u043c \u043a Telegraf.<\/p>\n<\/div>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h4>\u0428\u0430\u0433 1. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u2014 Modbus TCP<\/h4>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7f0\/e0b\/a5d\/7f0e0ba5d6c0ea37d4e25d3a6b5d1df6.png\" alt=\"\u0420\u0438\u0441. 4. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u0434\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303 (inputs.modbus, Modbus TCP)\" title=\"\u0420\u0438\u0441. 4. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u0434\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303 (inputs.modbus, Modbus TCP)\" width=\"2048\" height=\"1133\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7f0\/e0b\/a5d\/7f0e0ba5d6c0ea37d4e25d3a6b5d1df6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7f0\/e0b\/a5d\/7f0e0ba5d6c0ea37d4e25d3a6b5d1df6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 4. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u0434\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303 (inputs.modbus, Modbus TCP)<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b \/etc\/telegraf\/telegraf.d\/dl303.conf. \u041d\u0430 NapiLinux \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 NapiConfig \u2014 \u0440\u0430\u0437\u0434\u0435\u043b \u00ab\u0414\u0430\u0442\u0447\u0438\u043a\u0438\u00bb -&gt; \u00ab\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438\u00bb -&gt; \u00ab\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u00bb. \u041d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c \u0445\u043e\u0441\u0442\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b.\u00a0<\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0441 \u0441\u0435\u043a\u0446\u0438\u0435\u0439 output:<\/p>\n<pre><code>## DL-303 (CO, CO2, \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c) \u2014 Modbus TCP[[inputs.modbus]]\u00a0\u00a0name = \"DL-303\"\u00a0\u00a0slave_id = 1\u00a0\u00a0timeout\u00a0 = \"1s\"\u00a0\u00a0# mbusd \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u043d\u0430 127.0.0.1:502\u00a0\u00a0controller = \"tcp:\/\/127.0.0.1:502\"\u00a0\u00a0input_registers = [{ measurement=\"DL-303\", name=\"CO\", \u00a0 byte_order=\"AB\", data_type=\"UINT16\", scale=1.0, address=[0] },{ measurement=\"DL-303\", name=\"CO2\",\u00a0 byte_order=\"AB\", data_type=\"UINT16\", scale=1.0, address=[1] },{ measurement=\"DL-303\", name=\"Humidity\", byte_order=\"AB\", data_type=\"UINT16\", scale=0.1, address=[2] },{ measurement=\"DL-303\", name=\"Temp\", byte_order=\"AB\", data_type=\"UINT16\", scale=0.1, address=[3] },{ measurement=\"DL-303\", name=\"DewPoint\", byte_order=\"AB\", data_type=\"UINT16\", scale=0.1, address=[5] },\u00a0\u00a0][[outputs.influxdb_v2]]\u00a0\u00a0urls \u00a0 \u00a0 = [\"http:\/\/127.0.0.1:8086\"]\u00a0\u00a0token\u00a0 \u00a0 = \"\u0412\u0410\u0428_\u0422\u041e\u041a\u0415\u041d\"\u00a0\u00a0organization = \"myorg\"\u00a0\u00a0bucket \u00a0 = \"sensors\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043f\u043e \u043f\u043e\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e.<\/p>\n<p><strong>byte_order = &#171;AB&#187;\u00a0 <\/strong>\u2014 \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442 big-endian. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 Modbus-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u2014 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 &#171;BA&#187;. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p><strong>data_type = &#171;UINT16&#187;\u00a0 <\/strong>\u2014 \u0411\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435. DL-303 \u043e\u0442\u0434\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a. \u0414\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0443\u0436\u0435\u043d INT16. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0442\u0434\u0430\u044e\u0442 float \u2014 \u0442\u043e\u0433\u0434\u0430 FLOAT32 \u0438\u043b\u0438 FLOAT32-IEEE, \u0438 address \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430: address = [3, 4].<\/p>\n<p><strong>scale \u00a0<\/strong>\u2014 \u041c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0441\u044b\u0440\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0414\u043b\u044f Humidity \u0438 Temp \u0441\u0442\u0430\u0432\u0438\u043c 0.1, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 10 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440.<\/p>\n<p><strong>address = [N] \u00a0<\/strong>\u2014 PDU-\u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f. \u0415\u0441\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043d\u043e\u0442\u0430\u0446\u0438\u044e 40001, 40002 (Modbus-\u043d\u043e\u0442\u0430\u0446\u0438\u044f) \u2014 \u0432\u044b\u0447\u0442\u0438\u0442\u0435 1 \u0438 \u0443\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0434\u0443\u0449\u0443\u044e \u0446\u0438\u0444\u0440\u0443 4.<\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h4>\u0428\u0430\u0433 2. \u041a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f Modbus RTU (\u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e RS485)<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0448\u043b\u044e\u0437\u0430 RTU -&gt; TCP \u043d\u0435\u0442 \u0438 \u0434\u0430\u0442\u0447\u0438\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043a \u043f\u043e\u0440\u0442\u0443 RS-485 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430, \u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0435\u043a\u0446\u0438\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code>[[inputs.modbus]]   name = \"DL-303\"  slave_id = 1  timeout  = \"1s\"   controller    = \"file:\/\/\/dev\/ttyS3\"   # RS485-\u043f\u043e\u0440\u0442 \u043d\u0430 NAPI-C  transmission_mode = \"RTU\"  baud_rate     = 9600  data_bits         = 8  parity        = \"N\"  stop_bits     = 1   # input_registers \u2014 \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0432 TCP-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435  input_registers = [{ measurement=\"DL-303\", name=\"CO\",   byte_order=\"AB\", data_type=\"UINT16\", scale=1.0, address=[0] },{ measurement=\"DL-303\", name=\"CO2\",      byte_order=\"AB\", data_type=\"UINT16\", scale=1.0, address=[1] },{ measurement=\"DL-303\", name=\"Humidity\", byte_order=\"AB\", data_type=\"UINT16\", scale=0.1, address=[2] },{ measurement=\"DL-303\", name=\"Temp\", byte_order=\"AB\", data_type=\"UINT16\", scale=0.1, address=[3] },{ measurement=\"DL-303\", name=\"DewPoint\", byte_order=\"AB\", data_type=\"UINT16\", scale=0.1, address=[5] },  ]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043c\u044f \u043f\u043e\u0440\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b:<\/p>\n<p><strong>\u2022\u00a0 <\/strong>\/dev\/ttyS3 \u2014 NAPI-C (RK3308)<\/p>\n<p><strong>\u2022\u00a0 <\/strong>\/dev\/ttyUSB0 \u2014 USB-\u0430\u0434\u0430\u043f\u0442\u0435\u0440 RS485 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0445\u043e\u0441\u0442\u0435<\/p>\n<p><strong>\u2022\u00a0 <\/strong>\/dev\/ttyAMA0 \u2014 Raspberry Pi (\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 UART)<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0440\u0442\u0430 (baud_rate, data_bits, parity, stop_bits) \u0434\u043e\u043b\u0436\u043d\u044b \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0435. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u044c \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u2014 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0438 Telegraf \u0437\u0430\u043f\u0438\u0448\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043b\u043e\u0433. \u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u043f\u043e\u0447\u0435\u043c\u0443 \u00ab\u0434\u0430\u0442\u0447\u0438\u043a \u043c\u043e\u043b\u0447\u0438\u0442\u00bb.<\/p>\n<blockquote>\n<p>\u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c RS485-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c mbusd \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 Modbus TCP. \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 modpoll, \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f Telegraf.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h4>\u0428\u0430\u0433 3. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b<\/h4>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c telegraf \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u2014 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430. \u041e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043e\u043f\u0440\u043e\u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 stdout \u0431\u0435\u0437 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0443:<\/p>\n<pre><code>telegraf --config \/etc\/telegraf\/telegraf.d\/dl303.conf --test<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043e\u043f\u0440\u043e\u0441\u0435 \u0432\u044b\u0432\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c:<\/p>\n<pre><code>&gt; DL-303,host=napi-rk3308b-s CO=0,CO2=815,Humidity=38.81,Temp=26.39,DewPoint=11.24 1718012345000000000<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e Line Protocol \u2014 \u0442\u043e, \u0447\u0442\u043e Telegraf \u0437\u0430\u043f\u0438\u0448\u0435\u0442 \u0432 InfluxDB. \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433 \u0440\u0430\u0431\u043e\u0447\u0438\u0439. \u0414\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u2014 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043b\u0443\u0436\u0431\u0443:<\/p>\n<pre><code>systemctl restart telegraf<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0435:<\/p>\n<p><strong>connection refused<\/strong>\u00a0 \u2014 \u0448\u043b\u044e\u0437 mbusd \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u043f\u043e\u043b\u0435 controller.<br \/><strong>i\/o timeout<\/strong> \u00a0\u2014 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c slave_id, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0440\u0442\u0430, \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 A\/B.<br \/><strong>invalid character\u00a0<\/strong> \u2014 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 TOML. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0438 \u043b\u0438\u0448\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044b.<br \/><strong>connection reset by peer<\/strong>\u00a0 \u2014 \u043f\u0440\u0438 RTU \u2014 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0440\u0442\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c.<\/p>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h4>\u0428\u0430\u0433 4. Grafana \u2014 \u0434\u0430\u0448\u0431\u043e\u0440\u0434<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0448\u043b\u0438 \u0432 InfluxDB, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c Grafana. Data Sources -&gt; Add data source -&gt; InfluxDB, Query Language: Flux. URL, \u0442\u043e\u043a\u0435\u043d \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 Telegraf.<\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 Flux-\u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b:<\/p>\n<pre><code>from(bucket: \"sensors\")  |&gt; range(start: -1h)  |&gt; filter(fn: (r) =&gt; r._measurement == \"DL-303\")  |&gt; filter(fn: (r) =&gt; r._field == \"Temp\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa9\/868\/984\/fa9868984d1882ce3fb4c8d26db4a25a.png\" alt=\"\u0420\u0438\u0441. 5. \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 Grafana \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 DL-303 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c, CO2)\" title=\"\u0420\u0438\u0441. 5. \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 Grafana \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 DL-303 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c, CO2)\" width=\"2048\" height=\"1222\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fa9\/868\/984\/fa9868984d1882ce3fb4c8d26db4a25a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa9\/868\/984\/fa9868984d1882ce3fb4c8d26db4a25a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 5. \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 Grafana \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 DL-303 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c, CO2)<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0430\u043d\u0435\u043b\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044f (CO2, Humidity, DewPoint) \u2014 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0433\u043e\u0442\u043e\u0432. \u0414\u043b\u044f DL-303 \u0440\u0430\u0437\u0443\u043c\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043b\u0435\u0440\u0442 \u043d\u0430 CO2 &gt; 1000 ppm \u0438 CO &gt; 50 ppm \u2014 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u044b \u043f\u043e \u0421\u0430\u043d\u041f\u0438\u041d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0439. Grafana \u0443\u0432\u0435\u0434\u043e\u043c\u0438\u0442 \u043f\u043e email, Telegram \u0438\u043b\u0438 \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u0430\u043d\u0430\u043b\u043e\u043c.<\/p>\n<p>\u0413\u043e\u0442\u043e\u0432\u044b\u0435 JSON-\u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f DL-303 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c:<a href=\"https:\/\/github.com\/lab240\/telegraf-grafana-configs\"> github.com\/lab240\/telegraf-grafana-configs<\/a>.<\/p>\n<p><a class=\"anchor\" name=\"8\" id=\"8\"><\/a><\/p>\n<h3>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435<\/h3>\n<p>RS-485 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u043e 32 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0434\u0430\u0442\u0447\u0438\u043a\u0443 \u043d\u0443\u0436\u0435\u043d \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 slave_id \u043d\u0430 \u0448\u0438\u043d\u0435 \u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 measurement \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0423\u0434\u043e\u0431\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u0432 telegraf.d\/ \u2014 Telegraf \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u0442 \u0432\u0441\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0435:<\/p>\n<pre><code>\/etc\/telegraf\/telegraf.d\/  dl303-room1.conf# slave_id=1, measurement=\"DL-303-room1\"  dl303-room2.conf# slave_id=2, measurement=\"DL-303-room2\"  pressure.conf   # slave_id=3, measurement=\"PressureSensor\" ## \u0414\u0430\u0442\u0447\u0438\u043a 1[[inputs.modbus]]  name = \"DL-303-room1\"  slave_id = 1  controller = \"file:\/\/\/dev\/ttyS3\"  ... ## \u0414\u0430\u0442\u0447\u0438\u043a 2[[inputs.modbus]]  name = \"DL-303-room2\"  slave_id = 2  controller = \"file:\/\/\/dev\/ttyS3\"  ...<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>Telegraf \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u2014 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0434\u0438\u043d \u043e\u0442\u0432\u0435\u0442. \u0415\u0441\u043b\u0438 10 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 x 500 \u043c\u0441 timeout = 5 \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430 \u0446\u0438\u043a\u043b, \u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u043f\u0440\u043e\u0441\u0430 \u0432 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0435\u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435\u043d. \u041f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0439\u0442\u0435 timeout \u0438\u043b\u0438 interval.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"9\" id=\"9\"><\/a><\/p>\n<h3>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c, \u0435\u0441\u043b\u0438 \u043e\u043d \u0431\u0435\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0422\u0430\u043a \u0431\u044b\u0432\u0430\u0435\u0442: \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430 \u0440\u0443\u043a\u0430\u0445, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u00abModbus RTU, 9600 8N1, \u0430\u0434\u0440\u0435\u0441 1\u00bb, \u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0435\u0442. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439.<\/p>\n<p><strong>1.\u00a0 <\/strong>\u041e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 30-40 holding-\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434.<\/p>\n<pre><code>modpoll -m tcp -0 -a 1 -r 0 -c 40 127.0.0.1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>2.\u00a0 <\/strong>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0435 \u0438\u043b\u0438 \u0432 \u0440\u043e\u0434\u043d\u043e\u043c \u041f\u041e.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 265 \u043f\u0440\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0435 26.5 C \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u2014 \u044d\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441 scale=0.1. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 4587 \u043f\u0440\u0438 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0438 458.7 \u0433\u041f\u0430 \u2014 \u0442\u043e\u0436\u0435 scale=0.1. \u041f\u043e \u0442\u0430\u043a\u0438\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442.<\/p>\n<p><strong>3.\u00a0 <\/strong>\u0423\u0447\u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431 (scale) \u2014 \u0447\u0430\u0441\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u0434\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 10 \u0438\u043b\u0438 100.<\/p>\n<p><strong>4.\u00a0 <\/strong>\u0414\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 float: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0443\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u044e\u0442 32-\u0431\u0438\u0442\u043d\u044b\u0439 float \u0432 \u0434\u0432\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430. <\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435:<\/p>\n<pre><code>{ measurement=\"MySensor\", name=\"Pressure\", byte_order=\"ABCD\",\u00a0\u00a0data_type=\"FLOAT32-IEEE\", scale=1.0, address=[3,4] }<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Byte_order \u0434\u043b\u044f float \u0431\u044b\u0432\u0430\u0435\u0442 ABCD, DCBA, BADC \u2014 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043e \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p><a class=\"anchor\" name=\"10\" id=\"10\"><\/a><\/p>\n<h3>\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 NapiConfig \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438<\/h3>\n<p>\u0412\u0435\u0441\u044c \u043f\u0443\u0442\u044c \u0432\u044b\u0448\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d \u0447\u0435\u0440\u0435\u0437 SSH \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440. \u041d\u0430 NapiLinux \u0442\u043e\u0433\u043e \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0438\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 <a href=\"https:\/\/napilinux.ru\/napiconfig2\">NapiConfig<\/a>. \u041e\u043d \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 443, \u0441\u043e\u0431\u0440\u0430\u043d \u043d\u0430 Vue \u0438 FastAPI, \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0443\u0436\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0422\u0440\u0438 \u0447\u0430\u0441\u0442\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435. \u042d\u0442\u043e \u043f\u0440\u0430\u0432\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 Telegraf, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u043f\u0440\u043e\u0441\u0430 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432, \u0438 \u0432\u0441\u0435 \u0442\u0440\u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/85b\/11f\/736\/85b11f7366abcd5db6124dab66e1c7b9.png\" alt=\"\u0420\u0438\u0441. 6. \u0420\u0430\u0437\u0434\u0435\u043b \u00ab\u0414\u0430\u0442\u0447\u0438\u043a\u0438\u00bb \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u043b\u0443\u0436\u0431\u044b Telegraf \u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438\" title=\"\u0420\u0438\u0441. 6. \u0420\u0430\u0437\u0434\u0435\u043b \u00ab\u0414\u0430\u0442\u0447\u0438\u043a\u0438\u00bb \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u043b\u0443\u0436\u0431\u044b Telegraf \u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438\" width=\"940\" height=\"427\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/85b\/11f\/736\/85b11f7366abcd5db6124dab66e1c7b9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/85b\/11f\/736\/85b11f7366abcd5db6124dab66e1c7b9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 6. \u0420\u0430\u0437\u0434\u0435\u043b \u00ab\u0414\u0430\u0442\u0447\u0438\u043a\u0438\u00bb \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u043b\u0443\u0436\u0431\u044b Telegraf \u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438<\/em><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041f\u0440\u0430\u0432\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 Telegraf. <\/strong>\u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u2014 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0432 telegraf.d. \u0412 NapiConfig \u043e\u043d \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0441 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439 TOML. \u041f\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0442\u0435 \u0436\u0435 \u043f\u043e\u043b\u044f, \u0447\u0442\u043e \u0432 \u0448\u0430\u0433\u0430\u0445 \u0432\u044b\u0448\u0435 \u2014 slave_id, controller, \u0430\u0434\u0440\u0435\u0441\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, scale, \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0435\u0437 vim \u043f\u043e SSH. \u0420\u044f\u0434\u043e\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \u0442\u0435\u0441\u0442\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9cb\/716\/427\/9cb7164276c655ad6d3859fbc3e172f0.png\" alt=\"\u0420\u0438\u0441. 7. \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0430. \u0422\u043e\u0442 \u0436\u0435 inputs.modbus \u0438\u0437 \u0448\u0430\u0433\u043e\u0432 1 \u0438 2, \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u0422\u0435\u0441\u0442\u00bb \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443\" title=\"\u0420\u0438\u0441. 7. \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0430. \u0422\u043e\u0442 \u0436\u0435 inputs.modbus \u0438\u0437 \u0448\u0430\u0433\u043e\u0432 1 \u0438 2, \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u0422\u0435\u0441\u0442\u00bb \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443\" width=\"940\" height=\"731\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9cb\/716\/427\/9cb7164276c655ad6d3859fbc3e172f0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9cb\/716\/427\/9cb7164276c655ad6d3859fbc3e172f0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 7. \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0430. \u0422\u043e\u0442 \u0436\u0435 inputs.modbus \u0438\u0437 \u0448\u0430\u0433\u043e\u0432 1 \u0438 2, \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u0422\u0435\u0441\u0442\u00bb \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443<\/em><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u043e\u043f\u0440\u043e\u0441\u0430. <\/strong>\u041a\u043d\u043e\u043f\u043a\u0430 \u00ab\u0422\u0435\u0441\u0442\u00bb \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 telegraf &#8212;test \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043e\u043a\u043d\u0435 \u2014 \u0441\u0442\u0440\u043e\u043a\u0443 Line Protocol \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u043b\u043e\u0433 Telegraf \u0438 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430. \u042d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u0437 \u0428\u0430\u0433\u0430 3, \u043d\u043e \u0432\u044b\u0432\u043e\u0434 \u0438\u0434\u0435\u0442 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0430 \u043d\u0435 \u0432 stdout. \u041e\u0448\u0438\u0431\u043a\u0430 \u0432 scale, \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 slave_id, \u043c\u043e\u043b\u0447\u0430\u0449\u0438\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u2014 \u0432\u0441\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0441\u043b\u0443\u0436\u0431\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ef0\/807\/d2a\/ef0807d2affde13b2eea4495f4b2f977.png\" alt=\"\u0420\u0438\u0441. 8. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430 \u2014 \u043f\u043e\u043b\u044f voltage, current, freq \u0432 Line Protocol, \u043b\u043e\u0433 \u043e\u043f\u0440\u043e\u0441\u0430 \u0438 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \" title=\"\u0420\u0438\u0441. 8. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430 \u2014 \u043f\u043e\u043b\u044f voltage, current, freq \u0432 Line Protocol, \u043b\u043e\u0433 \u043e\u043f\u0440\u043e\u0441\u0430 \u0438 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \" width=\"940\" height=\"643\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ef0\/807\/d2a\/ef0807d2affde13b2eea4495f4b2f977.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ef0\/807\/d2a\/ef0807d2affde13b2eea4495f4b2f977.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 8. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430 \u2014 \u043f\u043e\u043b\u044f voltage, current, freq \u0432 Line Protocol, \u043b\u043e\u0433 \u043e\u043f\u0440\u043e\u0441\u0430 \u0438 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 <\/em><\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u0438\u0437 \u0431\u0430\u0437\u044b. <\/strong>\u0420\u0430\u0437\u0434\u0435\u043b \u00ab\u0413\u0440\u0430\u0444\u0438\u043a\u0438\u00bb \u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u044f\u0434\u044b \u043f\u0440\u044f\u043c\u043e \u0438\u0437 InfluxDB \u0438 \u0441\u0442\u0440\u043e\u0438\u0442 \u0438\u0445 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443. \u0415\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440 \u043f\u043e\u043b\u044f, \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c, \u0442\u0430\u043a \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e \u0441\u044b\u0440\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432\u0438\u0434\u043d\u043e \u0431\u0435\u0437 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Grafana. \u0414\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u00ab\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0434\u0443\u0442 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u00bb \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0430\u0435\u0442. <strong>Grafana \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043c\u0435\u0441\u0442\u0435<\/strong> \u2014 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u0438 \u0430\u043b\u0435\u0440\u0442\u044b.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/962\/d1d\/773\/962d1d7739315a1b788003ec88e3a1ac.png\" alt=\"\u0420\u0438\u0441. 9. \u0413\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043a\u0430 \u043f\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0443 FPC-0801 \u0437\u0430 15 \u043c\u0438\u043d\u0443\u0442 \u0441 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c \u00d70.01 \u2014 \u0440\u044f\u0434 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 InfluxDB\" title=\"\u0420\u0438\u0441. 9. \u0413\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043a\u0430 \u043f\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0443 FPC-0801 \u0437\u0430 15 \u043c\u0438\u043d\u0443\u0442 \u0441 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c \u00d70.01 \u2014 \u0440\u044f\u0434 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 InfluxDB\" width=\"940\" height=\"501\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/962\/d1d\/773\/962d1d7739315a1b788003ec88e3a1ac.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/962\/d1d\/773\/962d1d7739315a1b788003ec88e3a1ac.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0420\u0438\u0441. 9. \u0413\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043a\u0430 \u043f\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0443 FPC-0801 \u0437\u0430 15 \u043c\u0438\u043d\u0443\u0442 \u0441 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c \u00d70.01 \u2014 \u0440\u044f\u0434 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 InfluxDB<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u043e\u0434\u043d\u043e \u0432 NapiConfig \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 Modbus-\u0448\u043b\u044e\u0437\u0430 \u2014 \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043c\u043e\u0441\u0442 RTU \u0432 TCP \u0447\u0435\u0440\u0435\u0437 mbusd \u0438\u0437 \u0428\u0430\u0433\u0430 0, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u044b\u0448\u043a\u043e\u0439. \u041f\u043b\u044e\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438, \u0441\u043b\u0443\u0436\u0431\u0430\u043c\u0438 systemd, \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043b\u043e\u0433\u043e\u0432 \u0438 \u0432\u0435\u0431-\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b SSH \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f.<\/p>\n<blockquote>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u0430 \u0441 \u043d\u0443\u043b\u044f \u0435\u0441\u0442\u044c \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0424\u0440\u043e\u043b\u043e\u0432\u0430<a href=\"https:\/\/habr.com\/ru\/articles\/870562\/\"> \u00ab<strong>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 Modbus \u0438 Telegraf<\/strong>\u00bb<\/a>. \u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0432\u0438\u0442 Telegraf, InfluxDB \u0438 Grafana \u043d\u0430 \u0440\u0430\u0437\u043d\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u2014 Raspberry Pi, Orange Pi, Repka Pi \u0438 \u043c\u043e\u0434\u0443\u043b\u044c Front Control Compact, \u2014 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0438 XY-MD02 \u0438 PZEM-016 \u043f\u043e RS485, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 InfluxDB, \u0441\u0440\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 NapiConfig, \u0432\u0441\u0435 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 mbpoll \u0438 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<br \/>\u0421\u0442\u0430\u0442\u044c\u044f \u0410.\u0424\u0440\u043e\u043b\u043e\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430, \u0435\u0441\u043b\u0438 \u0441\u0442\u0435\u043a \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0430 \u043d\u0435 \u043d\u0430 NapiLinux.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"11\" id=\"11\"><\/a><\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p>\u0412\u0435\u0441\u044c \u043f\u0443\u0442\u044c \u043e\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430:<\/p>\n<p><strong>1.\u00a0 <\/strong>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c RS485, \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 modpoll \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442.<br \/><strong>2.\u00a0 <\/strong>\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433 Telegraf \u2014 15-20 \u0441\u0442\u0440\u043e\u043a TOML.<br \/><strong>3.\u00a0 <\/strong>\u041f\u0440\u043e\u0433\u043d\u0430\u0442\u044c telegraf &#8212;test, \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435.<br \/><strong>4.\u00a0 <\/strong>\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u0438 \u0432 Grafana.<\/p>\n<p>Telegraf \u0431\u0435\u0440\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f \u043e\u043f\u0440\u043e\u0441, \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0431\u0430\u0437\u0443. \u041f\u0440\u0438 \u043f\u043e\u0442\u0435\u0440\u0435 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043b\u043e\u0433 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u2014 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10 \u0441\u0435\u043a\u0443\u043d\u0434). \u041f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u0432\u044f\u0437\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0434\u0443\u0442 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0421\u0442\u0435\u043a (Telegraf + InfluxDB + Grafana) \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 ARM-\u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0432 \u0446\u0435\u0445\u0443 \u0438 \u043d\u0430 x86-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439. \u0414\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b, \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u043d\u0435\u0442, \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u044b.<\/p>\n<p><strong>\u0425\u0435\u043b\u043f:<\/strong> <br \/>\u0412\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <br \/><a href=\"https:\/\/napiworld.ru\/software\/sensors\/telegraf-modbus\/\">https:\/\/napiworld.ru\/software\/sensors\/telegraf-modbus\/<\/a> <br \/>\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 Telegraf \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b Grafana \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432: <a href=\"http:\/\/github.com\/lab240\/telegraf-grafana-configs\">github.com\/lab240\/telegraf-grafana-configs<\/a> <br \/> \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 modbus:\u00a0 <a href=\"http:\/\/github.com\/influxdata\/telegraf\/blob\/master\/plugins\/inputs\/modbus\/README.md\">github.com\/influxdata\/telegraf\/blob\/master\/plugins\/inputs\/modbus\/README.md<\/a><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u0441\u0442\u0430\u0442\u044c\u0435, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c \u0438\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u0435 \u0432 \u041b\u0421.\u00a0<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1055824\/\">https:\/\/habr.com\/ru\/articles\/1055824\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0422\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a. \u0415\u0441\u0442\u044c RS485- \u0434\u0430\u0442\u0447\u0438\u043a, \u043d\u0430\u0448\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432. \u041d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 Python-\u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437 \u0432 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 Modbus, \u043f\u0430\u0440\u0441\u0438\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u043f\u0438\u0448\u0435\u0442 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432 CSV. \u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u0434\u0435\u043b\u044e \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0430\u0434\u0430\u0435\u0442 \u2014 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0440\u0442 \u0437\u0430\u043d\u044f\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c, \u0438\u043b\u0438 systemd \u043d\u0435 \u043f\u043e\u0434\u043d\u044f\u043b \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438\u043b\u0438 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u0442\u0440\u0438 \u0440\u0430\u0437\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0438 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0432\u0438\u0441 \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438. \u0427\u0438\u043d\u0438\u043c, \u043f\u0440\u0438\u0447\u0435\u0441\u044b\u0432\u0430\u0435\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c watchdog. \u041f\u043e\u0442\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e CSV \u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f \u0438 \u043d\u0430\u0434\u043e \u043a\u0443\u0434\u0430-\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u042d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u0438\u043c \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0438\u0438, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c.\u00a0   \u0421\u0443\u0442\u044c \u0438\u0434\u0435\u0438: Telegraf \u0443\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c Modbus-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u2014 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b \u0432 InfluxDB. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. Grafana \u0441\u0442\u0440\u043e\u0438\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 InfluxDB. \u0412\u0435\u0441\u044c \u0441\u0442\u0435\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430.  \u041e\u0413\u041b\u0410\u0412\u041b\u0415\u041d\u0418\u0415 \u0421\u0422\u0410\u0422\u042c\u0418:\u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0442\u0435\u043a\u0430\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u201c\u0434\u0435\u043b\u0430\u0439 \u0440\u0430\u0437, \u0434\u0435\u043b\u0430\u0439 \u0434\u0432\u0430\u201d \u043f\u0440\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438  \u0428\u0430\u0433 0. \u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442  \u0428\u0430\u0433 1. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u2014 Modbus TCP  \u0428\u0430\u0433 2. \u041a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f Modbus RTU (\u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e RS485)  \u0428\u0430\u0433 3. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b  \u0428\u0430\u0433 4. Grafana \u2014 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0410 \u0435\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u0435\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0431\u0435\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 NapiConfig \u2014 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0431\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438\u0412\u044b\u0432\u043e\u0434\u044b \u0438 \u0441\u0441\u044b\u043b\u043a\u0438\u041f\u0440\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439:Telegraf \u2014 \u044d\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 InfluxData. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430-\u0434\u0435\u043c\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0444\u043e\u043d\u0435 \u043d\u0430 Linux-\u0445\u043e\u0441\u0442\u0435, \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0447\u0438\u0442\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438 \u043f\u0438\u0448\u0435\u0442 \u0438\u0445 \u043a\u0443\u0434\u0430 \u0441\u043a\u0430\u0436\u0435\u0448\u044c \u2014 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 InfluxDB. \u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f inputs.modbus \u2014 \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c Modbus-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e TCP \u0438\u043b\u0438 RS-485 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e.Grafana \u2014 \u044d\u0442\u043e open-source \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u043d\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 (\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b) \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432.\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c DL-303 (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c, CO, CO2). \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0436\u0435\u043b\u0435\u0437\u0430 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 ARM-\u0441\u0431\u043e\u0440\u0449\u0438\u043a NAPI-C \u043d\u0430 RK3308 \u0441 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u041e\u0421 NapiLinux, \u0442\u0430\u043c Telegraf \u0438 InfluxDB 2.x \u0435\u0441\u0442\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0412\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c Linux-\u0445\u043e\u0441\u0442\u0435 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u0442\u0435\u043a\u043e\u043c.\u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0442\u0435\u043a\u0430\u0420\u0438\u0441. 1. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0442\u0435\u043a\u0430: \u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f:\u0416\u0435\u043b\u0435\u0437\u043e:\u041b\u044e\u0431\u043e\u0439 Linux-\u0441\u0431\u043e\u0440\u0449\u0438\u043a \u0441 \u043f\u043e\u0440\u0442\u043e\u043c RS485 \u0438 Ethernet. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u2014 NAPI-C (RK3308), \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 ARM-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0441 NapiLinux, \u0433\u0434\u0435 Telegraf \u0438 InfluxDB 2.x \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b. \u041d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c Linux-\u0445\u043e\u0441\u0442\u0435 \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435.\u0414\u0430\u0442\u0447\u0438\u043a \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c Modbus RTU (RS485) \u0438\u043b\u0438 Modbus TCP.\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a:Telegraf &gt;= 1.20 (\u043f\u043b\u0430\u0433\u0438\u043d inputs.modbus)\u00a0InfluxDB 2.xGrafana (\u043b\u044e\u0431\u0430\u044f \u0441\u0432\u0435\u0436\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f)\u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u0448\u0430 \u041e\u0421 \u043d\u0435 NapiLinux (\u043e \u043d\u0435\u0439 \u043d\u0438\u0436\u0435 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b) \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0442\u0435\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 Docker. Compose-\u0444\u0430\u0439\u043b \u0441 \u0442\u0440\u0435\u043c\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 (telegraf, influxdb, grafana) \u2014 \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 10 \u043c\u0438\u043d\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0430.\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u201c\u0434\u0435\u043b\u0430\u0439 \u0440\u0430\u0437, \u0434\u0435\u043b\u0430\u0439 \u0434\u0432\u0430\u201d \u043f\u0440\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438\u0420\u0438\u0441. 2. \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RS485-\u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0443 NAPI-C\u0414\u0430\u0442\u0447\u0438\u043a DL-303 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e RS-485 \u0434\u0432\u0443\u043c\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u043c\u0438 \u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u043b\u0435\u043c\u043c\u0430\u043c \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430. \u041f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u0430 \u2014 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u0445 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u0442. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u0435 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f Modbus-\u0430\u0434\u0440\u0435\u0441 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1), \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0440\u0442\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 9600) \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b 8N1. \u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2014 \u043e\u043d\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435.\u041d\u0430 \u0448\u0438\u043d\u0443 RS-485 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043e 32 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0434\u0430\u0442\u0447\u0438\u043a\u0443 \u2014 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 (slave_id). Telegraf \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.\u0428\u0430\u0433 0. \u0423\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0442\u0440\u043e\u0433\u0430\u0442\u044c Telegraf, \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u0430\u0442\u0447\u0438\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 modpoll. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0448\u043b\u044e\u0437 mbusd:modpoll -m tcp -0 -a 1 -r 0 -c 10 127.0.0.1\u0424\u043b\u0430\u0433\u0438 \u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u044b. -m tcp \u2014 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 Modbus TCP. -0 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 PDU-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441 \u043d\u0443\u043b\u044f. -a 1 \u2014 Modbus-\u0430\u0434\u0440\u0435\u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430. -r 0 -c 10 \u2014 \u0447\u0438\u0442\u0430\u0442\u044c 10 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e.\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435 \u0432\u044b\u0432\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c:root@napi-rk3308b-s:~# modpoll -m tcp -0 -a 1 -r 0 -c 10 127.0.0.1modpoll 3.11 &#8212; FieldTalk(tm) Modbus(R) Master Simulator Protocol configuration: MODBUS\/TCP, FC3Slave configuration&#8230;: address = 1, start reference = 0 (PDU), count = 10 &#8212; Polling slave&#8230;[0]: 0[1]: 815[2]: 3881[3]: 2639[4]: 7950[5]: 1124[6]: 5223[7]: 0[8]: 0[9]: 0\u041f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 DL-303 (\u0438\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u0434\u0438\u0441\u043f\u043b\u0435\u044e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u2014 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d) \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b:\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u041c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c (scale)0CO (ppm)1.01CO2 (ppm)1.02\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c (%)0.13\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u04300.15\u0422\u043e\u0447\u043a\u0430 \u0440\u043e\u0441\u044b0.1\u0420\u0438\u0441. 3.\u00a0 \u041e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 2639 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 3 \u2014 \u044d\u0442\u043e 263.9, \u0442\u043e \u0435\u0441\u0442\u044c 26.39 C \u043f\u0440\u0438 scale=0.1. \u0420\u0435\u0433\u0438\u0441\u0442\u0440 4 \u0432 \u044d\u0442\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0440\u0435\u0433\u0438\u0441\u0442\u0440 5 \u2014 \u0442\u043e\u0447\u043a\u0430 \u0440\u043e\u0441\u044b.\u0415\u0441\u043b\u0438 modpoll \u0432\u0435\u0440\u043d\u0443\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0444\u0438\u0437\u0438\u043a\u0435 (\u043f\u0440\u043e\u0432\u043e\u0434\u0430 A\/B, \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c, \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) \u0438\u043b\u0438 \u0432 \u0430\u0434\u0440\u0435\u0441\u0435. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0442\u0430\u043c, \u043f\u043e\u0442\u043e\u043c \u0438\u0434\u0435\u043c \u043a Telegraf.\u0428\u0430\u0433 1. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u2014 Modbus TCP\u0420\u0438\u0441. 4. \u041a\u043e\u043d\u0444\u0438\u0433 Telegraf \u0434\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DL-303 (inputs.modbus, Modbus TCP)\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b \/etc\/telegraf\/telegraf.d\/dl303.conf. \u041d\u0430 NapiLinux \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 NapiConfig \u2014 \u0440\u0430\u0437\u0434\u0435\u043b \u00ab\u0414\u0430\u0442\u0447\u0438\u043a\u0438\u00bb -&gt; \u00ab\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438\u00bb -&gt; \u00ab\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u00bb. \u041d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u043c \u0445\u043e\u0441\u0442\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b.\u00a0\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0441 \u0441\u0435\u043a\u0446\u0438\u0435\u0439 output:## DL-303 (CO, CO2, \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c) \u2014 Modbus TCP[[inputs.modbus]]\u00a0\u00a0name = &#171;DL-303&#187;\u00a0\u00a0slave_id = 1\u00a0\u00a0timeout\u00a0 = &#171;1s&#187;\u00a0\u00a0# mbusd \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u043d\u0430 127.0.0.1:502\u00a0\u00a0controller = &#171;tcp:\/\/127.0.0.1:502&#8243;\u00a0\u00a0input_registers = [{ measurement=&#187;DL-303&#8243;, name=&#187;CO&#187;, \u00a0 byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=1.0, address=[0] },{ measurement=&#187;DL-303&#8243;, name=&#187;CO2&#8243;,\u00a0 byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=1.0, address=[1] },{ measurement=&#187;DL-303&#8243;, name=&#187;Humidity&#187;, byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=0.1, address=[2] },{ measurement=&#187;DL-303&#8243;, name=&#187;Temp&#187;, byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=0.1, address=[3] },{ measurement=&#187;DL-303&#8243;, name=&#187;DewPoint&#187;, byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=0.1, address=[5] },\u00a0\u00a0][[outputs.influxdb_v2]]\u00a0\u00a0urls \u00a0 \u00a0 = [&#171;http:\/\/127.0.0.1:8086&#187;]\u00a0\u00a0token\u00a0 \u00a0 = &#171;\u0412\u0410\u0428_\u0422\u041e\u041a\u0415\u041d&#187;\u00a0\u00a0organization = &#171;myorg&#187;\u00a0\u00a0bucket \u00a0 = &#171;sensors&#187;\u041f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043f\u043e \u043f\u043e\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e.byte_order = &#171;AB&#187;\u00a0 \u2014 \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442 big-endian. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 Modbus-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u2014 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 &#171;BA&#187;. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0432 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0430.data_type = &#171;UINT16&#187;\u00a0 \u2014 \u0411\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 16-\u0431\u0438\u0442\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435. DL-303 \u043e\u0442\u0434\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a. \u0414\u043b\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0443\u0436\u0435\u043d INT16. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0442\u0434\u0430\u044e\u0442 float \u2014 \u0442\u043e\u0433\u0434\u0430 FLOAT32 \u0438\u043b\u0438 FLOAT32-IEEE, \u0438 address \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430: address = [3, 4].scale \u00a0\u2014 \u041c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0441\u044b\u0440\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0414\u043b\u044f Humidity \u0438 Temp \u0441\u0442\u0430\u0432\u0438\u043c 0.1, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 10 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440.address = [N] \u00a0\u2014 PDU-\u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f. \u0415\u0441\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043d\u043e\u0442\u0430\u0446\u0438\u044e 40001, 40002 (Modbus-\u043d\u043e\u0442\u0430\u0446\u0438\u044f) \u2014 \u0432\u044b\u0447\u0442\u0438\u0442\u0435 1 \u0438 \u0443\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0435\u0434\u0443\u0449\u0443\u044e \u0446\u0438\u0444\u0440\u0443 4.\u0428\u0430\u0433 2. \u041a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f Modbus RTU (\u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e RS485)\u0415\u0441\u043b\u0438 \u0448\u043b\u044e\u0437\u0430 RTU -&gt; TCP \u043d\u0435\u0442 \u0438 \u0434\u0430\u0442\u0447\u0438\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043a \u043f\u043e\u0440\u0442\u0443 RS-485 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430, \u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0435\u043a\u0446\u0438\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:[[inputs.modbus]]   name = &#171;DL-303&#187;  slave_id = 1  timeout  = &#171;1s&#187;   controller    = &#171;file:\/\/\/dev\/ttyS3&#187;   # RS485-\u043f\u043e\u0440\u0442 \u043d\u0430 NAPI-C  transmission_mode = &#171;RTU&#187;  baud_rate     = 9600  data_bits         = 8  parity        = &#171;N&#187;  stop_bits     = 1   # input_registers \u2014 \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0432 TCP-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435  input_registers = [{ measurement=&#187;DL-303&#8243;, name=&#187;CO&#187;,   byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=1.0, address=[0] },{ measurement=&#187;DL-303&#8243;, name=&#187;CO2&#8243;,      byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=1.0, address=[1] },{ measurement=&#187;DL-303&#8243;, name=&#187;Humidity&#187;, byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=0.1, address=[2] },{ measurement=&#187;DL-303&#8243;, name=&#187;Temp&#187;, byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=0.1, address=[3] },{ measurement=&#187;DL-303&#8243;, name=&#187;DewPoint&#187;, byte_order=&#187;AB&#187;, data_type=&#187;UINT16&#8243;, scale=0.1, address=[5] },  ]\u0418\u043c\u044f \u043f\u043e\u0440\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b:\u2022\u00a0 \/dev\/ttyS3 \u2014 NAPI-C (RK3308)\u2022\u00a0 \/dev\/ttyUSB0 \u2014 USB-\u0430\u0434\u0430\u043f\u0442\u0435\u0440 RS485 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0445\u043e\u0441\u0442\u0435\u2022\u00a0 \/dev\/ttyAMA0 \u2014 Raspberry Pi (\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 UART)\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0440\u0442\u0430 (baud_rate, data_bits, parity, stop_bits) \u0434\u043e\u043b\u0436\u043d\u044b \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0435. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u044c \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u2014 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0438 Telegraf \u0437\u0430\u043f\u0438\u0448\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043b\u043e\u0433. \u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u043f\u043e\u0447\u0435\u043c\u0443 \u00ab\u0434\u0430\u0442\u0447\u0438\u043a \u043c\u043e\u043b\u0447\u0438\u0442\u00bb.\u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c RS485-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c mbusd \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 Modbus TCP. \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 modpoll, \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f Telegraf.\u0428\u0430\u0433 3. \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c telegraf \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u2014 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0430. \u041e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043e\u043f\u0440\u043e\u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 stdout \u0431\u0435\u0437 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0430\u0437\u0443:telegraf &#8212;config \/etc\/telegraf\/telegraf.d\/dl303.conf &#8212;test\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043e\u043f\u0440\u043e\u0441\u0435 \u0432\u044b\u0432\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c:&gt; DL-303,host=napi-rk3308b-s CO=0,CO2=815,Humidity=38.81,Temp=26.39,DewPoint=11.24 1718012345000000000\u042d\u0442\u043e Line Protocol \u2014 \u0442\u043e, \u0447\u0442\u043e Telegraf \u0437\u0430\u043f\u0438\u0448\u0435\u0442 \u0432 InfluxDB. \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433 \u0440\u0430\u0431\u043e\u0447\u0438\u0439. \u0414\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u2014 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043b\u0443\u0436\u0431\u0443:systemctl restart telegraf\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0435:connection refused\u00a0 \u2014 \u0448\u043b\u044e\u0437 mbusd \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u043f\u043e\u043b\u0435 controller.i\/o timeout \u00a0\u2014 \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c slave_id, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0440\u0442\u0430, \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 A\/B.invalid character\u00a0 \u2014 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 TOML. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0438 \u043b\u0438\u0448\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u044b.connection reset by peer\u00a0 \u2014 \u043f\u0440\u0438 RTU \u2014 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0440\u0442\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c.\u0428\u0430\u0433 4. Grafana \u2014 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0448\u043b\u0438 \u0432 InfluxDB, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c Grafana. Data Sources -&gt; Add data source -&gt; InfluxDB, Query Language: Flux. URL, \u0442\u043e\u043a\u0435\u043d \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 Telegraf.\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 Flux-\u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b:from(bucket: &#171;sensors&#187;)  |&gt; range(start: -1h)  |&gt; filter(fn: (r) =&gt; r._measurement == &#171;DL-303&#187;)  |&gt; filter(fn: (r) =&gt; r._field == &#171;Temp&#187;)\u0420\u0438\u0441. 5. \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 Grafana \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 DL-303 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 (\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430, \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c, CO2)\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0430\u043d\u0435\u043b\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044f (CO2, Humidity, DewPoint) \u2014 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0433\u043e\u0442\u043e\u0432. &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-486314","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/486314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=486314"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/486314\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=486314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=486314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=486314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}