NEWS
Драйвер Mqtt + Arduino
-
Подозреваю не тот ты драйвер поставил. Настройки драйвера покажи
Вроде все норм. Сними ещё три галки в настройках. -
Вроде все норм. Сними ещё три галки в настройках. `
Снял, ничего не изменилось. Может необходимо какие библиотеки на сервер поставить или какой нибудь mosquitto?? -
Вроде все норм. Сними ещё три галки в настройках.
Снял, ничего не изменилось. Может необходимо какие библиотеки на сервер поставить или какой нибудь mosquitto??
Ненужны никакие маскиты, драйвер скмодостаточен. И запускает сервер. Проблема с твоим клиентом, он не подписывается наверное? Или отключается от сервера. На вкладке объекты в mqtt.0 топик не появился? -
Ненужны никакие маскиты, драйвер скмодостаточен. И запускает сервер. Проблема с твоим клиентом, он не подписывается наверное? Или отключается от сервера. На вкладке объекты в mqtt.0 топик не появился? `
В объектах у меня следующее:
3048_image.jpg -
Проблема с твоим клиентом, он не подписывается наверное? Или отключается от сервера. На вкладке объекты в mqtt.0 топик не появился? `
Для проверки работы я использую стандартную команду отправки данных:mosquitto_pub -h localhost -p 1883 -t '/test' -m '0'
В ответ получаю следующее сообщение, которое я писал выше.
-
Переустановил iobroker с нуля, на чистую систему.
Делал все по этой инструкии: http://www.iobroker.net/docu/?page_id=3489&lang=ru, не настраивал только IP, так как он зарезервирован на роутере.
В итоге ничего не изменилось.
Подскажите, можно ли как-то включить "режим отладки", для поиска причин?
Не понятно, почему в статусе пишет: Соединение с mqtt: нет?
3048_image.jpg
3048_image.jpg -
Переустановил iobroker с нуля, на чистую систему.
Делал все по этой инструкии: http://www.iobroker.net/docu/?page_id=3489&lang=ru, не настраивал только IP, так как он зарезервирован на роутере.
В итоге ничего не изменилось.
Подскажите, можно ли как-то включить "режим отладки", для поиска причин?
Не понятно, почему в статусе пишет: Соединение с mqtt: нет? `
Я же тебе писал что проблема в клиенте а не в иоб и драйвере.Чтобы было соединение клиент должен быть подписан на топики.
-
Я же тебе писал что проблема в клиенте а не в иоб и драйвере.
Чтобы было соединение клиент должен быть подписан на топики. `
Ниже код, который пытается подключиться, ошибка та же: Client error [test1/1]: Error: not implemented
#include <esp8266wifi.h> #include <wificlientsecure.h> #include <pubsubclient.h> const char* ssid = ""; const char*password = ""; const char *mqtt_server = "10.1.1.1"; const int mqtt_port = 1883; unsigned int send_interval = 10; unsigned long last_time = 0; char buff[20]; int pin13 = 13; WiFiClient ethClient; void callback(char* topic, byte* payload, unsigned int length); PubSubClient client(mqtt_server, mqtt_port, callback, ethClient); void callback(char* topic, byte* payload, unsigned int length) { Serial.println (""); Serial.println ("-------"); Serial.println ("New callback of MQTT-broker"); //преобразуем тему(topic) и значение (payload) в строку payload[length] = '\0'; String strTopic = String(topic); String strPayload = String((char*)payload); //Исследуем что "прилетело" от сервера по подписке: //Управление светодиодом if (strTopic == "test1/setdat") { if (strPayload == "off" || strPayload == "0" || strPayload == "false") digitalWrite(pin13, LOW); if (strPayload == "on" || strPayload == "1" || strPayload == "true") digitalWrite(pin13, HIGH); } Serial.print (strTopic); Serial.print (" "); Serial.println (strPayload); Serial.println ("-------"); Serial.println (""); } void wifiConnect() { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(300); Serial.print("."); digitalWrite(pin13, 0); delay(300); digitalWrite(pin13, 1); delay(300); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); digitalWrite(pin13, 0); } void setup() { Serial.begin(115200); Serial.begin(115200); pinMode(pin13, OUTPUT); delay(10); wifiConnect(); } void loop() { //Если соединение MQTT неактивно, то пытаемся установить его и опубликовать/подписаться if (!client.connected()) { Serial.print("Connect to MQTT-boker... "); //Подключаемся и публикуемся/подписываемся if (client.connect("test1/1")) { Serial.println("success"); //Значение с датчиков client.publish("test1/1", "1"); //Подписываемся на переменную управления светодиодом client.subscribe("test1/setdata"); } else { //Если не подключились, ждем 10 секунд и пытаемся снова Serial.print("Failed, rc="); Serial.print(client.state()); Serial.println(" try again in 10 seconds"); delay (10000); } //Если соединение активно, то отправляем данные на сервер с заданным интервалом времени } else { if (millis() > (last_time + send_interval * 1000)) { last_time = millis(); client.publish("test1/1", "1"); } } //Проверка входящих соединений по подписке client.loop(); }</pubsubclient.h></wificlientsecure.h></esp8266wifi.h> -
Я же тебе писал что проблема в клиенте а не в иоб и драйвере.
Чтобы было соединение клиент должен быть подписан на топики. `
Ниже код, который пытается подключиться, ошибка та же: Client error [test1/1]: Error: not implemented
#include <esp8266wifi.h> #include <wificlientsecure.h> #include <pubsubclient.h> const char* ssid = ""; const char*password = ""; const char *mqtt_server = "10.1.1.1"; const int mqtt_port = 1883; unsigned int send_interval = 10; unsigned long last_time = 0; char buff[20]; int pin13 = 13; WiFiClient ethClient; void callback(char* topic, byte* payload, unsigned int length); PubSubClient client(mqtt_server, mqtt_port, callback, ethClient); void callback(char* topic, byte* payload, unsigned int length) { Serial.println (""); Serial.println ("-------"); Serial.println ("New callback of MQTT-broker"); //преобразуем тему(topic) и значение (payload) в строку payload[length] = '\0'; String strTopic = String(topic); String strPayload = String((char*)payload); //Исследуем что "прилетело" от сервера по подписке: //Управление светодиодом if (strTopic == "test1/setdat") { if (strPayload == "off" || strPayload == "0" || strPayload == "false") digitalWrite(pin13, LOW); if (strPayload == "on" || strPayload == "1" || strPayload == "true") digitalWrite(pin13, HIGH); } Serial.print (strTopic); Serial.print (" "); Serial.println (strPayload); Serial.println ("-------"); Serial.println (""); } void wifiConnect() { WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(300); Serial.print("."); digitalWrite(pin13, 0); delay(300); digitalWrite(pin13, 1); delay(300); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); digitalWrite(pin13, 0); } void setup() { Serial.begin(115200); Serial.begin(115200); pinMode(pin13, OUTPUT); delay(10); wifiConnect(); } void loop() { //Если соединение MQTT неактивно, то пытаемся установить его и опубликовать/подписаться if (!client.connected()) { Serial.print("Connect to MQTT-boker... "); //Подключаемся и публикуемся/подписываемся if (client.connect("test1/1")) { Serial.println("success"); //Значение с датчиков client.publish("test1/1", "1"); //Подписываемся на переменную управления светодиодом client.subscribe("test1/setdata"); } else { //Если не подключились, ждем 10 секунд и пытаемся снова Serial.print("Failed, rc="); Serial.print(client.state()); Serial.println(" try again in 10 seconds"); delay (10000); } //Если соединение активно, то отправляем данные на сервер с заданным интервалом времени } else { if (millis() > (last_time + send_interval * 1000)) { last_time = millis(); client.publish("test1/1", "1"); } } //Проверка входящих соединений по подписке client.loop(); }</pubsubclient.h></wificlientsecure.h></esp8266wifi.h> ```` ` переведи драйвер в режим дебаг и скинь лог -
Лог во вложении
3048_log.txt -
Лог во вложении `
Даже не знаю что может быть.Попробуй код изменить на :
if (client.connect("test")) { Serial.println("success"); //Значение с датчиков client.publish("test1/1", "1"); //Подписываемся на переменную управления светодиодом client.subscribe("test1/#"); } -
Лог во вложении `
Даже не знаю что может быть.Попробуй код изменить на :
if (client.connect("test")) { Serial.println("success"); //Значение с датчиков client.publish("test1/1", "1"); //Подписываемся на переменную управления светодиодом client.subscribe("test1/#"); } ```` `Все тоже самое :(
Меня больше всего смущает статус драйвера "Соединение с mqtt: нет", такое ощущение что mqtt не стартует.
-
Лог во вложении `
Даже не знаю что может быть.Попробуй код изменить на :
if (client.connect("test")) { Serial.println("success"); //Значение с датчиков client.publish("test1/1", "1"); //Подписываемся на переменную управления светодиодом client.subscribe("test1/#"); } ```` `Все тоже самое :(
Меня больше всего смущает статус драйвера "Соединение с mqtt: нет", такое ощущение что mqtt не стартует. `
Это статус соединения с клиентами, т.е. если какой либо клиент будет подписан то будет зеленый -
А у тебя файрволов нет никаких? Порт больше никто не держит?
-
А у тебя файрволов нет никаких? Порт больше никто не держит? `
Фаервол отключен, телнет на порт проходит, порты пробовал менять - не помогает. :( -
А эта проблема может быть из за Node?
А то на инструкиции разные по установке Node:
-
А эта проблема может быть из за Node?
А то на инструкиции разные по установке Node:
https://github.com/ioBroker/ioBroker/wi … ые-системы
http://www.iobroker.net/docu/?page_id=3489&lang=ru ` а какая стоит? 4ю поставь.
-
А эта проблема может быть из за Node?
А то на инструкиции разные по установке Node:
https://github.com/ioBroker/ioBroker/wi … ые-системы
http://www.iobroker.net/docu/?page_id=3489&lang=ru
а какая стоит? 4ю поставь.Показывает что стоит 0.12
Попробую установить 4 версию, по результатам отпишусь.
-
а какая стоит? 4ю поставь. `
Спасибо!Вроде заработало, по крайней мере линуксовый клиент тачал подключаться.
Вечером проверю с нормальным клиентом.
Дело было в Node.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden