GyverLibs / GyverHub

Панель управления для ESP8266, ESP32 и других Arduino. Конструктор интерфейса. Интеграция в умный дом. Esp8266, esp32 and Arduino Dashboard library
http://hub.gyver.ru
319 stars 26 forks source link

Бета версия #6

Closed GyverLibs closed 10 months ago

GyverLibs commented 1 year ago
⚠️⚠️⚠️
ПЛАНИРУЕТСЯ КРУПНОЕ ОБНОВЛЕНИЕ С СИЛЬНЫМ НАРУШЕНИЕМ СОВМЕСТИМОСТИ. СЛЕДИТЕ ЗА НОВОСТЯМИ! ТУТ ВЕРСИЯ САЙТА v0.51
⚠️⚠️⚠️

Чат в телеграм

Почему бета версия?

Проект в активной разработке и некоторые обновления нарушают совместимость с предыдущими версиями: ваш код может перестать работать на новой версии приложения. Поэтому пока что работаем в режиме "раннего доступа", обо всех критических изменениях я сообщаю здесь. Когда будет уверенность в неизменности особо критических моментов - выйдет релиз.

В репозитории всегда лежит версия библиотеки, полностью совместимая с текущей версией приложения/сайта. Документация и примеры также всегда соответствуют актуальной версии. Документация исчерпывающая, если какие то возможности не описаны - их нет.

Если внезапно перестало работать

TODO

GyverLibs commented 1 year ago

прошлое issue было зафлужено неадекватным троллем и потеряло информативность

GyverLibs commented 1 year ago

@neko-neko-nyan встал вопрос по ОТА с гитхаб. У меня сейчас файлы должны называться firmware.bin или firmware.bin.gz. Ты планируешь в питоне обработать ОТА по url? Если да, то может ограничиться одним расширением, например firmware.gz и так далее?

GyverLibs commented 1 year ago

Пересмотрел инфо, часть полей лишняя. Пока смотрю такой вариант: Version Library //Firmware

Network RSSI MAC SSID Local IP //AP IP //WiFi Mode

Memory RAM Flash

Other //Uptime

И в билдере можно будет добавлять свои поля в группу Other, прямо так

hub.Info("лейбл", "значение");
hub.Info("лейбл", "значение");

Билдер сам разберётся когда их отправлять. Либо сделать отдельный обработчик, это чуть эффективнее чем вызывать целый билдер

neko-neko-nyan commented 1 year ago

ОТА с гитхаб

Это который version в discover? Там по-хорошему бы полные ссылки использовать. Скажем "update_url": "https://githubusercontent.com/.../package.json", а в нем "ota_url": "https://.../firmware.bin".

neko-neko-nyan commented 1 year ago

отдельный обработчик

Это лучше

GyverLibs commented 1 year ago

У меня стандартизировано, что ota файл лежит на гитхабе по известному пути, чтобы максимально всё упростить. Для есп нужна прямая ссылка на файл, а её на Гите получить просто так нельзя на бинарник

neko-neko-nyan commented 1 year ago

Гите получить просто так нельзя

Почему?

И вдруг я захочу бинарник хранить на в репозитории, а в packages (как оно и задумывалось)?

GyverLibs commented 1 year ago

Потому что бинарник сразу скачивается, а кнопка у них через js сделана, ссылки нет чтобы скопировать. Я хотел юзер френдли сделать максимально, кладешь туда где приложение будет искать и всё

GyverLibs commented 1 year ago

Это относится к автоматическому обновлению с гитхаб если что. Ота ссылкой можно делать напрямую любой

GyverLibs commented 1 year ago

Как компромиссный вариант - можно сделать так - если аппа находит в package ссылку на бинарник - прошивает им, если не находит - то тем который должен лежать по известному пути

neko-neko-nyan commented 1 year ago

https://github.com/neko-neko-nyan/pygyverhubd/blob/master/example.py -> https://raw.githubusercontent.com/neko-neko-nyan/pygyverhubd/master/example.py, например.

если аппа находит в package ссылку

Как вариант

GyverLibs commented 1 year ago

@neko-neko-nyan в общем сделал image
Выводит просто по переданным "лейбл": "значение" в каждой категории, как ты предлагал. Для памяти передаёт массив занято/всего. Если находит поле Uptime (секунды) - переводит в Д:Ч:М:С + добавляет поле с временем запуска по времени браузера

GyverLibs commented 1 year ago

Сильно изменился API, текущая версия приложения может не работать со старой библиотекой:

@neko-neko-nyan для тебя расписал discover/info/fsbr пакеты в wiki в самом низу :3

neko-neko-nyan commented 1 year ago

При подключении по WS файлы теперь качаются в обход

Я правильно понял, что скачивание по http работает только для файлов из папки /fs/?

GyverLibs commented 1 year ago

Да, именно так. В принципе можно и для всех сделать, надо подумать получится ли так сервер настроить.

Так, я вспомнил) я выделил отдельную папку для доступа в целях безопасности. Всё что в fs - считай торчит наружу. Также можно сделать чтобы путь к этой папке передавался в HTTP пакете конфига доступа к HTTP. Но опять же - через "пакетный" метод доступны для скачивания вообще все файлы. Если уж делать ограничение, то и на них тоже

А, ещё битовая маска инвертированная теперь

neko-neko-nyan commented 1 year ago

Сейчас попробовал увеличить ширину интерфейса, менюшка (где выбор info / file & ota) не расширилась, зато уехала вбок

GyverLibs commented 1 year ago

Пасиб, ченить придумаю. Я думаю оставить ту же ширину, но передвинуть направо надо. Во всю ширь раздвигать ее нет смысла

MalfurionST commented 1 year ago

Здравствуйте, я знаю что надоел Вам еще по portal, но я добрался и до этой библиотеки, такие просьбы:

  1. элементу LED наверное лучше передавать цвет из вашей палитры чтоб можно было его выбрать и использовать элемент в качестве элемента "иконки",
  2. у элемента Slider наверное нужно добавить возможность запрета изменения положения чтоб его можно было использовать в качестве плоского аналога элемента Gauge, пока собирался с мыслями третий вопрос решили :-) (Отключенные модули также будут отключаться и в приложении)
GyverLibs commented 1 year ago

Все идеи приветствуются. Led имеет два состояния, предлагаешь менять только активное? Можно заменить неактивное на условно темное серое или как то так, но из опыта портала оно выглядит как то не очень, зелёное + красное вот хорошо прям. Отключение планирую добавить да, на слайдер, селект, возможно ещё на что то. Пока всё в активной разработке, пробуется, добавляется

MalfurionST commented 1 year ago

Led может так и оставить два состояния и добавить третье когда передается цвет напрямую а там кому надо сами разберутся...

neko-neko-nyan commented 1 year ago

Тогда проще добавить какой-нибудь rgb_led, где value это color

MalfurionST commented 1 year ago

можно тогда и обозвать его просто ico...

neko-neko-nyan commented 1 year ago

можно тогда и обозвать его просто ico...

Смотри: берешь ButtonIcon и никак не обрабатываешь нажатие

Интересно, led и ButtonIcon реально одинаково выглядят? У меня сейчас проверить не на чем

GyverLibs commented 1 year ago

Неее, led и button максимально разные) плюс лед пассивный компонент

neko-neko-nyan commented 1 year ago

Date, time и datetime не работают. Тут ctrl.value -> value.

GyverLibs commented 1 year ago

спасибо 😱

GyverLibs commented 1 year ago

Спорно имхо, учитывая что пример basic.

Он basic не для вебморды, а для обычного использования. По вебморде всё расписано в документации, а также в примере full demo

Uncaught TypeError:

Спасибо, пофиксил

GyverLibs commented 1 year ago

Обновления за 27.06

MalfurionST commented 1 year ago

define GH_NO_FS выдает ошибку на esp8266,

если перемещаться между вкладками версии в инфо начинают удваиваться Безымянный0000000, хотелось бы иметь виджет вроде такого окна (хотя наверное можно сделать через html).

GyverLibs commented 1 year ago

всё поправил, с обновой выйдет

GyverLibs commented 1 year ago

вроде такого окна

Типа табличку? Табличку планировал добавить, но её можно и хтмл блоком сделать да

MalfurionST commented 1 year ago

вот этот блок "Version" сделан таблицей? что-то подобное хотелось бы, и еще у блока "HTML" хотелось-бы менять подпись...

GyverLibs commented 1 year ago

Нет, version не таблица. У html можно менять подпись

GyverLibs commented 1 year ago

отображается по разному

Читать особености esp версии в документации: вырезаны все иконки, кроме системных. Общий placeholder пока не сделан

не изменяется, пока не обновишь вручную

Для переотправки изменения всем клиентам нужно включить autoGet или как то так, см доку

не отображается знак "-"

Добавлю, спасибо

GyverLibs commented 1 year ago

Рассылка действий внутри локалки пока не реализована

GyverLibs commented 1 year ago

Нажать значок обновить в правом верхнем углу

GyverLibs commented 1 year ago

серьезно? на ws нажимать кнопку каждый раз???

Миллионный раз повторяю: читай что тебе пишут. Я выше написал, что в локалке пока что не реализовано это. И пожалуйста, веди себя нормально, потому что забанить - три раза мышкой кликнуть, это быстрее чем ты регистрируешь аккаунты. Со своими насмешками и высерами капсом ты тут не нужен, это вроде ясно дали понять.

GyverLibs commented 1 year ago

это таакой кринжовый эпик))))

Окей, до свидания

GyverLibs commented 1 year ago

У тебя биполярка? Такой жести я давно не видел в интернете...

Serega88kos commented 1 year ago

Я вернулся, привел код к новой версии библиотеки, получил единственную ошибку

\libraries\GyverHUB-main\src/sync/mqtt.h: In lambda function:
\libraries\GyverHUB-main\src/sync/mqtt.h:47:33: error: variable-sized object 'buf' may not be initialized
             char buf[len + 1] = "";
GyverLibs commented 1 year ago

Привет Серёга. На какой версии и под какую плату компилишь? Странное поведение компилятора. Можно просто убрать = ""

GyverLibs commented 1 year ago

Ну, передать переменную цвета в функцию кнопки

neko-neko-nyan commented 1 year ago

@GyverLibs вчера у себя начал делать mqtt (вроде даже работает), но понять не могу, зачем нужны вот эти 4 топика?

А еще по mqtt ведь бинарные данные передаются. Тогда в какой кодировке посылать json? И почему бы чанки файлов не передавать в бинарном виде?

GyverLibs commented 1 year ago

Эти топики для систем умного дома, они же в инфо подсвечены. Это чтобы вручную их вбить в умном доме и иметь доступ к компоненту.

Кодировка не знаю, я не трогал. Вот как есть так есть. В бинарном чанки получается можно, но только по направлению на устройство. Я не помню почему отказался от этого, как вспомню дополню) возможно что то со строками было, было удобнее что 0 может быть только в конце чанка

Serega88kos commented 1 year ago

1.8.19 ESP8266 2.7.4

= ""

успешно

выполнил первое автоматическое обновление, прошло успешно, только соединение не установилось. но после нажатия назад, заход был успешен

neko-neko-nyan commented 1 year ago

Обнаружил, что если в info добавить поле с очень длинным значением, то ломается разметка, особенно на маленьком экране. Сразу предлагаю двойное исправление: автоматически увелиливать ширину блока, до указанной в настройках (но не больше ширины экрана) и переносить текст в значении если перенести по словам не получается + отделить значение от названия.

.main_col {
    display: block;
    width: fit-content;
    min-width: var(--base_width);
    max-width: 100%;
}
@media screen and (max-width: 450px) {  /* < --base_width */
    .main_col {
        min-width: 100%;
    }
}
.lbl_info {
    margin-left: 10px;
    overflow: auto;
    text-align: right;
}

Возможно, на название тоже стоит поставить

overflow-wrap: break-word;
overflow: auto;

UPD: и на fs_file тоже можно, если путь длинный. UPD2: ломает основную вкладку, там надо какое-то свое условие.

GyverLibs commented 1 year ago

можно просто добавить в .lbl_info max-width: 50%;

Serega88kos commented 1 year ago

возможно баг. после прошивки по ОТА, не получается повторно прошить, не появляется окно подтверждения. помогает Ctrl+F5

GyverLibs commented 1 year ago

да, я не смог пофиксить, способы из интернета не помогают =(

Serega88kos commented 1 year ago

а если без подтверждения?)