curl -sSL -H 'Accept: application/json' -H "Authorization: Bearer ВАШ_ТОКЕН" https://dev.rightech.io/api/v1/objects

Хорошо, еще раз внимательно повторю операцию, с учётом Ваших рекомендаций.
Спасибо.
Нет, не думаю что ОС и антивирус могут повлиять.
401 Unauthorized - Ошибка - токен не указан, или истек его срок действия. Надо копать в эту сторону.
Откройте тот токен который издавали и указываете и проверьте еще раз срок его действия. Как в скрине выше который я присылал. Я грешу на это.
Ну или издайте новый токен и протестируйте с новым
]]>dev.rightech.io - тоже пробовал. Тот же эффект.
Есть ли влияние на это версии ОС, брандмауэра, антивируса?
Ну и документация тоже может помочь
https://rightech.io/ru/developers/http
Проверьте, не истек ли он.

Справа внизу никаких ошибок не возникает? Лимит по количеству пакетов на лицензии не превышен?
]]>В Telegram-боте, который помогает получать данные, отправлять команды и смотреть сообщения от объектов, появилась возможность отправлять команды на объект, используя голосовые сообщения.
Если вы поучаствуете, доступ к функции останется для вас бесплатным навсегда.
Подробную информацию ищите в статье по ссылке: https://rightech.io/ru/blog/beta-skills-telegram
#define mySerial Serial2
String buffer = "";
String targetString = "";
void setup() {
mySerial.begin(9600); // Устанавливаем скорость последовательной связи Bluetooth модуля
Serial.begin(9600); // Устанавливаем скорость основной последовательной связи
Serial.println("Hello");
delay(300);
mySerial.println("AT");
delay(500);
mySerial.println("AT+VERR?");
delay(500);
mySerial.println("AT+RENEW");
delay(1000);
mySerial.println("AT+RESET");
delay(1000);
mySerial.println("AT");
delay(500);
mySerial.println("AT+ROLE1");
delay(1000);
mySerial.println("AT+IMME1");
delay(1000);
mySerial.println("AT+RESET");
delay(1000);
mySerial.println("AT+FILT0");
delay(2000);
mySerial.println("AT+DISI?");
}
void loop() {
while (mySerial.available()) {
char c = mySerial.read();
buffer += c;
if (c == '\n') {
Serial.print(buffer);
// Проверяем, содержит ли строка целевой шаблон
if (buffer.startsWith("OK+DISC:4C000215:")) {
targetString = buffer; // Сохраняем строку в переменную
}
buffer = "";
}
}
while (Serial.available()) {
mySerial.write(Serial.read());
}
}
]]>Как будто в рамках данного кода выглядит так, что слушая последовательный порт не очень то удобно понять что поступают те данные которые удовлетворяют вашим требованиям и их нужно сохранить? Регулярок же нету в C - чтобы по какому то принципу разбирать строку? По какому принципу вы поинмаете что вам нужно сохранить именно это “4C000215:74278BDA212910FF8F0C720EAF059935:FFE0FFE1C5:8801F98CCAF4:-075”
]]>
Из вашего кусочка кода сложно сказать в чем может быть причина.
Вы уверены, что он подключается к RIC ? Статус объекта становится онлайн (зеленый круглый индикатор)?


Если подключение точно есть попробуйте добавить проверку и явное определение топика и пайлоада с мак в publishMAC()
void publishMAC() {
// Что нибудь типо такого
const char* topic = "your/topic";
const char* payload = "mac_payload";
if (client.publish(topic, payload)) {
Serial.println("Publish successful");
} else {
Serial.println("Publish failed");
}
После чего попробуйте включить отображение в платформе поулчаемых пакетов в виде кода. Если данные будут доходить, даже если не настроена модель вы это увидите

Когда то раньше, когда работал с Ардуино у меня был такой шаблон который позволял мне локализовывать проблему, может что-то пригодиться
#include <SoftwareSerial.h>
#include <PubSubClient.h>
#include <WiFi.h>
// Замена SoftwareSerial на соответствующий пин для вашего оборудования
SoftwareSerial mySerial(10, 11); // RX, TX
// Настройка WiFi и MQTT
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* mqtt_server = "your_MQTT_SERVER";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
mySerial.begin(9600); // Убедитесь, что скорость соответствует вашему модулю
// Настройка WiFi
setup_wifi();
// Настройка MQTT
client.setServer(mqtt_server, 1883);
// Другие необходимые настройки
}
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void reconnect() {
String clientId = "your_CLIENTID";
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Попробуйте подключиться
if (client.connect(clientId.c_str())) {
Serial.println("connected");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
delay(3000);
publishMAC();
}
void publishMAC() {
const char* topic = "your_topic";
const char* payload = "your_payload";
if (client.publish(topic, payload)) {
Serial.println("Publish successful");
} else {
Serial.println("Publish failed");
}
}
]]>o: важное
Есть часть кода на Arduino:
void loop() {
mySerial.println(“AT+INQ”); //сканирование доступных bluetooth
SerialMon.println(" RESTART SCAN");
delay(3000);
save_to_bufer(); // сохранение mac адреса 1-ого из них
…
//вывод в терминал mac адрес//
…
//подключение к ric//
…
mqtt.loop();
publishMAC(); // ф-ия отправки mac адреса в ric(объект)
}
он подключается к ric, выводит в терминал компьютера mac адрес, но не выполняет publishMAC(),(т. е. игнорирует эту функцию) с чем может быть связана данная проблема?
Сейчас изменения размера точек нет. Но звучит очень полезно. Постараемся выкатить в билжайших релизах. ![]()

Возможности выводить значение параметра в несколько строк в web-интерфейсе у нас не было, по крайней мере очень давно.
Эти блоки имеют фиксированную высоту, увеличить которую не получится.

JSON.parse(JSON.stringify(jrpa, null, 2)) большой пользы не имеет, вы просто получаете копию имеющегося объекта.
Проверку на наличие нужного вам параметра можно выполнить следующим образом:
export function process(payload) {
if (!payload) {
return {};
}
var obj = JSON.parse(payload);
var tyu;
if (obj["DS18B20-1"]) {
tyu = obj["DS18B20-1"]["Temperature"];
}
var tyz;
if (obj["DS18B20-2"]) {
tyz = obj["DS18B20-2"]["Temperature"];
}
return { tyu, tyz };
}
Чтобы настроить график в дашборде - нужно на форме редактирования виджета нажать “Добавить новый источник данных” и выбрать нужный вам объект и параметр:
]]>Буду признателен за исчерпывающий ответ… .
]]>POST /api/v1/tokens со следущим body:
{
"name": "test-token",
"scopes": [
"models_get",
"objects_get"
],
"expires": 1706009669529
}
Здесь параметр expires - timestamp в миллисекундах, когда токен будет удален.
Список доступных значений для поля scopes можно посмотреть здесь (поле key):
POST /api/v1/auth/token
POST /api/v1/auth/token
{
"login": "login",
"password": "password",
"expiresIn": "90d"
}
Параметр expiresIn отвечает за время жизни токена, по умолчанию - 1 день.