Страница 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:
Но, к моему сожалению, в Мажордомо ничего не приходит. Какую ошибку и где я допустил в правке примера?
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