Немного подкрутил ГОСТ-256... Теперь он спокойно влазиет в мегу8... Занимает примерно половину памяти меги8. Что в принципе нормально)) Увеличилась скорость шифрования. Теперь время реакции (от момента нажатия кнопки на пульте до включения лампочки и получения подтверждения включения) занимает 0,35c. Понятно, что если поставить кварц 16 МГц (вместо 4 МГц), то время реакции будет меньше 0,1c. Что для Умного Дома очень даже хорошо))
Можно конечно ещё больше подкрутить ГОСТ-256... Но тогда придётся писать машинные инструкции для процессора на Ассемблере (вместо Си). Что не очень хорошо))
Добавлено after 8 minutes 13 seconds: Вообще... как оценивать и сравнивать устройства шифрования для сетей Ethernet - это отдельная большая тема)) https://habr.com/ru/post/475912/
Добавлено after 7 minutes 24 seconds: P.S. )) Вот только не надо мне рассказывать, что сейчас никто программное шифрование не использует... Сейчас всё шифрование реализуется аппаратно... Например во всех современных радио модулях есть аппаратное шифрование. И даже в сетевых картах компьютера уже начинаю во всю использовать аппаратное шифрование Ethernet. И т.д. )) У меня другая задача.
сколько вам надо времени чтобы получилось подобное (чтобы человек который не сильно силен в яве и в си) смог так просто работать не тратя пол жизни. https://www.youtube.com/watch?v=KcAFnjCMcIw
_________________ И опыт сын ошибок трудных и гений парадоксов друг
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
сколько вам надо времени чтобы получилось подобное (чтобы человек который не сильно силен в яве и в си)
Подобное сделать не долго)) В прошлый раз мы с тобой уже делали управление через браузер. Там не нужна Java. И можно без Си. )) Там всё на JavaScript - это очень простой язык))
Протокол MQTT - https://habr.com/ru/post/463669/ Работает через обычный браузер. Протокол шифрования стандартный для браузеров - TLS/SSL (или по простому - https). Вся безопасность Умного Дома держится на этом протоколе - TLS/SSL))
Лучше расскажи какая у тебя задержка... Например чтобы просто включить в Доме лампочку ?
Судя по твоему видео у тебя задержка аж целых ~10 секунд !!!
Почему так происходит ? Да всё просто)) Достаточно посмотреть схему работы MQTT...
1. Нажимаем кнопочку на пульте (у тебя пульт - это браузер). Пульт отправляет данные на MQTT сервер. 2. Умный Дом периодически через определённые промежутки времени (обычно промежутки времени задаётся программно) запрашивает данные с MQTT сервера. 3. Получив данные от MQTT сервера, Умный Дом выполняет команды от отправляет данные подтверждения обратно сервер. 4. Пульт (у тебя пульт - это браузер) забирает данные с MQTT сервера.
Это кратко)) Подробности могут отличаться, но суть понятна - вся проблема в MQTT сервере... - это лишнее звено в системе))
Проблема в том что Умный Дом периодически через определённые промежутки времени запрашивает данные с MQTT сервера. Отсюда такие большие задержки...
А чтобы не было задержек, Умный Дом должен постоянно держать связь с сервером. Т.е. надо постоянно держать TCP соединение открытым... А это (мягко говоря) не есть правильно))
Такие схемы обычно используют когда нет дома статического IP. Тогда это единственный вариант...))
А если дома есть статический IP, то никакие MQTT сервера нафиг не нужны ! ))
P.S. Недавно общался с одним чуваком... Он использует простой браузер и публичный MQTT сервер. Вопрос был простой: "А какая задержка у тебя задержка включения например простой лампочки ?" Ответ был такой: "Около минуты..." Вопрос: "ОХРИНЕТЬ !!! Т.е. чтобы включить лампочку в Доме я должен сидеть в ТЕМНОТЕ и ждать целую минуту ?" Ответ был такой: "У меня кондиционер. Кондиционеру пофигу одна минута."
Мда...
Добавлено after 15 minutes 15 seconds: P.S. P.S.)) Задержка включения лампочек в Доме не должна превышать 0,1с (ну максимум 0,2c). Если задержка больше - это начинает раздражать.
Ну вы и загнули с секундами. Я мктт щас не пользуюсь и там локально задержка меньше секунды, а в нативном апи ховмасиста eщо меньше.(отклик мгновеный) Да даже через облачный сервер который в америке секунда ну может полторы,не смешите людей. Вот тасмото пробовал мктт дискавери для простоты добавления и переделки китайских безделушек на 8266 https://www.youtube.com/watch?v=yyIdRLBXwPg
_________________ И опыт сын ошибок трудных и гений парадоксов друг
Я про пинг ничего не говорил, я писал про то что= я даные раз в секунду отправляю с одного устройства например температуру через сервер каторый розположен в вержинии, и раз в секунду получаю на другом. И если на том другом я нажимаю кнопку то через одну секунду на первом загораетса светодиод. Не нужно в водить людей в заблуждения нащот мктт. А про локально я уже вобще молчу там все мение секунды при условии что цыкл устройств не тормозит Я повторюсь я щас мктт не пользуюсь, мне нативный апи еспховм показывает очень хороший результат, да и среда нравитса.
_________________ И опыт сын ошибок трудных и гений парадоксов друг
Кто вводит людей в заблуждение ? Я расписал принцип работы мктт и дал ссылку со схемой...
sashamelja писал(а):
И если на том другом я нажимаю кнопку то через одну секунду на первом загораетса светодиод.
Так и пиши: Задержка 1с через сервер в вержинии... Это всё равно много...
А схема где ? Или ссылка ? И кто куда подключается ? протокол какой ?
Я понял так: 1. Нажимаем кнопку на сервере "Дом". Сервер "Дом" отправляет данные на сервер в вержинии. Протокол TCP (https). 2. Сервер из вержинии отправляет данные на сервер "Дом" ? )) Протокол TCP (https).
Добавлено after 1 minute 10 seconds: Сервер из вержинии сам отправляет данные на сервер "Дом" ? Сервер из вержинии знает IP сервер "Дом" ?
Разберём это - https://esphome.io/components/api.html "используется для прямой связи с клиентами с помощью высоко оптимизированного интерфейса" высоко оптимизированного интерфейса )) по простому - через обычный браузер)) Типа Интерфейс... Ну допустим. Ну хорошо... Взяли ESP32. Написали для неё библиотеку сервера #include <api_server.h> с кучей функций... https://esphome.io/api/classesphome_1_1 ... erver.html Получился простой сервер на ESP32 с "высоко оптимизированным интерфейсом" - обычным браузером)) Всё управление и настройка сервера на ESP32 - через браузер (с логинами... паролями... и т.д.).
Протокол: "Для удаленного доступа к Home Assistant мы можем использовать либо HTTP, либо HTTPS." Ясно... в настройках сервера на ESP32 можно выбрать протокол - с шифрованием и без. Ну допустим.
Два вопроса: 1 - я не понял как ты подключаешься к своему серверу удалённо (из Интернета) ? Через обычный браузер ? Тупо вводишь IP своего сервера на ESP32 (который находится Дома) в браузере и всё ? 2 - не до конца понятен принцип работы твоего сервера на ESP32. Что куда передаётся... и какая задержка...
Если всё управление сервера на ESP32 только через браузер, то: Как тогда приходят уведомления от сервера на ESP32 в браузер ? Сам браузер не умеет принимать сообщения от сервера. Браузер - это клиентское приложение. Значит браузер должен сам постоянно опрашивать сервер на ESP32. Например по технологии AJAX. (Это мы уже делали в прошлой теме). Но тогда это приводит к задержкам и генерации большого трафика...
Я могу рассказать только образно Игнорировать https://www.home-assistant.io являетса большой глупостю со всех сторон!(он же сервер на любой линукс X86 машине)он же подключен к роутеру по єзернету(роутер создает отдельную лот сетку 192.168.3.1 к которой будут подключены почти все основные девайсы которые находятся в доме. Есть основной роутер к которому подключен лот роутер и он в основной сетке 192.168.1.100 (потому мктт брокер доступен из двох локалок)192.168.1.100 и 192.168.3.1 но это так на запас. Ну и понятно что есть стат айпи и тд итп, приводит на айпишку ховмасист сервера который в лот локалке 192.168.3.? (понятно что авторизация, измененные стандартные порты итд все соблюдается. С этой частью я давно определился и обкатал.(и я думаю что надолго) А теперь часть умных устройств тут вариантов море разных и самоделок и покупных, и на вифи и на ble и даже зикби. Устройства которые будут в локалке лот 192.168.3.? те что в доме рационально интегрировать с помощью еспехом (нативного апи) потому что самый надежный стабильный, много векторный вариант (микроконтроллера сначала хотел есп 32 но иза среднего потребления 120ма, а в есп8266 80ма буду применять кое где и эти не настолько стабильные микроконтроллера. А устройства которые выгоднее иза сигнала или вариант езернет иза дальности розположения будут работать по мктт дискавери через 192.168.1.100( вариантов тоже много тасмота, посто ардуино, еспехов) + планирую обуздать зигби устройства с помощью v2z есть отдельная тема и сообщество энтузиастов (там щас туя делает очень правильные адекватные вещи по очень хорошей цене) +BLE шлюз на есп 32, работающий на нативнов апи хоум ассиста (написанный в есп хоум)успешно прошел тесты на фитнес браслетах сяоми. +охранная gsm сигнализация на атмега128+sim800(косвенно интегрированная в систему умного дома) +парочка камер есп 32. Все єто работает и каждого варианта есть свои +-(а самое главное что можно применять все доступные варианты и возможности (с экономо-эстетических соображений) Над этим всем работаю по вечерам и не всегда пока на дворе тепло собираюсь с мыслями экспериментирую, составляю смету, и собираю бабло.
Это все отрицать не имеет смысла, надо просто принять, что есть куча готовых бесплатных программных продуктов разработанных или розрабатующихся энтузиастом или энтузиастами многих стран и не один год.
Надо делать что то свое и того что доступно или если надо рубить дерево то надо добыть руду итд итп!! Ну можно и так конечно, на вкус и цвет товарищей нет.
В есп ховм есть все что может понадобиться для построения умных устройств.(шаблоны для датчиков и экранов на все случаи жизни и больше, все возможные протоколы, внутренняя логика, гибкая многогранная интеграция,сервер с резет апи-(и вот эта тема вам может быть интересна)там короче говоря с любого устройства на котором будет поднят внутренний сервер, зная полезные нагрузки можно с любого браузера в этой же локалке клацать переключателями, и читать данные типы пост и гет C:\Users\User>curl -X POST http://192.168.3.110/switch/flashh/toggle
подключен к роутеру по єзернету(роутер создает отдельную лот сетку 192.168.3.1 к которой будут подключены почти все основные девайсы которые находятся в доме. Есть основной роутер к которому подключен лот роутер и он в основной сетке 192.168.1.100 (потому мктт брокер доступен из двох локалок)192.168.1.100 и 192.168.3.1 но это так на запас....
Ничего не понял... При чём тут зикби... я спросил как работает сервер. Кто такой лот роутер ?)) Зачем две локалке в доме ? Как и куда приходят сообщения от сервера ? и т.д. и т.п. Ты сам понимаешь что делаешь ? ))
sashamelja писал(а):
есть куча готовых бесплатных программных продуктов разработанных или розрабатующихся энтузиастом или энтузиастами многих стран и не один год.
А что же эти "энтузиасты" сделали всё через браузер ? А не отдельным приложением ? ))
https://play.google.com/store/apps/deta ... roid&hl=ru Есть и отдельное и не отдельное, и куча пользователей с разным правами и возможность делать кастомные дашборды с отрисовкой в веб, повторюсь ховм асистент очень большой и мочный инструмент, если интересно можно посмотреть в ют, там есть кучя видео про все и даже больше.
Собственный API ESPHome основан на настраиваемом протоколе TCP с использованием буферов протокола. Вы можете найти определения структуры данных протокола здесь: https://github.com/esphome/esphome/blob ... /api.proto Библиотека Python, реализующая этот протокол, называется aioesphomeapi .
Я то понимаю что у меня и для чего и примерно как работает, и все всегда проверяю на практике и не один час.(и не вижу смысла смотреть глубже)
Internet of Things, IoT (а не лот, то біла опичатка) у меня для устройств которые работают с ховм асистом, отдельная сетка, почему (потому что я так захотел и мне понравилось, и с соображений безопасности)
Я вас не в чем не переубиждаю, а просто делюсь инфой.
Забейте на сервер, лутше сделать чем там если и возможно то мега сложно не адикватно по времени.
подумайте и почитайте про еспховм, воспринимайте ее как отдельная тема (которая работает для ховмасистента, и с ней можно работать по вашему постами и гетами)
В есп ховм есть все что может понадобиться для построения умных устройств.(шаблоны для датчиков и экранов на все случаи жизни и больше, все возможные протоколы, внутренняя логика, гибкая многогранная интеграция,сервер с резет апи-(и вот эта тема вам может быть интересна)там короче говоря с любого устройства на котором будет поднят внутренний сервер, зная полезные нагрузки можно с любого браузера в этой же локалке клацать переключателями, и читать данные типы пост и гет C:\Users\User>curl -X POST http://192.168.3.110/switch/flashh/toggle
Поставьте хоум ассистент, пишите там любые скрипты, и работайте через любые протоколы (там можно можно все писать в конфигах) там можно даже всю оболочку переписать и перерисовать, короче можно все кастомное замутить, и будет все, ранее никем не нарисованное, как вам нравится.
Ну а если вы собрались написать свой ход ассист, да и еще на джаве, я вам сочувствую.( да пофиг на чем вы напишете, продукт очень хороший сложно переплюнуть)все массово переходят на него со всех иных мажоров, опен хабов итд.
Вы даже не представляете, насколько то крутой и многогранный инструмент.(над которым 10 лет работают десятки энтузиастов) и он абсолютно бесплатный, и со слов создателя никогда не будет платным. (или вы думаете что ваш велосипед будет круче, итд итп)
Я еще раз повторяю я вам лишь пытаюсь рассказать то что понял за год изучения вопроса, а вам решать как и что делать.
П.с я считаю что сделать свой сервер в теме иот крайне неблагодарное решение. А вот на стороне конечных устройств, там делать что то как раз и надо.(потому и намекаю на ресет апи в успехов (можно вклиниться в протокол и мутить что то свое)не мешая основе.
_________________ И опыт сын ошибок трудных и гений парадоксов друг
Причем тут как работает браузер (все работает на хост системе, в продукте который работает на питоне, управляетса ямал скриптами)Браузер как визуализатор посредник.
Я не знаю на чем вы остановились я не остонавливалса и розказал чего добилса я в этом вопросе, и что считаю хорошо а что плохо.
У нас мега кординальное разное виденье решения вопроса.
(потому я считаю продолжение переливания с пустого в порожне, безполезным)
если вы не понимаете зачем в системе умного дома такой продукт, и для чего нужен, делайте так как считаете нужным, и правельным, удачи вам в этом не легком деле.
_________________ И опыт сын ошибок трудных и гений парадоксов друг
У меня вся система построена на Java. В отличии от браузера, Java работает и как Визуализатор и как Сервер (причём одновременно). Это открывает совершенно новые возможности... О чём будет рассказано дальше... Заодно разберём что хорошо а что плохо.
-на схеме показано для примера 7 устройств. Вся система рассчитана на 255 устройств. Можно и больше, но пока достаточно. -в качестве Сервера можно использовать ATmega128 (если задач много и требуется много памяти) или ATmega8 (если задач мало и требуется мало памяти). -сервер может иметь свою панель управления и экран для индикации работы всего Умного Дома. Или можно обойтись без панели управления и экрана, а правлять Сервером удалённо (с любого устройства - телефона, компьютера и т.д.). -в качестве исполнительных устройств думаю достаточно ATmega8. -все устройства имеют свой ID.
Добавлено after 36 minutes 12 seconds: Маршрутизация. Маршрутизация пакетов в сети может быть организовано по разному. 1. Например всё устройства могут общаться между собой напрямую. В этом случае Сервер работает как обычный коммутатор пакетов (с фильтрацией пакетов или без фильтрации пакетов).
2. Всё устройства могут общаться через Сервер. В этом случае Сервер управляет всеми устройствами в Доме (с фильтрацией пакетов и/или обработкой пакетов). Думаю такой вариант наиболее подходящий.
3. Сервер связан со всеми устройствами в Доме как по проводам (топология "звезда"), так и по беспроводной связи (топология "общая шина"). В качестве радио модулей можно использовать любые радио модули, включая самодельные (не принципиально). Протокол радиообмена можно использовать как "заводской", так и "самодельный" (не принципиально). Для примера на схеме показаны радио модули NRF24.
4. Можно так же использовать Ячеистую топологию. Так называемую "mesh-сеть". https://ru.wikipedia.org/wiki/Ячеистая_топология Но это потребует дополнительной памяти на всех устройствах в Доме. Поэтому думаю остановимся на варианте 2. - Всё устройства могут общаться только через Сервер. В отличии от схем с браузером, в нашей схеме все устройства в Доме могут связываться напрямую с любым устройством (телефон, компьютер и т.д.), на котором запущен Сервом Java.
Добавлено after 1 hour 17 minutes 9 seconds: Шифрование. Пожалуй самая сложная часть проекта. Сейчас используется протокол шифрования ГОСТ 28147-89 https://ru.wikipedia.org/wiki/ГОСТ_28147-89 Только немного модифицированный.
Режим шифрования. Сейчас используется режим шифрования (https://ru.wikipedia.org/wiki/Режим_шифрования) - Random_Delta_(RD). Подробней: -есть Вектор инициализации. -есть Генератор гаммы. Конечная схема Генератора гаммы может немного отличаться, но сам принцип работы неизменный. Вместо AES-256 используется ГОСТ-256.
1. Вектор инициализации состоит из нескольких частей: -заголовка - ID устройства. Так как все устройства в Доме имеют свой уникальный ID, то все устройства в Доме будут генерировать свою уникальную гамму. Это повышает криптостойкость всей системы в целом. -генератора случайный чисел. Генератор случайных чисел делает непредсказуемым номер вектора инициализации. Это значительно повышает криптостойкость всей системы в целом. В качестве генератора случайных чисел в Сервере Java используется встроенный генератор случайных чисел Java. В качестве генератора случайных чисел в исполнительных устройствах используется шум квантования АЦП МК (ATmega8 или ATmega128). См.выше. -счётчика вектора инициализации. Счётчик вектор инициализации позволяет генерировать уникальные гаммы. Это значительно повышает криптостойкость всей системы в целом. 2. Вектор инициализации шифруется и передаётся вместе с зашифрованным пакетом. 3. Работа Генератора гаммы в особых пояснениях не нуждается. Стандартный режим сцепления блоков. Единственное что - можно добавить опцию - "режим сцепления блоков с переменным шагом". 4. Имитовставки не используются. Вместо них используется хеш-функция. Сейчас обычный CRC.
-с помощью хеш-функции (сейчас обычный CRC) Система Умный Дом проверяется целостность данных. При ошибках хеш-функции Система Умный Дом сообщает на все устройства (телефон, компьютер и т.д.), на которых запущен Сервер Java. Далее Система Умный Дом переходит в режим "блокировки" или в другой режим (согласно настройкам).
-благодаря счётчику вектора инициализации все пакеты уникальны (никогда не повторяются). Это позволяет легко защититься от так называемой "Атаки повторного воспроизведения". https://ru.wikipedia.org/wiki/Атака_пов ... оизведения Система Умный Дом автоматически обнаруживает все атаки "повторного воспроизведения" и сообщает на все устройства (телефон, компьютер и т.д.), на которых запущен Сервер Java. Далее Система Умный Дом переходит в режим "блокировки" или в другой режим (согласно настройкам).
Сейчас этот форум просматривают: pin1000 и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения