Рабочий код из предыдущей темы мы залили в ещё один модуль ESP (сам он физически находится далеко отсюда, т.е. заходит из) При включении на один сервер они начинают друг другу мешать, вызывая бесконечные реконнекты На второй платке такая же картина. При этом на передачу они всё-таки работают, отдавая температуру в соответствующие топики, но прием полностью отшибает Что нужно поменять в настройках авторизации, чтобы они при подключении друг другу не мешали? Пользователь, пароль, это понятно, но на нашем сервере авторизация пока не настроена, так что скорее всего дело не в этом. Должен быть по всей видимости ещё client ID и он должен быть уникальным, но я так и не понял, где в настройках PubSub его вообще прописать.
У них у каждой должно быть собственное имя при подключении. Такое происходит, когда два модуля с одним именем ломятся на сервер. Смотрите настройки, ищите что изменить. Пользователя меняйте.
в первом сообщении писал пользователя менял, что-то другое влиять В настройках подключения андроид- или виндовс-клиента есть client ID значит он должен быть где-то и в коде подключения но я не понял, где именно надеюсь, что кто-то уже в курсе и подскажет случаем, не вот это?
Одна железка идет к брокеру и говорит: "Привет, я - Вася, давай дружить". Другая железка идет к брокеру и говорит: "Привет, я - Вася, давай дружить". Брокер в ответ: "И ты Вася? Идите вы оба, разберитесь между собой. Жду." client ID - значит client ID. Вы же откуда то этот код скопипастили - поищите что-то типа:
нашел решение в описании API в коде это Код (C++): void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect // If you do not want to use a username and password, change next line to if (client.connect("ESP8266Client")) { //if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) { client.subscribe(in_topic); //это мы добавили по рекомендации автора библиотеки Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } }