На данный момент мной написана простенькая библиотека на php для работы с MegaD
Умеет парсить формы, менять состояния портов, настраивать Мегу, выполнять сценарии, "рисовать" формы (аналогичные веб интерфейсу Меги).
Всё было хорошо, но эта библиотека потихоньку переросла в Bundle к фреймворку Symfony2, на которой у меня крутится вся web-часть умного дома и обросла зависимостями.
Буквально на днях решил убрать зависимости и сделать её отдельным компонентом.
Вот скриншоты (Юзверь интерфейс настраивается как угодно, поля, тексты, лэйблы для форм.)
Общая архитектура моего приложения на Symfony примерно следующая.
Приложение, у него есть "категории" (мультимедия, файлы, железки...).
У каждой категории свои модули.
Например для добавления 1-wire, нужно добавить модуль в категорию управления железками.
Полностью независимые части приложения.
шаблоны, переводы, формы.
Миграция на другую базу данных не сильно сложная.
Логика консольных команд:
Код: Выделить всё
// sos сигнал лампочкой
$mega
->getPort(11)
->off()
->flash(0.3, 0.3, 3)
->flash(1, 0.3, 3)
->flash(0.3, 0.3, 3)
;
Код: Выделить всё
// условия
$mega
->getPort(11)
->off()
->getMega()
->getPort(3)
->setPwm(100)
->delay(0.3)
->setPwm(90)
->delay(0.3)
// ........
->setPwm(0)
->off()
->getMega()
// и так далее...
;
По сути этот модуль - одна вкладка http://ab-log.ru/demo/.
Но работает, как отдельное приложение.
В качестве фреймворка можно использовать что угодно. Но уже большая часть есть и написана с помощью симфонии. Портировать на другие CMS или фреймворки, пока будет затруднительно
Заинтересовавшихся в тестировании и непосредственно в веб-приложении, CMS с помощью CMF прошу под кат.