{"id":473350,"date":"2025-09-02T16:15:05","date_gmt":"2025-09-02T16:15:05","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=473350"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=473350","title":{"rendered":"<span>\u041a\u0430\u043a \u044f \u043d\u0430\u0443\u0447\u0438\u043b \u0441\u0442\u0430\u0440\u044b\u0439 \u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u043b\u0435\u0440\u0442\u044b \u0441 \u043a\u0430\u043c\u0435\u0440 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0434\u043e\u043c\u043e\u043c \u0432 Telegram<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u0434\u0430\u043b\u0451\u043a\u043e\u043c \u0430\u043f\u0440\u0435\u043b\u0435 2020 \u0433\u043e\u0434\u0430 \u044f \u043a\u0443\u043f\u0438\u043b \u0441\u0435\u0431\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u0430\u043c\u0435\u0440 \u0434\u043b\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0430\u0432\u0442\u043e \u0432\u043e \u0434\u0432\u043e\u0440\u0435. <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ded\/97b\/fc8\/ded97bfc83568345798bda3ba47e3330.png\" width=\"1408\" height=\"586\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ded\/97b\/fc8\/ded97bfc83568345798bda3ba47e3330.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ded\/97b\/fc8\/ded97bfc83568345798bda3ba47e3330.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0440\u0443\u043a\u0438 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0434\u043e\u0448\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u043f\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0438 \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u043e\u0431\u0440\u043e \u043f\u0440\u043e\u043b\u0435\u0436\u0430\u043b\u043e 5 \u043b\u0435\u0442 \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c. \u0422\u0430\u043a\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0443\u043f\u0438\u0442\u044c <a href=\"https:\/\/aliexpress.ru\/item\/32971271378.html\" rel=\"noopener noreferrer nofollow\">\u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u043a\u0440\u0430\u0441\u043d\u043e\u043c \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0435<\/a>, \u0430 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0436\u0435 \u0441\u043d\u044f\u0442\u043e \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u043b\u043e\u043c \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435: \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 ONVIF-\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u043f\u0440\u0438\u0447\u0451\u043c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 PoE, \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d \u0430\u0436 \u043d\u0430 8 \u043a\u0430\u043d\u0430\u043b\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 2025 \u0433\u043e\u0434\u0443 \u00ab\u0431\u043e\u043c\u0436-\u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u00bb \u0446\u0435\u043d\u043e\u0439 \u0432 13\u041a \u043e\u0431\u0440\u0451\u043b \u0432\u0442\u043e\u0440\u0443\u044e \u0436\u0438\u0437\u043d\u044c.\u00a0<\/p>\n<h3>\u0412\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0437\u0430\u0433\u043e\u0440\u043e\u0434\u043d\u044b\u043c \u0434\u043e\u043c\u043e\u043c<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u0433\u043e\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0432\u043e\u0434\u0430 \u0431\u044b\u043b\u0438 \u0437\u0430\u0431\u043b\u0430\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0431\u0440\u043e\u0448\u0435\u043d\u044b \u0432 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d \u0432 \u0448\u043a\u0430\u0444\u0443. \u0412 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0435, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0438\u0441\u043a \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0430 \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0430\u0432\u0442\u043e\u0434\u0435\u0442\u0435\u043a\u0442\u0430 \u043b\u044e\u0434\u0435\u0439. \u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432\u0438\u0434\u0435\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0430 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0430\u0432\u0442\u043e\u0434\u0435\u0442\u0435\u043a\u0442, \u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0434\u0435\u043d\u044c:\u00a0<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/847\/9ca\/418\/8479ca41824986ec9c62b8d8256ef4ac.png\" width=\"1000\" height=\"749\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/847\/9ca\/418\/8479ca41824986ec9c62b8d8256ef4ac.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/847\/9ca\/418\/8479ca41824986ec9c62b8d8256ef4ac.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u043f\u043e\u0435\u0437\u0434\u043a\u0430\u0445 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0431\u044b\u0442\u044c \u043e\u0441\u0432\u0435\u0434\u043e\u043c\u043b\u0451\u043d\u043d\u044b\u043c \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435\u0442 \u0434\u043e\u043c\u0430. \u041d\u043e \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0436\u0435 \u0440\u0443\u0447\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0434\u043e\u043b\u0436\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439.<\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0441 \u043a\u0430\u043c\u0435\u0440 \u0432 \u0442\u0435\u043b\u0435\u0433\u0443<\/h3>\n<p>\u041f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0443\u043c\u0435\u0435\u0442 \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/482\/689\/6fb\/4826896fba4af98748a4f3f414135b01.png\" width=\"1000\" height=\"542\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/482\/689\/6fb\/4826896fba4af98748a4f3f414135b01.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/482\/689\/6fb\/4826896fba4af98748a4f3f414135b01.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0441\u0451 \u0441\u0430\u043c\u043e\u0435 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0435. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0432 2025 \u0433\u043e\u0434\u0443 \u043b\u0438\u0447\u043d\u043e \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0435\u0451 \u043e\u0442 \u0441\u0438\u043b\u044b \u0440\u0430\u0437 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u0443\u043d\u043a\u0442 Alarm Center:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e71\/b75\/773\/e71b75773b8000209e2aad359cc82947.png\" width=\"1600\" height=\"394\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e71\/b75\/773\/e71b75773b8000209e2aad359cc82947.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e71\/b75\/773\/e71b75773b8000209e2aad359cc82947.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0411\u0435\u0433\u043b\u044b\u0439 \u0433\u0443\u0433\u043b\u0451\u0436 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e\u0442 \u0441\u0432\u043e\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u0442\u0438\u043f\u0430 <a href=\"https:\/\/github.com\/toxuin\/alarmserver\" rel=\"noopener noreferrer nofollow\">IP Camera Alarm Server<\/a> (\u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u044b\u0434\u0430\u0447\u0438).\u00a0<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0440\u0443\u043a\u0438 \u0437\u0430\u0447\u0435\u0441\u0430\u043b\u0438\u0441\u044c \u0433\u043b\u044f\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0433\u0434\u0435-\u0442\u043e \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0442\u043a\u043d\u0443\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0440\u043e\u0443\u0442\u0435\u0440\u0430, \u0440\u0430\u0441\u0447\u0435\u0445\u043b\u044f\u0435\u043c tcpdump \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043b\u0430\u0440\u043c, \u043f\u0440\u043e\u0439\u0434\u044f\u0441\u044c \u043f\u0435\u0440\u0435\u0434 \u043a\u0430\u043c\u0435\u0440\u043e\u0439:<\/p>\n<pre><code>tcpdump -i any tcp port 15002 -X 00:56:14.925559 br0   In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [.], ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 0 0x0000:  4500 0034 aff5 4000 4006 074c c0a8 0131  E..4..@.@..L...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8010 0391 19d2 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47                                ...G 00:56:14.926004 eth2  In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [P.], seq 1:213, ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 212 0x0000:  4500 0108 aff6 4000 4006 0677 c0a8 0131  E.....@.@..w...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8018 0391 8a0e 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47 ff01 0000 0000 0000 0000 0000  ...G............ 0x0040:  0000 e405 c000 0000 7b20 2241 6464 7265  ........{.\"Addre 0x0050:  7373 2220 3a20 2230 7833 3130 3141 3843  ss\".:.\"0x3101A8C 0x0060:  3022 2c20 2243 6861 6e6e 656c 2220 3a20  0\",.\"Channel\".:. 0x0070:  342c 2022 4465 7363 7269 7022 203a 2022  4,.\"Descrip\".:.\" 0x0080:  222c 2022 4576 656e 7422 203a 2022 4875  \",.\"Event\".:.\"Hu 0x0090:  6d61 6e44 6574 6563 7422 2c20 2253 6572  manDetect\",.\"Ser 0x00a0:  6961 6c49 4422 203a 2022 3965 3832 3032  ialID\".:.\"9e8202 0x00b0:  3338 3161 3063 6563 6430 222c 2022 5374  381a0cecd0\",.\"St 0x00c0:  6172 7454 696d 6522 203a 2022 3230 3235  artTime\".:.\"2025 0x00d0:  2d30 382d 3132 2032 303a 3536 3a31 3322  -08-12.20:56:13\" 0x00e0:  2c20 2253 7461 7475 7322 203a 2022 5374  ,.\"Status\".:.\"St 0x00f0:  6f70 222c 2022 5479 7065 2220 3a20 2241  op\",.\"Type\".:.\"A 0x0100:  6c61 726d 2220 7d0a                      larm\".}. 00:56:14.926010 eth2.1 In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [P.], seq 1:213, ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 212 0x0000:  4500 0108 aff6 4000 4006 0677 c0a8 0131  E.....@.@..w...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8018 0391 8a0e 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47 ff01 0000 0000 0000 0000 0000  ...G............ 0x0040:  0000 e405 c000 0000 7b20 2241 6464 7265  ........{.\"Addre 0x0050:  7373 2220 3a20 2230 7833 3130 3141 3843  ss\".:.\"0x3101A8C 0x0060:  3022 2c20 2243 6861 6e6e 656c 2220 3a20  0\",.\"Channel\".:. 0x0070:  342c 2022 4465 7363 7269 7022 203a 2022  4,.\"Descrip\".:.\" 0x0080:  222c 2022 4576 656e 7422 203a 2022 4875  \",.\"Event\".:.\"Hu 0x0090:  6d61 6e44 6574 6563 7422 2c20 2253 6572  manDetect\",.\"Ser 0x00a0:  6961 6c49 4422 203a 2022 3965 3832 3032  ialID\".:.\"9e8202 0x00b0:  3338 3161 3063 6563 6430 222c 2022 5374  381a0cecd0\",.\"St 0x00c0:  6172 7454 696d 6522 203a 2022 3230 3235  artTime\".:.\"2025 0x00d0:  2d30 382d 3132 2032 303a 3536 3a31 3322  -08-12.20:56:13\" 0x00e0:  2c20 2253 7461 7475 7322 203a 2022 5374  ,.\"Status\".:.\"St 0x00f0:  6f70 222c 2022 5479 7065 2220 3a20 2241  op\",.\"Type\".:.\"A 0x0100:  6c61 726d 2220 7d0a                      larm\".}. 00:56:14.926017 br0   In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [P.], seq 1:213, ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 212 0x0000:  4500 0108 aff6 4000 4006 0677 c0a8 0131  E.....@.@..w...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8018 0391 8a0e 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47 ff01 0000 0000 0000 0000 0000  ...G............ 0x0040:  0000 e405 c000 0000 7b20 2241 6464 7265  ........{.\"Addre 0x0050:  7373 2220 3a20 2230 7833 3130 3141 3843  ss\".:.\"0x3101A8C 0x0060:  3022 2c20 2243 6861 6e6e 656c 2220 3a20  0\",.\"Channel\".:. 0x0070:  342c 2022 4465 7363 7269 7022 203a 2022  4,.\"Descrip\".:.\" 0x0080:  222c 2022 4576 656e 7422 203a 2022 4875  \",.\"Event\".:.\"Hu 0x0090:  6d61 6e44 6574 6563 7422 2c20 2253 6572  manDetect\",.\"Ser 0x00a0:  6961 6c49 4422 203a 2022 3965 3832 3032  ialID\".:.\"9e8202 0x00b0:  3338 3161 3063 6563 6430 222c 2022 5374  381a0cecd0\",.\"St 0x00c0:  6172 7454 696d 6522 203a 2022 3230 3235  artTime\".:.\"2025 0x00d0:  2d30 382d 3132 2032 303a 3536 3a31 3322  -08-12.20:56:13\" 0x00e0:  2c20 2253 7461 7475 7322 203a 2022 5374  ,.\"Status\".:.\"St 0x00f0:  6f70 222c 2022 5479 7065 2220 3a20 2241  op\",.\"Type\".:.\"A 0x0100:  6c61 726d 2220 7d0a                      larm\".}. 00:56:14.926131 br0   Out IP 192.168.1.1.15002 &gt; 192.168.1.49.42934: Flags [.], ack 213, win 470, options [nop,nop,TS val 67800391 ecr 27149187], length 0 0x0000:  4500 0034 2464 4000 4006 92dd c0a8 0101  E..4$d@.@....... 0x0010:  c0a8 0131 3a9a a7b6 7a96 c1c8 f43b ed4c  ...1:...z....;.L 0x0020:  8010 01d6 83a9 0000 0101 080a 040a 8d47  ...............G 0x0030:  019e 4383                                ..C.<\/code><\/pre>\n<p>\u041e \u043a\u0430\u043a! \u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 JSON, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0442\u0443\u043f\u0435\u0439\u0448\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c-\u043f\u0440\u0438\u0451\u043c\u0449\u0438\u043a\u043e\u043c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0410 \u043f\u043e\u0442\u043e\u043c \u0441\u043b\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043b\u0435\u0433\u0443. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043f\u0443\u0448\u0438 \u043e\u0442 \u043d\u0435\u0451 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442, \u0434\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0442 (\u043d\u0435 MAX, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u043e\u0442, \u043f\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e\u0442, \u0438 \u0431\u0435\u0437 \u0438\u043d\u0435\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0442\u043e\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u0443\u0447\u0430\u0435\u043c \u0421hatGPT \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0442\u0435\u043b\u0435\u0433\u0443 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0431\u043e\u0442\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f3\/1ea\/bd4\/5f31eabd46619049a423349942f92936.png\" width=\"894\" height=\"223\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5f3\/1ea\/bd4\/5f31eabd46619049a423349942f92936.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f3\/1ea\/bd4\/5f31eabd46619049a423349942f92936.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0442\u0440\u0435\u0437\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 \u0432\u0435\u0449\u0438, \u0443\u043a\u0440\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434 \u0441\u0435\u0431\u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u043f\u043f\u0438\u043d\u0433, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043e\u0442\u043a\u0443\u0434\u0430 \u043b\u0435\u0442\u0438\u0442 \u0430\u043b\u0435\u0440\u0442:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cbf\/b1b\/4e9\/cbfb1b4e962da23a1b9b89dd16edb35e.png\" width=\"894\" height=\"201\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/cbf\/b1b\/4e9\/cbfb1b4e962da23a1b9b89dd16edb35e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cbf\/b1b\/4e9\/cbfb1b4e962da23a1b9b89dd16edb35e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a-\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 false-positive, \u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u0435\u0442\u0435\u043a\u0442\u0430. \u041d\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u0443 \u0430\u043b\u0435\u0440\u0442-\u0446\u0435\u043d\u0442\u0440\u0430 \u043d\u0435\u0442. \u0428\u0442\u043e\u0448, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u044e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0443\u0440\u043b\u044f\u0435\u043c \u043a\u0430\u043c\u0435\u0440\u0443 \u043f\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0440\u0443\u0447\u043a\u0430\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0435. \u0423 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043a\u0430\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0435\u0441\u0442\u044c \u0438 \u0441\u043f\u0440\u044f\u0442\u0430\u043d \u0433\u0434\u0435-\u0442\u043e \u0442\u0443\u0442: <\/p>\n<pre><code>http:\/\/${ip}\/webcapture.jpg?command=snap&amp;channel=${channel}&amp;user=${user}&amp;password=${pass}\"<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/80c\/8ea\/5b6\/80c8ea5b6bb8784a4594b3261d912fbf.png\" width=\"1206\" height=\"846\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/80c\/8ea\/5b6\/80c8ea5b6bb8784a4594b3261d912fbf.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/80c\/8ea\/5b6\/80c8ea5b6bb8784a4594b3261d912fbf.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0426\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043b\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0441 GPT-5 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c Shell-\u0441\u043a\u0440\u0438\u043f\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">cat \/opt\/bin\/alarm_handler.sh #!\/bin\/sh  # robust PATH + ASCII locale (we print UTF-8 via printf bytes) PATH=\/opt\/sbin:\/opt\/bin:\/opt\/usr\/sbin:\/opt\/usr\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin export LANG=C export LC_ALL=C  # === Telegram === BOT=\"BOTID:\" CHAT=\"-11111111\"  # === NVR settings for snapshot === NVR_IP=\"192.168.1.49\" NVR_USER=\"admin\" NVR_PASS=\"pass\"  SPAM_WINDOW=5                             # seconds to suppress repeats  STATE_FILE=\"\/opt\/tmp\/alarm_state.txt\" TMP=\"\/opt\/tmp\/alarm.$$\" LOG_FILE=\"\/opt\/var\/log\/alarm-center.log\" SNAP_DIR=\"\/opt\/var\/alarm_snaps\"  log() {   TS=\"$(date '+%Y-%m-%d %H:%M:%S')\"   printf '[%s] %s\\n' \"$TS\" \"$*\" &gt;&gt; \"$LOG_FILE\" }  mkdir -p \/opt\/tmp \/opt\/var\/log \"$SNAP_DIR\" cat &gt; \"$TMP\"  TS=$(date '+%Y-%m-%d %H:%M:%S')  # Save raw packet for debug echo \"[$TS]\" &gt;&gt; \"$LOG_FILE\" cat \"$TMP\" &gt;&gt; \"$LOG_FILE\" echo &gt;&gt; \"$LOG_FILE\"  # --- Extract JSON --- JSON=$(grep -ao '{.*}' \"$TMP\" | head -n1)  EVENT=$(echo \"$JSON\" | jq -r '.Event') STATUS=$(echo \"$JSON\" | jq -r '.Status') CHAN=$(echo \"$JSON\" | jq -r '.Channel') TIME=$(echo \"$JSON\" | jq -r '.StartTime') TYPE=$(echo \"$JSON\" | jq -r '.Type')  # --- Channel mapping (0-based) --- case \"$CHAN\" in   0) CHAN_NAME=\"banya2dom\" ;;   1) CHAN_NAME=\"dom2zad\" ;;   2) CHAN_NAME=\"dom2banya\" ;;   3) CHAN_NAME=\"dom2parking\" ;;   4) CHAN_NAME=\"dom2les\" ;;   *) CHAN_NAME=\"Channel-${CHAN}\" ;; esac  # --- UTF-8 emojis via bytes (safe for BusyBox) --- EMOJI_HUMAN=\"$(printf '\\xF0\\x9F\\x91\\xA4')\"   # \ud83d\udc64 EMOJI_CAR=\"$(printf '\\xF0\\x9F\\x9A\\x97')\"     # \ud83d\ude97 EMOJI_FACE=\"$(printf '\\xF0\\x9F\\x99\\x82')\"    # \ud83d\ude42 EMOJI_MASK=\"$(printf '\\xF0\\x9F\\x8E\\xAD')\"    # \ud83c\udfad EMOJI_LOSS=\"$(printf '\\xF0\\x9F\\x93\\xB4')\"    # \ud83d\udcf4 EMOJI_CAM=\"$(printf '\\xF0\\x9F\\x93\\xB7')\"     # \ud83d\udcf7  # --- Policy per event --- TAKE_SNAPSHOT=0   # pull snapshot? REPORT_STOP=0     # send Stop too? case \"$EVENT\" in   HumanDetect)                   EMOJI=\"$EMOJI_HUMAN\"; TAKE_SNAPSHOT=1; REPORT_STOP=0 ;;   CarDetect|VehicleDetect)       EMOJI=\"$EMOJI_CAR\";   TAKE_SNAPSHOT=1; REPORT_STOP=0 ;;   FaceDetect)                    EMOJI=\"$EMOJI_FACE\";  TAKE_SNAPSHOT=1; REPORT_STOP=0 ;;   BlindDetect|CameraMask|Masking) EMOJI=\"$EMOJI_MASK\"; TAKE_SNAPSHOT=0; REPORT_STOP=1 ;;   LossDetect|VideoLoss|SignalLoss) EMOJI=\"$EMOJI_LOSS\"; TAKE_SNAPSHOT=0; REPORT_STOP=1 ;;   *)                              EMOJI=\"$EMOJI_CAM\";  TAKE_SNAPSHOT=0; REPORT_STOP=1 ;; esac  # --- Filter Stop when not needed --- if [ \"$REPORT_STOP\" -eq 0 ] &amp;&amp; [ \"$STATUS\" = \"Stop\" ]; then   rm -f \"$TMP\"   exit 0 fi  # --- Anti-spam (distinct key for Start\/Stop when REPORT_STOP=1) --- KEY=\"${EVENT}_${CHAN}\" [ \"$REPORT_STOP\" -eq 1 ] &amp;&amp; KEY=\"${EVENT}_${STATUS}_${CHAN}\"  NOW=$(date +%s) LAST_TS=0 [ -f \"$STATE_FILE\" ] &amp;&amp; LAST_TS=$(grep \"^$KEY \" \"$STATE_FILE\" | awk '{print $2}') grep -v \"^$KEY \" \"$STATE_FILE\" 2&gt;\/dev\/null &gt; \"$STATE_FILE.tmp\" echo \"$KEY $NOW\" &gt;&gt; \"$STATE_FILE.tmp\" mv \"$STATE_FILE.tmp\" \"$STATE_FILE\"  if [ -n \"$LAST_TS\" ] &amp;&amp; [ $((NOW - LAST_TS)) -lt $SPAM_WINDOW ]; then   rm -f \"$TMP\"   exit 0 fi  # --- Optional snapshot (1-based channel index) --- JPEG_FILE=\"\" if [ \"$TAKE_SNAPSHOT\" -eq 1 ]; then   JPEG_FILE=\"${SNAP_DIR}\/${KEY}_${NOW}.jpg\"   SNAP_CHAN=$((CHAN + 1))   SNAP_URL=\"http:\/\/${NVR_IP}\/webcapture.jpg?command=snap&amp;channel=${SNAP_CHAN}&amp;user=${NVR_USER}&amp;password=${NVR_PASS}\"   curl -m 5 -s \"$SNAP_URL\" -o \"$JPEG_FILE\"   [ ! -s \"$JPEG_FILE\" ] &amp;&amp; JPEG_FILE=\"\" fi  # --- Build message --- TITLE=\"${EMOJI} Alarm: ${EVENT}\" [ \"$REPORT_STOP\" -eq 1 ] &amp;&amp; TITLE=\"${TITLE} (${STATUS})\"  TEXT=\"${TITLE} Time: ${TIME} Channel: ${CHAN_NAME}\"  TG_API=\"https:\/\/api.telegram.org\/bot${BOT}\"  log \"send: bot_len=${#BOT} chat='${CHAT}' jpeg='${JPEG_FILE:-none}'\"  if [ -n \"$BOT\" ] &amp;&amp; [ -n \"$CHAT\" ]; then   if [ -n \"$JPEG_FILE\" ] &amp;&amp; [ -s \"$JPEG_FILE\" ]; then     CODE=$(curl -m 10 -s -w '%{http_code}' -o \/dev\/null \\            -F chat_id=\"${CHAT}\" \\            -F caption=\"${TEXT}\" \\            -F photo=\"@$JPEG_FILE\" \\            \"$TG_API\/sendPhoto\")     log \"sendPhoto code=$CODE file=$(basename \"$JPEG_FILE\")\"   else     CODE=$(curl -m 8 -s -w '%{http_code}' -o \/dev\/null \\            -d \"chat_id=${CHAT}\" \\            -d \"text=${TEXT}\" \\            -d \"disable_web_page_preview=true\" \\            \"$TG_API\/sendMessage\")     log \"sendMessage code=$CODE\"   fi else   log \"send: SKIP (empty BOT\/CHAT)\" fi  # --- Cleanup --- rm -f \"$TMP\" find \/opt\/tmp -type f -name \"alarm.*\" -mmin +5 -delete 2&gt;\/dev\/null find \"$SNAP_DIR\" -type f -name \"*.jpg\" -mmin +5 -delete 2&gt;\/dev\/null  # --- Log rotate (&gt;1MB, keep last 5) --- MAX_SIZE=$((1024 * 1024)) if [ -f \"$LOG_FILE\" ] &amp;&amp; [ \"$(stat -c%s \"$LOG_FILE\")\" -ge \"$MAX_SIZE\" ]; then   RTS=$(date '+%Y%m%d-%H%M%S')   mv \"$LOG_FILE\" \"${LOG_FILE}.${RTS}\"   gzip \"${LOG_FILE}.${RTS}\"   : &gt; \"$LOG_FILE\"   ls -1t ${LOG_FILE}.*.gz 2&gt;\/dev\/null | tail -n +6 | xargs -r rm -f fi <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u0434\u0435\u0442\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u0442 \u0447\u0430\u0441\u0442\u044b\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043f\u043e\u0434\u0447\u0438\u0449\u0430\u0435\u0442 \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u0432\u0435\u0441\u044c \u043c\u0443\u0441\u043e\u0440 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0451 \u044d\u0442\u043e \u043f\u043e cron\u2019\u0443 \u0447\u0435\u0440\u0435\u0437 socat.<\/p>\n<pre><code class=\"bash\">~ # crontab -l *\/1 * * * * \/opt\/bin\/alarm_watchdog.sh  ~ # cat \/opt\/bin\/alarm_watchdog.sh #!\/bin\/sh  PATH=\/opt\/sbin:\/opt\/bin:\/opt\/usr\/sbin:\/opt\/usr\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin  LOG=\"\/opt\/var\/log\/alarm-center.log\" HANDLER=\"\/opt\/bin\/alarm_handler.sh\" PORT=15002  if ! netstat -lnp 2&gt;\/dev\/null | grep -q \":$PORT .*LISTEN\"; then     socat -u TCP-LISTEN:$PORT,fork EXEC:$HANDLER &gt;\/dev\/null 2&gt;&amp;1 &amp;     echo \"$(date '+%Y-%m-%d %H:%M:%S') restarting socat\" &gt;&gt; \"$LOG\" fi <\/code><\/pre>\n<h3>\u0418\u0442\u043e\u0433\u0438<\/h3>\n<p>\u041c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u0430\u043c\u043e\u0435 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435, \u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0431\u044b\u043b \u0441\u043e\u0431\u0440\u0430\u043d \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0435\u0442\u0430\u043f. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0441\u0432\u043e\u0438\u043c \u0434\u043e\u043c\u043e\u043c \u0432 \u0434\u043e\u043b\u0433\u0438\u0445 \u043f\u043e\u0435\u0437\u0434\u043a\u0430\u0445.\u00a0<\/p>\n<p>\u041f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u044c \u043c\u044b\u0441\u043b\u044c \u0434\u0430\u043b\u044c\u0448\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 Wi-Fi, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0448\u0443\u043c\u0435\u0442\u044c \u0437\u0440\u044f, \u043a\u043e\u0433\u0434\u0430 \u0436\u0438\u043b\u044c\u0446\u044b \u0434\u043e\u043c\u0430. \u0418\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f. \u0422\u0443\u0442 \u0432\u0441\u0451 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u0438. <\/p>\n<h2>P. S.<\/h2>\n<p>\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435: <\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/899936\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 Telegram \u0434\u043b\u044f \u0430\u043b\u0435\u0440\u0442\u043e\u0432: \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Beszel<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/838108\/\" rel=\"noopener noreferrer nofollow\">\u041a\u0430\u043a \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u0441\u043e\u043b\u043d\u0435\u0447\u043d\u0443\u044e \u0441\u0442\u0430\u043d\u0446\u0438\u044e \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438: \u043e\u0431\u0437\u043e\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u0431\u043e\u0440\u043a\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/853262\/\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043c\u043e\u0433 \u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u0436\u0430\u0440\u043e\u0442\u0443\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u043f\u043e\u0436\u0430\u0440\u0430 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/939008\/\"> https:\/\/habr.com\/ru\/articles\/939008\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u0434\u0430\u043b\u0451\u043a\u043e\u043c \u0430\u043f\u0440\u0435\u043b\u0435 2020 \u0433\u043e\u0434\u0430 \u044f \u043a\u0443\u043f\u0438\u043b \u0441\u0435\u0431\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u0430\u043c\u0435\u0440 \u0434\u043b\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0430\u0432\u0442\u043e \u0432\u043e \u0434\u0432\u043e\u0440\u0435. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0440\u0443\u043a\u0438 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0434\u043e\u0448\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u043f\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0438 \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u043e\u0431\u0440\u043e \u043f\u0440\u043e\u043b\u0435\u0436\u0430\u043b\u043e 5 \u043b\u0435\u0442 \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c. \u0422\u0430\u043a\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0443\u043f\u0438\u0442\u044c <a href=\"https:\/\/aliexpress.ru\/item\/32971271378.html\" rel=\"noopener noreferrer nofollow\">\u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u043a\u0440\u0430\u0441\u043d\u043e\u043c \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441\u0435<\/a>, \u0430 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0436\u0435 \u0441\u043d\u044f\u0442\u043e \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0435\u043b\u043e\u043c \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435: \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 ONVIF-\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u043f\u0440\u0438\u0447\u0451\u043c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 PoE, \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d \u0430\u0436 \u043d\u0430 8 \u043a\u0430\u043d\u0430\u043b\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 2025 \u0433\u043e\u0434\u0443 \u00ab\u0431\u043e\u043c\u0436-\u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u00bb \u0446\u0435\u043d\u043e\u0439 \u0432 13\u041a \u043e\u0431\u0440\u0451\u043b \u0432\u0442\u043e\u0440\u0443\u044e \u0436\u0438\u0437\u043d\u044c.\u00a0<\/p>\n<h3>\u0412\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0437\u0430\u0433\u043e\u0440\u043e\u0434\u043d\u044b\u043c \u0434\u043e\u043c\u043e\u043c<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u0433\u043e\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0432\u043e\u0434\u0430 \u0431\u044b\u043b\u0438 \u0437\u0430\u0431\u043b\u0430\u0433\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0431\u0440\u043e\u0448\u0435\u043d\u044b \u0432 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d \u0432 \u0448\u043a\u0430\u0444\u0443. \u0412 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0435, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0438\u0441\u043a \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0430 \u043a\u0430\u043c\u0435\u0440\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0430\u0432\u0442\u043e\u0434\u0435\u0442\u0435\u043a\u0442\u0430 \u043b\u044e\u0434\u0435\u0439. \u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432\u0438\u0434\u0435\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0430 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0430\u0432\u0442\u043e\u0434\u0435\u0442\u0435\u043a\u0442, \u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0434\u0435\u043d\u044c:\u00a0<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u043f\u043e\u0435\u0437\u0434\u043a\u0430\u0445 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0431\u044b\u0442\u044c \u043e\u0441\u0432\u0435\u0434\u043e\u043c\u043b\u0451\u043d\u043d\u044b\u043c \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435\u0442 \u0434\u043e\u043c\u0430. \u041d\u043e \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0436\u0435 \u0440\u0443\u0447\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0434\u043e\u043b\u0436\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439.<\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0441 \u043a\u0430\u043c\u0435\u0440 \u0432 \u0442\u0435\u043b\u0435\u0433\u0443<\/h3>\n<p>\u041f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0443\u043c\u0435\u0435\u0442 \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0441\u0451 \u0441\u0430\u043c\u043e\u0435 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0435. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0432 2025 \u0433\u043e\u0434\u0443 \u043b\u0438\u0447\u043d\u043e \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0435\u0451 \u043e\u0442 \u0441\u0438\u043b\u044b \u0440\u0430\u0437 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043d\u0435\u0439.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430, \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u0443\u043d\u043a\u0442 Alarm Center:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0411\u0435\u0433\u043b\u044b\u0439 \u0433\u0443\u0433\u043b\u0451\u0436 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e\u0442 \u0441\u0432\u043e\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u0442\u0438\u043f\u0430 <a href=\"https:\/\/github.com\/toxuin\/alarmserver\" rel=\"noopener noreferrer nofollow\">IP Camera Alarm Server<\/a> (\u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u044b\u0434\u0430\u0447\u0438).\u00a0<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0440\u0443\u043a\u0438 \u0437\u0430\u0447\u0435\u0441\u0430\u043b\u0438\u0441\u044c \u0433\u043b\u044f\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0433\u0434\u0435-\u0442\u043e \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0442\u043a\u043d\u0443\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u0440\u043e\u0443\u0442\u0435\u0440\u0430, \u0440\u0430\u0441\u0447\u0435\u0445\u043b\u044f\u0435\u043c tcpdump \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043b\u0430\u0440\u043c, \u043f\u0440\u043e\u0439\u0434\u044f\u0441\u044c \u043f\u0435\u0440\u0435\u0434 \u043a\u0430\u043c\u0435\u0440\u043e\u0439:<\/p>\n<pre><code>tcpdump -i any tcp port 15002 -X 00:56:14.925559 br0   In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [.], ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 0 0x0000:  4500 0034 aff5 4000 4006 074c c0a8 0131  E..4..@.@..L...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8010 0391 19d2 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47                                ...G 00:56:14.926004 eth2  In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [P.], seq 1:213, ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 212 0x0000:  4500 0108 aff6 4000 4006 0677 c0a8 0131  E.....@.@..w...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8018 0391 8a0e 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47 ff01 0000 0000 0000 0000 0000  ...G............ 0x0040:  0000 e405 c000 0000 7b20 2241 6464 7265  ........{.\"Addre 0x0050:  7373 2220 3a20 2230 7833 3130 3141 3843  ss\".:.\"0x3101A8C 0x0060:  3022 2c20 2243 6861 6e6e 656c 2220 3a20  0\",.\"Channel\".:. 0x0070:  342c 2022 4465 7363 7269 7022 203a 2022  4,.\"Descrip\".:.\" 0x0080:  222c 2022 4576 656e 7422 203a 2022 4875  \",.\"Event\".:.\"Hu 0x0090:  6d61 6e44 6574 6563 7422 2c20 2253 6572  manDetect\",.\"Ser 0x00a0:  6961 6c49 4422 203a 2022 3965 3832 3032  ialID\".:.\"9e8202 0x00b0:  3338 3161 3063 6563 6430 222c 2022 5374  381a0cecd0\",.\"St 0x00c0:  6172 7454 696d 6522 203a 2022 3230 3235  artTime\".:.\"2025 0x00d0:  2d30 382d 3132 2032 303a 3536 3a31 3322  -08-12.20:56:13\" 0x00e0:  2c20 2253 7461 7475 7322 203a 2022 5374  ,.\"Status\".:.\"St 0x00f0:  6f70 222c 2022 5479 7065 2220 3a20 2241  op\",.\"Type\".:.\"A 0x0100:  6c61 726d 2220 7d0a                      larm\".}. 00:56:14.926010 eth2.1 In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [P.], seq 1:213, ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 212 0x0000:  4500 0108 aff6 4000 4006 0677 c0a8 0131  E.....@.@..w...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8018 0391 8a0e 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47 ff01 0000 0000 0000 0000 0000  ...G............ 0x0040:  0000 e405 c000 0000 7b20 2241 6464 7265  ........{.\"Addre 0x0050:  7373 2220 3a20 2230 7833 3130 3141 3843  ss\".:.\"0x3101A8C 0x0060:  3022 2c20 2243 6861 6e6e 656c 2220 3a20  0\",.\"Channel\".:. 0x0070:  342c 2022 4465 7363 7269 7022 203a 2022  4,.\"Descrip\".:.\" 0x0080:  222c 2022 4576 656e 7422 203a 2022 4875  \",.\"Event\".:.\"Hu 0x0090:  6d61 6e44 6574 6563 7422 2c20 2253 6572  manDetect\",.\"Ser 0x00a0:  6961 6c49 4422 203a 2022 3965 3832 3032  ialID\".:.\"9e8202 0x00b0:  3338 3161 3063 6563 6430 222c 2022 5374  381a0cecd0\",.\"St 0x00c0:  6172 7454 696d 6522 203a 2022 3230 3235  artTime\".:.\"2025 0x00d0:  2d30 382d 3132 2032 303a 3536 3a31 3322  -08-12.20:56:13\" 0x00e0:  2c20 2253 7461 7475 7322 203a 2022 5374  ,.\"Status\".:.\"St 0x00f0:  6f70 222c 2022 5479 7065 2220 3a20 2241  op\",.\"Type\".:.\"A 0x0100:  6c61 726d 2220 7d0a                      larm\".}. 00:56:14.926017 br0   In  IP 192.168.1.49.42934 &gt; 192.168.1.1.15002: Flags [P.], seq 1:213, ack 1, win 913, options [nop,nop,TS val 27149187 ecr 67800391], length 212 0x0000:  4500 0108 aff6 4000 4006 0677 c0a8 0131  E.....@.@..w...1 0x0010:  c0a8 0101 a7b6 3a9a f43b ec78 7a96 c1c8  ......:..;.xz... 0x0020:  8018 0391 8a0e 0000 0101 080a 019e 4383  ..............C. 0x0030:  040a 8d47 ff01 0000 0000 0000 0000 0000  ...G............ 0x0040:  0000 e405 c000 0000 7b20 2241 6464 7265  ........{.\"Addre 0x0050:  7373 2220 3a20 2230 7833 3130 3141 3843  ss\".:.\"0x3101A8C 0x0060:  3022 2c20 2243 6861 6e6e 656c 2220 3a20  0\",.\"Channel\".:. 0x0070:  342c 2022 4465 7363 7269 7022 203a 2022  4,.\"Descrip\".:.\" 0x0080:  222c 2022 4576 656e 7422 203a 2022 4875  \",.\"Event\".:.\"Hu 0x0090:  6d61 6e44 6574 6563 7422 2c20 2253 6572  manDetect\",.\"Ser 0x00a0:  6961 6c49 4422 203a 2022 3965 3832 3032  ialID\".:.\"9e8202 0x00b0:  3338 3161 3063 6563 6430 222c 2022 5374  381a0cecd0\",.\"St 0x00c0:  6172 7454 696d 6522 203a 2022 3230 3235  artTime\".:.\"2025 0x00d0:  2d30 382d 3132 2032 303a 3536 3a31 3322  -08-12.20:56:13\" 0x00e0:  2c20 2253 7461 7475 7322 203a 2022 5374  ,.\"Status\".:.\"St 0x00f0:  6f70 222c 2022 5479 7065 2220 3a20 2241  op\",.\"Type\".:.\"A 0x0100:  6c61 726d 2220 7d0a                      larm\".}. 00:56:14.926131 br0   Out IP 192.168.1.1.15002 &gt; 192.168.1.49.42934: Flags [.], ack 213, win 470, options [nop,nop,TS val 67800391 ecr 27149187], length 0 0x0000:  4500 0034 2464 4000 4006 92dd c0a8 0101  E..4$d@.@....... 0x0010:  c0a8 0131 3a9a a7b6 7a96 c1c8 f43b ed4c  ...1:...z....;.L 0x0020:  8010 01d6 83a9 0000 0101 080a 040a 8d47  ...............G 0x0030:  019e 4383                                ..C.<\/code><\/pre>\n<p>\u041e \u043a\u0430\u043a! \u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 JSON, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0442\u0443\u043f\u0435\u0439\u0448\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c-\u043f\u0440\u0438\u0451\u043c\u0449\u0438\u043a\u043e\u043c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0410 \u043f\u043e\u0442\u043e\u043c \u0441\u043b\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u043b\u0435\u0433\u0443. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u043f\u0443\u0448\u0438 \u043e\u0442 \u043d\u0435\u0451 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442, \u0434\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0442 (\u043d\u0435 MAX, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u043e\u0442, \u043f\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e\u0442, \u0438 \u0431\u0435\u0437 \u0438\u043d\u0435\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0442\u043e\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e).<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u0443\u0447\u0430\u0435\u043c \u0421hatGPT \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0442\u0435\u043b\u0435\u0433\u0443 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0431\u043e\u0442\u0435:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041e\u0442\u0440\u0435\u0437\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 \u0432\u0435\u0449\u0438, \u0443\u043a\u0440\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434 \u0441\u0435\u0431\u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u043f\u043f\u0438\u043d\u0433, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043e\u0442\u043a\u0443\u0434\u0430 \u043b\u0435\u0442\u0438\u0442 \u0430\u043b\u0435\u0440\u0442:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a-\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 false-positive, \u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u0435\u0442\u0435\u043a\u0442\u0430. \u041d\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u0443 \u0430\u043b\u0435\u0440\u0442-\u0446\u0435\u043d\u0442\u0440\u0430 \u043d\u0435\u0442. \u0428\u0442\u043e\u0448, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u044e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0443\u0440\u043b\u044f\u0435\u043c \u043a\u0430\u043c\u0435\u0440\u0443 \u043f\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0440\u0443\u0447\u043a\u0430\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0435. \u0423 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043a\u0430\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0435\u0441\u0442\u044c \u0438 \u0441\u043f\u0440\u044f\u0442\u0430\u043d \u0433\u0434\u0435-\u0442\u043e \u0442\u0443\u0442: <\/p>\n<pre><code>http:\/\/${ip}\/webcapture.jpg?command=snap&amp;channel=${channel}&amp;user=${user}&amp;password=${pass}\"<\/code><\/pre>\n<figure class=\"full-width\"><\/figure>\n<p>\u0426\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043b\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0441 GPT-5 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c Shell-\u0441\u043a\u0440\u0438\u043f\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">cat \/opt\/bin\/alarm_handler.sh #!\/bin\/sh  # robust PATH + ASCII locale (we print UTF-8 via printf bytes) PATH=\/opt\/sbin:\/opt\/bin:\/opt\/usr\/sbin:\/opt\/usr\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin export LANG=C export LC_ALL=C  # === Telegram === BOT=\"BOTID:\" CHAT=\"-11111111\"  # === NVR settings for snapshot === NVR_IP=\"192.168.1.49\" NVR_USER=\"admin\" NVR_PASS=\"pass\"  SPAM_WINDOW=5                             # seconds to suppress repeats  STATE_FILE=\"\/opt\/tmp\/alarm_state.txt\" TMP=\"\/opt\/tmp\/alarm.$$\" LOG_FILE=\"\/opt\/var\/log\/alarm-center.log\" SNAP_DIR=\"\/opt\/var\/alarm_snaps\"  log() {   TS=\"$(date '+%Y-%m-%d %H:%M:%S')\"   printf '[%s] %s\\n' \"$TS\" \"$*\" &gt;&gt; \"$LOG_FILE\" }  mkdir -p \/opt\/tmp \/opt\/var\/log \"$SNAP_DIR\" cat &gt; \"$TMP\"  TS=$(date '+%Y-%m-%d %H:%M:%S')  # Save raw packet for debug echo \"[$TS]\" &gt;&gt; \"$LOG_FILE\" cat \"$TMP\" &gt;&gt; \"$LOG_FILE\" echo &gt;&gt; \"$LOG_FILE\"  # --- Extract JSON --- JSON=$(grep -ao '{.*}' \"$TMP\" | head -n1)  EVENT=$(echo \"$JSON\" | jq -r '.Event') STATUS=$(echo \"$JSON\" | jq -r '.Status') CHAN=$(echo \"$JSON\" | jq -r '.Channel') TIME=$(echo \"$JSON\" | jq -r '.StartTime') TYPE=$(echo \"$JSON\" | jq -r '.Type')  # --- Channel mapping (0-based) --- case \"$CHAN\" in   0) CHAN_NAME=\"banya2dom\" ;;   1) CHAN_NAME=\"dom2zad\" ;;   2) CHAN_NAME=\"dom2banya\" ;;   3) CHAN_NAME=\"dom2parking\" ;;   4) CHAN_NAME=\"dom2les\" ;;   *) CHAN_NAME=\"Channel-${CHAN}\" ;; esac  # --- UTF-8 emojis via bytes (safe for BusyBox) --- EMOJI_HUMAN=\"$(printf '\\xF0\\x9F\\x91\\xA4')\"   # \ud83d\udc64 EMOJI_CAR=\"$(printf '\\xF0\\x9F\\x9A\\x97')\"     # \ud83d\ude97 EMOJI_FACE=\"$(printf '\\xF0\\x9F\\x99\\x82')\"    # \ud83d\ude42 EMOJI_MASK=\"$(printf '\\xF0\\x9F\\x8E\\xAD')\"    # \ud83c\udfad EMOJI_LOSS=\"$(printf '\\xF0\\x9F\\x93\\xB4')\"    # \ud83d\udcf4 EMOJI_CAM=\"$(printf '\\xF0\\x9F\\x93\\xB7')\"     # \ud83d\udcf7  # --- Policy per event --- TAKE_SNAPSHOT=0   # pull snapshot? REPORT_STOP=0     # send Stop too? case \"$EVENT\" in   HumanDetect)                   EMOJI=\"$EMOJI_HUMAN\"; TAKE_SNAPSHOT=1; REPORT_STOP=0 ;;   CarDetect|VehicleDetect)       EMOJI=\"$EMOJI_CAR\";<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-473350","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/473350","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=473350"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/473350\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=473350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=473350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=473350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}