• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP Sky – Онлайн редактор для lua скриптов

Стали бы пользоваться

  • Да

    Голосов: 5 100.0%
  • Нет

    Голосов: 0 0.0%

  • Всего проголосовало
    5
  • Опрос закрыт .

Shade

New member
Обновление безопасности:
  • Обязательный HTTPS для редактора
  • Шифрование AES128 для сообщений с MQTT
  • При скачивании файлов проверяется их подпись. Т.е. посторонний видит содержимое, но не может его подменить.
  • Новая демка для SPI дисплея (например Nokia 5110, он же pcd8544)
Так что теперь устройства плюс минус защищены.

Чтобы обновиться, нужно скачать новый ESPSky.lua и ребутнуться

Код:
http.get("http://espsky.com/resources/setup/espsky-latest.txt", nil, function(code, data) if (code == 200) then file.open("ESPSky.lua", "w+"); file.write(data); file.close(); print("OK");else print("ERR");end; end)




 

khseal

New member
Круто, так же прикрутить бы еще отправку на esp не только lua файлов. К примеру мне нужно html страничку отредактировать. А она не заливается на esp...
А похоже мне надо обновлять ESPSky с шифрованием. Т.к. все файлы не заливаются...
Хорошо бы две версии сделать с шифрованием и без. Т.к. шифрование отъело еще оперативной памяти...
 
Последнее редактирование:

Shade

New member
Так другие файлы тоже можно отправить — достаточно просто в редакторе сделать не lua файл а например html. Сейчас редактор будет их подсвечивать так же как lua файл, но зальются они правильно.

Без шифрования должно продолжить работать, думаю просто в коде где-то бага.
По крайней мере мне вчера удалось залить через редактор на нешифрованное esp новый файл и запустить его.
 

khseal

New member
Так другие файлы тоже можно отправить — достаточно просто в редакторе сделать не lua файл а например html. Сейчас редактор будет их подсвечивать так же как lua файл, но зальются они правильно.

Без шифрования должно продолжить работать, думаю просто в коде где-то бага.
По крайней мере мне вчера удалось залить через редактор на нешифрованное esp новый файл и запустить его.
Да, все залилось правильно, это из-за бага с шифрованием я подумал что html не заливается. А оказалось все файлы не заливаются. Да там и команды на ESP почему то не передавались.
Попробую еще раз не шифрованную версию проверить.
UPD
Версия и без шифрования работает. Странно, может я вчера что-то сам не так заколхозил...
 
Последнее редактирование:

khseal

New member
Все таки версия без шифрования не работает на новых привязанных девайсах. Т.е. на той что было привязке работало. Я удалил девайс. Добавил заново и все перестало работать. Т.е. сам девайс видно в сети и он подключается, но команды никакие не работают.
 

Shade

New member
Почему то не печатает print("sent : ") которые внутри функций.
Скорее всего у вас не просто функция, а асинхронный коллбэк.

например так:
Код:
http.get("http://google.com", nil, function()

     print('123')

end)
пока так и задумано. ESPSky слушает node.output только на время выполнения скрипта, а когда файл скачается, то скрипт к тому моменту уже будет выполнен и pint(123) в ESPsky не появится. Я уже сам на это неудобство нарвался, поменяю.
 

Shade

New member
Все таки версия без шифрования не работает на новых привязанных девайсах. Т.е. на той что было привязке работало. Я удалил девайс. Добавил заново и все перестало работать. Т.е. сам девайс видно в сети и он подключается, но команды никакие не работают.
Разбираюсь, займет какое-то время т.к. сейчас пока есть другие задачи.
 

Shade

New member
Все таки версия без шифрования не работает на новых привязанных девайсах. Т.е. на той что было привязке работало. Я удалил девайс. Добавил заново и все перестало работать. Т.е. сам девайс видно в сети и он подключается, но команды никакие не работают.
А, все же, нужна ли нам версия без шифрования? Ведь в будущем оно все равно отомрет.
 

khseal

New member
А, все же, нужна ли нам версия без шифрования? Ведь в будущем оно все равно отомрет.
Хз, у меня версия с шифрованием не стабильно работает. Работает определенное время и устройство тупо не онлайн. Перезагружаешь устройство, оно опять онлайн. Хотя все остальное на самом esp работает без проблем...
 
Идея супер, есть вопрос защиты сервиса от хакеров? Не хочеться стать частью ботнета?
Спасибо!
 

Shade

New member
Идея супер, есть вопрос защиты сервиса от хакеров? Не хочеться стать частью ботнета?
Спасибо!
привет, аккурат про секьюрити в первом сообщении на этой странице.

команды шифруются AES закрытым ключём, который никогда не покидает устройство
скачваемые файлы подписываются с учетом секретного ключа, т.е. устройство чужой код точно не выполнит.
 
Привет!
Интересное решение, нормальная презентация,
а можно зарегистрироваться не через фейсбук ?
 

Shade

New member
Привет!
Интересное решение, нормальная презентация,
а можно зарегистрироваться не через фейсбук ?
Хай!
Пока нет, но это потому что этот вариант реализации был самым быстрым.
EspSky берет только имя и фотку для аватарки, так что можно логиниться через FB без опаски публикаций на стену и прочего непотребства.

В течение недели, если сойдутся звёзды, добавлю авторизацию просто по почте.
 

Past

New member
Перестало работать в текущем dev из за замены cjson на sjson.
После патчинья ESPSky.lua методом s/cjson/sjson/g вываливается с ошибкой
Код:
> Warning, deprecated API! autoreconnect == 1 is deprecated. It will be removed in the next version. See documentation for details.
ESPSky secure connection complete
PANIC: unprotected error in call to Lua API (ESPSky.lua:6: JSON parse error: FOUND_NULL_BYTE)
 

Shade

New member
Перестало работать в текущем dev из за замены cjson на sjson.
После патчинья ESPSky.lua методом s/cjson/sjson/g вываливается с ошибкой
Код:
> Warning, deprecated API! autoreconnect == 1 is deprecated. It will be removed in the next version. See documentation for details.
ESPSky secure connection complete
PANIC: unprotected error in call to Lua API (ESPSky.lua:6: JSON parse error: FOUND_NULL_BYTE)
Спасибо.
Эта ошибка очень похожа на багу именно в самом SJSON (по этой причине он видимо еще и живет в DEV ветке)

на 6-й строчке в ESPSky.lua находится cjson.decode от decodeMessage
а сам decodeMessage используется при распарсивании сообщения от сервера.
На стороне сервера стоит чрезвычайно популярный сериализатор JS, нет оснований сомневаться в валидности выдаваемого им json-на.

Думаю нужно либо немного подождать, либо создать багу на гитхабе nodemcu
GitHub - nodemcu/nodemcu-firmware: lua based interactive firmware for mcu like esp8266
 

panama

New member
@Shade на NodeMCU custom builds теперь в master ветке вместо cjson можно выбрать только sjson. Только возникает ошибка:
Код:
ESPSky.lua:3: attempt to index global 'cjson'
Можно как то исправить?
 
Сверху Снизу