Разработка Web-интерфейса. (модульная CMS)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
XAPuTOH
Сообщения: 34
Зарегистрирован: 21 сен 2016, 05:50

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение XAPuTOH » 23 сен 2016, 21:24

А как сервер общается с мегадевайсом?
Есть некий webapi? может REST?

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 23 сен 2016, 22:23

XAPuTOH писал(а):А как сервер общается с мегадевайсом?
Есть некий webapi? может REST?
Со страницы запрос посылается посредством ajax на сервер ( api.php). На сервере api.php осуществляет взаимодействие с мегадевайсом. Для взаимодействия напрямую, без сервера (браузер -> мегадевайс) необходима поддержка кроссдоменного ajax, а именно мегадевайс должен отдавать чуть другой хеадер (со свойством "Access-Control-Allow-Origin:*").

XAPuTOH
Сообщения: 34
Зарегистрирован: 21 сен 2016, 05:50

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение XAPuTOH » 24 сен 2016, 08:23

А есть ли необходимость в таком взаимодействии?
ПОнятно что если сетка только локальная то такой вариант позволит с сервака загрузит SPA приложение, настройки виджетов и тп. А за данными будет ходить непосредственно на мегадевайс.

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

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

Сам примерно подобное по работе реализую. Есть RESTFull сервис и веб сервер. С сервака на клиент загружается яваскриптовое одностраничное приложение(SPA) и далее за данными ходит на сервис. НО! На уровне сервиса обеспечена поддержка авторизации и аутентификации, некоторое количество модулей бизнеслогики и т.п. и т.д. что не целесообразно было бы пихать в мегадевайс. А если девайсов несколько? в общем такое ИМХО

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

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение Andrey_B » 24 сен 2016, 11:17

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

foolhome
Сообщения: 164
Зарегистрирован: 18 окт 2014, 21:39
Откуда: Minsk

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение foolhome » 24 сен 2016, 11:41

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

foolhome
Сообщения: 164
Зарегистрирован: 18 окт 2014, 21:39
Откуда: Minsk

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение foolhome » 24 сен 2016, 11:52

GruNT, нужен будет еще один чекбокс без фиксации типа кнопки, нажал держишь - выход включен, отпустил - выход выключился. Да, и еще один вопрос, виджеты на одной странице обращаются только по одному IP? может предусмотреть пропись IP непосредственно в самом блоке виджета в HTML.

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 24 сен 2016, 14:50

foolhome писал(а):GruNT, нужен будет еще один чекбокс без фиксации типа кнопки, нажал держишь - выход включен, отпустил - выход выключился. Да, и еще один вопрос, виджеты на одной странице обращаются только по одному IP? может предусмотреть пропись IP непосредственно в самом блоке виджета в HTML.
Кнопку сделаю, а IP может быть разный.
Например так:

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

<div class="port dev1" ...  ></div>
<div class="port dev2" ...  ></div>

<script>
	$(".dev1").PortsController({
		deviceIP:'192.168.0.14',
		devicePass	: 'sec',
	});
	$(".dev2").PortsController({
		deviceIP:'192.168.0.200',
		devicePass	: 'sec',
	});
</script>

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 24 сен 2016, 14:57

XAPuTOH писал(а):А есть ли необходимость в таком взаимодействии?
ПОнятно что если сетка только локальная то такой вариант позволит с сервака загрузит SPA приложение, настройки виджетов и тп. А за данными будет ходить непосредственно на мегадевайс.

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

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

Сам примерно подобное по работе реализую. Есть RESTFull сервис и веб сервер. С сервака на клиент загружается яваскриптовое одностраничное приложение(SPA) и далее за данными ходит на сервис. НО! На уровне сервиса обеспечена поддержка авторизации и аутентификации, некоторое количество модулей бизнеслогики и т.п. и т.д. что не целесообразно было бы пихать в мегадевайс. А если девайсов несколько? в общем такое ИМХО
То что я пишу в данный момент, это плагин для низкоуровнего взаимодействия. А будут еще и забязанные с БД.

XAPuTOH
Сообщения: 34
Зарегистрирован: 21 сен 2016, 05:50

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение XAPuTOH » 24 сен 2016, 22:19

Как это противоречит моим словам?
Вы хотите что бы клиентское приложение (браузер) общалось с мегсдевайсом.
Как обеспечить такое общение из инета? Как обеспечить безопасность такого общения?

XAPuTOH
Сообщения: 34
Зарегистрирован: 21 сен 2016, 05:50

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение XAPuTOH » 24 сен 2016, 22:27

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

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 25 сен 2016, 02:41

XAPuTOH писал(а):По уму мегсдевайсом - уровень данных. Сервер - уровень логики. Клиентское приложение - уровень представления.
Даже если получится клиенту общаться напрямую к данным, придётся всю логику реализовать в нём. В итоге оно вырастит и клиенту чтобы включить лампочку нужно будет ещё загрузить кучу кода не имеющего к лампочка никакого отношения
Все правильно, но Вы меня наверное не совсем поняли. Это низкоуровневый плагин и он предназначен как я уже говорил для прямого взаимодействия с мегадевайсом:-) Каждый может использовать его как хочет, например для проверки работоспособности мегадевайса. Так или иначе я планирую делать и другие модули. Например модуль измерения температуры. Там уже понадобится и php подключать и БД. Внешне это будет выглядеть также. Инициализация, передача настроек визуализации, но внутренне будет работать в php в цикле, измеряющий температуру в соответствии с настройками устройств и переодичности и записывать в БД, а браузерная часть будет заниматься визуализацией. Мы сохраняем чистое программирование, но упращаем процесс создания элементов. Т.е. подключил модуль, указал настройки в файле php, инициализировал плагин jquery на странице и указал настройки отображения. ВСЕ! Вы получили на своей странице независимый ни от чего график температур в комнате например:-), который привязан к конкретному датчику. Вот Вам и все три уровня: мегадевайс - бд -это данные. На php логика. Плагин - визуализация. Если вы подразумеваете например выполнение сценариев, то это может организовать уже любой, сам, при помощи например еще одного не хитрого модуля. Плагин будет отвечать за связь с сервероом, а серверный php за выполнение команд. Суть модуля в том, чтобы пользователю предоставить максимум возможностей при минимуме написания кода. Идеи по этому поводу уже есть, но до этого дожить еще надо.

foolhome
Сообщения: 164
Зарегистрирован: 18 окт 2014, 21:39
Откуда: Minsk

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение foolhome » 28 сен 2016, 16:42

GruNT, ткни пожалуйста носом, где рыть надписи ON/OFF/Warning по входу, хотелось бы их тоже изменять для информативности. И еще одна хотелка появилась, для удобства пользования бегунком ШИМа не хватает кнопок МИН и МАХ, например нажал МИН - он свалился в 0, нажал МАХ - он включился на уровень по умолчанию.

foolhome
Сообщения: 164
Зарегистрирован: 18 окт 2014, 21:39
Откуда: Minsk

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение foolhome » 28 сен 2016, 18:28

На основе вышеизложенного накарябал примерчик, может кому пригодится
Вложения
IPhomeWEB.rar
(72.5 КБ) 137 скачиваний

foolhome
Сообщения: 164
Зарегистрирован: 18 окт 2014, 21:39
Откуда: Minsk

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение foolhome » 29 сен 2016, 13:43

Пример живой работы
Вложения
Безымянный4.jpg
Безымянный4.jpg (75.35 КБ) 3676 просмотров

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 30 сен 2016, 00:40

foolhome писал(а):GruNT, ткни пожалуйста носом, где рыть надписи ON/OFF/Warning по входу, хотелось бы их тоже изменять для информативности. И еще одна хотелка появилась, для удобства пользования бегунком ШИМа не хватает кнопок МИН и МАХ, например нажал МИН - он свалился в 0, нажал МАХ - он включился на уровень по умолчанию.
Щас доделаю свой релейный блок и займусь всеми примочками)))

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 30 сен 2016, 00:41

foolhome писал(а):Пример живой работы
Ооо, ну замечательно!!!

Dmitrij
Сообщения: 38
Зарегистрирован: 03 мар 2015, 15:14

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение Dmitrij » 04 окт 2016, 15:19

foolhome писал(а):Пример живой работы
Мне то же очень нравиться.

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 06 окт 2016, 16:21

foolhome писал(а):GruNT, ткни пожалуйста носом, где рыть надписи ON/OFF/Warning по входу, хотелось бы их тоже изменять для информативности. И еще одна хотелка появилась, для удобства пользования бегунком ШИМа не хватает кнопок МИН и МАХ, например нажал МИН - он свалился в 0, нажал МАХ - он включился на уровень по умолчанию.
Все сделал))) А Warning выпадает когда нету связи с девайсом.
foolhome писал(а):Запустил на денвере, вроде работает, не хватает авто обновления элементам.
Это тоже сделал))) Использовать можно, но лучше просто всю страницу обновлять, т.к. нагрузка на браузер меньше.
foolhome писал(а):Теперь, еще одна хотелка появилась, есть отображение ADC 0-1023, возможно ли преобразовать отображение, например 0 - это минус 40 градусов, а 1023 - это плюс 40 градусов, а страница сама пересчитала и теперь образно говоря при нулевой температуре, мы бы видели на экране 0, а не загадочную цифру 512.
Почти доделал, будет в бета версии...

А пока что тестируем 1.2a ;). Могут быть глюки, но это лечиться. Советую посмотреть файл плагина с описанием настроек.
Вложения
PortWidget_v1.2a.rar
(69.71 КБ) 125 скачиваний

GruNT
Сообщения: 281
Зарегистрирован: 27 авг 2014, 16:42

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение GruNT » 08 окт 2016, 13:17

Пожелания или критика есть?

alexsis_76

Re: Разработка Web-интерфейса. (модульная CMS)

Сообщение alexsis_76 » 08 окт 2016, 15:24

до кучи всякие индикаторы можно пределать
Как обеспечить безопасность такого общения?
логин/пароль

Ответить