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

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

Модератор: immortal

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

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

Сообщение Divan »

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

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

Как он находит сервер 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

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

Сообщение alutov »

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

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

Сообщение Divan »

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

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

    Сообщение alutov »

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

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

    Сообщение Divan »

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

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

    Сообщение alutov »

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

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

    Сообщение Divan »

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

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

    Сообщение alutov »

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

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

    Сообщение Divan »

    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

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

    Сообщение alutov »

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