Всем добрый день. Настроил взаимодействие megad и home assistant. В целом все работает, но есть проблема со стабильностью работы megad по протоколу MQTT.
Megad fw 4.39b7
Mosquitto version 1.6.8
Попробую описать аномалии которые заметил у себя в течении дня.
1. Воспроизводится стабильно
Если через MQTT на megad отправить несколько команд без задержки, например
topic: megad/14/cmd
get:14
get:30
get:31
, то в логе Mosquitto получаю
Код: Выделить всё
2019-12-18T08:55:35: Connection Refused: unknown reason
2019-12-18T08:55:35: Socket error on client megad-14, disconnecting.
как workaround стал отправлять команды по одной с задержкой в 10 секунд, отваливать прекратило.
2. Воспроизводится случайно, за день несколько раз. Иногда при подключении к MQTT megad не подписывается на топик megad/14/cmd
Выглядит в логе Mosquitto это вот так
Код: Выделить всё
1576655290: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
1576655290: New connection from 10.8.0.5 on port 1883.
1576655290: Client megad-14 already connected, closing old connection.
1576655290: New client connected from 10.8.0.5 as megad-14 (p1, c1, k30).
1576655290: No will message specified.
1576655290: Sending CONNACK to megad-14 (0, 0)
1576655299: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
1576655310: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
"Правильное" подключение выглядит вот так:
Код: Выделить всё
1576651710: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
1576651710: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
1576651710: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/31', ... (47 bytes))
1576651710: Sending PUBLISH to auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/31', ... (47 bytes))
1576651710: Socket error on client megad-14, disconnecting.
1576651725: New connection from 10.8.0.5 on port 1883.
1576651725: New client connected from 10.8.0.5 as megad-14 (p1, c1, k30).
1576651725: No will message specified.
1576651725: Sending CONNACK to megad-14 (0, 0)
1576651726: Received SUBSCRIBE from megad-14
1576651726: megad/14/cmd (QoS 0)
1576651726: Sending SUBACK to megad-14
3. Воспроизводится случайно, каждые несколько часов. MQTT пишет ошибку в лог и отключает megad. В логе выглядит вот так
Код: Выделить всё
2019-12-18T08:56:32: Received PUBCOMP from megad-14 (Mid: 12129, RC:0)
2019-12-18T08:56:32: Received CONNACK on connection megad-14.
2019-12-18T08:56:32: Connection Refused: unknown reason
2019-12-18T08:56:32: Socket error on client megad-14, disconnecting.
2019-12-18T08:56:47: New connection from 10.8.0.5 on port 1883.
2019-12-18T08:56:47: New client connected from 10.8.0.5 as megad-14 (p1, c1, k30).
2019-12-18T08:56:47: No will message specified.
2019-12-18T08:56:47: Sending CONNACK to megad-14 (0, 0)
2019-12-18T08:56:48: Received SUBSCRIBE from megad-14
2019-12-18T08:56:48: megad/14/cmd (QoS 0)
2019-12-18T08:56:48: Sending SUBACK to megad-14
4. Отправляю несколько раз 10+ команду включить выключить выход и на 10+ повторе megad перестает отвечать. Потом через небольшое время megad переподключается к брокеру и какоето время снова работает. Вот выдержка из лога Mosquitto демонстрирующая эту проблему.
Код: Выделить всё
2019-12-18T09:26:53: Received PINGREQ from megad-14
2019-12-18T09:26:53: Sending PINGRESP to megad-14
2019-12-18T09:27:10: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:27:10: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:27:12: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/14', ... (32 bytes))
2019-12-18T09:27:12: Sending PUBLISH to auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/14', ... (32 bytes))
2019-12-18T09:27:20: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:27:20: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:27:22: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/30', ... (62 bytes))
2019-12-18T09:27:22: Sending PUBLISH to auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/30', ... (62 bytes))
2019-12-18T09:27:26: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:26: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:27: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/7', ... (23 bytes))
2019-12-18T09:27:27: Sending PUBLISH to auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/7', ... (23 bytes))
2019-12-18T09:27:29: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:29: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:30: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:27:30: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:27:30: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/7', ... (24 bytes))
2019-12-18T09:27:30: Sending PUBLISH to auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/7', ... (24 bytes))
2019-12-18T09:27:30: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:30: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:34: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:34: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:43: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:43: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:47: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:27:47: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (3 bytes))
2019-12-18T09:28:10: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:28:10: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:28:10: Received PUBREL from megad-14 (Mid: 8762)
2019-12-18T09:28:10: Sending PUBCOMP to megad-14 (m8762)
2019-12-18T09:28:20: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:28:20: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:28:20: Socket error on client megad-14, disconnecting.
2019-12-18T09:28:30: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:28:31: Received PINGREQ from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15
2019-12-18T09:28:31: Sending PINGRESP to auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15
2019-12-18T09:28:35: New connection from 10.8.0.5 on port 1883.
2019-12-18T09:28:35: New client connected from 10.8.0.5 as megad-14 (p1, c1, k30).
2019-12-18T09:28:35: No will message specified.
2019-12-18T09:28:35: Sending CONNACK to megad-14 (0, 0)
2019-12-18T09:28:35: Received SUBSCRIBE from megad-14
2019-12-18T09:28:35: megad/14/cmd (QoS 0)
2019-12-18T09:28:35: Sending SUBACK to megad-14
2019-12-18T09:28:58: Received PINGREQ from megad-14
2019-12-18T09:28:58: Sending PINGRESP to megad-14
2019-12-18T09:29:10: Received PUBLISH from auto-43A35F1D-EEB4-4CDD-F97B-A0F5ED93AA15 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:29:10: Sending PUBLISH to megad-14 (d0, q0, r0, m0, 'megad/14/cmd', ... (6 bytes))
2019-12-18T09:29:10: Received PUBLISH from megad-14 (d0, q0, r0, m0, 'megad/14/14', ... (32 bytes))