Страница 1 из 3

Прием данных извне GET .

Добавлено: Пн янв 30, 2017 9:54 pm
server
Всем привет !
У меня есть гелиосистемма , работает на контролере и отправляет данные на log2.com.ua от туда данные летят на majordomo , вот с /var/log/apache2/access.log :

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

159.224.105.36 - - [30/Jan/2017:20:55:06 +0200] "GET /monitor/update.php?dt=202;25.5;0;39;48;0;0;-16.8;21.5;0;0;-17.2;-16;-18.2;0;0;0;0;0;2.6;0;0;0;0;0; HTTP/1.1" 200 166 "-" "-"
159.224.105.36 - - [30/Jan/2017:20:55:39 +0200] "GET /monitor/update.php?dt=101;25.5;0;39.1;48;0;0;-16.9;21.5;0;0;-17.1;-15.9;-18.2;0;0;0;0;0;2.6;0;0;0;0;0; HTTP/1.1" 200 166 "-" "-" 
Может кто подскажет как принять данные и показать их в majordomo?

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 8:33 am
nick7zmail
server писал(а): от туда данные летят на majordomo
Может кто подскажет как принять данные и показать их в majordomo?
Вот эти 2 фразы у меня вообще не укладываются в голове)) Каким образом они летят? В каком виде? И если они летят - МД их принимает по-идее...

Ссылка с контроллера перекидывает на страничку с описанием системы...какой контроллер? есть ли шины данных? Может проще с самого контроллера по поддерживаемому нативному протоколу данные в МД считать?

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 11:59 am
server
nick7zmail писал(а):
server писал(а): от туда данные летят на majordomo
Может кто подскажет как принять данные и показать их в majordomo?
Вот эти 2 фразы у меня вообще не укладываются в голове)) Каким образом они летят? В каком виде? И если они летят - МД их принимает по-идее...

Ссылка с контроллера перекидывает на страничку с описанием системы...какой контроллер? есть ли шины данных? Может проще с самого контроллера по поддерживаемому нативному протоколу данные в МД считать?
Спасибо что откликнулись.
Просто с контролера данные в зашифрованном виде передаются на платный сервис log2.com.ua где это все отображается , а от туда уже можно их направить куда угодно в открытом виде (в настройках вбивается айпи куда отправить) и они приходят в GET , я почти ничего не понимаю PHP . но как я понял сервер log2.com.ua отправляет , а у меня уже в директории var/www/monitor/ должен лежать скрипт update.php и должен принимать ,а также раскладывать данные . Данные идут после ....php?dt=101; 25,5 и далие через точку с запятой . А сейчас они попадает в лог ошибок апача, так как не отвечает update.php . Ну это я так понимаю.....
И как их обработать я без людей которые разбираются в PHP не смогу его победить. В .htaccess я прописал чтобы пускал айпи сервера log2, а что дальше?

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 12:03 pm
nick7zmail
Дальше проверьте есть ли update.php у вас вообще...Если нет - нужно создать...Там как раз содержимое массива $dt распиливать по свойствам объектов. Из них уже отображать на сценах/в меню.

Дома буду - накидаю пример скрипта.

Отправлено с моего Redmi 4 через Tapatalk

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 12:17 pm
server
nick7zmail писал(а):Дальше проверьте есть ли update.php у вас вообще...Если нет - нужно создать...Там как раз содержимое массива $dt распиливать по свойствам объектов. Из них уже отображать на сценах/в меню.

Дома буду - накидаю пример скрипта.

Отправлено с моего Redmi 4 через Tapatalk
О спасибо!! С меня причитается что там положено!
Это ссылка на мое творение, контролер я сам собирал а прошивку покупал у house4 /
Файл update.php пустой создал в дириктории var/www/monitor/

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 12:50 pm
server

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

dt=101;T0;T1;T2;T3;T4;T5;T6;T7;T8;T9;Tk;Ty;Ta;Tb;Tc;Td;Flow;Ins;KwhD;State;H1;H2;H3;H4;HTTP/1.1" 200 166 "-" "-"
Это расшифровка показаний датчиков Т0.......Н4

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 6:06 pm
Amarok
Создал в htdocs/monitor файл update.php с примером кода с форума house4u (http://www.house4u.com.ua/forum/threads ... post-19493):

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

<?php
$valsGET = $_GET['dt'];
$vals = explode(";",$valsGET);

print_r($vals); // массив всех параметров. $vals[0] - тип, $vals[1] - это Т0 и т.д
?>
Подскажите, пожалуйста, как полученную переменную $vals передать по адресу "/objects/?script=solardata&td="? Всезнающий Google посоветовал такую конструкцию:

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

$sRequestURI = 'http://192.168.1.7/?L=1';
file_get_contents($sRequestURI);
 
Теперь update.php выглядит так:

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

<?php
$valsGET = $_GET['dt'];
$vals = explode(";",$valsGET);
$sRequestURI = '/objects/?script=solardata&td='.$vals;
file_get_contents($sRequestURI);
?>
Текст сценария solardata:

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

$dt=$params['dt'];
say($dt,-1);
 
Но, к моему сожалению, в Мажордомо ничего не приходит. Какую ошибку и где я допустил в правке примера?

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 6:47 pm
server
Amarok писал(а):$sRequestURI = '/objects/?script=solardata&td='.$vals;
А вот тут не dt должно быть

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 6:49 pm
nick7zmail
Уж не знаю что вы хотели сделать, и что передать в МД, но я не вижу ниодного действия для передачи параметров в МД.
Топикстартер: тебе код...

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

$dt= isset($_GET['dt']) ? $_GET['dt'] : "";
$arr = preg_split('/;/', $dt);//делим массив на элементы
sg('контроллер.хз', $arr[0]);
sg('контроллер.T0', $arr[1]);
sg('контроллер.T1', $arr[2]);
//и так далее
Соответственно должен быть создан объект "контроллер", свойства по идее должны создаться сами.

Re: Прием данных извне GET .

Добавлено: Вт янв 31, 2017 7:23 pm
server
nick7zmail писал(а):Соответственно должен быть создан объект "контроллер", свойства по идее должны создаться сами.
Нет данных в свойствах объекта

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

Tue Jan 31 18:20:22.578708 2017] [:error] [pid 18917] [client 159.224.105.36:28166] PHP Fatal error:  Call to undefined function sg() in /var/www/monitor/update.php on line 4