Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить

Re: Умный дом своими руками

Сб дек 07, 2019 13:02:38

И что у нас тут)) Продолжаем ломать наш типа сервер типа умного дома))
Короче... загружаем файлы на наш типа сервер по стандарту MIME - https://ru.wikipedia.org/wiki/MIME
MIME позволяет грузить практически любые файлы... https://ru.wikipedia.org/wiki/Список_MIME-типов
Для примера загрузил видео mp4...
mp4.jpg
(179.99 KiB) Скачиваний: 394

Любые файлы... текст.. фото... видео... и т.д. грузятся нормально.
Объем файла ограничен объёмом флешки... Может ещё ограничен TCP протоколом... Там ограничение до 4 гиговдля одной сессии...
Короче... файлы в один гигабайт грузятся нормально. Только анализатор глючит от таких больших файлов)) Поэтому показать не могу.

Ну раз мы грузим всё из враузера... тогда нет никакого смысла делать файловую систему FAT32 и т.д.
Думаю сделаем проще - свою файловую систему))
Собственно достаточно просто указать в корневом каталоге имя\номер сектора\размер файла. Думаю достаточно.
:tea:

Re: Умный дом своими руками

Пн дек 16, 2019 19:04:39

Короче нормально грузятся на сервер большие файлы по HTTP в режиме AJAX... через FormData.

А тем временем наш умный дом становится всё умнее... и умнее... ))
дом_2.jpg
(196.83 KiB) Скачиваний: 416

:roll:

Re: Умный дом своими руками

Вт дек 17, 2019 17:30:08

Значит учитель хороший, если идет прогрес а не регрес :))
Я почти добил свою зеленку,должно все получится до нового года.
(Очень сильно не везет повсюду)

Re: Умный дом своими руками

Ср дек 18, 2019 15:09:07

Пока что наш умный дом... никакой не умный...)) Он мало чем отличается от кораблика))
А всё дело в тупом браузере... с кучей ограничений... и его тупым Объектно-ориентированным программированием))
https://ru.wikipedia.org/wiki/Объектно- ... ммирование
Для сравнения: у нашего сервера нет никаких ограничений ! Потому что наш сервер работает на MAC-уровне. Он умеет всё ! ))
Вот если бы написать свой браузер... на база операционной системы... тогда не было бы никаких проблем))

Re: Умный дом своими руками

Пн дек 23, 2019 23:43:05

добавим график... чтоб смотреть расходы всякие... и RGB...
1_1.jpg
(104.62 KiB) Скачиваний: 368

RGB - это чтоб менять цвет лампочек)) и для гирлянд всяких)) и т.д.
2.jpg
(64.44 KiB) Скачиваний: 395

Кроме AJAX есть ещё интересная технология WebSocket. https://ru.wikipedia.org/wiki/WebSocket
Яндекс Браузер поддерживает.
Одна проблема... не могу посчитать секретный ключ (Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==) на сервере по MD5 https://ru.wikipedia.org/wiki/MD5 ... что-то слишком сложно для меги8 ))

Re: Умный дом своими руками

Чт дек 26, 2019 02:15:09

Что-то не могу въехать как перевести буковки в циферки в JS... ))
Но можно просто добавить буковки в браузер... Получим простенький мессенджер... на одноразовых блокнотах... абсолютно криптостойкий ))
1.jpg
(51.68 KiB) Скачиваний: 453

Вообще эти браузеры все немного туповаты)) Надо переходить на Java...

Re: Умный дом своими руками

Вт янв 07, 2020 17:51:27

С новым годом и рождеством христовым товарищи :)) :))
За это время у меня чуток поменялось виденье умного дома,даже не знаю с чего начать. :o

Re: Умный дом своими руками

Ср янв 08, 2020 02:34:06

:beer: ура))
Ну начни с чего-нибудь))

Re: Умный дом своими руками

Чт янв 09, 2020 15:35:26

Нужно ещо кое что проверить чтобы лишнее не писать, :)) извените.

Re: Умный дом своими руками

Пн янв 13, 2020 02:16:26

Праздники закончились... можно продолжать)) :tea:

короче... нарисовали в браузере умный дом.
браузер_1.jpg
(179.81 KiB) Скачиваний: 351

подключаемся к серверу умного дома по локалке / интерету с помощью браузера...
анализатор_1.jpg
(161.67 KiB) Скачиваний: 338

Всё работает.
Пароли... ключи доступа... генерируются генератором случайных чисел и сохраняются на флешке.
Вторая копия Пароли... ключи доступа... сохраняются на любом гаджите (ПК... телефоне...), с которого мы управляем умным домом.
Ещё можно загружать на сервер и скачивать любые файлы... Тоже всё должно сохраняться на флешке.
Можно подключить видеокамеру (с поддержкой JPG). Тоже можно всё сохранять на флешке.
Ещё сервер показывает все ошибки... Тоже всё сохраняется на флешке и в епром.
Ещё надо добавить .log файлы. Тоже всё должно сохраняться на флешке.
Сервер определяет с какого IP было подключение. Дату, время подключения... может сохранять все команды... и т.д.
Еще наверное надо добавить белый / чёрный список IP адресов доступа к серверу... Тоже всё должно сохраняться на флешке.
Не знаю что ещё добавить... :roll:

Всё это прекрасно, но есть одна проблема... Не очень удобно работать через браузер. Для постоянного контроля за умным домом, браузер должен постоянно опрашивать сервер умного дома. Сейчас опрос делается автоматически, по таймеру (можно опрашивать каждую секунду, каждый час, каждые сутки... и т.д.). Только при слишком частом опросе сервера умного дома получаем большой трафик. Это хорошо когда интернет безлимитный... а если нет ? )) Можно конечно опрашивать сервер реже, например раз в час... но тогда в случае аварии в доме мы об этом узнаем через час)) Да и чтоб постоянно работал браузер... тоже идея не супер.

Короче... надо организовать связь с умным домом по другому. С автоматическим оповещением в случае аварий и т.д.
В общем переходим к плану "Б")) :)
И тут нам на помощь приходит Java машина. ))

Проблема в том, я не очень хорошо разбираюсь в Java... поэтому сразу может не всё получится))

Интересно... тут на сайте есть Java-программисты ??? Если что поправьте меня)) :tea:

Короче.. качаем вот такую интересную программку...
1.jpg
(23.01 KiB) Скачиваний: 316

Запускаем программку... Java работает по протоколу TCP и UDP. А так же с COM портами всякими... и т.д.
Нам нужен протокол UDP.
Подключаем библиотеки всякие для UDP. Открываем сокет... Добавляем окна всякие...
2.jpg
(147.47 KiB) Скачиваний: 307

Компилируем...
3.jpg
(152.2 KiB) Скачиваний: 336

Получаем вот такую штуку))
4.jpg
(88.7 KiB) Скачиваний: 296

Переключаем сервер умного дома на протокол UDP... Открываем сокет сервера умного дома... И смотрим что получится))

Re: Умный дом своими руками

Пн янв 13, 2020 17:29:03

Далее... добавляем библиотеки всякие...
java.awt.*;
javax.swing.*;
Получилось типа простенькое Java приложение... типа "мессенджер"...)) для связи с сервером Умного Дома))
Проверяем как всё работает... Пишем Hello и нажимаем кнопку отправить...
1_2.jpg
(92.37 KiB) Скачиваний: 319

Сервер отвечает...
2_2.jpg
(98.43 KiB) Скачиваний: 296

Работает))
И далее...
3_2.jpg
(158.18 KiB) Скачиваний: 313

АААААА... !!!! Говорящий Умный Дом !!! :shock:
:)))
Не Алиса пока... но считать уже умеет)) :))) (Яндекс.Станция — умная колонка с голосовым помощником Алисой).

Да, с протокол UDP трафик намного меньше. И работает заметно быстрей)) Экономит время и деньги))
Не зря ещё в далёком 2012 году Гугл решил выпустить браузер с протоколом UPD.
https://ru.wikipedia.org/wiki/QUIC

:tea:

Re: Умный дом своими руками

Пн янв 13, 2020 20:40:41

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

Неясно зачем. Трудно представить, что кто-то будет держать на компе всегда открытое окно связи с сервером дома. Почему пользователю просто не запросить состояние сервера, явно послав в него соответствующий запрос? А в случае аварии сервер может послать емайл и/или SMS пользователю. Если у Вас другая идея коммуникации с пользователем, полезно здесь её изложить, иначе понятно только Вам чего добиваетесь.

Насчёт UDP также неясно чего добиваетесь. Если сервер на WIZnet чипе или ESP32, ему всё-равно что обрабатывать - UDP или TCP. Или обслуживающая программа в Мегу не влезает? Если так, давно пора уйти от игрушечных МК. С точки зрения Java приложений - тоже разница небольшая. Я прикрепил простенькие Java программки TCP/UDP сервера/клиента. Сократить объём траффика? Если комп в домашней и лимитной сети, то внутренние соединения на трату лимита не влияют. Если внешний, то разница в траффике между UDP или TCP также небольшая. Да, в UDP нет пакетов подтверждения, установки/разрыва соединения и пр., но это мелочи. Да, TCP хедер использует 20 байт против 8 у UDP, но это тоже мелочи, т.к. в любом случае к пакету добавится ещё хедер IP (20 байт) и хедеры нижних урвней стека, ещё меньше снижающие экономию. Зато при UDP лишитесь многих преимуществ TCP. Для управления сервером из домашней сети это скорее всего не важно, но если соединитесь извне, то многие Firewalls в организациях блокируют UDP пакеты, если только они не жизненно необходимы (например, DNS или NTP). Многие internet-radio станции, вначале вещающие на UDP с развитием сетей давно перешли на TCP. Вообще, UDP имеет смысл для приложений, толерантных к потере отдельных пакетов. Если это недопустимо, то функции надёжной передачи пакетов при UDP должно взять на себя приложение.

... забыл архив приложить...
UDP.zip
(2.59 KiB) Скачиваний: 281
Последний раз редактировалось Ser60 Пн янв 13, 2020 23:27:36, всего редактировалось 1 раз.

Re: Умный дом своими руками

Пн янв 13, 2020 21:06:27

А вот мои наработки :))
https://www.youtube.com/watch?v=YFDLVT8QkcU
Как будем совмещать.?

Re: Умный дом своими руками

Вт янв 14, 2020 04:04:16

UDP или TCP... этот спор длится уже много лет)) Но наука не стоит на месте... ))
https://habr.com/ru/company/infopulse/blog/315172/
Ser60 писал(а):Если у Вас другая идея коммуникации с пользователем, полезно здесь её изложить, иначе понятно только Вам чего добиваетесь.

Идея простая - всегда быть на связи с домом. ))
Сейчас у меня сервер на WIZnet чипе. Моему серверу без разницы UDP или TCP... и МК тоже без разницы))
Траффик - это не самое важное. Хотя тоже важно))
Но мне больше нравится UDP, потому что с ним проще работать и UDP протокол не чувствителен к задержкам. Можно передавать быстро... а можно меееееееееееееееедленно... хоть целый день)) Например по радиоканалу...
Тайминги, и ACK мы устанавливаем сами - программно. Это не проблема.
Ser60 писал(а):А в случае аварии сервер может послать емайл и/или SMS пользователю.

На первом месте связь по Интернет. Потом GSM, емайл и/или SMS... и т.д.
Ser60 писал(а):Трудно представить, что кто-то будет держать на компе всегда открытое окно связи с сервером дома.

Не обязательно держать на компе всегда открытое окно связи с сервером дома. Java может работать и в "фоновом режиме".
И в этом "фоновом режиме" Java может сама следить за связью с домом. И сообщать нам при потери связи с домом...

Вот я для примера написал простенькое Java приложение... в качестве эксперимента)).
Java запускается в ручную или автоматически при загрузке WINDOWS на компе.

Как это работает (пока просто мысли): :roll:
1- Сижу я значит за компом (дома или на работе или в другом месте) и читаю "радиокот", а в это время Java слушает порты компа в "фоновом режиме". Это видно в диспетчере задач. Никаких окон нет))
1.jpg
(186.13 KiB) Скачиваний: 292

2- И тут вдруг дома что-то случилось... Тут же прилетает UDP пакет на IP моего компа (дома или на работе или в другом месте). Java переходит в "активный режим" и появляется БОЛЬШОЕ ОКНО на весь экран монитора )) АВАРИЯ !!! Такое сообщение трудно не заметить )) :)))
2.jpg
(107.79 KiB) Скачиваний: 302

3- Далее... Нажимаем кнопочку "OK". Java отправляет UDP пакет серверу умного дома - "сообщение получено".
3.jpg
(120.17 KiB) Скачиваний: 298

Затем нажимаем кнопочку "В фоне" и Java переходит в "фоновый режим". И я дальше читаю "радиокот", а в это время Java слушает порты компа в "фоновом режиме".
4.jpg
(205.07 KiB) Скачиваний: 285

Если не нажать кнопочку "OK", то сервер умного дома не получит подтверждения и будет дальше отправлять UDP пакеты по всем IP адресам... из списка))
- IP ..... дом
- IP ..... работa
- IP ..... телефон
Если сервер умного дома не получит ответа по IP, то будет звонить мне на телефон... из списка))
+7......... дом
+7......... работa
+7......... телефон
и т.д.

Кратко как-то так)) Браузер так не умеет)) :tea:

К стате... Java кушаем совсем мало ресурсов системы... в 10 раз меньше браузера. Вообще не нагружает систему...
5.jpg
(49.2 KiB) Скачиваний: 344

Значит заряда батареи телефона хватит на долго))

P.S. Ещё можно сделать всплывающие окна... типа как в старых аськах... скайпах... и т.д)) Вариантов много...
аська.jpg
(68.85 KiB) Скачиваний: 293

Лучше подумать как добавить звук. Чтоб при АВАРИИ телефон и ПК ещё и пикали... жжужали... мигали... ))
А вот мои наработки. Как будем совмещать.?

Совмещать будем как обычно... по Ethernet))
Лучше бы включил анализатор... Не понятно как у тебя там всё работает...

Re: Умный дом своими руками

Чт янв 16, 2020 00:36:48

Продолжим..)) :tea: Провозился с портами всякими.. оказывается Java не может одновременно оправлять и принимать на один порт... А наш сервер может. Ну и ладно)) Откроем разные порты... на приём и передачу...

Короче... добавил всплывающие окна)) Алгоритм простой: запускаем приложение... появляется консоль... Это Java слушает входящий порт...)) можно что-нибудь написать серверу... ))
1_1.jpg
(41.12 KiB) Скачиваний: 295

Когда дома что-то происходит, то нам прилетает UDP пакет. Автоматом открывается окно "входящие сообщения".
2_1.jpg
(49.02 KiB) Скачиваний: 274

При этом Java автоматом отравляет серверу подтверждение что сообщение получено не ещё не прочитано.
Вообще окон может быть бесконечно много... Java парсит все входящие сообщения и решает что делать... открыть отдельное окно "сообщение" , "авария" , "срочно !"... или может перенаправить пакет дальше (режим ретранслятора). Короче любые сценарии))
Далее пишем что-нибудь серверу... бла-бла-бла... )) Или просто нажимаем кнопочку "прочитано". Отправляем серверу подтверждение, чтобы сервер знал что сообщение прочитано и не волновался )) Иначе сервер начнёт нам звонить на телефон... +7... ))
Далее приходит подтверждение от сервера. Сервер нас услышал))
3_1.jpg
(58.06 KiB) Скачиваний: 303

И т.д. и т.п.
Короче... Java может обрабатывать любые сценарии... алгоритмы...
Может работать как простой мессенджер... как скайп))
Может работать как ретранслятор пакетов... Как сервер...
Можно подключить все устройства в доме: телефон <> ПК <> планшет <> сервер. Все устройства будут общаться между собой. Получится большой Java чат ! :)))
и т.д. и т.п.
Короче фиг его знает что ещё придумать)) Такая вот умная у нас Java машина)) :tea:
Хотя наш сервер всё равно умнее))

Надо ещё подумать... а что если IP динамический ? Тут будет свой, отдельный сценарий))

sashamelja а у тебя там что интересного ? ))

Re: Умный дом своими руками

Чт янв 16, 2020 01:48:29

Java не может одновременно оправлять и принимать на один порт...

На самом деле может, т.к. сокеты full-duplex. Для этого следует сделать multi-threaded Java application.

Re: Умный дом своими руками

Чт янв 16, 2020 16:42:12

Если коротко, я сейчас нахожусь на стадии тестирования
Варианта 1
Сервер на esp8266 (комуникация с хозяином через телеграм)информирование+управление
(с остальными устройствами через mqtt)
Остальные устройства esp 8266(разних назначений)

Может и в mqtt есть свои недостатки (но простота понимания-применения их всех затмивает)
Потому если глобально посмотреть, надо делать комуникацию всех машин сугубо через Mqtt.

Потому я сейчас провожу разного рода експеременты с готовыми fbd пользовательскими блоками под 8266.
Пробую утопить esp в кучи разного рода задач (пока не могу)
Время покажет,пока нету задачи которую я не смог выполнить
(позавчера захотел погноз погоды в телеграм по запросу)
Нашол блок, зарегилса на сайте, добавил в проэкт и все заработало с пол пинка.

Я не знаю на щот слейвов, но мастер только на FLprog+8266
Потому что если писать все то что я сейчас имею и могу с нуля надо писец сколь ко времени и нервов.
А это как раз то что не вернешь и не востановишь ни когда :cry:

Re: Умный дом своими руками

Чт янв 16, 2020 22:03:17

Ser60 писал(а):следует сделать multi-threaded Java application

Открыл несколько потоков... https://habr.com/ru/post/164487/
Java слушает несколько входящих портов одновременно и выполняет соответствующие действия, в зависимости от того, на какой порт прилетел UDP пакет. Можно сделать разные службы... https://ru.wikipedia.org/wiki/Список_по ... тные_порты

Но одновременно на приём и передачу один сокет не работает... Не возможно вызвать sock.send(); пока работает sock.receive();...
sashamelja писал(а):FLprog

Всё квадратики рисуем... )) https://habr.com/ru/company/flprog/blog/389727/
sashamelja писал(а):Нашол блок, зарегилса на сайте, добавил в проэкт и все заработало...

зарегилса на сайте ? у тебя всё через посторонний сайт работает ? Это же ужасно.

через телеграм прикольно... но не супер надёжно))

mqtt... https://habr.com/ru/company/advantech/blog/452904/
тоже что ли через сайт ? )) брокеры всякие... почему всё так сложно ?))

Re: Умный дом своими руками

Чт янв 16, 2020 23:35:59

Я сейчас вижу все так, будет брокер в этом зверьке
https://item.taobao.com/item.htm?spm=a1 ... 1674155711
https://www.youtube.com/watch?v=ADBct61 ... ex=15&t=0s
_____
А дальше можно по разному,я сейчас пробую и так и сяк.(подбираю по надежности и по удобности)
_____
Разного рода боты, телеграм-вайбер, сейчас очень популярны и пипец какие удобные.
_____
Esp8266-нормально прошивается по воздуху,имеет стабильную веб морду во внутриней памяти.
(с кучей всего внутри забито всего половина памяти)и то что она забита никак не влияет на работу.
_____
Mqtt-ещо удобен тем что под андроид есть кучя удобных, интуитивно понятных клиентов.
_____
Кароче говоря, планов много времени мало.

Re: Умный дом своими руками

Пт янв 17, 2020 16:38:48

брокеры... топики... мало информации))
MQTT брокера Mosquitto (кратко) - https://yandex.ua/video/preview/?filmId ... 79266848.1
Такую фигню можем сделать сами))

а дальше ? )) анализатор посмотри и всю будет ясно))

Всякие веб морды... не лучшая идея...

телеграм-вайбер... прикольно)) но не ясно как это работает.

Например как там вообще работает шифрование ? анализатор посмотри ))
Ответить