Чтение виртуального пина

Доброго времени суток. Подскажите, пожалуйста, есть ли возможность прочитать значение VPIN без его перезаписи? Можно сделать это через HTTP API метод GET, но может есть возможность прочитать как то по другому?

Добрый день. Да, можно. http://docs.blynk.cc/#blynk-main-operations-state-syncing

Blynk.syncVirtual(V0)
Blynk.syncAll();

Видать я что то не так делаю.
В V30 записано значение [“0.044”,“0.031”,“0.013”]

String en_tmp1,en_tmp2,en_tmp3;

BLYNK_CONNECTED() {
  if (isFirstConnect) {
Serial.println("*** Sync All ? ***");
Blynk.syncAll();
isFirstConnect = false;
  }
  // Synchronize time on connection
  rtc.begin();
 Blynk.syncVirtual(V30);

Serial.println(en_tmp1+"------"+en_tmp2+"------"+en_tmp3);
}

BLYNK_WRITE(V30)
{

  //restoring string value
  String en_tmp1 = param[0].asString();
  String en_tmp2 = param[1].asString();
  String en_tmp3 = param[2].asString();

}
В итоге en_tmp1-en_tmp3 пустые… что не так?

Вы их принтите до того как они приходят.

Serial.println(en_tmp1+"------"+en_tmp2+"------"+en_tmp3);

должно быть в конце BLYNK_WRITE(V30)

пробовал и в конце BLYNK_WRITE(V30) и вставлял в loop
Blynk.syncVirtual(V30);
Serial.println(en_tmp1+"------"+en_tmp2+"------"+en_tmp3);

ничего…
я так понимаю что BLYNK_WRITE(V30) срабатывает когда изменяеш V30, но у меня он меняется раз в месяц, а вот узнать значение его нужно после каждого ребута есп, как быть?

Да, а так же когда вызывается syncVirtual.

Вы уверены что в этом пине сейчас лежат значения?

значения точно есть. Вот ответ от запроса через HTTP API:
http://ip:8080/auth/get/v30
[“0.044”,“0.031”,“0.013”]

Значит выводятся не те переменные. У Вас есть как глобальные так и локальные с тем же именем.

1 Like

видать так и было, изменил на
en_tmp1 = param[0].asFloat();
en_tmp2 = param[1].asFloat();
en_tmp3 = param[2].asFloat();
с объявленными только глобальными и все заработало. Спасибо большое за помощь.

2 Likes