а какая стоит? 4ю поставь. `
Спасибо!
Вроде заработало, по крайней мере линуксовый клиент тачал подключаться.
Вечером проверю с нормальным клиентом.
Дело было в Node.
а какая стоит? 4ю поставь. `
Спасибо!
Вроде заработало, по крайней мере линуксовый клиент тачал подключаться.
Вечером проверю с нормальным клиентом.
Дело было в Node.
А эта проблема может быть из за Node?
А то на инструкиции разные по установке Node:
https://github.com/ioBroker/ioBroker/wi … ые-системы
http://www.iobroker.net/docu/?page_id=3489&lang=ru
а какая стоит? 4ю поставь.
Показывает что стоит 0.12
Попробую установить 4 версию, по результатам отпишусь.
А эта проблема может быть из за Node?
А то на инструкиции разные по установке Node:
А у тебя файрволов нет никаких? Порт больше никто не держит? `
Фаервол отключен, телнет на порт проходит, порты пробовал менять - не помогает.
Лог во вложении `
Даже не знаю что может быть.Попробуй код изменить на :
if (client.connect("test")) { Serial.println("success"); //Значение с датчиков client.publish("test1/1", "1"); //Подписываемся на переменную управления светодиодом client.subscribe("test1/#"); } ```` `
Все тоже самое
Меня больше всего смущает статус драйвера "Соединение с mqtt: нет", такое ощущение что 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>
Переустановил iobroker с нуля, на чистую систему.
Делал все по этой инструкии: http://www.iobroker.net/docu/?page_id=3489&lang=ru, не настраивал только IP, так как он зарезервирован на роутере.
В итоге ничего не изменилось.
Подскажите, можно ли как-то включить "режим отладки", для поиска причин?
Не понятно, почему в статусе пишет: Соединение с mqtt: нет?
3048_image.jpg
3048_image.jpg
Проблема с твоим клиентом, он не подписывается наверное? Или отключается от сервера. На вкладке объекты в mqtt.0 топик не появился? `
Для проверки работы я использую стандартную команду отправки данных:
mosquitto_pub -h localhost -p 1883 -t '/test' -m '0'
В ответ получаю следующее сообщение, которое я писал выше.
Ненужны никакие маскиты, драйвер скмодостаточен. И запускает сервер. Проблема с твоим клиентом, он не подписывается наверное? Или отключается от сервера. На вкладке объекты в mqtt.0 топик не появился? `
В объектах у меня следующее:
3048_image.jpg