Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

Сообщение Divan » Вс июн 14, 2020 2:02 pm

Я правильно понял вас?

Тот буфер который вы установили. они применяется в этих строках, я пометил красным цветом? Зеленое выделение - тут ведь тоже указан размер и он вписан в те строки, где и красное выделение. Разве тут не будет путаница, ведь буфер byte buffer[32] указали 32 байта, а там, в size_t sz = 4 указан 4 байта, в коде он будет использовать 4 байта, а не 32 байта.
СпойлерПоказать
про память.jpg
про память.jpg (59.66 КБ) 3651 просмотр

Как он находит сервер MQTT, когда в вашем исходнике не прописывается ip адрес MQTT сервера?

Код: Выделить всё

#ifndef R4SCFG_H
#define R4SCFG_H

#include "Arduino.h"

//----------- WiFi Settings
static const char* dns_name = "r4sgate";
//----------- MQTT Settings
//#define MQTT_UPPERCASE_DEV_TOPIC
#define MQTT_BASE_TOPIC "r4s"
#define MQTT_CMD_TOPIC "/cmd"
#define MQTT_RSP_TOPIC "/rsp"
#define MQTT_STAT_TOPIC "/stat"
#define MQTT_ERROR_TOPIC "/error"
#define cStatus_len 128
static const uint16_t mqtt_port = 1883;
static const char* mqtt_client = "R4SClient";

//----------- WebAPI Settings
#define WEB_SERVER_PORT 80


//----------- BLE Settings
#define BLE_SCAN_DURATION 10

//----------- R4S Settings
//#define R4S_LOG_EXCHANGE
//#define R4S_2STEP_ON //for G200S, G211S, G240S 
//#define R4S_CUSTOM_STATE // for G211S, G240S
//#define R4S_NIGHT_LIGHT //r4s/......../cmnd/nightlight
//Установка цвета ночника
//rand - не понятно, видимо яркость
//                              boilOrLight    scale_from rand  rgb1       scale_mid  rand   rgb_mid     scale_to   rand  rgb2
//static uint8_t nl_settings[] = {1,             0,         38,   255, 0, 0, 50,        38,    255, 0, 0,  100,       38,   255, 0, 0}; // красный
static uint8_t nl_settings[] = {1,             0,         38,   0, 0, 255, 50,        38,    0, 0, 255,  100,       38,   0, 0, 255}; // синий
//static uint8_t nl_settings[] = {1,             0,         38,   0, 255, 0, 50,        38,    0, 255, 0,  100,       38,   0, 255, 0}; // зеленый


//static const char* device_name = "RK-M173S";

// Change this 8-byte Auth code randomly
static uint8_t r4sAuth[8] = { 0xb6, 0x2c, 0x27, 0xb3, 0xb8, 0xac, 0x5a, 0xef };


#endif

Я правильно понял, что ваш исходник тоже можно залить через Arduino IDE, не обязательно прошивать r4sGate0x0000.bin?
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
alutov
Сообщения: 44
Зарегистрирован: Пт июн 05, 2020 7:26 am
Благодарил (а): 1 раз
Поблагодарили: 18 раз

Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

Сообщение alutov » Вс июн 14, 2020 2:21 pm

Размера буфера в 32 байта должно хватать для любой команды. Я не сильно разбираюсь в тонкостях. У меня это работает. Можно, только бинарник быстрее и есть гарантия что собран как и у меня. Чтобы не говорили о разных вещах. А то при чтении ветки создается впечатление, что все собрали немного по-разному и у всех один и тот же код виснет тоже по-разному. Параметры ставятся в браузере, и именно для того, чтобы не нужно было пересобирать прошивку каждый раз при смене адреса сервера Mqtt или параметров wifi.
З.Ы. Заметил интересную вещь. Можно не ждать сутками, а просто мелькать на линии чайник есп, особенно если они в разных комнатах, и связь рвется. В принципе, так и должно быть, мощность-то небольшая. Пока восстанавливается, правда только после повторного сканирования, что, конечно, занимает некоторое время.
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

Сообщение Divan » Вс июн 14, 2020 4:01 pm

    Залил прошивку, подключился, имя сети и сервера MQTT указал, связь с чайником есть, но управление чайником не работает
    СпойлерПоказать
    Настройки клиента 1.jpg
    Настройки клиента 1.jpg (90.56 КБ) 3632 просмотра
    Нажимаю на эти кнопки, чайник не реагирует на команды
    СпойлерПоказать
    управление.jpg
    управление.jpg (44.01 КБ) 3632 просмотра
    MQTT сервер не получает данные с чайника, хотя показывает, что статус подключен
    СпойлерПоказать
    главное.jpg
    главное.jpg (72.58 КБ) 3631 просмотр
    Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
    alutov
    Сообщения: 44
    Зарегистрирован: Пт июн 05, 2020 7:26 am
    Благодарил (а): 1 раз
    Поблагодарили: 18 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение alutov » Вс июн 14, 2020 4:12 pm

    У вас чайник какой? Я тестировал только на 173. Там птички есть для других, но не могу проверить работу.
    Ой, так чайник не соединен (BLE reconnection count = 0). И в строке состояния только Json. Там же кнопки авторизации по-новой надо нажимать.
    Аватара пользователя
    Divan
    Сообщения: 859
    Зарегистрирован: Пн июл 08, 2019 5:04 pm
    Благодарил (а): 117 раз
    Поблагодарили: 280 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение Divan » Вс июн 14, 2020 4:48 pm

    alutov писал(а):
    Вс июн 14, 2020 4:12 pm
    У вас чайник какой? Я тестировал только на 173. Там птички есть для других, то не могу проверить работу.
    Ой, так чайник не соединен. Там же кнопки авторизации по-новой надо нажимать.
    У меня REDMOND SkyKettle G240S. Я понял почему у меня чайник не был соединен, нужно конкретно указывать имя и указывать нужно не G240S, а RK-G240S, тогда он связь установится, если указать G240S, то связь не устанавливается. Связь установилась, в MQTT данные подтягиваются, а вот управлять им не могу. Как можно проверить через браузер на работоспособность команд?
    СпойлерПоказать
    главное.jpg
    главное.jpg (100.76 КБ) 3625 просмотров
    Настройки.jpg
    Настройки.jpg (92.61 КБ) 3625 просмотров
    Данные в MQTT. Какие функции тут привязываются для управления чайником? Как и что нужно настраивать?
    СпойлерПоказать
    Данные MQTT.jpg
    Данные MQTT.jpg (128.58 КБ) 3625 просмотров
    Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
    alutov
    Сообщения: 44
    Зарегистрирован: Пт июн 05, 2020 7:26 am
    Благодарил (а): 1 раз
    Поблагодарили: 18 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение alutov » Вс июн 14, 2020 4:54 pm

    Видимо, поиск по UUID не проходит. А может в нем UUID не такой, как в RK-M173S. Что и логично. Как тогда модели отличить можно? А по имени пожалуйста. Кое-что можно глянуть по дебагу. Там должны вываливаться все найденные устройства. Если у вас 240, то поставьте 2 птички. А то он показывает температуру не там. По json я ничего не трогал, просто добавил отдельные топики под температуры и состояние для удобства. И все топики, включая командные, сами появляются при соединении с сервером Mqtt. У меня это iobroker. В нем для того, чтобы опять появились ранее удаленные топики, нужно перезапустить драйвер Mqtt. Включать и ставить температуру нужно в топике /cmd/state, cmd/heat_temp.
    Аватара пользователя
    Divan
    Сообщения: 859
    Зарегистрирован: Пн июл 08, 2019 5:04 pm
    Благодарил (а): 117 раз
    Поблагодарили: 280 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение Divan » Вс июн 14, 2020 5:10 pm

    Когда указал имя чайника RK-G240S и поставил все птички, то управление чайником заработало :D. Можно включить кипячение, подогрев и выключить.
    СпойлерПоказать
    Настройки.jpg
    Настройки.jpg (88.86 КБ) 3612 просмотров
    Какие значения тут отвечают за управления чайником?
    СпойлерПоказать
    mqtt.jpg
    mqtt.jpg (100.91 КБ) 3612 просмотров
    Можете добавить функцию ночника? Как в том скетче, ночник то работает.
    Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
    alutov
    Сообщения: 44
    Зарегистрирован: Пт июн 05, 2020 7:26 am
    Благодарил (а): 1 раз
    Поблагодарили: 18 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение alutov » Вс июн 14, 2020 5:17 pm

    Постараюсь. Пока слабо представляю, что это такое. И думал никто не пользуется. Да и еще посмотреть как оно работать будет. Все таки библиотека BLE притормаживает иногда. Потому и Mqtt поменял, что PubSub тоже тормозит до 5 сек при попытке соединения. Это я уже проходил, правда на 8266. А 2 тормоза уж слишком. Если все будет работать, то и сами можете править потом как душе угодно. :) Только я уже претензии не приму))) И да, если что, гляньте в дебаге UUID чайника. По управлению в Mqtt отписался уже. И еще, если сервер Mqtt прописан, но недоступен, то есп перегружается через каждые кажется 5 минут. Страховка от зависания ;). Если нет сервера, то его адрес должен быть пустым.
    Последний раз редактировалось alutov Вс июн 14, 2020 5:34 pm, всего редактировалось 1 раз.
    Аватара пользователя
    Divan
    Сообщения: 859
    Зарегистрирован: Пн июл 08, 2019 5:04 pm
    Благодарил (а): 117 раз
    Поблагодарили: 280 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение Divan » Вс июн 14, 2020 5:34 pm

    alutov писал(а):
    Вс июн 14, 2020 5:17 pm
    Постараюсь. Пока слабо представляю, что это такое. И думал никто не пользуется. Да и еще посмотреть как оно работать будет. Все таки библиотека BLE притормаживает иногда. Потому и Mqtt поменял, что PubSub тоже тормозит до 5 сек при попытке соединения. Это я уже проходил, правда на 8266. А 2 тормоза уж слишком. Если все будет работать, то и сами можете править потом как душе угодно. :) Только я уже претензии не приму))) И да, если что, гляньте в дебаге UUID чайника. По управлению в Mqtt отписался уже.
    Пробую все варианты, не работает. Как у вас в настройках? Можете скинуть ваши настройки?
    r4s/XXXXXXXXXXXX/cmd/heat_temp
    r4s/XXXXXXXXXXXX/rsp/cmd/heat_temp
    r4s/XXXXXXXXXXXX/rsp/json/cmd/heat_temp
    Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
    alutov
    Сообщения: 44
    Зарегистрирован: Пт июн 05, 2020 7:26 am
    Благодарил (а): 1 раз
    Поблагодарили: 18 раз

    Re: Шлюз на базе ESP32 для R4S-устройств (Ready for Sky/Nordic)

    Сообщение alutov » Вс июн 14, 2020 5:36 pm

    Топик r4s/XXXXXXXXXXXX/cmd/heat_temp у вас появился? пишите туда строку 80 к примеру. А в r4s/XXXXXXXXXXXX/rsp/cmd/state строку 0 1 on off true false.
    Ответить