<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.xiot.ru/index.php?action=history&amp;feed=atom&amp;title=Xiot-plc-system-log-events</id>
	<title>Xiot-plc-system-log-events - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xiot.ru/index.php?action=history&amp;feed=atom&amp;title=Xiot-plc-system-log-events"/>
	<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;action=history"/>
	<updated>2026-10-09T09:34:25Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=5773&amp;oldid=prev</id>
		<title>Admin: Английские адреса Wiki: обновление ссылок с сохранением русских подписей</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=5773&amp;oldid=prev"/>
		<updated>2026-10-02T22:24:33Z</updated>

		<summary type="html">&lt;p&gt;Английские адреса Wiki: обновление ссылок с сохранением русских подписей&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 22:24, 2 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Строка 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Таблица !! Содержание&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Таблица !! Содержание&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Система сообщений XIOT&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PLC — полная карта&lt;/del&gt;|Полная карта]] || Количество сообщений по всем устройствам и сценариям&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Xiot&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;plc-message-system-map&lt;/ins&gt;|Полная карта]] || Количество сообщений по всем устройствам и сценариям&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Система сообщений XIOT&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PLC — каталог шаблонов&lt;/del&gt;|Каталог шаблонов]] || Тексты существующих сообщений устройств и сценариев&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Xiot&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;plc-message-templates&lt;/ins&gt;|Каталог шаблонов]] || Тексты существующих сообщений устройств и сценариев&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;План доработки системы сообщений XIOT&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PLC&lt;/del&gt;|Таблица доработок]] || Приоритет добавления недостающих сообщений&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Xiot&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;plc-message-system-development-plan&lt;/ins&gt;|Таблица доработок]] || Приоритет добавления недостающих сообщений&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l331&quot;&gt;Строка 331:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 331:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:XIOT-PLC]][[Category:Сообщения]][[Category:Системные события]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:XIOT-PLC]][[Category:Сообщения]][[Category:Системные события]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{DEFAULTSORT:Системные события в журнале XIOT-PLC}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=5245&amp;oldid=prev</id>
		<title>Admin: Admin переименовал страницу Системные события в журнале XIOT-PLC в Xiot-plc-system-log-events: Английский адрес статьи, русский заголовок и сохранение истории по поручению владельца</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=5245&amp;oldid=prev"/>
		<updated>2026-10-02T21:38:36Z</updated>

		<summary type="html">&lt;p&gt;Admin переименовал страницу &lt;a href=&quot;/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_%D0%B2_%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B5_XIOT-PLC&quot; class=&quot;mw-redirect&quot; title=&quot;Системные события в журнале XIOT-PLC&quot;&gt;Системные события в журнале XIOT-PLC&lt;/a&gt; в &lt;a href=&quot;/wiki/Xiot-plc-system-log-events&quot; title=&quot;Xiot-plc-system-log-events&quot;&gt;Системные события в журнале XIOT-PLC&lt;/a&gt;: Английский адрес статьи, русский заголовок и сохранение истории по поручению владельца&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:38, 2 октября 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3679&amp;oldid=prev</id>
		<title>Admin: Разделены сообщения подключений xiot.pro и auth.xiot.pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3679&amp;oldid=prev"/>
		<updated>2026-08-06T18:34:43Z</updated>

		<summary type="html">&lt;p&gt;Разделены сообщения подключений xiot.pro и auth.xiot.pro&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 18:34, 6 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l88&quot;&gt;Строка 88:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Подключение &lt;/del&gt;контроллера к &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаку&lt;/del&gt;=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Подключения &lt;/ins&gt;контроллера к &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;XIOT&lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Событие !! Тип сообщения !! Текст сообщения !! Когда записывать !! Пользователю в мессенджеры&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Событие !! Тип сообщения !! Текст сообщения !! Когда записывать !! Пользователю в мессенджеры&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Контроллер подключён к &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаку &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;События &lt;/del&gt;|| &amp;lt;code&amp;gt;Контроллер подключён к &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаку XIOT&lt;/del&gt;.&amp;lt;/code&amp;gt; || После подтверждённого подключения || Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Контроллер подключён к &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xiot.pro &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Контрольные предупреждения &lt;/ins&gt;|| &amp;lt;code&amp;gt;Контроллер подключён к &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xiot.pro&lt;/ins&gt;.&amp;lt;/code&amp;gt; || После &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;первого &lt;/ins&gt;подтверждённого подключения || Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Связь с &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаком &lt;/del&gt;потеряна || Ошибки в работе || &amp;lt;code&amp;gt;Связь контроллера с &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаком XIOT &lt;/del&gt;отсутствует {длительность}.&amp;lt;/code&amp;gt; || После &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;устойчивого отключения &lt;/del&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Связь с &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xiot.pro &lt;/ins&gt;потеряна || Ошибки в работе || &amp;lt;code&amp;gt;Связь контроллера с &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xiot.pro &lt;/ins&gt;отсутствует &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;уже &lt;/ins&gt;{длительность}.&amp;lt;/code&amp;gt; || После &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;60 секунд непрерывного отсутствия связи &lt;/ins&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Связь с &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаком &lt;/del&gt;восстановлена || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;События &lt;/del&gt;|| &amp;lt;code&amp;gt;Связь контроллера с &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаком XIOT &lt;/del&gt;восстановлена &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;после &lt;/del&gt;{длительность}.&amp;lt;/code&amp;gt; || После восстановления зафиксированного отключения || Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Связь с &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xiot.pro &lt;/ins&gt;восстановлена || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Контрольные предупреждения &lt;/ins&gt;|| &amp;lt;code&amp;gt;Связь контроллера с &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;xiot.pro &lt;/ins&gt;восстановлена&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Перерыв длился &lt;/ins&gt;{длительность}.&amp;lt;/code&amp;gt; || После восстановления зафиксированного отключения || Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Облачная связь выключена &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;События &lt;/del&gt;|| &amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Подключение контроллера &lt;/del&gt;к &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;облаку XIOT выключено&lt;/del&gt;.&amp;lt;/code&amp;gt; || После &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;изменения настройки &lt;/del&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Контроллер подключён к auth.xiot.pro &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Контрольные предупреждения &lt;/ins&gt;|| &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Контроллер подключён &lt;/ins&gt;к &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;auth.xiot.pro&lt;/ins&gt;.&amp;lt;/code&amp;gt; || После &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;первого подтверждённого подключения и подписки &lt;/ins&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Авторизация утрачена &lt;/del&gt;|| Ошибки в работе || &amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Авторизация &lt;/del&gt;контроллера &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;в облаке XIOT утрачена&lt;/del&gt;.&amp;lt;/code&amp;gt; || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Если ранее действовавшая авторизация перестала работать &lt;/del&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Связь с auth.xiot.pro потеряна &lt;/ins&gt;|| Ошибки в работе || &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Связь &lt;/ins&gt;контроллера &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с auth.xiot.pro отсутствует уже {длительность}. Причина: {причина}&lt;/ins&gt;.&amp;lt;/code&amp;gt; || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;После 60 секунд непрерывного отсутствия связи &lt;/ins&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Авторизация &lt;/del&gt;восстановлена || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;События &lt;/del&gt;|| &amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Авторизация &lt;/del&gt;контроллера &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;в облаке XIOT &lt;/del&gt;восстановлена.&amp;lt;/code&amp;gt; || После восстановления &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;авторизации &lt;/del&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Связь с auth.xiot.pro &lt;/ins&gt;восстановлена || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Контрольные предупреждения &lt;/ins&gt;|| &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Связь &lt;/ins&gt;контроллера &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;с auth.xiot.pro &lt;/ins&gt;восстановлена&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Перерыв длился {длительность}&lt;/ins&gt;.&amp;lt;/code&amp;gt; || После восстановления &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;зафиксированного отключения &lt;/ins&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Подключение &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;отклонено &lt;/del&gt;|| Ошибки в работе || &amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Облако XIOT отклонило подключение &lt;/del&gt;контроллера: {&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;понятная &lt;/del&gt;причина}.&amp;lt;/code&amp;gt; || После &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;окончательного отказа &lt;/del&gt;подключения || Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Подключение &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;к auth.xiot.pro выключено || Контрольные предупреждения || &amp;lt;code&amp;gt;Подключение контроллера к auth.xiot.pro отключено в настройках.&amp;lt;/code&amp;gt; || После изменения настройки || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Авторизация auth.xiot.pro удалена || Контрольные предупреждения || &amp;lt;code&amp;gt;Контроллер отключён от auth.xiot.pro: авторизация удалена.&amp;lt;/code&amp;gt; || После удаления ранее действовавшей авторизации || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Авторизация auth.xiot.pro некорректна || Ошибки в работе || &amp;lt;code&amp;gt;Авторизация контроллера в auth.xiot.pro некорректна.&amp;lt;/code&amp;gt; || После проверки некорректных данных авторизации || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Авторизация auth.xiot.pro истекла || Ошибки в работе || &amp;lt;code&amp;gt;Срок действия авторизации контроллера в auth.xiot.pro истёк.&amp;lt;/code&amp;gt; || После проверки срока действия авторизации || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Авторизация auth.xiot.pro отклонена || Ошибки в работе || &amp;lt;code&amp;gt;Авторизация контроллера в auth.xiot.pro отклонена. Код MQTT: {код}.&amp;lt;/code&amp;gt; || После отказа сервера в подключении || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Подписка auth.xiot.pro отклонена &lt;/ins&gt;|| Ошибки в работе || &amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Подписка &lt;/ins&gt;контроллера &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;на сообщения auth.xiot.pro отклонена сервером.&amp;lt;/code&amp;gt; || После исчерпания повторных попыток подписки || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Передача данных в auth.xiot.pro нарушена || Ошибки в работе || &amp;lt;code&amp;gt;Передача данных в auth.xiot.pro не выполняется уже {длительность}. Причина&lt;/ins&gt;: {причина}.&amp;lt;/code&amp;gt; || После &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;устойчивой ошибки отправки || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Передача данных в auth.xiot.pro восстановлена || Контрольные предупреждения || &amp;lt;code&amp;gt;Передача данных в auth.xiot.pro восстановлена. Перерыв длился {длительность}.&amp;lt;/code&amp;gt; || После подтверждённой отправки вслед за зафиксированной ошибкой || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Контроллер повторно подключён к auth.xiot.pro || Контрольные предупреждения || &amp;lt;code&amp;gt;Контроллер повторно подключён к auth.xiot.pro.&amp;lt;/code&amp;gt; || После восстановления отключённого &lt;/ins&gt;подключения &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;или авторизации &lt;/ins&gt;|| Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3673&amp;oldid=prev</id>
		<title>Admin: Обновлена единая таблица сообщений, типы системных ошибок и локальные сводки</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3673&amp;oldid=prev"/>
		<updated>2026-08-01T19:31:15Z</updated>

		<summary type="html">&lt;p&gt;Обновлена единая таблица сообщений, типы системных ошибок и локальные сводки&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:31, 1 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Строка 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Контроллер восстановлен || События || &amp;lt;code&amp;gt;Контроллер XIOT восстановил работу после перезапуска.&amp;lt;/code&amp;gt; || После успешного запуска вслед за аварийным завершением || Нет&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Контроллер восстановлен || События || &amp;lt;code&amp;gt;Контроллер XIOT восстановил работу после перезапуска.&amp;lt;/code&amp;gt; || После успешного запуска вслед за аварийным завершением || Нет&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=Системные службы=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&quot;wikitable sortable&quot; style=&quot;width:100%&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! Событие !! Тип сообщения !! Текст сообщения !! Когда записывать !! Пользователю в мессенджеры&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Служба приложения не запущена || Ошибки в работе || &amp;lt;code&amp;gt;Служба приложения не запущена: порт {номер порта} уже используется.&amp;lt;/code&amp;gt; || При отказе запуска службы приложения из-за занятого порта || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Веб-интерфейс не запущен || Ошибки в работе || &amp;lt;code&amp;gt;Веб-интерфейс не запущен: порт 5551 уже используется.&amp;lt;/code&amp;gt; || При отказе запуска веб-интерфейса из-за занятого порта || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Служба управления не запущена || Ошибки в работе || &amp;lt;code&amp;gt;Служба управления не запущена: порт 5552 уже используется.&amp;lt;/code&amp;gt; || При отказе запуска службы управления из-за занятого порта || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Служба управления недоступна || Ошибки в работе || &amp;lt;code&amp;gt;Служба управления недоступна: не удалось открыть порт 5552.&amp;lt;/code&amp;gt; || При окончательной ошибке открытия порта службы управления || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Служба авторизации не запущена || Ошибки в работе || &amp;lt;code&amp;gt;Служба авторизации не запущена: порт 18887 уже используется.&amp;lt;/code&amp;gt; || При отказе запуска службы авторизации из-за занятого порта || Нет&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3669&amp;oldid=prev</id>
		<title>Admin: Разделены пользовательские и интеграторские типы сообщений</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3669&amp;oldid=prev"/>
		<updated>2026-08-01T18:13:57Z</updated>

		<summary type="html">&lt;p&gt;Разделены пользовательские и интеграторские типы сообщений&lt;/p&gt;
&lt;a href=&quot;https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;amp;diff=3669&amp;amp;oldid=3666&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3666&amp;oldid=prev</id>
		<title>Admin: Оставлены только таблицы сообщений; уточнена отправка в мессенджеры</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3666&amp;oldid=prev"/>
		<updated>2026-08-01T18:04:25Z</updated>

		<summary type="html">&lt;p&gt;Оставлены только таблицы сообщений; уточнена отправка в мессенджеры&lt;/p&gt;
&lt;a href=&quot;https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;amp;diff=3666&amp;amp;oldid=3663&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3663&amp;oldid=prev</id>
		<title>Admin: Добавлен полный план доработки единой системы сообщений и аналитики PLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3663&amp;oldid=prev"/>
		<updated>2026-08-01T17:41:29Z</updated>

		<summary type="html">&lt;p&gt;Добавлен полный план доработки единой системы сообщений и аналитики PLC&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:41, 1 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l313&quot;&gt;Строка 313:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 313:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Так журнал сразу начнёт объяснять большую часть системных проблем без потока повторов.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Так журнал сразу начнёт объяснять большую часть системных проблем без потока повторов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=План внедрения=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Полный приоритетный список архитектурных, системных, облачных и драйверных доработок: [[План доработки системы сообщений XIOT-PLC]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:XIOT-PLC]][[Category:Сообщения]][[Category:Диагностика]][[Category:Документация интегратора]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:XIOT-PLC]][[Category:Сообщения]][[Category:Диагностика]][[Category:Документация интегратора]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3661&amp;oldid=prev</id>
		<title>Admin: Добавлен аудит системных событий PLC для журнала и аналитики</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=Xiot-plc-system-log-events&amp;diff=3661&amp;oldid=prev"/>
		<updated>2026-08-01T17:28:56Z</updated>

		<summary type="html">&lt;p&gt;Добавлен аудит системных событий PLC для журнала и аналитики&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:Системные события в журнале XIOT-PLC}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Цель=&lt;br /&gt;
&lt;br /&gt;
Журнал должен показывать не только работу устройств и сценариев, но и изменения самой системы: какая конфигурация действует, когда подключались панели и оборудование, почему перезапускался контроллер, какие драйверы теряли связь и восстановились ли они.&lt;br /&gt;
&lt;br /&gt;
Это позволит по одной временной линии ответить на вопросы:&lt;br /&gt;
&lt;br /&gt;
* после какого изменения началась проблема;&lt;br /&gt;
* работало ли оборудование в момент выполнения сценария;&lt;br /&gt;
* была ли панель на связи;&lt;br /&gt;
* применена ли новая конфигурация;&lt;br /&gt;
* происходил ли перезапуск контроллера или драйвера;&lt;br /&gt;
* восстановилась ли система самостоятельно;&lt;br /&gt;
* сколько времени продолжался разрыв связи.&lt;br /&gt;
&lt;br /&gt;
=Основной принцип=&lt;br /&gt;
&lt;br /&gt;
Системное событие создаётся при устойчивом переходе состояния, а не при каждом heartbeat, опросе или попытке переподключения.&lt;br /&gt;
&lt;br /&gt;
Для каждого наблюдаемого объекта запоминаются:&lt;br /&gt;
&lt;br /&gt;
* последнее устойчивое состояние;&lt;br /&gt;
* время начала текущего состояния;&lt;br /&gt;
* время последнего сообщения;&lt;br /&gt;
* причина перехода;&lt;br /&gt;
* число неудачных попыток;&lt;br /&gt;
* признак первого запуска, чтобы начальное состояние не выглядело как аварийное отключение.&lt;br /&gt;
&lt;br /&gt;
Подключение записывается после короткой проверки устойчивости. Отключение записывается после таймаута. Восстановление содержит длительность перерыва.&lt;br /&gt;
&lt;br /&gt;
=Предлагаемые события=&lt;br /&gt;
&lt;br /&gt;
==Контроллер и служба XIOT==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст !! Когда записывать !! Место добавления&lt;br /&gt;
|-&lt;br /&gt;
| Контроллер запущен || Информация || &amp;lt;code&amp;gt;Контроллер XIOT запущен. Версия {версия}, конфигурация от {дата}.&amp;lt;/code&amp;gt; || После загрузки конфигурации и запуска основных модулей || Конец основной последовательности запуска в &amp;lt;code&amp;gt;xiot.py&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Плановый перезапуск || События || &amp;lt;code&amp;gt;Контроллер XIOT перезапускается: {причина}.&amp;lt;/code&amp;gt; || Перед штатным завершением процесса || Единая функция завершения вместо прямого завершения процесса&lt;br /&gt;
|-&lt;br /&gt;
| Аварийное завершение предыдущего запуска || Предупреждения || &amp;lt;code&amp;gt;Предыдущая работа контроллера завершилась аварийно.&amp;lt;/code&amp;gt; || При старте, если предыдущая сессия не оставила отметку штатного завершения || Начало запуска до инициализации устройств&lt;br /&gt;
|-&lt;br /&gt;
| Контроллер остановлен || События || &amp;lt;code&amp;gt;Контроллер XIOT остановлен.&amp;lt;/code&amp;gt; || При штатной остановке службы || Обработчики сигналов завершения&lt;br /&gt;
|-&lt;br /&gt;
| Локальный брокер восстановлен || Информация || &amp;lt;code&amp;gt;Локальная служба обмена сообщениями восстановлена после {длительность}.&amp;lt;/code&amp;gt; || После успешного подключения вслед за перезапуском брокера || Контроль локального брокера и обработчики подключения&lt;br /&gt;
|-&lt;br /&gt;
| Локальный брокер недоступен || Ошибки в работе || &amp;lt;code&amp;gt;Локальная служба обмена сообщениями недоступна {длительность}. Выполняется восстановление.&amp;lt;/code&amp;gt; || После нескольких неудачных проверок || Контроль соединения с локальным брокером&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Для определения аварийного завершения нужна небольшая постоянная отметка текущей сессии. При старте она создаётся, при штатной остановке закрывается. Само отсутствие отметки не должно считаться аварией при первом запуске после установки.&lt;br /&gt;
&lt;br /&gt;
==Конфигурация проекта==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст !! Когда записывать !! Место добавления&lt;br /&gt;
|-&lt;br /&gt;
| Начата загрузка || Отладка || &amp;lt;code&amp;gt;Начата загрузка конфигурации проекта.&amp;lt;/code&amp;gt; || После принятия начала новой сессии загрузки || Приём конфигурации в &amp;lt;code&amp;gt;xiot.py&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Конфигурация принята || Информация || &amp;lt;code&amp;gt;Новая конфигурация проекта принята. После перезапуска будут загружены: {устройств} устройств, {сценариев} сценариев.&amp;lt;/code&amp;gt; || После проверки целостности и атомарной записи файла || Завершение приёма конфигурации&lt;br /&gt;
|-&lt;br /&gt;
| Конфигурация применена || Информация || &amp;lt;code&amp;gt;Новая конфигурация проекта применена: {устройств} устройств, {сценариев} сценариев.&amp;lt;/code&amp;gt; || При первом успешном запуске с новой версией конфигурации || После создания устройств и сценариев&lt;br /&gt;
|-&lt;br /&gt;
| Конфигурация не изменилась || Отладка || &amp;lt;code&amp;gt;Полученная конфигурация совпадает с действующей.&amp;lt;/code&amp;gt; || Если загружен уже действующий вариант || Завершение приёма конфигурации&lt;br /&gt;
|-&lt;br /&gt;
| Загрузка отклонена || Ошибки в работе || &amp;lt;code&amp;gt;Конфигурация проекта не загружена: {понятная причина}.&amp;lt;/code&amp;gt; || При неполных данных, ошибке формата, конфликте загрузок или ошибке записи || Все отрицательные результаты приёма конфигурации&lt;br /&gt;
|-&lt;br /&gt;
| Изменено отдельное устройство || События || &amp;lt;code&amp;gt;Конфигурация устройства «{название}» обновлена.&amp;lt;/code&amp;gt; || После успешной горячей перезагрузки устройства || Модуль горячего обновления объектов&lt;br /&gt;
|-&lt;br /&gt;
| Добавлено устройство || Информация || &amp;lt;code&amp;gt;В конфигурацию добавлено устройство «{название}» в комнате «{комната}».&amp;lt;/code&amp;gt; || После успешного создания нового объекта || Модуль горячего обновления объектов&lt;br /&gt;
|-&lt;br /&gt;
| Удалено устройство || Информация || &amp;lt;code&amp;gt;Из конфигурации удалено устройство «{название}».&amp;lt;/code&amp;gt; || После удаления и очистки подписок || Модуль горячего обновления объектов&lt;br /&gt;
|-&lt;br /&gt;
| Добавлен, изменён или удалён сценарий || Информация или События || &amp;lt;code&amp;gt;Сценарий «{название}» {добавлен/обновлён/удалён}.&amp;lt;/code&amp;gt; || После успешного изменения || Модуль горячего обновления объектов&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Сообщение «конфигурация принята» нельзя считать окончательным результатом. Главным для аналитики является сообщение «конфигурация применена» после нового запуска и успешного создания объектов.&lt;br /&gt;
&lt;br /&gt;
Чтобы сообщение не потерялось во время перезапуска, результат загрузки нужно сохранить как ожидающее системное событие и записать в журнал после старта с новой конфигурацией.&lt;br /&gt;
&lt;br /&gt;
==Панели управления==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст !! Правило подавления !! Место добавления&lt;br /&gt;
|-&lt;br /&gt;
| Новая панель || Информация || &amp;lt;code&amp;gt;Подключена новая панель «{панель}», комната «{комната}», версия {версия}.&amp;lt;/code&amp;gt; || Один раз при первой регистрации панели || Модуль панелей при первом heartbeat&lt;br /&gt;
|-&lt;br /&gt;
| Панель подключилась || События || &amp;lt;code&amp;gt;Панель «{панель}» подключена, комната «{комната}».&amp;lt;/code&amp;gt; || После 10 секунд устойчивой связи; не создавать отдельно сразу после регистрации || Переход панели в состояние «на связи»&lt;br /&gt;
|-&lt;br /&gt;
| Панель отключилась || Предупреждения || &amp;lt;code&amp;gt;Панель «{панель}» не выходит на связь {длительность}, комната «{комната}».&amp;lt;/code&amp;gt; || После действующего таймаута heartbeat; одно сообщение на период отключения || Watchdog панелей&lt;br /&gt;
|-&lt;br /&gt;
| Связь восстановлена || Информация || &amp;lt;code&amp;gt;Связь с панелью «{панель}» восстановлена после {длительность}.&amp;lt;/code&amp;gt; || Первый heartbeat после зафиксированного отключения || Переход панели в состояние «на связи»&lt;br /&gt;
|-&lt;br /&gt;
| Панель перенесена || События || &amp;lt;code&amp;gt;Панель «{панель}» перенесена из комнаты «{старая комната}» в комнату «{новая комната}».&amp;lt;/code&amp;gt; || Только при реальном изменении комнаты || Изменение привязки панели&lt;br /&gt;
|-&lt;br /&gt;
| Панель удалена || Информация || &amp;lt;code&amp;gt;Панель «{панель}» удалена из контроллера.&amp;lt;/code&amp;gt; || После команды удаления || Удаление панели&lt;br /&gt;
|-&lt;br /&gt;
| Изменилась версия приложения || Информация || &amp;lt;code&amp;gt;Приложение панели «{панель}» обновлено: {старая версия} → {новая версия}.&amp;lt;/code&amp;gt; || Только при смене ранее известной версии || Обработка состояния панели&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Обычные heartbeat, время последней активности, изменение страницы, яркости, громкости и показ информационного экрана в журнал не записываются.&lt;br /&gt;
&lt;br /&gt;
==Драйверы и интеграции==&lt;br /&gt;
&lt;br /&gt;
Единый наблюдатель должен принимать состояния всех драйверов и формировать одинаковые сообщения.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст !! Правило&lt;br /&gt;
|-&lt;br /&gt;
| Драйвер подключён || События || &amp;lt;code&amp;gt;{драйвер} подключён.&amp;lt;/code&amp;gt; || После первого устойчивого подключения; при обычном старте можно включать в общую стартовую сводку&lt;br /&gt;
|-&lt;br /&gt;
| Драйвер отключён || Предупреждения || &amp;lt;code&amp;gt;{драйвер} не выходит на связь {длительность}: {причина}.&amp;lt;/code&amp;gt; || После таймаута, одно сообщение на период недоступности&lt;br /&gt;
|-&lt;br /&gt;
| Драйвер восстановлен || Информация || &amp;lt;code&amp;gt;{драйвер} восстановил связь после {длительность}.&amp;lt;/code&amp;gt; || При первом устойчивом подключении после предупреждения&lt;br /&gt;
|-&lt;br /&gt;
| Ошибка настройки || Ошибки в работе || &amp;lt;code&amp;gt;{драйвер} не запущен: ошибка настройки — {причина}.&amp;lt;/code&amp;gt; || Один раз после загрузки конфигурации и при изменении ошибки&lt;br /&gt;
|-&lt;br /&gt;
| Драйвер выключен настройкой || События || &amp;lt;code&amp;gt;{драйвер} выключен в настройках.&amp;lt;/code&amp;gt; || Только после изменения настройки, не при каждом старте&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Под наблюдение следует включить:&lt;br /&gt;
&lt;br /&gt;
* Wiren Board;&lt;br /&gt;
* Modbus;&lt;br /&gt;
* Zigbee2MQTT;&lt;br /&gt;
* внешние MQTT-подключения;&lt;br /&gt;
* пользовательский MQTT-брокер;&lt;br /&gt;
* DMX;&lt;br /&gt;
* REST API и TCP-подключения;&lt;br /&gt;
* Global Caché;&lt;br /&gt;
* Russound;&lt;br /&gt;
* медиаплееры;&lt;br /&gt;
* HomeKit;&lt;br /&gt;
* Яндекс Алису;&lt;br /&gt;
* локальную и облачную связь панелей;&lt;br /&gt;
* системное облачное подключение XIOT.&lt;br /&gt;
&lt;br /&gt;
Большинство этих модулей уже публикуют признак подключения. Их не требуется переписывать: единый наблюдатель может подписаться на существующие изменения состояния. Локальные особенности остаются внутри драйвера только для формирования понятной причины.&lt;br /&gt;
&lt;br /&gt;
==Физические устройства==&lt;br /&gt;
&lt;br /&gt;
Подключение драйвера и доступность конкретного устройства — разные события. Например, Modbus-порт может работать, но один счётчик не отвечать.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст !! Источник состояния&lt;br /&gt;
|-&lt;br /&gt;
| Устройство обнаружено || Информация || &amp;lt;code&amp;gt;Обнаружено новое устройство «{название или адрес}» через {драйвер}.&amp;lt;/code&amp;gt; || Обнаружение Zigbee, Modbus или другого драйвера&lt;br /&gt;
|-&lt;br /&gt;
| Устройство добавлено || Информация || &amp;lt;code&amp;gt;Устройство «{название}» добавлено через {драйвер}.&amp;lt;/code&amp;gt; || Завершённое подключение или включение устройства в конфигурацию драйвера&lt;br /&gt;
|-&lt;br /&gt;
| Устройство недоступно || Предупреждения || &amp;lt;code&amp;gt;Устройство «{название}» не отвечает {длительность}, подключение {драйвер}.&amp;lt;/code&amp;gt; || Устойчивая недоступность после нескольких проверок&lt;br /&gt;
|-&lt;br /&gt;
| Связь восстановлена || Информация || &amp;lt;code&amp;gt;Устройство «{название}» снова на связи после {длительность}.&amp;lt;/code&amp;gt; || Первый успешный обмен после предупреждения&lt;br /&gt;
|-&lt;br /&gt;
| Устройство удалено || Информация || &amp;lt;code&amp;gt;Устройство «{название}» удалено из {драйвер}.&amp;lt;/code&amp;gt; || Подтверждённое удаление&lt;br /&gt;
|-&lt;br /&gt;
| Ошибка канала || Ошибки в работе || &amp;lt;code&amp;gt;Канал «{канал}» устройства «{название}» не работает: {причина}.&amp;lt;/code&amp;gt; || Только для длительной ошибки настройки или обмена, не для одиночного сбоя чтения&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Modbus уже ведёт состояния порта, устройства и канала, поэтому сообщения следует формировать в точках устойчивой смены доступности. Для Wiren Board сначала нужно разделить связь с брокером и доступность конкретных контролов. Для Zigbee полезны события присоединения, ухода и длительной недоступности устройства.&lt;br /&gt;
&lt;br /&gt;
==Облако, авторизация и пользовательское приложение==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст !! Место добавления&lt;br /&gt;
|-&lt;br /&gt;
| Облако подключено || События || &amp;lt;code&amp;gt;Контроллер подключён к облаку XIOT.&amp;lt;/code&amp;gt; || Успешное облачное подключение&lt;br /&gt;
|-&lt;br /&gt;
| Облако недоступно || Предупреждения || &amp;lt;code&amp;gt;Связь с облаком XIOT отсутствует {длительность}.&amp;lt;/code&amp;gt; || Отключение после задержки&lt;br /&gt;
|-&lt;br /&gt;
| Облако восстановлено || Информация || &amp;lt;code&amp;gt;Связь с облаком XIOT восстановлена после {длительность}.&amp;lt;/code&amp;gt; || Успешное подключение после предупреждения&lt;br /&gt;
|-&lt;br /&gt;
| Облачная связь выключена || События || &amp;lt;code&amp;gt;Облачная связь XIOT выключена в настройках.&amp;lt;/code&amp;gt; || Изменение настройки блокировки облака&lt;br /&gt;
|-&lt;br /&gt;
| Авторизация сброшена || Предупреждения || &amp;lt;code&amp;gt;Авторизация контроллера сброшена.&amp;lt;/code&amp;gt; || Подтверждённая команда сброса&lt;br /&gt;
|-&lt;br /&gt;
| Архив приложения обновлён || Информация || &amp;lt;code&amp;gt;Пользовательское приложение проекта обновлено до версии {версия}.&amp;lt;/code&amp;gt; || После успешной загрузки и распаковки архива&lt;br /&gt;
|-&lt;br /&gt;
| Архив приложения не обновлён || Ошибки в работе || &amp;lt;code&amp;gt;Не удалось обновить пользовательское приложение: {причина}.&amp;lt;/code&amp;gt; || После окончательной ошибки, а не каждой повторной попытки&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В журнал нельзя записывать токены, секреты, полные сетевые адреса облачных запросов и содержимое конфигурации.&lt;br /&gt;
&lt;br /&gt;
==Обновление программного обеспечения==&lt;br /&gt;
&lt;br /&gt;
Служба обновления работает отдельным процессом и сейчас отправляет только состояние окна обновления. Для общей истории она должна передавать небольшое постоянное событие основному процессу или записывать его в очередь ожидающих системных событий.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст&lt;br /&gt;
|-&lt;br /&gt;
| Обновление начато || Информация || &amp;lt;code&amp;gt;Начато обновление XIOT: {старая версия} → {новая версия}.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Пакет загружен || Отладка || &amp;lt;code&amp;gt;Пакет обновления {версия} загружен и проверен.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Установка завершена || Информация || &amp;lt;code&amp;gt;Обновление XIOT установлено. Ожидается перезапуск.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Обновление применено || Информация || &amp;lt;code&amp;gt;XIOT обновлён: {старая версия} → {новая версия}.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Обновление не выполнено || Ошибки в работе || &amp;lt;code&amp;gt;Не удалось обновить XIOT до версии {версия}: {причина}.&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Окончательное сообщение об успешном обновлении создаётся новым процессом после проверки фактически запущенной версии.&lt;br /&gt;
&lt;br /&gt;
==Состояние хранилищ и времени==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Событие !! Уровень !! Текст&lt;br /&gt;
|-&lt;br /&gt;
| Журнал почти заполнен || Предупреждения || &amp;lt;code&amp;gt;Хранилище журнала заполнено на {процент}. Выполняется очистка старых записей.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Очистка не помогла || Ошибки в работе || &amp;lt;code&amp;gt;Не удалось освободить место в хранилище журнала.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| История недоступна || Ошибки в работе || &amp;lt;code&amp;gt;Хранилище истории недоступно: {причина}.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Время существенно изменилось || Предупреждения || &amp;lt;code&amp;gt;Системное время скорректировано на {разница}.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Изменился основной сетевой адрес || События || &amp;lt;code&amp;gt;Сетевое подключение контроллера изменилось: {интерфейс}.&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Незначительные синхронизации времени, обычная очистка старых сообщений и повторная публикация сетевых параметров в журнал не попадают.&lt;br /&gt;
&lt;br /&gt;
=Что не нужно записывать=&lt;br /&gt;
&lt;br /&gt;
* каждый heartbeat панели;&lt;br /&gt;
* каждую попытку переподключения;&lt;br /&gt;
* каждый успешный опрос Modbus;&lt;br /&gt;
* повтор одного состояния без изменения;&lt;br /&gt;
* промежуточные проценты загрузки обновления;&lt;br /&gt;
* полный список тегов и подписок;&lt;br /&gt;
* секреты, токены и содержимое конфигурации;&lt;br /&gt;
* кратковременный разрыв, который восстановился до таймаута;&lt;br /&gt;
* начальное состояние «отключено» до первой попытки соединения.&lt;br /&gt;
&lt;br /&gt;
=Предлагаемая архитектура=&lt;br /&gt;
&lt;br /&gt;
==Единый журнал системных переходов==&lt;br /&gt;
&lt;br /&gt;
Добавить один компонент, который получает изменения состояния от PLC и драйверов, сравнивает их с предыдущим устойчивым состоянием и создаёт сообщения.&lt;br /&gt;
&lt;br /&gt;
Он должен обеспечивать:&lt;br /&gt;
&lt;br /&gt;
* единые русские формулировки;&lt;br /&gt;
* задержку подтверждения подключения и отключения;&lt;br /&gt;
* одно сообщение на один период неисправности;&lt;br /&gt;
* сообщение о восстановлении с длительностью;&lt;br /&gt;
* подавление начальных ложных отключений;&lt;br /&gt;
* постоянную очередь событий, которые должны пережить перезапуск;&lt;br /&gt;
* стабильный код события для аналитики;&lt;br /&gt;
* связь события с объектом, комнатой, драйвером и причиной.&lt;br /&gt;
&lt;br /&gt;
В первую очередь наблюдатель можно подключить к уже существующим признакам подключения драйверов и панелей. Это даст широкое покрытие без изменений каждого драйвера.&lt;br /&gt;
&lt;br /&gt;
==Структура для аналитики==&lt;br /&gt;
&lt;br /&gt;
Для системных событий одного русского текста недостаточно. Вместе с текстом следует сохранять:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Поле !! Пример&lt;br /&gt;
|-&lt;br /&gt;
| Код события || &amp;lt;code&amp;gt;panel.connection.lost&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Объект || панель в кухне&lt;br /&gt;
|-&lt;br /&gt;
| Категория || панель, конфигурация, драйвер, устройство, контроллер&lt;br /&gt;
|-&lt;br /&gt;
| Предыдущее состояние || на связи&lt;br /&gt;
|-&lt;br /&gt;
| Новое состояние || нет связи&lt;br /&gt;
|-&lt;br /&gt;
| Причина || не получен heartbeat&lt;br /&gt;
|-&lt;br /&gt;
| Длительность || 48 секунд&lt;br /&gt;
|-&lt;br /&gt;
| Версия конфигурации || короткий идентификатор действующей конфигурации&lt;br /&gt;
|-&lt;br /&gt;
| Сессия запуска || идентификатор текущего запуска контроллера&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Эти данные должны сохраняться в истории, а не существовать только во временном контексте обработки. Боту тогда не придётся угадывать смысл события по формулировке.&lt;br /&gt;
&lt;br /&gt;
=Очередность внедрения=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Этап !! Что добавить !! Причина приоритета&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Применение конфигурации, запуск, штатный и аварийный перезапуск || Позволяет связать проблему с изменением системы&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Подключение, отключение и восстановление панелей || Уже есть heartbeat и готовые переходы состояния&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Единый наблюдатель подключений драйверов и облака || Большое покрытие через существующие признаки связи&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Создание, обновление и удаление устройств и сценариев || Готовые точки есть в горячем обновлении объектов&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Доступность физических устройств Modbus, Zigbee и Wiren Board || Требуется аккуратная модель таймаутов каждого протокола&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Обновление ПО, пользовательского приложения, хранилища и времени || Требуется обмен событиями между отдельными процессами&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Сохраняемые структурированные поля для аналитики || Потребуется изменение схемы хранения и API журнала&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Итог аудита=&lt;br /&gt;
&lt;br /&gt;
В PLC уже есть почти все необходимые сигналы состояния, но они распределены между логами, служебными тегами и внутренними признаками драйверов. Наиболее безопасный путь — сначала централизованно преобразовать существующие переходы в сообщения, а затем точечно добавить события, которых нет в состояниях.&lt;br /&gt;
&lt;br /&gt;
Первые изменения следует внести в четыре места:&lt;br /&gt;
&lt;br /&gt;
# завершение загрузки и применение конфигурации;&lt;br /&gt;
# жизненный цикл основного процесса XIOT;&lt;br /&gt;
# переходы связи панелей;&lt;br /&gt;
# единый наблюдатель состояний драйверов и облака.&lt;br /&gt;
&lt;br /&gt;
Так журнал сразу начнёт объяснять большую часть системных проблем без потока повторов.&lt;br /&gt;
&lt;br /&gt;
[[Category:XIOT-PLC]][[Category:Сообщения]][[Category:Диагностика]][[Category:Документация интегратора]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>