Страница 12 из 14
Re: Подключеие MQTT Windows
Добавлено: Вт апр 04, 2017 11:29 am
alex32
нашел рабочий скетч. переделал под себя. 2 реле управляются, но не понимаю что происходит при старте меги.
Start...
IP: 10.3.1.194
Connect to MQTT-broker... Failed, rc=-2 try again in 10 seconds
Connect to MQTT-broker... Failed, rc=-2 try again in 10 seconds
Connect to MQTT-broker... Failed, rc=-2 try again in 10 seconds
Connect to MQTT-broker... success
-------
New callback of MQTT-broker
home/data/status/rele2 0 //почему только одно реле2? где второе?
-------
т.е. только одно rele2 переключается в исходную позицию -выключается (оба переключателя можордомо выключены). rele3 остается включенным.
и вообще как при старте меги сделать так, чтоб реле сами не включались?
Re: Подключеие MQTT Windows
Добавлено: Ср апр 05, 2017 2:24 pm
nick7zmail
Вопрос по MQTT...давно спросить хотел...
Если я к примеру хочу раз в минуту скидывать показания датчика...пишу скетч с delay(60000); mqtt насильно отключает клиента...как поддерживать конект, ничего не присылая при этом?? И возможно ли это вообще? Или нужно обязательно слать что нить раз секунд в 15?
Re: Подключеие MQTT Windows
Добавлено: Ср апр 05, 2017 4:33 pm
alex32
последнюю функцию посмотрите
if (!client.connected()) {//Если соединение MQTT неактивно, то пытаемся установить его и опубликовать/подписаться
Serial.print("Connect to MQTT-broker... ");
if (client.connect("Mega2560")) { //Подключаемся и публикуемся/подписываемся
Serial.println("success");
client.publish("home/data/status/sensor/temp", char_temp); //отправляем в Брокер значения
client.publish("home/data/status/sensor/hum", char_hum);
// client.publish("home/data/status/rele2_2", String(strPayload).c_str());
client.subscribe("home/data/status/rele2");//Подписываемся на переключатель MajorDoMo
client.subscribe("home/data/status/rele3");//Подписываемся на переключатель MajorDoMo
} else {
Serial.print("Failed, rc=");//Если не подключились, ждем 10 секунд и пытаемся снова
Serial.print(client.state());
Serial.println(" try again in 10 seconds");
delay (10000);
}
}
else {
if(millis() > (last_time + send_interval*1000)) {//Если соединение активно, то отправляем данные на сервер с заданным интервалом времени
last_time = millis();
// if (DHT.read22(DHT22_PIN)==DHTLIB_OK) {
client.publish("home/data/status/sensor/temp", char_temp); //отправляем в Брокер значения
client.publish("home/data/status/sensor/hum", char_hum);
// client.publish("home/data/status/rele2_2", String(strPayload).c_str());
// }
}
}
Re: Подключеие MQTT Windows
Добавлено: Ср апр 05, 2017 4:51 pm
nick7zmail
Не...это понятно...если отвалился - восстанавливаем подключение...а как сделать чтоб не отваливался то?? Если я, например подписан на топик (помимо отправки данных раз в минуту) - если клиент отвалился, топик не дойдет до него, действие не отработается.
Re: Подключеие MQTT Windows
Добавлено: Ср апр 05, 2017 4:58 pm
alex32
так он и не отваливается. вот сессия. если отвалится по сетевым проблемам, то заново восстановится
mosquitto.exe:14160 TCP 10.3.1.155:1883 10.3.1.194:49294 ESTABLISHED
можете подсказать как состояние цифрового выхода (реле) и входа (датчик движения например) передать в МД? не могу найти образцы. и как кнопку в МД подкрасить?
Re: Подключеие MQTT Windows
Добавлено: Ср апр 05, 2017 5:04 pm
nick7zmail
Не...брокер то у меня висит, проблем сетевых нет...он просто отбрасывает автоматически клиента, если тот ничего не присылал в течении 25-30 секунд.
Re: Подключеие MQTT Windows
Добавлено: Ср апр 05, 2017 7:52 pm
nick7zmail
Чтобы было понятнее о чем речь...
МД вот кидается какими-то пингами с брокером..каждые секунд 5
Код: Выделить всё
1491410894: Sending SUBACK to MDClient
1491410899: Received PINGREQ from MDClient
1491410899: Sending PINGRESP to MDClient
1491410904: Received PINGREQ from MDClient
1491410904: Sending PINGRESP to MDClient
А вот ардуина, если ничего не скидывает более 20 сек - брокер её выкидывает просто.
Код: Выделить всё
1491411241: Client arduinoClient has exceeded timeout, disconnecting.
1491411241: Socket error on client arduinoClient, disconnecting.
Как эти пинги кинуть брокеру с ардуины?))
Уже все примеры перерыл...ничего не могу найти такого((
Re: Подключеие MQTT Windows
Добавлено: Чт апр 06, 2017 3:25 pm
alex32
Слетела у меня МД. пока пеставлял заметил эти пинги между мегой и москито )))) зато МД теперь не хочет подписываться. только рассылки делает.
1491481264: New connection from 127.0.0.1 on port 1883.
1491481264: New client connected from 127.0.0.1 as MajorDoMo MQTT Client (c1, k10).
1491481264: Sending CONNACK to MajorDoMo MQTT Client (0, 0)
1491481264: Received PUBLISH from MajorDoMo MQTT Client (d0, q0, r0, m0, 'home/data/status/rele2', ... (1 bytes))
1491481264: Sending PUBLISH to Mega2560 (d0, q0, r0, m0, 'home/data/status/rele2', ... (1 bytes))
1491481264: Received DISCONNECT from MajorDoMo MQTT Client
1491481264: Client MajorDoMo MQTT Client disconnected.
1491481273: Received PUBLISH from Mega2560 (d0, q0, r0, m0, 'home/data/status/sensor/temp', ... (3 bytes))
1491481273: Received PUBLISH from Mega2560 (d0, q0, r0, m0, 'home/data/status/sensor/hum', ... (3 bytes))
1491481273: Received PUBLISH from Mega2560 (d0, q0, r0, m0, 'home/data/status/flame3', ... (3 bytes))
1491481280: Received PINGREQ from Mega2560
1491481280: Sending PINGRESP to Mega2560
1491481283: Received PUBLISH from Mega2560 (d0, q0, r0, m0, 'home/data/status/sensor/temp', ... (3 bytes))
1491481283: Received PUBLISH from Mega2560 (d0, q0, r0, m0, 'home/data/status/sensor/hum', ... (3 bytes))
1491481283: Received PUBLISH from Mega2560 (d0, q0, r0, m0, 'home/data/status/flame3', ... (3 bytes))
Re: Подключеие MQTT Windows
Добавлено: Чт апр 06, 2017 3:52 pm
nick7zmail
А можно скетч с пингами глянуть?))
Re: Подключеие MQTT Windows
Добавлено: Чт апр 06, 2017 3:57 pm
alex32
пинги чего?