ESP8266 MegaD api

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Dragon
Сообщения: 15
Зарегистрирован: 26 янв 2016, 16:46

Re: ESP8266 MegaD api

Сообщение Dragon » 26 янв 2016, 20:16

Интересный проект. Подскажите а как ESP8266 MegaD api привязать к системе MajorDoMo? Не могу разобраться та как в MegaD-328 есть пункт где можно у казать сервер на который нужно слать данные. здесь пока нет, а будут ли?

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 27 янв 2016, 06:46

Dragon писал(а):Интересный проект. Подскажите а как ESP8266 MegaD api привязать к системе MajorDoMo? Не могу разобраться та как в MegaD-328 есть пункт где можно у казать сервер на который нужно слать данные. здесь пока нет, а будут ли?
Да, на данный момент нет пункта, как и функционала по работе с сервером.

Добавил eth: Net Action. + мелкие правки.
Последний раз редактировалось llams 05 фев 2016, 02:22, всего редактировалось 1 раз.

Dragon
Сообщения: 15
Зарегистрирован: 26 янв 2016, 16:46

Re: ESP8266 MegaD api

Сообщение Dragon » 27 янв 2016, 09:21

Скажите пожалуйста а планируется появление пунктов:
pwd: пароль для доступа к Web-интерфейсу устройства
sip: IP-адрес сервера
sct: скрипт, который вызывается на сервере в случаях, заданных пользователем

MSapogov
Сообщения: 312
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 27 янв 2016, 09:28

llams писал(а):
Dragon писал(а):Интересный проект. Подскажите а как ESP8266 MegaD api привязать к системе MajorDoMo? Не могу разобраться та как в MegaD-328 есть пункт где можно у казать сервер на который нужно слать данные. здесь пока нет, а будут ли?
Да, на данный момент нет пункта, как и функционала по работе с сервером.

Добавил eth: Net Action. + мелкие правки.

По поводу обновления по воздуху проверьте, пожалуйста, разные варианты на своих модулях + переход с одной на другую в обоих направлениях.
Для модулей с 1 Мб памяти:
MegaESP_0.0a5-1m.rar
Для модулей с 4 Мб памяти:
MegaESP_0.0a5-4m.rar
После прошивки желательно сбросить конфиг.
C 0.0a5-4m на 0.0a4-1m - Удачно...
В обратную сторону нет... (проверял 3 раза)... потом только шить через через UART.

C 0.0a5-4m на 0.0a4-4m - Удачно...
C 0.0a4-4m на 0.0a5-4m - Удачно...

Видимо между 4m стабильно...
Между 1m - нет.
Последний раз редактировалось MSapogov 27 янв 2016, 09:45, всего редактировалось 1 раз.

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 27 янв 2016, 09:39

Dragon писал(а):Скажите пожалуйста а планируется появление пунктов:
pwd: пароль для доступа к Web-интерфейсу устройства
sip: IP-адрес сервера
sct: скрипт, который вызывается на сервере в случаях, заданных пользователем
В pwd: особого смысла не вижу, может сделаю но позже,
sip: будет,
sct: вместе sip:

Честно говоря я понимаю не весь api меги, разбираюсь потихоньку.

alexsis_76

Re: ESP8266 MegaD api

Сообщение alexsis_76 » 27 янв 2016, 11:54

Честно говоря я понимаю не весь api меги, разбираюсь потихоньку.
Уважаемый llams слежу за темой,очень интересно, если что не понятно по меге пишите, подскажем
Только как это в программном виде, я не знаю.
это можно реализовать с помощью таймера

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 27 янв 2016, 11:57

MSapogov писал(а): C 0.0a5-4m на 0.0a4-1m - Удачно...
В обратную сторону нет... (проверял 3 раза)... потом только шить через через UART.

C 0.0a5-4m на 0.0a4-4m - Удачно...
C 0.0a4-4m на 0.0a5-4m - Удачно...

Видимо между 4m стабильно...
Между 1m - нет.
Спасибо.
Апдейтер определяет реальный размер флэша, поэтому на модули 4m не встаёт прошивка 1m. Точнее она встаёт при прошивке проводом или если апдейтер заливающий прошивку скомпилен под 4m, а наоборот никак, т.к. новая прошивка встает в другую область памяти.
Нужно проверить как обновляются модули 1m и прочие, 1m -> 1m, ну и ради интереса 1m -> 4m, проводом залить 4m (может посыпаться при работе с eeprom).

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 27 янв 2016, 14:02

если что не понятно по меге пишите, подскажем
Спасибо.
Тогда первый вопрос eth: Net Action в меге имеет ограничение в 35 байт, это действительно так? Тестировал мегу при попытке задать в Net Action команды "192.168.0.14/sec/?cmd=7:2;2:2" получаю "192.168.0.14/sec/?cmd=7:2;" странно.
И еще один, нужен ли именно такой формат записи IP адреса Net Action, очень много ресурсов на простой параметр. Чаще всего устройства находятся в одной подсети, может имеет смысл откинуть первые 3 октета IP? Или пытаться разбирать IP при сохранении в eeprom (что логично)? Хотя можно немного отойти в сторону от API меги и передавать октеты IP отдельно а команду отдельно.
А еще лучше вообще избавиться от повторяющейся части команды т.к. скорее всего пароль на всех мегах у конечного пользователя один.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: ESP8266 MegaD api

Сообщение Andrey_B » 27 янв 2016, 15:20

В MegaD-328 для хранения IP адреса в EEPROM используется 4 байта.
NetAction предназначен не только для управления другими устройствами, поэтому URL может быть любым.

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 27 янв 2016, 15:45

Andrey_B писал(а):В MegaD-328 для хранения IP адреса в EEPROM используется 4 байта.
NetAction предназначен не только для управления другими устройствами, поэтому URL может быть любым.
Андрей, спасибо за подсказку. Честно говоря не думал в этом ключе. Пойду читать форум. :-)

alexsis_76

Re: ESP8266 MegaD api

Сообщение alexsis_76 » 28 янв 2016, 12:44

if (find_key_val2((char *)&(buf[dat_p+4]),temp,42,"eth"))
{
//if ( strlen(temp) > 0 )
{
urldecode(temp);

char urlpar[13];
uint8_t urlpar_flag = 0;
uint8_t urlpar_flag2 = 0;

if ( temp[0] == '\0' )
_eth_addr[0] = 255;
else
{
memset(urlpar, 0, sizeof(urlpar));

for ( i = 0; i < strlen(temp); i++ )
{
if ( urlpar_flag == 0 && temp == ':' )
{
eeprom_write_byte ((void*)ee_eth_cmd[n]+4, ':');
eeprom_write_word((void*)ee_eth_cmd[n]+5, strtoul(&temp[i+1], NULL, 10));
urlpar_flag2 = 3;

}
if ( urlpar_flag > 0 )
{
urlpar[urlpar_flag-1] = temp;
urlpar_flag++;
}
else
{
if ( temp == '/' )
urlpar_flag++;
}
}

decode_ip(temp, _eth_addr);
}

eeprom_write_block (_eth_addr, &ee_eth_cmd[n], 4);

eeprom_write_block (urlpar, (void*)ee_eth_cmd[n] + 4 + urlpar_flag2, 13 - urlpar_flag2);
reset_flag = 1;
}
}
сдесь я так понял происходит декодирование этого поля
и запись в еепром
вот сюда
// NetAction
uint8_t EEMEM ee_eth_cmd[IO_SIZE][17];
на каждый порт по 17 байт, чет я 35 не нашел
И еще один, нужен ли именно такой формат записи IP адреса Net Action, очень много ресурсов на простой параметр
ну ничего не поделаешь
таков уж формат передачи по сети , в еепром сохранять строку ip адреса еще затратнее , если не преобразовывать нужно больше памяти

alex946
Сообщения: 204
Зарегистрирован: 05 дек 2015, 22:48
Контактная информация:

Re: ESP8266 MegaD api

Сообщение alex946 » 28 янв 2016, 14:31

на каждый порт по 17 байт, чет я 35 не нашел
Это настройки самих портов, а есть ещё общие

alexsis_76

Re: ESP8266 MegaD api

Сообщение alexsis_76 » 28 янв 2016, 14:39

а есть ещё общие
это где?

alex946
Сообщения: 204
Зарегистрирован: 05 дек 2015, 22:48
Контактная информация:

Re: ESP8266 MegaD api

Сообщение alex946 » 28 янв 2016, 15:40

Код: Выделить всё

uint8_t _ip_addr[4];
В самом начале же объявлена переменная.

alexsis_76

Re: ESP8266 MegaD api

Сообщение alexsis_76 » 28 янв 2016, 16:22

так это ip адрес 4 байта

MSapogov
Сообщения: 312
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 28 янв 2016, 21:52

llams писал(а):
MSapogov писал(а): C 0.0a5-4m на 0.0a4-1m - Удачно...
В обратную сторону нет... (проверял 3 раза)... потом только шить через через UART.

C 0.0a5-4m на 0.0a4-4m - Удачно...
C 0.0a4-4m на 0.0a5-4m - Удачно...

Видимо между 4m стабильно...
Между 1m - нет.
Спасибо.
Апдейтер определяет реальный размер флэша, поэтому на модули 4m не встаёт прошивка 1m. Точнее она встаёт при прошивке проводом или если апдейтер заливающий прошивку скомпилен под 4m, а наоборот никак, т.к. новая прошивка встает в другую область памяти.
Нужно проверить как обновляются модули 1m и прочие, 1m -> 1m, ну и ради интереса 1m -> 4m, проводом залить 4m (может посыпаться при работе с eeprom).
С радостью бы проверил, но у меня только ESP-12E и F... А они все с 4mb.
Что радует, то после прошивки настройки сети сохраняются!

Что не совсем радует, то это после каждого изменения назначения GPIO, модуль рестартует :-(
Если нужно поменять все выводы скриптом, как это делается в драйвере IoBroker , например, то коннект с модулем потеряется.. :-(
Может отдельно кнопку применить изменения? (но в общую логику не подходит). Что самое интересное на проекте homes-smart, при изменении назначения вывода модуль не рестартует (автор сразу пишет программу на Си используя SDK модуля).

Для расширителей портов можно зарезервировать сразу выводы как на homes-smart (Да простит меня Adminhs)

Код: Выделить всё

GPIO	Описание
0-5,12-16	GPIO самого модуля.
6-11	GPIO заняты под flash память.
20-79	VGPIO удаленных ESP8266 (только управление)
80-199	Зарезервирировано. Может быть расширено для VGPIO
200-215	Ремап MCP23017 (только управление)
220-227	Ремап PCF8574 (только управление)
230-245	Ремап 74HC595 (только управление)
Тогда сдвигаться точно ничего не будет...

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 29 янв 2016, 10:36

Добавил sip: IP-адрес сервера + много правок.
Все Act для порта IN выполняются всегда, позже доделаю условия.
Может есть пожелания? Можно отвязаться от условия ожидания сервера если это не нужно для конкретного порта.
Последний раз редактировалось llams 05 фев 2016, 02:22, всего редактировалось 1 раз.

MSapogov
Сообщения: 312
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 29 янв 2016, 12:02

llams писал(а):Добавил sip: IP-адрес сервера + много правок.
Все Act для порта IN выполняются всегда, позже доделаю условия.
Может есть пожелания? Можно отвязаться от условия ожидания сервера если это не нужно для конкретного порта.
Для модулей с 1 Мб памяти:
MegaESP_0.0a6-1m.zip
Для модулей с 4 Мб памяти:
MegaESP_0.0a6-4m.zip
Обновление по воздуху с 5-4m на 6-4m - без проблем :-)

Dragon
Сообщения: 15
Зарегистрирован: 26 янв 2016, 16:46

Re: ESP8266 MegaD api

Сообщение Dragon » 29 янв 2016, 12:21

Подскажите а как вы обновляете по воздуху, а то у меня какой то затык.

llams
Сообщения: 192
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 29 янв 2016, 12:24

Какие симптомы?
Какой модуль? Возможно используете не ту прошивку, для 1m я тоже не могу проверить.

Ответить