Управляем ардуиной через интернет

macros
Offline
Зарегистрирован: 07.11.2016

Seltvik пишет:

и так каждые там 10 секунд.

а как часто передаете данные?
я когда добавил виджет таблица, тоже получил такую проблему, все разрешилось разделением виртуальных пинов.Разделил передачу на группы по 10 виртуальных пинов.
Seltvik
Offline
Зарегистрирован: 24.10.2013

))) Я наверное тупо)) Но как их грамотно разделить? У меня их много конечно. Может проблема переполнения именно в этом. Подскажите как их лучше разделить то по 10 сек или как? ПРосто по сути у меня две категории виджетов которые передают занчения блинку их как бы можно сделать каждые 10 сек. А те которые читают (с кнопок) их как бы хотелось бы чтобы без задержек все было. Пинг у меня всего 12 ms все работало а тут начал наворачивать проект+ обновил библиотеку Blynk и как понавылазили проблемы)

Seltvik
Offline
Зарегистрирован: 24.10.2013

Крч чет они там нафигачили у меня даже самый простой скетч работает вроде норм. Но постоянно вылетает устроиство после обновления библиотеки. Отпишите как это победить ау развработчики? Т.е. каждые 3-5 секунд блинк на телефоне пишет о дисконекте потом снова конект и так далее по кругу

doom369
Offline
Зарегистрирован: 13.05.2015

У Вас вероятней всего проблема на железе. Mega + ESP опасный и сложный сетап :).

Seltvik
Offline
Зарегистрирован: 24.10.2013

нет))0 я разобрался оказывается блинку че то не нравилось в соединении как только на телефоне заребутил соединение по вай файл то все пришло в норму.

Дмитрий напишите как быть:

1. Если вылетает переодически переполнение буфера.

2.Когда уберут в LCD эти ероглифы они так бесят) Их не уберут никогда?

3. Как мне разбить чтение как писал выше человек на 10 секунд. может я чего то не знаю? у меня порядка 40-50 переменных должно считываться и отправляться. 

Seltvik
Offline
Зарегистрирован: 24.10.2013

Крч проблема с переполнением осталась((( Если с одим пином играюсь норм все ставлю основной скетч все переполнение. Вот скетч:

#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include "RTClib.h"
#include <RCSwitch.h>
//#include <DS1307RTC.h>
#include "DHT.h" // подключаем библиотеку для датчика
DHT dht(39, DHT11); // сообщаем на каком порту будет датчик
#define EspSerial Serial2
#define ESP8266_BAUD 115200
ESP8266 wifi(&EspSerial);

char auth[] = "**************";
char ssid[] = "************";
char pass[] = "**********";

RTC_DS1307 RTC;
RCSwitch mySwitch = RCSwitch();
const uint64_t pipe = 0xF0F1F2F3F4LL;
RF24 radio(49, 53); // CE, CSN

int Protocol[3];
String str;  
unsigned long PirRoomTime_1;
unsigned long PirRoomTime_2;
unsigned long PirRoomTime_3;
unsigned long PirRoomTime_4;
unsigned long PirRoomTime_5;
unsigned long PirRoomTime_6;
unsigned long PirRoomTime_7;
int Pir_1=29;
int Pir_2=28;
int Pir_3=27;
int Pir_4=26;
int Pir_5=25;
int Pir_6=24;
int Pir_7=13;
int Sens_1=10;
int Sens_2=9;
int Sens_3=8;
int Sens_4=7;
int Sens_5=6;
int Sens_6=5;
int Sens_7=4;
int Button_1=30;
int Button_2=31;
int Button_3=32;
int Button_4=33;
int Button_5=34;
int Button_6=35;
int Button_7=36;
int Sirena=37;
int Relay_1=38;
int RadioMetka=3;

int AutoLight=0;
int AutoPower=0;
int AutoWater=0;
int AutoSMS=0;
int Security=0;
int Def1=0; // Переменная для индикации (Вода)
int Def2=0; // Переменная для индикации (Дверь и объем)
int Def3=0; // Переменная для индикации (Дым)
int Alarm=0; // Переменная для сигнализации

int RCCod;
int Temp1 = 0;
int Temp2 = 0;
int Temp3 = 0;
int Temp4 = 0;
int Temp5 = 0;
int Temp6 = 0;
int Hum1 = 0;
int Hum2 = 0;
int Hum3 = 0;
int Hum4 = 0;
int Hum5 = 0;
int Hum6 = 0;
int Bar = 0;
int WaterH;
int WaterC;
int Electro;
int Time_sys;
String incStr;
bool Sms1=false;
bool Sms2=false;
bool Sms3=false;
int rowIndex = 0;


BLYNK_CONNECTED() {Blynk.syncVirtual(V23);}

//Вкладка освещение--------------------------
BLYNK_WRITE(V0){int Butt1=param.asInt();}
BLYNK_WRITE(V1){int Butt2=param.asInt();}
BLYNK_WRITE(V2){int Butt3=param.asInt();}
BLYNK_WRITE(V3){int Butt4=param.asInt();}
BLYNK_WRITE(V4){int Butt5=param.asInt();}
BLYNK_WRITE(V5){int Butt6=param.asInt();}
BLYNK_WRITE(V6){int Butt7=param.asInt();}
BLYNK_WRITE(V7){AutoLight=param.asInt();}

//Вкладка климат-----------------------------
BLYNK_READ(V8){Blynk.virtualWrite(V8,Temp1);} 
BLYNK_READ(V9){Blynk.virtualWrite(V9,Temp2);}
BLYNK_READ(V10){Blynk.virtualWrite(V10,Temp3);} 
BLYNK_READ(V11){Blynk.virtualWrite(V11,Temp4);} 
BLYNK_READ(V12){Blynk.virtualWrite(V12,Temp5);} 
BLYNK_READ(V13){Blynk.virtualWrite(V13,Hum1);} 
BLYNK_READ(V14){Blynk.virtualWrite(V14,Hum2);}
BLYNK_READ(V15){Blynk.virtualWrite(V15,Hum3);} 
BLYNK_READ(V16){Blynk.virtualWrite(V16,Hum4);} 
BLYNK_READ(V17){Blynk.virtualWrite(V17,Bar);} 
BLYNK_WRITE(V18){int Vent1=param.asInt();}
BLYNK_WRITE(V19){int Vent2=param.asInt();}

//Вкладка охрана-----------------------------
BLYNK_WRITE(V23){Security=param.asInt();}
BLYNK_WRITE(V24){AutoSMS=param.asInt();}
BLYNK_WRITE(V25){Alarm=param.asInt();}

void setup(){
  Serial.begin(9600);                                                                            //UART для настрйоки
  Serial1.begin(9600);                                                                           //UART GSM модуля
  Serial3.begin(9600);                                                                           //UART Nextion модуля
  EspSerial.begin(ESP8266_BAUD);                                                                 //UART WiFi модуля
  
  delay(10);
  radio.begin();  
  delay(200);
  radio.setChannel(100); // канал (0-127)
  radio.setDataRate(RF24_1MBPS);     
  radio.setPALevel(RF24_PA_HIGH);   
  radio.openReadingPipe(1,pipe);                                                                 // открываем первую трубу с индитификатором "pipe"
  radio.startListening();                                                                        //начинаем слушать эфир, мы приёмный модуль
  
  dht.begin();                                                                                   //запускаем датчик влажности DHT11
  
  Blynk.begin(auth, wifi, ssid, pass);    
                                                                                              
  Wire.begin();
  RTC.begin();
  RCSwitch mySwitch = RCSwitch();
  mySwitch.enableReceive(0);

  pinMode(Pir_1, INPUT);
  pinMode(Pir_2, INPUT);
  pinMode(Pir_3, INPUT);
  pinMode(Pir_4, INPUT);
  pinMode(Pir_5, INPUT);
  pinMode(Pir_6, INPUT);
  pinMode(Pir_7, INPUT);
  pinMode(RadioMetka, INPUT);
  pinMode(Sens_1, INPUT_PULLUP);
  pinMode(Sens_2, INPUT_PULLUP);
  pinMode(Sens_3, INPUT_PULLUP);
  pinMode(Sens_4, INPUT_PULLUP);
  pinMode(Sens_5, INPUT_PULLUP);
  pinMode(Sens_6, INPUT_PULLUP);
  pinMode(Sens_7, INPUT_PULLUP);
  pinMode(Button_1, OUTPUT);
  pinMode(Button_2, OUTPUT);
  pinMode(Button_3, OUTPUT);
  pinMode(Button_4, OUTPUT);
  pinMode(Button_5, OUTPUT);
  pinMode(Button_6, OUTPUT);
  pinMode(Button_7, OUTPUT);
  pinMode(Sirena, OUTPUT);
  pinMode(Relay_1, OUTPUT);
  
if (RTC.isrunning()) {analogWrite(A1,130);} else {analogWrite(A1,0);}                                            //Проверка часов
//RTC.adjust(DateTime(__DATE__, __TIME__));                                                                      //Установка часов

  Serial1.println("AT");
  delay(100);
  Serial1.println("AT+CMGF=1");
  delay(100);
  Serial1.println("AT+CSCS=\"GSM\"");
}

void loop() {
analogWrite(A0,130);                                                                                             //Индикатор скетча вкл
Blynk.run();                                                                                                     //Запуск билнка

// Читаем полученные данные с Nextion----------------------------------------------------------------------------------
if (Serial3.available()){
    char inc;
    inc = Serial3.read();
    incStr += inc;
    if (inc == 0x0A){AnalyseString(incStr);
                     incStr = "";}}

// Отправляем данные на Nextion-----------------------------------------------------------------------------------------
Serial3.print("t2.txt=\"");
Serial3.print(Temp1);
Serial3.print("\"");
Serial3.write(0xff);
Serial3.write(0xff);
Serial3.write(0xff);
delay(10);
Serial3.print("t5.txt=\"");
Serial3.print(Temp2);
Serial3.print("\"");
Serial3.write(0xff);
Serial3.write(0xff);
Serial3.write(0xff);
delay(10);
Serial3.print("t3.txt=\"");
Serial3.print(Hum1);
Serial3.print("\"");
Serial3.write(0xff);
Serial3.write(0xff);
Serial3.write(0xff);
delay(10);
Serial3.print("t4.txt=\"");
Serial3.print(Bar);
Serial3.print("\"");
Serial3.write(0xff);
Serial3.write(0xff);
Serial3.write(0xff);

if (Def1==1){Serial3.print("p3.pic=9");
             Serial3.write(0xff);
             Serial3.write(0xff);
             Serial3.write(0xff);}
else {Serial3.print("p3.pic=8");
             Serial3.write(0xff);
             Serial3.write(0xff);
             Serial3.write(0xff);}
             
if (Def2==1){Serial3.print("p2.pic=7");
             Serial3.write(0xff);
             Serial3.write(0xff);
             Serial3.write(0xff);}
else {Serial3.print("p2.pic=6");
             Serial3.write(0xff);
             Serial3.write(0xff);
             Serial3.write(0xff);} 

if (Def3==1){Serial3.print("p5.pic=14");
             Serial3.write(0xff);
             Serial3.write(0xff);
             Serial3.write(0xff);}
else {Serial3.print("p5.pic=12");
             Serial3.write(0xff);
             Serial3.write(0xff);
             Serial3.write(0xff);} 

//Отправка SMS уведомлений--------------------------------------------------------------------------------------------
if (AutoSMS==1){
   if (Sms1==false && Def1==1){Sms_send ("Discovered a water leak"); Sms1=true;}
   if (Sms2==false && Def2==1){Sms_send ("The break-in"); Sms2=true;}
   if (Sms3==false && Def3==1){Sms_send ("Discovered the smoke"); Sms3=true;}
 }


Serial.print("Security=");  
Serial.println(Security); 


//Прием сигналов с 433 датчиков
  if (mySwitch.available()) {
  RCCod = mySwitch.getReceivedValue(); 
  if (RCCod==24498){Alarm=1; Def1=1; RCCod=0;} //Вода
  if (RCCod==12270){Alarm=1; Def2=1; RCCod=0;} //Дверь
  if (RCCod==6489) {Alarm=1; Def3=1; RCCod=0;} //Дым
  }
                                                   
//Прием сигналов с nRF
  if (radio.available()){radio.read(&Protocol, sizeof(Protocol));}
  if (Protocol[0]==int(100)){
     if (Protocol[1]==int(201)){Temp2=Protocol[2];}
  //Serial.println(Protocol[0]);
  //Serial.println(Protocol[1]);
  //Serial.println(Protocol[2]);
  }

//Климат---------------------------------------------------------------------------------------------------------------------------------------
float h = dht.readHumidity();                                                                                      //Получаем влажность 1
float t = dht.readTemperature();                                                                                   //Получаем температуру 1
Temp1 = t;
Hum1 = h;

//Функция часов-------------------------------------------------------------------------------------------------------------------------------
DateTime now = RTC.now();                                                                                         //Запрос даты и времени
Time_sys=(now.hour(), DEC);
//Serial.println(now.hour(), DEC);                                                                                //Узнать час

//Функция включения электропитания-------------------------------------------------------------------------------------------------------------
if (AutoPower==1){
if (digitalRead(RadioMetka)==HIGH){digitalWrite(Relay_1, HIGH); analogWrite(A2,130);} 
if (digitalRead(RadioMetka)==LOW){digitalWrite(Relay_1, LOW); analogWrite(A2,0);}}                                //Включаем или отключаем

//Функция включения и отключения сигнализации--------------------------------------------------------------------------------------------------------------
if (Security==1){
if (Alarm==1){digitalWrite(Sirena, HIGH); analogWrite(A4,130);}                                                                   
if (Alarm==0){digitalWrite(Sirena, LOW); analogWrite(A4,0); Def1=0; Def2=0; Def3=0; Sms1=false; Sms2=false; Sms3=false;}}  

//Функция опроса датчиков объема сигнализации--------------------------------------------------------------------------------------------------
if (digitalRead(RadioMetka)==LOW){
if (digitalRead(Pir_1)==HIGH){Def2=1;};
if (digitalRead(Pir_2)==HIGH){Def2=1;};
if (digitalRead(Pir_3)==HIGH){Def2=1;};
if (digitalRead(Pir_4)==HIGH){Def2=1;};
if (digitalRead(Pir_5)==HIGH){Def2=1;};
if (digitalRead(Pir_6)==HIGH){Def2=1;};
if (digitalRead(Pir_7)==HIGH){Def2=1;};}

//Функция автоматического включения света------------------------------------------------------------------------------------------------------
if (AutoLight==1){
if (Time_sys>17 && Time_sys<23){
if (digitalRead(Pir_1)==HIGH && digitalRead(Sens_1)==HIGH) {OnOffLivolo(Button_1); PirRoomTime_1=millis();}       //Включение света
if (digitalRead(Pir_1)==HIGH && digitalRead(Sens_1)==LOW) {PirRoomTime_1=millis();}                               //Продление режима освещения
if (digitalRead(Pir_1)==LOW && digitalRead(Sens_1)==LOW){
   if (millis()-PirRoomTime_1>300000){OnOffLivolo(Button_1);}}                                                    //Выключение спустя 5 мин

if (digitalRead(Pir_2)==HIGH && digitalRead(Sens_2)==HIGH) {OnOffLivolo(Button_2); PirRoomTime_2=millis();}       //Включение света
if (digitalRead(Pir_2)==HIGH && digitalRead(Sens_2)==LOW) {PirRoomTime_2=millis();}                               //Продление режима освещения
if (digitalRead(Pir_2)==LOW && digitalRead(Sens_2)==LOW){
   if (millis()-PirRoomTime_2>300000){OnOffLivolo(Button_2);}}                                                    //Выключение спустя 5 мин

if (digitalRead(Pir_3)==HIGH && digitalRead(Sens_3)==HIGH) {OnOffLivolo(Button_3); PirRoomTime_3=millis();}       //Включение света
if (digitalRead(Pir_3)==HIGH && digitalRead(Sens_3)==LOW) {PirRoomTime_3=millis();}                               //Продление режима освещения
if (digitalRead(Pir_3)==LOW && digitalRead(Sens_3)==LOW){
   if (millis()-PirRoomTime_3>300000){OnOffLivolo(Button_3);}}                                                    //Выключение спустя 5 мин

if (digitalRead(Pir_4)==HIGH && digitalRead(Sens_4)==HIGH) {OnOffLivolo(Button_4); PirRoomTime_4=millis();}       //Включение света
if (digitalRead(Pir_4)==HIGH && digitalRead(Sens_4)==LOW) {PirRoomTime_4=millis();}                               //Продление режима освещения
if (digitalRead(Pir_4)==LOW && digitalRead(Sens_4)==LOW){
   if (millis()-PirRoomTime_4>300000){OnOffLivolo(Button_4);}}                                                    //Выключение спустя 5 мин

if (digitalRead(Pir_5)==HIGH && digitalRead(Sens_5)==HIGH) {OnOffLivolo(Button_5); PirRoomTime_5=millis();}       //Включение света
if (digitalRead(Pir_5)==HIGH && digitalRead(Sens_5)==LOW) {PirRoomTime_5=millis();}                               //Продление режима освещения
if (digitalRead(Pir_5)==LOW && digitalRead(Sens_5)==LOW){
   if (millis()-PirRoomTime_5>300000){OnOffLivolo(Button_5);}}                                                    //Выключение спустя 5 мин

if (digitalRead(Pir_6)==HIGH && digitalRead(Sens_6)==HIGH) {OnOffLivolo(Button_6); PirRoomTime_6=millis();}       //Включение света
if (digitalRead(Pir_6)==HIGH && digitalRead(Sens_6)==LOW) {PirRoomTime_6=millis();}                               //Продление режима освещения
if (digitalRead(Pir_6)==LOW && digitalRead(Sens_6)==LOW){
   if (millis()-PirRoomTime_6>300000){OnOffLivolo(Button_6);}}                                                    //Выключение спустя 5 мин

if (digitalRead(Pir_7)==HIGH && digitalRead(Sens_7)==HIGH) {OnOffLivolo(Button_7); PirRoomTime_7=millis();}       //Включение света
if (digitalRead(Pir_7)==HIGH && digitalRead(Sens_7)==LOW) {PirRoomTime_7=millis();}                               //Продление режима освещения
if (digitalRead(Pir_7)==LOW && digitalRead(Sens_7)==LOW){
   if (millis()-PirRoomTime_7>300000){OnOffLivolo(Button_7);}}                                                    //Выключение спустя 5 мин
  }}

analogWrite(A0,0);
}

//----------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------------
//Функция функция анализа данных с Nextion------------------------------------------------------------------------------------------------------
void AnalyseString(String incStr) {
  if (incStr.indexOf("Reset") >= 0){Alarm=1;}
  if (incStr.indexOf("Test") >= 0) {}
  if (incStr.indexOf("Auto on") >= 0) {analogWrite(A4,130);}
  if (incStr.indexOf("Auto off") >= 0) {analogWrite(A4,0);}
  }

//Функция включение/отключения света------------------------------------------------------------------------------------------------------------
void OnOffLivolo (int Butt){
  digitalWrite(Butt, HIGH);
  delay(100);
  digitalWrite(Butt, LOW); }

//Функция отправки SMS
void Sms_send (String text) {
  Serial1.print("AT+CMGS=\"");
  Serial1.print("+79878440181");
  Serial1.println("\"");
  delay(300);
  Serial1.print(text);
  delay(300);
  Serial1.print((char)26);
  }

 

macros
Offline
Зарегистрирован: 07.11.2016

Seltvik, у меня проше, только отправка данных около 20 значений, когда попытался отправить за раз получил дисконекты каждые 10 секунд, помогло разделение на два пакета. Сетап esp.

Seltvik
Offline
Зарегистрирован: 24.10.2013

заметил следующее что переполнение происходит только когда я приложение подключаю к серверу начинается обвал буфера. ЧТо за фигня. Он че не тянет мои переменные? а нафига тогда заявлено что работать должен сервер+приложение тип там можно реализовать до 200+ переменных. Чет подозрение что из за большого количества проблема. И переодически вылазиет Login timeout

Seltvik
Offline
Зарегистрирован: 24.10.2013

Дмитрий вопрос к Вам. Вообщем дело в том что методом тыка)) Куски кода поочерди вставлял и выяснил что как только я вставляю данный блок: 

//Вкладка климат-----------------------------
BLYNK_READ(V8){Blynk.virtualWrite(V8,Temp1);} 
BLYNK_READ(V9){Blynk.virtualWrite(V9,Temp2);}
BLYNK_READ(V10){Blynk.virtualWrite(V10,Temp3);} 
BLYNK_READ(V11){Blynk.virtualWrite(V11,Temp4);} 
BLYNK_READ(V12){Blynk.virtualWrite(V12,Temp5);} 
BLYNK_READ(V13){Blynk.virtualWrite(V13,Hum1);} 
BLYNK_READ(V14){Blynk.virtualWrite(V14,Hum2);}
BLYNK_READ(V15){Blynk.virtualWrite(V15,Hum3);} 
BLYNK_READ(V16){Blynk.virtualWrite(V16,Hum4);} 
BLYNK_READ(V17){Blynk.virtualWrite(V17,Bar);} 

Скетч просто виснет. Т.е. у меня даже есть индикация цикла в устроистве. И когда данный блок ставлю и заиваю его в дуню. То после запуска приложения и его подключения к серверу основной цикл виснет. Вопрос почему? значений то передаю не много я. Как можно обоити данную проблему? Заранее спасибо

AndrF
Offline
Зарегистрирован: 10.04.2016

К doom369.

Последнее время появилась проблема- Blynk дюже часто выбрасывает: "Device was disconnected". Причем на двух проверенных программах где ранее такого не было. Интернет более чем хороший, рвется именно соединение блинка.

У вас нигде проблемы на сервере не завелись?

Ну и у кого еще такая проблема - отзовитесь...

doom369
Offline
Зарегистрирован: 13.05.2015

 "Device was Disconnected" - чаще всего это или плохое питание или  плохая схема или большая нагрузка на железку. Конечно, кажется что виноват Блинк, но почти всегда проблема на стороне железа :). Нужно терпение и постоянные эксперименты с кодом.

 

@Seltvik

Есть такая штука. Я так понимаю у Вас ЕСП?

 

Seltvik
Offline
Зарегистрирован: 24.10.2013

Согласен с Дмитрием! Я решил все свои проблемы)) Методом проб и ошибок)) Вообщем у меня вылетает Блинк когда мой sim800l начинает передавать SMS ))) потом восстанавливается соединение. Поди помехи. По переполнению буфера, дело было в том, что блинк не тянет передачу сразу 7+ значений. Разбив на пачки в таймерах проблема ушла. Но блинк все равно на Дуне заметно грузит цикл) Вопросы насущные чисто по приложению:

1. Почему у LCD эти дебильные иероглифы? (когда их уберут?)

2. Почему LED виджет нельзя растягивать? (подписи индикации не влазиют)

3. Почему нет виджетов обычных типа текст там?(для создания норм интерфейса программы, например заголовка и т.д.)

4. Так же хотел бы предложить сделать более гибкие свойства виджетов. (такие как цвет, размер текста, расположение и т.д.)

5. Почему убрали просто chart и оставили только superchart? 

6. И самая неудобная фишка! Блинк на телефоне не говорит о том что вышла новая версия)

Seltvik
Offline
Зарегистрирован: 24.10.2013

Еще вопрос к знатокам. Если у меня будут две дуни рядом общаться по nRF и одна из них еще будет по ESP отправлять данные в блинк не будет ли помех?

DIYMan
Offline
Зарегистрирован: 23.11.2015

Seltvik пишет:

Еще вопрос к знатокам. Если у меня будут две дуни рядом общаться по nRF и одна из них еще будет по ESP отправлять данные в блинк не будет ли помех?

С большой вероятностью - будут, диапазон частот пересекается.

Seltvik
Offline
Зарегистрирован: 24.10.2013

Кому интересно. Собрал стендик рядом с моим контроллером основным. Все пока ровно. Как я вычитал. nRF работает по другому протоколу и главное выбрать канал другой не зашумленный. тогда вроде ровно работает без помех. Если что дальше отпишу

Seltvik
Offline
Зарегистрирован: 24.10.2013

Надеюсь Дмитрий ответит на мои вопросы) Так как на официальную почту писал. А там всем пофиг походу((( Молчат не отвечают!

doom369
Offline
Зарегистрирован: 13.05.2015

Спасибо. Хорошие впоросы. Отвечаю

1. Это пасхалка.

2. Требует новую графику. А наш дизайнер сейчас занят.

3. В будущем добавим. Блинк кажется простым, но он очень сложный.

4. Тоже в планах.

5. Хистори делался на быструю руку и в нем не было фул скрина, скролинга, риалтайма. + он использовал очень старую версию библиотеки. В общем с нуля было написать проще чем дофиксать старый. Поддреживать 2 графика - дороже чем один. Поэтому и убрали.

6. Это вроде фишка андроида. Думаю Блинк тут не связан. Возможно у вас автоматом отключены автоапдейты.

Seltvik
Offline
Зарегистрирован: 24.10.2013

Эмм))) не понял про пасхалку. В чем юмор? почему не сделать англискую преписку или не убрать это совсем. Режет глаза)))

 

И про обнову не понял. У меня другие программы говорят о том что есть новая версия) Так что думаю стоит проверить) может что забыли там.

AndrF
Offline
Зарегистрирован: 10.04.2016

Seltvik пишет:
Эмм))) не понял про пасхалку. В чем юмор? почему не сделать англискую преписку или не убрать это совсем. Режет глаза)))

Не заморачивайтесь - сказали же что поправят как только смогут.

Seltvik пишет:
И про обнову не понял. У меня другие программы говорят о том что есть новая версия) Так что думаю стоит проверить) может что забыли там.

У меня - Blynk обновляется.

------------------------------

Надеюсь и в график опциональную сетку добавят. Бывшую ранее в том же History.

Хорошо бы еще сразу предусматривали хотя бы юзерский интерфейс компонентов на национальных языках. То есть такие вещи как шкала графика, к примеру, должна отображаться на языке пользователя. Я то пойму что 1w это неделя, а Wed22 это четверг 22-го, а вот обычный пользователь - не уверен. И ведь вроде несложно оно...

AndrF
Offline
Зарегистрирован: 10.04.2016

Что-то я не могу понять - как в Tabs удалить ставшую ненужной вкладку?

doom369
Offline
Зарегистрирован: 13.05.2015

Можно удалить только последнюю свайпнув влево или вправо в настройках табов.

doom369
Offline
Зарегистрирован: 13.05.2015

>>орошо бы еще сразу предусматривали хотя бы юзерский интерфейс компонентов на национальных языках.

 

Это только кажется что не сложно. На самом деле это увеличивает стоимость разработки на 30%. Так как начинают появлятся разного рода баги, когда надпись на специфической локале не влазит куда-то и надо танцевать с бубном. Локаль будем делать только в самую последнюю очередь. Или когда появятся дополнительные ресурсы на это.

AndrF
Offline
Зарегистрирован: 10.04.2016

doom369 пишет:

Можно удалить только последнюю свайпнув влево или вправо в настройках табов.

Точно. Спасибо!

AndrF
Offline
Зарегистрирован: 10.04.2016

doom369 пишет:

Можно удалить только последнюю свайпнув влево или вправо в настройках табов.

Точно. Спасибо!

Seltvik
Offline
Зарегистрирован: 24.10.2013

Я согласен что работа не простая. Просто уже давно ниче не добавлялось толком. Новых виджетов нет. А у меня лично одного куча идей по виджетам. Так как я строю на данных система проекты для людей и их привлекаю в блинк проект. так как они пользуются этим приложением правда уже сделанным мной под них. так что в практике в билнке много еще можно сделать полезного

doom369
Offline
Зарегистрирован: 13.05.2015

Конечно. У нас самих тысячи идей. Мы знаем как сделать блинк еще круче и лучше. Но на каждую идею нужны деньги. А их у нас не так много. Так что пока мы крутимся как можем в тех условиях что есть.

AndrF
Offline
Зарегистрирован: 10.04.2016

Небольшое наблюдение про SuperChart

На нем несколько графиков - температура и датчик движения. Стиль датчика движения - логический (в настройках это крайний справа).

В рантайме перемещаем график по шкале времени двигая его пальцем вправо-влево. Если просматривается отрезок времени когда дома никого нет (датчик движения молчит), то перемещение выполняется плавно. Если же дома кто-то есть (точнее есть движение в просматриваемом участке графика), то перемещение выполняется с весьма заметными рывками.

Seltvik
Offline
Зарегистрирован: 24.10.2013

Сам программист прада на Си)) Знаю точно одно. В таких вещах нужно в основном время и желание) а деньги если только вы сами не пишите а пишут за Вас) Будем ждать новых обнволений с плюшками. Это мощный стартап. Но нужно время как говориться