Есть устройство реле, URL запрос на проверку состояния выхода :
http://192.168.17.120/control?cmd=Status,GPIO,12 проверка статуса, ответ будет такого типа :
{
"log": "",
"plugin": 1,
"pin": 12,
"mode": "output",
"state": 1
}
Какую команду использовать в РНР чтобы получить значение "slate" ? для контроля состояния выхода.
Пытался через file_get_contents , но не получилось, не слишком силен в програмировании,т.ч не пинайте сильно )
Обработка ответа от устройства в PHP
Модератор: immortal
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Обработка ответа от устройства в PHP
Видно, что вам нужен последний символ ответа (если, конечно, им не является "}"). Последний символ можно получить так:
Ну а, например, третий символ с конца, так:
А еще надежней, думаю, так:
Код: Выделить всё
$state = file_get_contents("http://192.168.17.120/control?cmd=Status,GPIO,12");
$state = substr($state,-1);
Код: Выделить всё
$state = substr($state,-3,1);
Код: Выделить всё
$state = substr($state,strpos($state,'"state": ')+9,1);
- Рейтинг: 1.16%
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Обработка ответа от устройства в PHP
Это JSON.
Код: Выделить всё
$res = json_decode(file_get_contents("http://192.168.17.120/control?cmd=Status,GPIO,12"));
echo $res->pin;
echo $res->mode;
echo $res->state;
- Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Обработка ответа от устройства в PHP
если запрашивать сервер http://192.168.1.61, он вываливает состояние всех реле:
для свойства первого реле мне надо расшифровать эту строку:
создаю метод decode:
создаю свойство status для Реле1 и в нём отмечаю запускать метод decode при изменении
но не чего не происходит
При тесте метода, Метод даёт такую осечку:
Код: Выделить всё
{"Relay_0":1 ,"Relay_1":0 ,"Relay_2":0 ,"Relay_3":0 ,"Relay_4":0 ,"Relay_5":0 ,"Relay_6":0 ,"Relay_7":0 }
создаю метод decode:
Код: Выделить всё
$res = json_decode(file_get_contents("http://192.168.1.61"));
echo $res->Relay_0;
но не чего не происходит
При тесте метода, Метод даёт такую осечку:
Код: Выделить всё
Warning: file_get_contents(http://192.168.1.61): failed to open stream: HTTP request failed! {"Relay_0":0 ,"Relay_1":0 ,"Relay_2":0 ,"Relay_3":0 ,"Relay_4":0 ,"Relay_5":0 ,"Relay_6":0 ,"Relay_7":0 } in /var/www/html/modules/objects/objects.class.php(570) : eval()'d code on line 1
Raspberry Pi 3B+
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Обработка ответа от устройства в PHP
Есть Реле 1, у него есть статус, при изменении статуса вызывается метод, который должен узнать, какой у реле статус и напечатать статус реле0?woow писал(а):если запрашивать сервер http://192.168.1.61, он вываливает состояние всех реле:для свойства первого реле мне надо расшифровать эту строку:Код: Выделить всё
{"Relay_0":1 ,"Relay_1":0 ,"Relay_2":0 ,"Relay_3":0 ,"Relay_4":0 ,"Relay_5":0 ,"Relay_6":0 ,"Relay_7":0 }
создаю метод decode:создаю свойство status для Реле1 и в нём отмечаю запускать метод decode при измененииКод: Выделить всё
$res = json_decode(file_get_contents("http://192.168.1.61")); echo $res->Relay_0;
но не чего не происходит
При тесте метода, Метод даёт такую осечку:Код: Выделить всё
Warning: file_get_contents(http://192.168.1.61): failed to open stream: HTTP request failed! {"Relay_0":0 ,"Relay_1":0 ,"Relay_2":0 ,"Relay_3":0 ,"Relay_4":0 ,"Relay_5":0 ,"Relay_6":0 ,"Relay_7":0 } in /var/www/html/modules/objects/objects.class.php(570) : eval()'d code on line 1
Кто меняет статус Реле1, чтобы запустился метод декоде?
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз