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

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

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

Сообщение Andrey_B » 03 ноя 2015, 22:43

Mixman писал(а):А можно подробнее про loop и тайминги.
В исходниках owfs
module/owserver/src/c/loop.c

было
==
struct timeval tv_long = { 1 , 000000 } ; // 1 second
struct timeval tv_short = { 0 , 500000 } ; // 1/2 second
==

стало
==
struct timeval tv_long = { 2 , 000000 } ; // 2 second
struct timeval tv_short = { 1 , 000000 } ; // 1 second
==

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

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

Сообщение Mixman » 06 ноя 2015, 22:26

Блин, решил переустановить owfs с таймингом поправленным и не могу, похоже чего-то не хватает, но не пойму чего.
Когда удалял, много чего почистил

вообщем make выдает это в конце

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

make[3]: вход в каталог «/root/owfs-3.1p0/module/ownet/php»
make[3]: Цель «all» не требует выполнения команд.
make[3]: выход из каталога «/root/owfs-3.1p0/module/ownet/php»
Making all in perl5
make[3]: вход в каталог «/root/owfs-3.1p0/module/ownet/perl5»
cd OWNet; make all
make[4]: вход в каталог «/root/owfs-3.1p0/module/ownet/perl5/OWNet»
make[4]: *** Нет правила для сборки цели «/usr/lib/perl/5.14/Config.pm», требуемой для «Makefile».  Останов.
make[4]: выход из каталога «/root/owfs-3.1p0/module/ownet/perl5/OWNet»
Makefile:570: ошибка выполнения рецепта для цели «all»
make[3]: *** [all] Ошибка 2
make[3]: выход из каталога «/root/owfs-3.1p0/module/ownet/perl5»
Makefile:490: ошибка выполнения рецепта для цели «all-recursive»
make[2]: *** [all-recursive] Ошибка 1
make[2]: выход из каталога «/root/owfs-3.1p0/module/ownet»
Makefile:500: ошибка выполнения рецепта для цели «all-recursive»
make[1]: *** [all-recursive] Ошибка 1
make[1]: выход из каталога «/root/owfs-3.1p0/module»
Makefile:556: ошибка выполнения рецепта для цели «all-recursive»
make: *** [all-recursive] Ошибка 1

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

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

Сообщение Andrey_B » 07 ноя 2015, 11:43

Mixman, если вы не используете OWNet Perl, может сделать так?
./configure --disable-owperl

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

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

Сообщение Mixman » 07 ноя 2015, 12:22

Я так понимаю, что использую, мой poll.php от вашего не отличается. Я правильно понимаю?
Тогда как его поставить?

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

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

Сообщение Andrey_B » 07 ноя 2015, 13:35

Мы используем OWNet PHP, а не Perl.

Andre
Сообщения: 28
Зарегистрирован: 06 сен 2015, 00:47

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

Сообщение Andre » 22 ноя 2015, 11:23

При http://192.168.2.3/panel/index.php в PHP редакторе выдает HTTP 500 — внутренняя ошибка сервера
При запуске в браузере, пустой лист.
При http://192.168.2.3/panel/add.php, выводит страницу add устройства, добовляю, сохранить и получаю пустой лист.
Куда копать.
Страница Apache HTTP Server 2.2 отображает ся нормально, php установлен.
На двух ПК одно и таже проблема (Windows и Ubuntu)

C:/SERVER/www/panel/f/engage.itoggle.css, referer: http://localhost/panel/add.php
[Sun Nov 22 12:18:39 2015] [error] [client 127.0.0.1] File does not exist: C:/SERVER/www/panel/f/engage.itoggle.css, referer: http://localhost/panel/add.php
[Sun Nov 22 12:35:04 2015] [error] [client 127.0.0.1] File does not exist: C:/SERVER/www/panel/device_1.html, referer: http://localhost/panel/add.php

а это php-- Fatal error: Class 'conf' not found in C:\SERVER\www\panel\megad_class.php on line 5 при пуске index.php

Andre
Сообщения: 28
Зарегистрирован: 06 сен 2015, 00:47

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

Сообщение Andre » 29 ноя 2015, 14:36

Отвечаю сам себе :D
В php.ini в строке short_open_tag поставить ON

Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

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

Сообщение Haus » 04 дек 2015, 14:59

Добрый день Андрей.
Наблюдение в ab-log-demo2.zip последнем обновление: 01.11.2015 15:13:18. находится старая версия megad-cfg.php 1.35
1. Вопрос я правильно понял что обновились только папки js2 и css2 а также в main.php версия jquery-1.11.3.main.js, наделал много переделок и переустановок Debiana под себя и даты папок и файлов с вашими не совпадают. Может в Changelog вписывать изменение каких файлов были сделаны или какие файлы добавлены.
2. В Debian 8.2 вы сайт держите в папке var/www если да то подскажите где и какие правки надо делать чтобы apache и php его там видели?

Ай да ещё забыл отредактирован скрипт web_weather.sh :D

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

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

Сообщение Andrey_B » 04 дек 2015, 15:53

Haus, Демо-интерфейс - это не коробочный продукт. Это скорее пример, на основе которого можно нарисовать что-то свое.
Поскольку я не знаю сколько людей и каким образом используют этот код, то сопровождаю его, так сказать, в "фоновом" режиме.
Какие именно изменения сделаны в последнем обновлении я уже не скажу. Changelog теоретически вести можно, конечно.
megad-cfg.php обновлю. Спасибо.

Насчет Debian 8.2 вопрос не понял.
Настройки папок обычно в Apache2 содержатся в /etc/apache2/sites-enabled/
По умолчанию файл конфигурации 000-default.conf

fish-msk
Сообщения: 18
Зарегистрирован: 25 янв 2015, 18:08
Откуда: Москва

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

Сообщение fish-msk » 27 дек 2015, 18:53

Привет друзья!

У меня стоит задача выводить на странице сайта значение ADC-порта меги и обновлять его с помощью jQuery+Ajax.

Взял за основу код обновления температуры в демо-интерфейсе:

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

$("#ui-tabs-" + tab_index).everyTime(50000, function(i) {
			$.get("ab-data.php?p=dev&id=wh_temp_out", function(data)
			{
				$("#temp_out").html(data + ' °C');
			});
});
Теперь хочу считать значение http://192.168.1.81/sec/?pt=14&cmd=get, но код

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

$.get("http://192.168.1.81/sec/?pt=14&cmd=get", function(data) { ... });
не работает, а если без http

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

$.get("192.168.1.81/sec/?pt=14&cmd=get", function(data) { ... });
, то обращение идет к /var/www/192.168.1.81/sec/?pt=14&cmd=get ..

Помогите, пжл, как правильно послать get запрос по http в данном случае? вроде бы должно быть просто, но уже всю голову сломал..

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

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

Сообщение Andrey_B » 27 дек 2015, 21:08

Данный вопрос, кажется, задается с завидной регулярностью.
Сначала нужно ознакомиться вот с этим.
Затем создать отдельный PHP-скрипт, который будет обращаться к устройству и уже его вызывать через $.get()

pphilonenko
Сообщения: 11
Зарегистрирован: 22 окт 2015, 08:49

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

Сообщение pphilonenko » 13 янв 2016, 00:08

Haus писал(а):Снимать показание с Megad328 с датчиков DS18B20 при помощи poll.php разобрался, даже с DHT22 температуру снимает. Может кто подскажет как дописать скрипт poll.php чтобы влажность снимал?
Может быть, кому-нибудь понадобится... DHT22 подключен к RPi через GPIO. Скрипт записывает оба показания с датчика в таблицу tmp_2, полt ContID присвоил 98 и 99 для температуры и влажности соответственно. Не силен в Python (вообще впервые вижу), но после долгих мучений этот вариант заработал. В ключевом поле таблицы tmpID пришлось изменить атрибут на AUTO_INCREMENT.
Теперь предстоит разобраться, каким образом вывести эти показания в виде графиков, в демо-интерфейс, аналогично и в соответствии с общей концепцией.

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

#!/usr/bin/python
import MySQLdb
import subprocess
import re
import sys
import time
import Adafruit_DHT


sensor = Adafruit_DHT.DHT22


# Example using a Raspberry Pi with DHT sensor
# connected to GPIO23.
pin = 4

humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

if temperature is not None:
	temp = '{0:0.1f}'.format(temperature)
	print temp
else:
	print 'Failed to get reading temperature. Try again!'
	
if humidity is not None:
	hum = '{0:0.1f}'.format(humidity)
	print hum
else:
	print 'Failed to get reading humidity. Try again!'


conn = MySQLdb.connect("localhost","user","password","db_name") or die ("could not connect to database")
c = conn.cursor()
contidtemp = 98
contidhum = 99
date = time.strftime('%Y-%m-%d %H:%M:%S')

try:
  c.execute("INSERT INTO tmp_2 (ContID, dev_date, dev_value) VALUES (%s, %s, %s)", (contidtemp, date, temp))
  c.execute("INSERT INTO tmp_2 (ContID, dev_date, dev_value) VALUES (%s, %s, %s)", (contidhum, date, hum))
  conn.commit() #commit the insert
  c.close()  #close the cursor
except:
  print "Failed to load"

Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

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

Сообщение Haus » 18 янв 2016, 13:32

Добрый день Андрей
Сейчас у меня работают два сервера (на разных компьютерах в одной сети), на первом стоит ваша demo и owfs. С другого сервера запускал owfs, и опрашивал сеть подключенную к первому серверу. Через какое то время появляются ошибки на первом сервере, что недопустимо так как работает система отопления. Решил для второго сервера брать информацию с базы msql demo, так как вы говорили дальше чайник-кофе машина не продвинулся в php прошу вашей помощи. Написал скрипт по вашим примерам, всё работает. Может есть какие замечание, неверные действия в запросе к базам нужны данные последней записи в базе?

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

<?
require_once("ab-cms/class/main_class.php");
$ab = new cms_lib();
$temp_heat_main_in = $ab->doc_read($ab->get_id("temp_heat_main_in"));
$result = $ab->select_line("SELECT dev_value temp_heat_main_in FROM tmp_".$temp_heat_main_in['ListID']." WHERE ContID=".$temp_heat_main_in['ContID']." ORDER BY dev_date DESC LIMIT 1");
$temp_heat_main_in = $result['temp_heat_main_in'];
$temp_heat_main_out = $ab->doc_read($ab->get_id("temp_heat_main_out"));
$result = $ab->select_line("SELECT dev_value temp_heat_main_out FROM tmp_".$temp_heat_main_out['ListID']." WHERE ContID=".$temp_heat_main_out['ContID']." ORDER BY dev_date DESC LIMIT 1");
$temp_heat_main_out = $result['temp_heat_main_out'];
$temp_heat_tp_in = $ab->doc_read($ab->get_id("temp_heat_tp_in"));
$result = $ab->select_line("SELECT dev_value temp_heat_tp_in FROM tmp_".$temp_heat_tp_in['ListID']." WHERE ContID=".$temp_heat_tp_in['ContID']." ORDER BY dev_date DESC LIMIT 1");
$temp_heat_tp_in = $result['temp_heat_tp_in'];
$temp_heat_tp_out = $ab->doc_read($ab->get_id("temp_heat_tp_out"));
$result = $ab->select_line("SELECT dev_value temp_heat_tp_out FROM tmp_".$temp_heat_tp_out['ListID']." WHERE ContID=".$temp_heat_tp_out['ContID']." ORDER BY dev_date DESC LIMIT 1");
$temp_heat_tp_out = $result['temp_heat_tp_out'];
$fp=fopen("http://192.168.1.11:8087/set/javascript.0.temp_heat_main_in?value=$temp_heat_main_in","r");
$fp=fopen("http://192.168.1.11:8087/set/javascript.0.temp_heat_main_out?value=$temp_heat_main_out","r");
$fp=fopen("http://192.168.1.11:8087/set/javascript.0.temp_heat_tp_in?value=$temp_heat_tp_in","r");
$fp=fopen("http://192.168.1.11:8087/set/javascript.0.temp_heat_tp_out?value=$temp_heat_tp_out","r");
fclose($fp);
?>

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

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

Сообщение Andrey_B » 19 янв 2016, 22:33

Haus, простите, не совсем понял в чем именно заключается ваш вопрос.
Если работает, то, как говорится в известном анекдоте, "не трогай". ;)

Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

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

Сообщение Haus » 20 янв 2016, 00:14

Да просто нет знакомых со знанием PHP а уж тем более с пониманием используемой CMS и структур баз MYSQL, пишешь из кусков скрипт и посоветоватся нескем. Андрей попутно ещё вопрос, вы писали что переводите 1 wire на Megad, насколько по вашему он надёжней? То что он может выполнить сценарий при отсутствие сервера (форс мажор перекрыть 3х ходовой, отключить насос) это да. У меня 1 wire может работать месяцами без единой ошибки, но словил уже несколько раз странный глюк в отсутствие данных в базе demo. Убрал на другую линию DS2413 у меня их три, потом часть датчиков не помогает, единственное наблюдение это происходит когда 10 датчиков снимают температуру котла, аккумуляционных баков выше 75°- 90°. В скрипте mod_heat_new.php температура подачи берётся за последние 5 мин а в ответ 0°, и начинает подкручивать 3х ходовой. Скрипт я конечно подправил с ограничением максимальной температуры подающей линии(толку в этом случае 0), продублировал датчик на другом мастере ну и параллельно тестирую Megad для избавления от DS2413 и задействования как дублирующий датчик температуры. Ваше мнение?

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

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

Сообщение Andrey_B » 20 янв 2016, 10:33

Haus писал(а):Андрей попутно ещё вопрос, вы писали что переводите 1 wire на Megad, насколько по вашему он надёжней?
Часто вопрос надежности - это вопрос конкретной реализации. То есть любое решение может быть вполне надежным, если хорошо исполнено.
Но есть ряд объективных моментов. Например, управление 3-х ходовыми клапанами через модули на базе DS2413 или DS2406P. Когда я отправляю команду такому модулю по сети 1-wire, то я не могу быть уверенным, что она дойдет за какой-то определенный период времени. Команда может прийти сразу, а может с небольшой задержкой. Это зависит от загруженности 1-wire сети. А так как команды приводу клапана передаются парами, чтобы подвинуть его на определенный угол, то иногда получается, что нужно было подвинуть клапан на 1 секунду, а получилось на 1,3 секунды. В этом отношении MegaD-328 в силу своей технологии и скорости работы сети существенно, на порядки точнее.
Что касается датчиков температуры. Известно, что owfs + DS9490R не всегда с первого раза считывают значения с DS18B20. Есть мой патч, который, впрочем, не помогает на 100%. Это один аргумент. Второй аргумент шина. Я уже высказывался на тему того, что шина в плане коммутации, эксплуатации, оперативных изменений менее удобна. Когда мы начинаем что-то менять, мы фактически останавливаем работу ветки. Плюс необходимость в дополнительном ПО в виде owfs. MegaD-328 позволяет проще подключать, проще интегрировать датчики в систему, каждый порт - это мастер ветки. А стоит MegaD-328-IN Kit примерно как два фирменных мастера DS9490R. Думаю, далеко не для всех, но для меня простота и логичность подключения важнее, чем небольшое увеличение стоимости. Дабы не вызывать снова полемику, оговорюсь, что это только моя точка зрения, и что я вполне понимаю тех, кто любит шину и считает это правильным.

Haus
Сообщения: 227
Зарегистрирован: 28 апр 2015, 13:13

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

Сообщение Haus » 20 янв 2016, 13:41

Andrey_B писал(а):В этом отношении MegaD-328 в силу своей технологии и скорости работы сети существенно, на порядки точнее.
Вот это главный аргумент который подтверждает мой выбор. Что косается моих проблем с 1 wire за ночь пришла в голову идея :) , утром под кофе реализовал о результатах напишу позже.

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

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

Сообщение Andrey2509 » 01 мар 2016, 11:48

Чтобы сменить пароль пользователя при доступе к web-интерфейсу нужно менять его в 2-х местах: в .htaccess и в админке ab-cms, которая в свою очередь меняет пароль в sql-базе. Можете объяснить зачем нужно хранить хэш-пароль в 2-х местах?

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

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

Сообщение Andrey_B » 01 мар 2016, 11:52

Andrey2509, скажите, а где вы нашли пароль в .htaccess? В архиве с демо-интерфейсом его нет.

Andrey2509
Сообщения: 141
Зарегистрирован: 22 июн 2015, 13:24

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

Сообщение Andrey2509 » 02 мар 2016, 09:36

Точно, нету. То есть в демо-версии аутентификации нет для пользователя, только для админа CMS средствами php/mysql?

Ответить