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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

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

Сообщение Haus » 09 ноя 2016, 17:31

Alex_Jet писал(а):Вопрос по AB-CMS. Есть раздел "Датчики температуры" - как узнать ID документов (выделены зеленым), входящих в этот раздел?
Структура AB-CMS_Alex_Jet.png
Зайди в интересующую папку и в строке браузера отобразится /ab-cms/index.php?p=mods&id=111&ListID=2

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

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

Сообщение Alex_Jet » 09 ноя 2016, 18:03

Если с html, php, js хоть как-то знаком, то с SQL совсем никак:). В общем мне нужно "перебрать" циклом все последние значения температур чтобы вывести их на общем плане дома.

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

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

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

Haus писал(а):Зайди в интересующую папку и в строке браузера отобразится /ab-cms/index.php?p=mods&id=111&ListID=2
Это понятно :lol: . Мне нужен автоматизированный способ. Вдруг я добавлю/удалю из раздела документы? - менять все вручную? - не серьезно!

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

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

Сообщение Andrey_B » 09 ноя 2016, 18:15

Не обязательно знать SQL.

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

$cat_id = 5; // ID раздела, можно получить с помощью метода get_id()
$doc_list = explode(";", $ab->cat_read($cat_id, "#ContID#;"));
for ($i = 0; $i < count($doc_list) - 1; $i++ )
echo $ab->mod_read($doc_list[$i], "#dev_value#<br>", "tmpID DESC", 1); // последнее записанное значение

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

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

Сообщение Alex_Jet » 09 ноя 2016, 19:53

Благодарю! Дали то что мне надо было! Теперь понимаю что такое cat и mod:).

А поля свойств документа как-нибудь читаются?

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

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

Сообщение Andrey_B » 09 ноя 2016, 20:50

В архиве ab-log-demo есть файл cms_doc.txt
Вот, выдержка из файла:

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

doc_read($id)
Описание: Считывание всех полей документа
Параметры:
$id: ID документа
Возвращает: ассоциативный массив значений полей документа
Пример:

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

$my_doc = $ab->doc_read(42);
echo $my_doc['Title'];

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

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

Сообщение Alex_Jet » 09 ноя 2016, 21:50

Как узнать наименование полей на закладке "Свойства" документа? Например, вы написали Title, а как остальные называются?

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

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

Сообщение Andrey_B » 09 ноя 2016, 21:59

Если добавить к последнему примеру...
print_r($my_doc);
... то можно узнать перечень доступных полей.

Еще в архиве есть дамп БД demo.sql, а в нем можно найти описание таблицы tCont

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

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

Сообщение Alex_Jet » 09 ноя 2016, 22:37

Большое спасибо! Это все надо в FAQ оформить)

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

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

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

Как правильно объединить callback-и ajax-запросов чтобы вставить их сумму в html? Пол ночи потратил, но задачку не решил. Есть:

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

$.get("ab-data.php?p=keys_touch&floor=1", function(data){$(".cnv1").html(data);});
$.get("ab-data.php?p=temp_icons&floor=1", function(data){$(".cnv1").html(data);});
Первый вывод данных в html затирает второй и наоборот.

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

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

Сообщение Andrey_B » 10 ноя 2016, 11:57

Не думаю, что это хорошее решение, так как Ajax-вызовы асинхронные и результат не будет предсказуемым.
Лучше внутри cnv1 завести еще два блока и загружать данные туда.

А что касается вашего вопроса, то можно попытаться сделать так:

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

$.get("ab-data.php?p=keys_touch&floor=1", function(data){$(".cnv1").html($(".cnv1").html() + data);});

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

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

Сообщение Alex_Jet » 10 ноя 2016, 12:36

Про ajax-вызовы понял. Попробую. При этом ваше решение работает:)
Добавил новые div - так же все работает как надо. Что-то не подумал я про это:(

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

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

Сообщение Alex_Jet » 15 ноя 2016, 07:14

Вдруг...перестали отображаться графики на сайте умного дома. Все работало отлично и тут вдруг перестали отображаться. Значения датчиков в БД записываются, по ajax отображаются последние значения, а все графики исчезли. Даже не знаю куда лезть и что делать. Графики строятся на основе 3-х php скриптов: graph.php (первоначальный скрипт из demo), graph_multi.php (отображение нескольких кривых, например, для el_p), graph_universal.php (скрипт позволяет отображать от 1 до 4-х крывых, значения которых в базе записаны как для модуля "Устройства" - dev_date, dev_value).

Update: В одной из папок сайта не обнаружил файлов. В итоге успел забэкапить файлы сайта умного дома. На БД забил. Попробовал reboot, на 4 секунде загрузка прервалась. Пробую hard reset, на 14 секунде загрузка прервалась... вероятно посыпалась SD (microSDHC SanDisk Ultra 16GB) вот такая: http://club.dns-shop.ru/peripheral/%D0% ... -016G-G35/. На работе сделали checkdisk на ubuntu - сразу в /root ошибки.

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

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

Сообщение Alex_Jet » 08 янв 2017, 18:41

Кто-нибудь поднимал demo Андрея на armbian (Orange Pi One)?
Установил apache2 php5 mysql-server php5-gd. В настройках web-сервера (/etc/apache2/sites-available/000-default.conf) изменил DocumentRoot на свой путь, поправил White list (/etc/apache2/apache2.conf) на свой путь, изменил short_open_tag = Off на short_open_tag = On (/etc/php5/apache2/php.ini и /etc/php5/cli/php.ini). Но сервер не запускает PHP - выдает "HTTP ERROR 500". Если не менять short_open_tag, то php не запускается (выводится в виде текста). Обычный HTML, соответственно, работает на ура.

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

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

Сообщение Andrey_B » 08 янв 2017, 20:40

Alex_Jet, нужно:
1. включить ошибки в php.ini
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
2. перезапустить Apache
3. смотреть что написано в /var/log/apache2/error.log

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

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

Сообщение Alex_Jet » 08 янв 2017, 21:22

Andrey_B писал(а):Alex_Jet, нужно
Спасибо, до дебага пока не дошел... хотя знал что надо включить логирование. При каждом запросе одна и та же ошибка:

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

[Mon Jan 09 00:17:51.069898 2017] [:error] [pid 8936] [client 192.168.10.102:61383] PHP Fatal error:  Class 'mysqli' not found in /data/www/ab-cms/class/main_class.php on line 21

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

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

Сообщение Andrey_B » 08 янв 2017, 21:28

Очевидно, что нужно установить php5-mysql

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

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

Сообщение Alex_Jet » 08 янв 2017, 21:45

Чудеса и только! Спасибо! Странно, в raspbian не устанавливал специально - видимо добавилось по зависимостям. Написал себе в комментарий:)
Еще вопрос - чтобы оставить short_open_tag = Off надо во всех php-файлах все "<?" заменить на "<?php" ?

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

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

Сообщение Alex_Jet » 12 янв 2017, 17:03

Андрей, а почему Вы используете короткие открывающие теги в своих скриптах и CMS? Почему бы не использовать полные теги?

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

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

Сообщение Andrey_B » 12 янв 2017, 17:34

Alex_Jet, вредная привычка.

Ответить