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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

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

Сообщение Andrey_B » 01 сен 2016, 11:06

Alex_Jet писал(а):Или все гораздо проще: Monitor 1 - это картинка с камеры 1, Monitor 3 - это картинка с камеры 3
Именно так.
Alex_Jet писал(а):а на главной странице попеременно меняются изображения с них?
Не попеременно, а по клику на изображение.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 01 сен 2016, 14:18

Andrey_B писал(а): Не попеременно, а по клику на изображение.
Спасибо! Я голову сломал как это все работает! Вынужден Вас попросить как-то минимально задокументировать возможности демонстрационного веб-интерфейса умного дома на вашем сайте. Иначе очень многие сломают копья прежде чем разбирутся со всеми возможностями. Заранее спасибо! Я реально много времени убил на разборку Ваших скриптов (с php дела не имел, но сейчас освоил)! Если бы эти моменты были задокументированы, было бы значительно легче.
Последний раз редактировалось Alex_Jet 01 сен 2016, 14:36, всего редактировалось 2 раза.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 01 сен 2016, 14:34

Еще у меня возник неприятный момент, который пока не поддаётся решению: ab-cms вынесен на уровень вверх из директории сайта умного дома. Во всех скриптах путь к ab-cms изменен (../ab-cms/...) - все данные из БД читаются нормально, записываются тоже, кроме скриптов, указанных в cron! При вызове скриптов из командной строки или из браузера данные записываются в БД, cron же как будто не вызывает скрипты (попробую добавить вывод лога в файл чтобы понять где спотыкается). В чем может быть проблема?
Сейчас тот же скрипт опроса портов megad работает нормально с ab-cms~, временно оставленной в директории сайта умного дома.

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

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

Сообщение Andrey_B » 01 сен 2016, 14:59

Попробуйте вызывать скрипты из cron'а так: cd /var/www/[путь к каталогу]; php script.php

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 02 сен 2016, 20:57

Andrey_B писал(а):Попробуйте вызывать скрипты из cron'а так: cd /var/www/[путь к каталогу]; php script.php
Я просто не знаю как это назвать... unix-парадокс! Так как Вы написали - все работает!!!

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 03 сен 2016, 00:28

To Andrey_B: как знаток php подскажите конструкцию чтобы парсить данные получаемые с DHT22 легче, чем это у меня получается:

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

$temp_id3 = $ab->get_id("temp_in_server_room");
$hum_id1 = $ab->get_id("humidity_in_server_room");
$DHT_value = file_get_contents('http://192.168.12.20/sec/?pt=30&cmd=get');
list($temp, $hum) = explode("/", $DHT_value);
$DHT_temp = explode(":", $temp);
$DHT_hum = explode(":", $hum);
$ab->mod_write($temp_id3, "SYSDATE(), $DHT_temp[1]");
$ab->mod_write($hum_id1, "SYSDATE(), $DHT_hum[1]");

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

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

Сообщение Andrey_B » 03 сен 2016, 10:14

Alex_Jet, а что значит "легче"?
Код может быть: понятнее, читабельнее, короче, производительнее, изящнее, извращеннее и т.д.
Если стоит задача сломать мозг человеку, который никогда не видел регулярных выражений, то можно воспользоваться вот такой конструкцией:

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

list($temp, $hum) = explode(":", preg_replace("/.*:(\d+.\d+).*:(\d+.\d+)/", "$1:$2", file_get_contents('http://192.168.12.20/sec/?pt=30&cmd=get')));

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 03 сен 2016, 16:55

Легче для меня - это более короткая комбинированная запись. Да, с регулярными выражениями я за пол ночи не смог нормально разобраться - абракадабра еще та:) Моя запись скорее понятнее, что тут производительнее надо еще подумать. Спасибо!

volkarti
Сообщения: 171
Зарегистрирован: 04 фев 2015, 09:11
Откуда: Екатеринбург

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

Сообщение volkarti » 20 сен 2016, 15:53

Добрый день всем
Добрался до предложенного на данном сайте - домашнего сайта(ab-log-demo2.zip)
Развернул архив, создал базу данных, но при обращении по сети сайт не загружается - пустое окно.
О своей системе: Debian 7, apache2

пароль и пользователя в файле поменял
и еще проверил: создал в корне var/www файл index.php с содержимым : <?php ...... >
при обращении адрес/index.php - работает


что нужно настроить чтобы заработал предложенный сайт ?

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

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

Сообщение GruNT » 20 сен 2016, 16:09

А config определил?

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

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

Сообщение GruNT » 20 сен 2016, 16:10

ab-cms/config.php
И посмоти что браузер в консоли пишет...

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

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

Сообщение Andrey_B » 20 сен 2016, 16:26

volkarti, пустое окно чаще всего говорит о наличии ошибки, когда вывод ошибок отключен.
В php.ini
display_errors = On
short_open_tag = On

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 20 окт 2016, 23:18

Андрей, подскажите - в ab-data.php при разборе alarm в системе есть строка обращения к БД:

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

echo $ab->mod_read($ab->get_id("alarm"), "<strong><font color=\"#EE2211\">#event_date# - #event_title#</font></strong><br>", "event_date DESC");
Не могу понять - для чего она и что это делается? По идее если авария есть, то она должна в БД записываться, тут же происходит чтение для чего-то...

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 20 окт 2016, 23:35

Еще вопрос. Пишу скрипт по скачиванию с IP-камер скриншотов по tcp-сокету. Все работает, но не могу в БД записать состояние камер. Точнее не получается сделать функцию записи состояния камер в БД:

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

function Alarm_Camera_Write($camera_id, $camera_label, $status)
{ $camera_addr = $ab->mod_read($camera_id, "#key_addr#", "", 1, "key_label='$camera_label'");
  $alarm_camera_tmpID = $ab->mod_read($camera_id, "#tmpID#", "", 1, "key_label='$camera_label'");
  $ab->mod_write($camera_id, "key_pio='$status'", "key_label='$camera_label'");
  $ab->mod_write($camera_journal_id, "SYSDATE(), '$camera_label', '$status'");
}

$camera_id = $ab->get_id("cams");

for ( $i = 1; $i < 6; $i++ )
{ $camera_label = "Camera" .$i;
  if($i == 2 || $i == 4) $status = 1;	//Для проверки работы
  else $status = 0;				//Для проверки работы
  Alarm_Camera_Write($camera_id, $camera_label, $status);
}
Ругается на строку "$camera_addr = $ab->mod_read($camera_id, "#key_addr#", "", 1, "key_label='$camera_label'");" следующим образом:

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

PHP Fatal error:  Call to a member function mod_read() on null in /var/www/smart-home/make_snap~.php on line 20

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

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

Сообщение Andrey_B » 21 окт 2016, 11:07

Alex_Jet писал(а):Не могу понять - для чего она и что это делается? По идее если авария есть, то она должна в БД записываться, тут же происходит чтение для чего-то...
Пользовательский Web-интерфейс не генерирует сообщения об авариях. В нем аварии возникнуть не могут. Но пользовательский Web-интерфейс отображает информацию об авариях, которая записана в БД другими скриптами.
Alex_Jet писал(а):PHP Fatal error: Call to a member function mod_read() on null
Наверное, все дело в том, что внутри функции своя область видимости. Внутри функции не видны переменные/объекты, созданные за ее пределами.
Либо нужно объявлять $ab глобальной переменной, либо создавать экземпляр класса внутри функции. Это если мы не хотим наследовать класс и дописывать свои методы к нему.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 21 окт 2016, 12:49

Andrey_B писал(а):Пользовательский Web-интерфейс не генерирует сообщения об авариях. В нем аварии возникнуть не могут. Но пользовательский Web-интерфейс отображает информацию об авариях, которая записана в БД другими скриптами.
ОК, тогда объясните, пожалуйста, что это такое в демо-интерфейсе читается из БД и как должно отобразиться в веб-интерфейсе? Что вообще означает запись такого вида при чтении alarm из БД:

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

"<strong><font color=\"#EE2211\">#event_date# - #event_title#</font></strong><br>", "event_date DESC"
Вижу, что в CMS у alarm есть два поля - event_date и event_title.
Andrey_B писал(а):Наверное, все дело в том, что внутри функции своя область видимости. Внутри функции не видны переменные/объекты, созданные за ее пределами.
Либо нужно объявлять $ab глобальной переменной, либо создавать экземпляр класса внутри функции. Это если мы не хотим наследовать класс и дописывать свои методы к нему.
По этому понятно. Спасибо!

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

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

Сообщение Andrey_B » 21 окт 2016, 13:04

Alex_Jet, если какой-то скрипт/программа решит, что произошло какое-то важное событие, он запишет информацию в эту таблицу. А веб-интерфейс просто отобразит эти данные. По-моему, здесь все предельно просто.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 24 окт 2016, 14:12

Принцип понял. И на практике получил в веб-интерфейсе то, что записал в alarm. Спасибо.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 09 ноя 2016, 17:10

Вопрос по AB-CMS. Есть раздел "Датчики температуры" - как узнать ID документов (выделены зеленым), входящих в этот раздел?
Структура AB-CMS_Alex_Jet.png
Структура AB-CMS_Alex_Jet.png (21.2 КБ) 3095 просмотров

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

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

Сообщение Andrey_B » 09 ноя 2016, 17:27

Смотря для чего.
А вообще есть методы cat_read() и select(SQL-запрос).

Ответить