Проблема с виджетом Time Input

Опишите пожалуйста шаги для воспроизведения.

Для воспроизведения ошибки:

  1. должен стоять локальный сервер версии 0.30.3 или старше
  2. Заходим в аккаунт с этими проектами.
  3. В терминале приложения роллета видим неправильное время старта виджета v7
  4. Выключаем питание на устройство роллета, подаем питание - смотрим в терминал видим первые 1-2 значения правильные далее идут не верные.
  5. Пробуем менять значение в виджете таймера, смотрим в терминал и видим что оно поменялось на верное, но спустя 1-2 показания снова меняется на неверное.
  6. Чтобы убедится что влияет именно приложение автополив виджет времени, что я указывал на форуме. Заходим в приложение автополив, меняем начало таймера на другое. Возвращаемся в приложение роллета и смотрим в терминал. Значение поменяется на выставленное в приложении автополив.

Далее если вернуть сервер на 0.30.2 , то все становится на свои места.

Могу выслать скетчи.

@spolyakov Вы исользовали раньше команду бридж?

Да, но не в приложении роллета. В приложении автополив есть бридж (даже два) с другими приложениями на этом аккаунте…

Еще интересный факт, сменил проблемный виртуальный пин V7 на свободный V10 в скетче поменял тоже. И проблема ушла, то есть пин V1 из приложения автополив как-то связан с пином V7 в приложении роллета.

Также выяснилось, что в нем не корректно отрабатывает виджет Time input на пине V2 , только здесь он сбрасывает значения в ноль. Скетч вышлю на почту. Заранее спасибо!

Проблема в том что Вы используете бридж на этих пинах.

Странно если Вы посмотрите скетч то бридж на пинах:
WidgetBridge nagrevmost(V10) - в приложении термостат
WidgetBridge ylica(V28) - в приложении автополив
WidgetBridge meteoterm(V29) - в приложении автополив
WidgetBridge meteoterm(V40) - в приложении топочная
В приложении роллета вообще нет мостов.
То есть задействованы пины V10 V28 V29 V40 как они могут влиять на пин V7 в роллете и V2 в автополиве?? И почему при откате на более старую версию сервера, проблема уходит?

Тут дело такое - пины при обьявлении бриджа это просто по сути каналы связи. Они не несут состояния. В то же время, когда вы делаете ylica.virtualWrite(V7) вы апдейтите состояние пина V7. В итоге у Вас конфликт состояний на одном пине. (возможно тут есть наша бага, я сейчас проверяю, правильно ли ведет себя сервер в Вашем случае)

Потому что в 0.30.3 версии был сделан фикс бриджа - когда команда посланная через бридж не апдейтила состояние приложения - WidgetBridge Button - Android UI bug

Блин точно смотрите, что я нашел:
meteoterm.virtualWrite(V2, ); - это из приложения топочная, что есть на данном аккаунте

homet.virtualWrite(V33, ); - это из приложения термостат

ylica.virtualWrite(V11, ); - из автополива
meteoterm.virtualWrite(V1, ); - из автополива
meteoterm.virtualWrite(V7, ); - из автополива

Итого пины V1, V2, V7, V11, V33
А глючат как раз 1, 2, 7

Скажите пожалуйста, с какого проекта в какой шлются команды по бриджу. Без этого не понятно бага это или нет.

Значит так есть на аккаунте 4ре приложения: Роллета, Топочная, Термостат, Автополив.
В приложении роллета нет мостов, ничего не принимается и ничего не отправляется.

Приложение топочная:
Получаем данные из автополива (она же у меня метеостанция) пин V11
Получаем данные из термостата пин V33
meteoterm.virtualWrite(V2, ); - отправляем данные из топочной на термостат

Приложение термостат:
Получаем данные из топочной - пин V2
Получаем данные из автополива - пин V1, V7
homet.virtualWrite(V33, ) - отправляем данные в топочную

Приложение автополив (она же метеостанция):
Не получает никаких данных
ylica.virtualWrite(V11, ); - отправляем данные в топочную
meteoterm.virtualWrite(V1, ); - отправляем данные в термостат
meteoterm.virtualWrite(V7, ); - отправляем данные в термостат

Вот так все запутано… Просто проект рос вместе с Вами. За что Вам огромное спасибо.

Может быть что ВЫ перепутали токены и на самом деле значения шлются в роллету?

Я сейчас вам вышлю 4ре приложения с токенами.

Лучше сами проверьте :slight_smile:

Уже выслал и проверил. К сожалению больше похоже на баг. Кстати еще позавчера на этом аккаунте было приложение с сигнализацией затопления, так вот там были непонятки с кнопкой. Она сама сбрасывалась в значение 0. Я приложение вынес на отдельный аккаунт и проблема ушла. Так вот сейчас посмотрел у кнопки был пин V7 и в приложении также отсутствовали мосты.

Все. Нашел и пофиксил. Спасибо! Проверить можно на этом сервере - https://github.com/blynkkk/blynk-server/releases/download/v0.33.1/server-0.33.2-SNAPSHOT-java8.jar

1 Like

Заработало! Спасибо ребята за отзывчивость! А фикс баги войдет в следующие версии сервера?

1 Like

Да, конечно.

Тогда тему можно закрывать. Есть еще небольшая бага с Device Selector при переключении устройств обнуляется информация терминала, а также если ввести данных в time input и после переключения на другое устройство, если на нем был time input пустой не заполненный, то отображаются те же данные, что вбивали на предыдущем устройстве. Но об этом Вы наверное уже знаете…