Опрос


Что для Вас Умный Дом?


Результаты

MegaD-Panel - простой Web-интерфейс для управления MegaD-328

20/02/2014 17:08:59

Ни для кого не секрет, что в любой сложной системе наличие оборудования (или как мы часто говорим "железа") - только половина дела. Даже самое распрекрасное устройство без соответствующего программного обеспечения - просто кусок текстолита и пластика. В этом смысле большое преимущество контроллера MegaD-328 заключается в том, что часть программных функций оно может взять на себя. Встроенный Web-интерфейс, сценарии по умолчанию, автоматический опрос датчиков - все это уже делает устройство вполне боеспособным в области домашней автоматизации. Но все-таки идеология и философия проекта MegaD-328 предполагает наличие в системе главного управляющего элемента - центрального компьютера. Даже в таких сложных системах как автомобиль, пассажирский лайнер или даже космический корабль, всегда есть центральный блок управления. Ведь без такого элемента практически невозможно обеспечить абсолютную гибкость и функциональность системы.

И вот тут мы понимаем, что на сервере должно быть установлено некое программное обеспечение, которое бы выступало посредником между пользователем и контроллером, между высокоуровневыми алгоритмами и контроллером. Ведь встроенный Web-интерфейс устройства MegaD-328 не предназначен для управления конечными пользователями (детьми, женами и прочими родственниками). В силу ограничений микроконтроллера невозможно реализовать в нем что-то по-настоящему красивое. Нужна своеобразная прослойка, посредник, который со стороны пользователя отобразит функциональность системы в более-менее презентабельном виде, а уже с устройством будет говорить на его машинном языке.

Можно было бы сказать: "Господа, это же устройство для гиков, для энтузиастов! Вот вам железка, делайте с ней все что душе угодно...", но это было бы неправильно. Ведь далеко не каждый человек способен быстро разобраться во всех нюансах Web-технологий и сделать такую программную прослойку самостоятельно. Нужно с чего-то начать, понять как это все устроено, получить пример. В этом плане представленный на сайте ранее Демо-интерфейс Умного Дома, который использует MySQL и CMS, слишком сложное и громоздкое решение. Нужно было что-то попроще, поэтому я решил предложить начинающим пользователям MegaD-Panel.

MegaD-Panel - это очень простой Web-интефейс для управления доступными в сети устройствами MegaD-328. Для его работы не нужна СУБД, а значит и не нужно загружать никакие дампы. Все, что необходимо - это установленный PHP и Web-сервер (Apache).

В Linux делается это буквально одной командой

apt-get install apache2 php5

В Windows чуть сложнее, но не на много. Воспользуйтесь поиском в Яндекс или Google "Установка Apache и PHP в Windows" - найдете пару десятков внятных инструкций. Можно также воспользоваться готовыми сборками, такими как Denwer (Денвер), куда уже входит все необходимое.

После установки Apache и PHP5 вам остается только скачать и распаковать в домашнюю папку Web-сервера MegaD-Panel
http://ab-log.ru/files/File/megad-panel/megad-panel-12.zip

Теперь, если все настроено правильно, нужно лишь запустить браузер и задать URL

http://[имя или IP-адрес]/panel
или
http://[имя или IP-адрес]/panel/index.php

Хочу только отметить, что MegaD-Panel - это не какое-то многофункциональное решение. Задача этого простого Web-интерфейса скорее образовательная, демонстрационная. Поскольку скрипты не кодированы и очень просты, вы можете самостоятельно вносить в них любые изменения, понять принцип работы с устройствами MegaD-328, использовать этот код в качестве примера, отправной точки для вашего дальнейшего творчества.

Слева в меню расположен список доступных устройств MegaD-328 Kit (названия которым вы можете определить самостоятельно), а также кнопка "Добавить", позволяющая добавить в систему новое устройство.

Выбрав в меню конкретное устройство, вы увидите на экране текущее состояние всех 14 портов устройства. Отмечу, что каждые 3 секунды состояние портов обновляется. Портами типа OUT (выход) можно управлять. Также можно включить или выключить все "выходы". Внизу страницы вы можете видеть кнопку "Настроить". Нажмем на нее.

Здесь вы можете указать отображаемое имя устройства, его IP-адрес, пароль, а также человеческие наименования портов устройства. Все настройки сохраняются в файле dev_conf.json (в формате JSON), который вы можете также отредактировать в любом текстовом редакторе.

Глобальные настройки этого простого Web-интерфейса хранятся в файле config.php
Важная настройка - периодичность обновления данных в режиме отображения портов устройства.
var $update_time = 3; // Значение по умолчанию - 3 секунды.

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

Я думаю, это простая разработка поможет начинающим пользователям в освоении Web-технологий и интеграции готового устройства MegaD-328 в систему автоматизации дома.
 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2017-01-12 20:11:23 | Андрей
Андрей, спасибо, все получилось


2017-01-12 18:21:24 | Andrey_B
Андрей, если при выводе виден PHP-код, то, возможно, следует включить
short_open_tag = On
в настройках PHP (php.ini)


2017-01-11 23:22:55 | Андрей
Здравствуйте, Андрей. Все установилось нормально , но не видит в сети megaD- выскакивает : Ошибка! Не удалось установить соединение с устройством по адресу: ".$megad->conf[$device_list[$j]]['ip']."
"; if ( $megad->demo == "true" ) echo '
Включен демо-режим , хотя устройство в сети есть -работает нормально , IP прописан, что может быть?


2016-02-24 19:07:52 | Andrey_B
Андрей, нужно разбираться на месте. Это не специфическая ошибка. Исходя из доступной информации нельзя сделать никакого предположения.


2016-02-24 12:46:37 | Андрей
Добрый день. При попытке создать свою панель и сохранить выскакивает Warning: Invalid argument supplied for foreach() in paneledit.php on line 22


2016-01-25 17:27:28 | Andrey_B
Алексей, я понял о чем идет речь. Не помню откуда она и зачем. Думаю, можно ее удалить.


2016-01-25 16:23:42 | Алексей
Ссылка на файл написана в начале файла header.php


2016-01-24 17:03:31 | Andrey_B
Алексей, если работает без этого файла, значит он лишний. Я серьезно.
Не помню откуда взялась эта ссылка. Надо удалить.


2016-01-23 18:11:32 | Алексей
Добрый день. Запустил панель на mikrotik crs125-24g-1s-2hnd-in(позже можно будет статью написать), все замечательно работает, кроме одного: не хватает файла f/engage.itoggle.css, где его можно скачать?

2016/01/23 14:43:40 [error] 15050: 69 open() "/www/f/engage.itoggle.css" failed (2: No such file or directory), client: 192.168.88.253, server: 192.168.88.5, request: "GET /f/engage.itoggle.css HTTP/1.1", host: "192.168.88.5", referrer: "/192.168.88.5/control.php?id=1"


2016-01-21 22:54:36 | Алексей
Спасибо


2016-01-21 11:40:33 | Andrey_B
Алексей, в настройках php.ini нужно включить опцию short_open_tag.


2016-01-19 23:00:25 | Алексей
При запуске появляется ошибка "Fatal error: Class 'conf' not found in /usr/share/htdocs/megad_class.php on line 6"
Может не хватает какого то модуля в PHP?


2015-10-19 10:30:22 | Alex
Спасибо , за ответ , опыта пока не хватает. Но все запускается под Winдой( Опен сервер), а в Debian не хочет , любые другие сайты , включая и пример Вашего "Демо интерфейса" работают.


2015-10-19 10:30:13 | Andrey_B
Alex, вам нужно включить в php отображение ошибок "display_errors" и посмотреть что в действительности происходит.
HTTP 500 Internal Server Error - вообще говорит о неправильной настройке Web-сервера и к скриптам отношения обычно не имеет.


2015-10-19 00:28:34 | Alex
Простите , но не работает, просто белый экран в Хроме , а эксплойрер пишет ошибка HTTP 500


2015-09-26 09:01:35 | Роман
Андрей,здравствуйте!Когда планируете "подредактировать" panel,чтобы была поддержка контроллера MegaD-14-IN?


2015-09-05 12:18:20 | Andrey_B
Andre, простите, конечно, но если у вас не работает какая-то вещь, это вовсе не означает, что эта вещь неисправна.
Никаких html файлов в архиве (который, к слову, zip, а не rar) быть не должно.


2015-09-05 09:47:29 | Andre
Панель не работает -- HTTP 500. ps В архиве megad-panel.rar должны присутствовать файлы типа .html