Web-интерфейс Умного Дома и разработка домашнего сайта

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Mixman » 24 дек 2013, 23:29

А как?

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

<ul>
<li>
<ul><li></li></ul>
</li>
</ul>
Так не работает в main.php либо я что-то не так делаю.

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

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

Таб создается так:

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

...
<script type="text/javascript">	$(function() { $('#tabs2').tabs(); }); </script>
....
<li><a href="#ui-tabs-7"><span style="float:left;margin-right:3px;" class="ui-icon ui-icon-volume-on"></span> Родительский таб</a></li>
....
	<div id="ui-tabs-7">  <!-- Это DIV с контентом родительского таба -->
		<div id="tabs2">
			<ul>
				<li><a href="#test1">Test 1</a></li>
				<li><a href="#test2">Test 2</a></li>
			</ul>
			
				<div id="test1">1</div>
				<div id="test2">2</div>
		</div>
	</div>

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Mixman » 25 дек 2013, 13:53

Сделал - ничего не изменилось :(

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Andrey_B » 25 дек 2013, 16:10

Mixman, это не наш метод. Наш метод "веб консоль", "инспектор" и другие полезные инструменты. У меня локально работает. Да и не может не работать.
А если уж не работает, создайте статичный (тестовый, синтетический) HTML с парой табов и вложенной конструкцией (без привязки к механике) и опубликуйте - будем смотреть.

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Mixman » 25 дек 2013, 17:53

Разобрался :)
Теперь бы в "подтабы" вставлять динамически информацию, так же как и в табы верхнего уровня.

Добавка

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

<li><a href="#test1"  url="ab-pages.php?p=media">Test 1</a></li>
ничего не дает. Как обрабатывать инфу в них?

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Andrey_B » 25 дек 2013, 17:57

Надо, наверное, соответствующим образом объявить tab
то есть вместо
$('#tabs2').tabs();
надо
$('#tabs2').tabs({create: function(event, ui) { $(ui.panel).load(ui.tab.find('a').attr('url'));}});
ну то есть как-то так, подобно родительскому табу.

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Mixman » 25 дек 2013, 18:06

Спасибо, заработало... теперь css подправить надо :)

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Mixman » 27 дек 2013, 08:25

Нашелся глюк, открываем сайт, перехолим на 7-ю вкладку - все норм. есть подвкладки... Жмем например на 4-ю, а потом обратно на 7-ю... и тут засада...

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Andrey_B » 27 дек 2013, 11:50

Никакого глюка нет. Видимо, вы что-то не так или не туда прописали.

1. Открываем main.php

а) Добавляем новую закладку (не забывая, указать правильный 'href' и 'url'

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

<li><a href="#ui-tabs-7" url="ab-pages.php?p=test"><span style="float:left;margin-right:3px;" class="ui-icon ui-icon-volume-on"></span> Test</a></li>
б) Добавляем соответствующий ей div

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

<div id="ui-tabs-7"></div>
2. Открываем ab-pages.php
а) Добавляем код, который выполняется при запросе ?p=test

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

	if ( $_REQUEST['p'] == "test" )
	{

		?>
		<scripT type="text/javascript">
		$(function()
		{
			$.ajaxSetup({ cache: false });

			$('#tabs2').tabs(
			{
			create: function(event, ui) { $(ui.panel).load(ui.tab.find('a').attr('url')); },
			beforeActivate: function(event, ui) {
				$(ui.oldPanel.selector).stopTime();
				$(ui.oldPanel).empty();
				$(ui.newPanel).load(ui.newTab.find('a').attr('url'));
				}
			}
			);
		
		});

		</script>
	
		<div id="tabs2">
			<ul>
				<li><a href="#ui-tabs2-1" url="ab-pages.php?p=test1"><span style="float:left;margin-right:3px;" class="ui-icon ui-icon-home"></span> Test1</a></li>
				<li><a href="#ui-tabs2-2" url="ab-pages.php?p=test2"><span style="float:left;margin-right:3px;" class="ui-icon ui-icon-video"></span> Test2</a></li>

			</ul>

			<div id="ui-tabs2-1"></div>
			<div id="ui-tabs2-2"></div>

		</div>
		<?

	}
б) Добавляем код, который отображает содержимое вложенных вкладок

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

	if ( $_REQUEST['p'] == "test1" )
	{
		echo "text1";
	}
	if ( $_REQUEST['p'] == "test2" )
	{
		echo "text2";
	}
3. Радуемся зимнему солнцу.

Antti
Сообщения: 35
Зарегистрирован: 01 фев 2012, 01:11

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Antti » 04 фев 2014, 01:24

Подскажите, все перепробовал, а картинки при обновлении моргают, что я не так делаю ?

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

                <scripT type="text/javascript">

                $(document).ready(
                function()
                {
                        $.get("data.php?g=main", function(data){$("#main").html(data);});
                        $.get("data.php?g=valokuva", function(data){$("#valokuva").html(data);});
                });


                var tab_index = $('#tabs').tabs("option", "selected") + 1;

                $('#ui-tabs-' + tab_index).everyTime(60000, function(i) {
                        $.get("data.php?g=main", function(data){$("#main").html(data);});
                });

                $('#ui-tabs-' + tab_index).everyTime(60000, function(i) {
                        $.get("data.php?g=valokuva", function(data){$("#valokuva").html(data);});
                }); 
 

                </script>

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

<div class="grid_5">
        <div id="valokuva" class="ui-corner-all ui-state-default" style="overflow: hidden" align="center">
        </div>
</div>
А это уже в файле data.php

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

if ( $_REQUEST['g'] == "valokuva" )
{?>

<div>
    <img src="http://www.portofhelsinki.fi/tailored/prime_product_julkaisu/helsinginsatama/web/ImageProxy.aspx?imagefilename=image_00001.jpg" width="380" height="240">
</div>

<?}
И причем не важно, локально лежит картинка, или удаленно, все равно моргает...

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Andrey_B » 04 фев 2014, 12:23

Antti, это от браузера зависит. В IE8 моргает, в FF26 или Chrome32 нет.

Antti
Сообщения: 35
Зарегистрирован: 01 фев 2012, 01:11

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Antti » 04 фев 2014, 14:09

Да, простите, забыл уточнить, проверяю конечно же в Хроме, причем на стационарном компе и айпаде одинаково...
Когда открываю ссылку, которая должна обновляться просто на отдельной странице, картинка не моргает, меняется только движущиеся детали... Хочу добиться того же эффекта в веб интерфейсе УД.... :cry:

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Andrey_B » 04 фев 2014, 16:05

Antti, вероятно дело в том, что я обновляю сами картинки, то есть меняю свойство src тэга img
Вы же меняете целиком html элемента.

Antti
Сообщения: 35
Зарегистрирован: 01 фев 2012, 01:11

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Antti » 05 фев 2014, 02:50

Андрей, благодарю за подсказку, действительно, все получилось, теперь все красиво и не дергается.

Rulkin
Сообщения: 7
Зарегистрирован: 07 фев 2014, 00:28

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Rulkin » 07 фев 2014, 00:53

небольшой скриптик в копилку.
вносит в БД данные о температуре с yandex-a

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

<?
/*
* Copyright (c) 2013, Andrey_B
* http://ab-log.ru
* pool_yandex.php
*/

require_once("ab-cms/class/main_class.php");
$ab = new cms_lib();

// yandex temp
    $city_id=26063; // id города (Питер)
    $data_file="http://export.yandex.ru/weather-ng/forecasts/$city_id.xml"; // адрес xml файла

              $xml = simplexml_load_file($data_file); // раскладываем xml на массив
             $temp_ya=$xml->fact->temperature;
// echo "$temp_ya"

$result = $ab->select("SELECT b.ContID, c.ListID, b.Value, c.Cont_Label, c.Reserved_Text
                        FROM tContField a, tContFieldExt b, tCont c
                        WHERE a.Disabled=0 AND a.ContFieldID=b.ContFieldID AND
                        a.Title='dev_address' AND b.ContID=c.ContID AND b.Value<>''");
for ( $i = 0; $i < count($result); $i++ )


$my_value = NULL;
$my_value = $temp_ya;

$ab->mod_write($ab->get_id("temp_out"), "SYSDATE(), '$my_value'");
temp_out --метка устройства в CMS

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение ArtSamovar » 27 фев 2014, 03:38

Это пример - это не полнофункциональная демо версия.

Silex + Twig + Bootstrap + немного ООП и в итоге demo version 3.0 beta.
Работает на php >= 5.3.
Apache настройте на Директорию Web.

Как поведет себя на других системах - не знаю...
Моё:

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

Linux notebook 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:13:28 UTC 2014 i686 i686 i686 GNU/Linux
Server version: Apache/2.4.6
mysql  Ver 14.14 Distrib 5.5.35, for debian-linux-gnu (i686) using readline 6.2
PHP 5.5.3-1ubuntu2.1 (cli) (built: Dec 12 2013 04:22:11)
Не забудьте про права на директории...
  • В bootstrap.php данные от базы (Без нее не работает...)
  • Затем идем по url /dumper.php, заливаем дамп от demo. (v 2.0), и обязательно s_page (тут маленькая табличка)
При константе APP_MODE равной 1, все ошибки скрываются, установите в ноль. Так же в htaccess php_flag_error в on.

Нужен мод rewrite

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

a2enmod rewrite && /etc/init.d/apache2 restart

Полностью разделена логика.
То есть, для front-end программистов (html, css, js) не нужно лезть в "дебри" логики сервера. Не нужно даже знать как извлекаются данные с датчика температурв на чердаке...
И наоборот, для back-end разработчика, для быстрой разработки чео-то нового, достаточно отдавать только массив данных, который, уже потом, обработается и нарисуется на страничке.

Работа вкладок кардинально изменена.
Для добавления новой достаточно сделать 2 вещи: создать её в админке и создать непосредственно одноименный шаблон html'ной страницы, откуда и будут "дёргаться массивы с данными". 2 варианта получения данных. или с помощью Twig'а (php), или через ajax в виде json.

Все вкладки так же работают на ajax.
НО!
При обновлении страницы, вкладка не слетает...
При просмотре исходного кода страницы (что очень удобно), виден исходный код подгружаемой страницы.
Вкладки будут работать и без включённого javascript'а (графики пока рисуются только на js - то есть они не будут работать без онного)

убраны short тэги в php.
Для тех у кого с оригинальными демками ничего не работало: Включите php.ini short_open_tag = On
У кого проблемы с timezone, с выводом дат.
В htaccess (если Apache) php_value date.timezone Europe/Region (Где Region - ваш регион)


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

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение NE_XT » 27 фев 2014, 12:49

ArtSamovar писал(а):Это пример - это не полнофункциональная демо версия.
А есть где "потыкать" онлайн по интерфейсу :) или скриншоты хотя - бы.
Лениво заморачиваться с базой.

Smirnoffkv
Сообщения: 17
Зарегистрирован: 06 мар 2014, 16:28

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Smirnoffkv » 12 мар 2014, 16:58

Пытаюсь разобраться в структуре сайта, не могу найти где записываются данные с датчиков температуры в SQL. Поменял в базе адрес temp_in на адрес моего датчика. Ничего не меняется. Подскажите где надо изменить чтобы данные с датчика записывались?

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

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Andrey_B » 12 мар 2014, 17:30

Smirnoffkv, адрес датчика записывается в поле "Адрес устройства" вкладки "Свойства" документа.
Сам web-интерфейс ничего в базу данных не записывает. Опрос датчиков осуществляется с помощью скрипта poll.php, который вызывается с помощью, например cron с нужной периодичностью (например, раз в 5 минут).

Smirnoffkv
Сообщения: 17
Зарегистрирован: 06 мар 2014, 16:28

Re: Web-интерфейс Умного Дома и разработка домашнего сайта

Сообщение Smirnoffkv » 12 мар 2014, 21:06

Адрес прописал через ab-cms, спасибо за подсказку. Poll.php записывает показания датчиков в базу? Где можно почитать про назначение других скриптов. Я только начал изучать php, пока плохо ориентируюсь. Пока получилось сделать видеонаблюдение, в конце месяца придет метео станция. Хороший проект!

Ответить