Готовое решение.

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
x13dev
Сообщения: 396
Зарегистрирован: 22 окт 2012, 11:40
Откуда: Бавария

Re: Готовое решение.

Сообщение x13dev » 12 дек 2013, 12:18

Andrey_B писал(а):Принимаются любые предложения и мысли по этому поводу. Например: "Хочу, чтобы для каждого порта можно было выбрать иконку" или что-нибудь в этом духе.
Хочу, чтобы Мегадевайс можно было настраивать из этого-же интерфейса. Например порты [In, Out, ADC, DSen, PWM]. :oops:

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

Re: Готовое решение.

Сообщение Andrey_B » 12 дек 2013, 12:45

x13dev, стоит сказать, что текущий "эскиз" на уровне кода адаптирован под исполнительный модуль MegaD-7I7O для того, чтобы неопытные пользователи не включали "Входы". Но эти ограничения можно позже снять/настраивать. Сделать системную настройку Мегадевайса из этого интерфейса, конечно, можно. Но я бы отложил эту задачу на более поздние этапы. Сейчас мне бы хотелось получить отклик по визуальной части и по функциональности управления устройствами.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: Готовое решение.

Сообщение Mixman » 12 дек 2013, 13:42

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

Mildenbp
Сообщения: 63
Зарегистрирован: 07 окт 2013, 11:20

Re: Готовое решение.

Сообщение Mildenbp » 12 дек 2013, 15:13

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

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: Готовое решение.

Сообщение Mixman » 12 дек 2013, 15:25

И чем в корне интерфейс устройства отличается от этого? Только тем, что все лампочки выведены на одну страницу.

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

Re: Готовое решение.

Сообщение Andrey_B » 12 дек 2013, 15:45

Mixman, в данном случае речь о том, чтобы помочь начинающему пользователю побороть свои страхи и войти в наше священное озеро. ;) Как только пользователь поймет, что не так страшен черт, он, возможно, захочет проникнуться и более тонкими материями. Но с чего-то же надо начинать, пройти, так сказать, курс молодого бойца.

Что касается функциональности. Чем это отличается или может отличаться от Web-интерфейса, встроенного в устройство.
1. В меню мы здесь видим все наши устройства, которые могут иметь человеческие имена. То есть нет необходимости запоминать IP-адреса
2. Входы и выходы также подписаны и мы можем управлять портами четко зная что мы включаем и выключаем
3. Все же интерфейс более удобен
4. Его можно установить на сервер/роутер и управлять Мегадевайсам по Интернету

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

Добавление: Теперь появилась возможность одним кликом включать или выключать все входы. Ссылка на архив прежняя.
http://ab-log.ru/files/File/megad-panel/megad-panel.zip

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Готовое решение.

Сообщение lion_sm » 12 дек 2013, 17:57

Andrey_B, не скачивал еще, не смотрел на функционал "минисервера", пока не обзавелся Мегадевайсом.
Возможно, будет интересна группировка портов по определенному признаку (id), и управление не только одним портом/всеми, а группой

To_
Сообщения: 40
Зарегистрирован: 06 ноя 2011, 20:52

Re: Готовое решение.

Сообщение To_ » 12 дек 2013, 20:45

У меня то же нет Мегадевайса. Думалось будут отдельные модули с пояснением их работы. Например работа кнопок на панели. Возможно ли поставить пока "заглушки", что бы разобраться в в самих программах. Без девайса я так понимаю не работает интерфейс.

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

Re: Готовое решение.

Сообщение Andrey_B » 13 дек 2013, 11:10

lion_sm, интересная мысль по поводу группировки. Нужно подумать.

To_, внес коррективы. Теперь можно отредактировать файл config.php и переменной $demo присвоить "true", тогда интерфейс будет работать и без Мегадевайса.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: Готовое решение.

Сообщение Mixman » 13 дек 2013, 14:02

Может проще сделать проверку на файлик "demo.txt"? Присутствует - демо режим, удалили - работаем с мегой. Для новичка мне кажется проще, чем менять переменную, особенно вспоминать как она правильно пишется да еще не забыть точку с запятой после.

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

Re: Готовое решение.

Сообщение Andrey_B » 13 дек 2013, 14:08

Там уже все прописано. Нужно только поменять false на true.

Acid_Reptile
Сообщения: 21
Зарегистрирован: 15 окт 2013, 09:04

Re: Готовое решение.

Сообщение Acid_Reptile » 13 дек 2013, 17:34

Andrey_B писал(а):Там уже все прописано. Нужно только поменять false на true.
К моему сожалению, не заработало на lighttpd

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

conf[$_REQUEST['id']]); $megad->write_conf(); } ?>
Мой дом

MegaD-Panel - Это простой интерфейс, позволяющий управлять устройствами MegaD-328 и получать информацию о текущем состоянии портов.

Для работы интерфейса не требуется База Данных.

Слева в меню вы можете выбрать существующее устройство или добавить новое. Наименования портов настраиваются.

    menu(); ?> 


Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Готовое решение.

Сообщение Dron » 13 дек 2013, 17:44

Andrey_B, можно добавить немного интерактивности (обратной связи) в скрипт. дело 2х минут.
если код некрасив/избыточен, а он избыточен, прошу не ругать))) это просто передача идеи.

1. сделать файл update.php в корне с содержимым:

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

<?
require_once("megad_class.php");
$megad = new megad();
for ( $i = 0; $i < 14; $i++ )
{
	$state = $megad->get($_GET['id'], $i);
	if ( preg_match("/^ON/", $state) )
	$checked = ' checked="checked"';
	else
	$checked = '';
	
	if ( $i < 7 )
	echo "<p><input type=\"checkbox\" class=\"iToggle\" id=\"example\" data-label-on=\"on\" data-label-off=\"off\"$checked disabled> <b>".$megad->conf[$_GET['id']]["P".$i]." (IN P$i)</b> </p>";
	else
	echo "<p><input type=\"checkbox\" class=\"iToggle\" data-label-on=\"on\" port=\"$i\" data-label-off=\"off\" value=\"1\"$checked /> <b>".$megad->conf[$_GET['id']]["P".$i]." (OUT P$i)</b> </p>";
}
?>
2. в скрипт control.php в конец javascript-а добавить

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

	setInterval(function(){
		$.get('./update.php', {id: id}, function(res){
			$('#forma').html(res);
			var my_toggle = $('.iToggle').iToggle(
			{
				callback_func: function(data)
				{
					$.get("megad-ajax.php",
					{
						id : id,
						port : data.attr("port"),
						state : data.prop("checked"),
					}, function(data2){} );
				}
			});
		});
	}, 3000);
теперь при изменении любого контакта это отобразится и в интерфейсе. для демонстрации (не для демо-режима) можно открыть ссылку в 2х браузерах

-----
upd:
ps у этого способа есть маленький недостаток: при попадании на момент обновления данных клик по выключателю может не сработать. хотя это попадание и маловероятно.

конечно лучше просто забирать данные и менять состояние чекбоксов
Последний раз редактировалось Dron 13 дек 2013, 17:56, всего редактировалось 3 раза.

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Готовое решение.

Сообщение Dron » 13 дек 2013, 17:47

Acid_Reptile писал(а): К моему сожалению, не заработало на lighttpd
измените в php.ini параметр short_open_tag на On

Acid_Reptile
Сообщения: 21
Зарегистрирован: 15 окт 2013, 09:04

Re: Готовое решение.

Сообщение Acid_Reptile » 13 дек 2013, 17:59

Dron писал(а):
Acid_Reptile писал(а): К моему сожалению, не заработало на lighttpd
измените в php.ini параметр short_open_tag на On
Спасибо, заработало!

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

Re: Готовое решение.

Сообщение Andrey_B » 16 дек 2013, 19:24

Реализовал немного по-своему предложение Dron о добавлении в интерфейс интерактивности.
Теперь состояния портов обновляются автоматически.
По умолчанию обновление происходит один раз в 3 секунды.
Настроить это можно в файле config.php
$update_time = 3;
Здесь указывается время в секундах. Значение 0 будет означать - не обновлять состояния портов.
Новый архив по прежнему адресу
http://ab-log.ru/files/File/megad-panel/megad-panel.zip

To_
Сообщения: 40
Зарегистрирован: 06 ноя 2011, 20:52

Re: Готовое решение.

Сообщение To_ » 16 дек 2013, 20:16

Andrey_B писал(а):Реализовал немного по-своему предложение Dron о добавлении в интерфейс интерактивности.
Теперь состояния портов обновляются автоматически.
По умолчанию обновление происходит один раз в 3 секунды.
Настроить это можно в файле config.php
$update_time = 3;
Здесь указывается время в секундах. Значение 0 будет означать - не обновлять состояния портов.
Новый архив по прежнему адресу
http://ab-log.ru/files/File/megad-panel/megad-panel.zip

С заглушкой периодически не срабатывают выключатели. Так и должно быть?

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

Re: Готовое решение.

Сообщение Andrey_B » 17 дек 2013, 12:22

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

NE_XT
Сообщения: 9
Зарегистрирован: 18 дек 2013, 14:50

Re: Готовое решение.

Сообщение NE_XT » 18 дек 2013, 17:43

Мой первый пост:)
Мегадевайс заинтересовал, решил "пощупать" для начала. Больше всего интересует управление, поэтому я в этой ветке. Скачал, прочитал, исправил все как тут написано. Вебсервер uhttpd стоит на роутере 703N. Первое - кирилица у меня кракозябры, но попробую сам или исправить или переведу на английский. Ну и не запускается демо : "Fatal error: Call to undefined function json_decode() in /www/panel/megad_class.php on line 17". Немогу понять причину.

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

Re: Готовое решение.

Сообщение Andrey_B » 18 дек 2013, 17:49

NE_XT, кодировка интерфейса - UTF-8
Странно, проблем быть не должно.

Какая версия у вас PHP?
Функции json появились в версии PHP 5.2.0 и выше.

Ответить