JS устройство - как сделать POST запрос с определенными заголовками и опциями?
Posted: 15 Dec 2021 14:35
Добрый день. Подскажите пожалуйста такой момент - мне необходимо создать виртуальное устройство в Z-way home automation, которое будет являться внешним источником температуры для нескольких термостатов Eurotronic Spirit.
Понял, что для этого необходимо использовать JS устройство или HTTP устройство.
Внешний датчик температуры уже есть, используя PHP можно получить с него данные таким образом:
Такая конструкция хорошо работает, авторизация по токену, возвращается довольно большой объем данных в формате JSON с которым уже можно работать.
Но не получается реализовать такую же конструкцию для z-way
Попробовал такой код:
однако видимо где-то ошибка, так как в логах ругань такого вида:
ну или может быть есть другой способ получить значение с zont api? Понятно, что я могу поставить PHP на razberry, сделать sh файл и парсить его вывод через system("myscript.sh")[1]
Понял, что для этого необходимо использовать JS устройство или HTTP устройство.
Внешний датчик температуры уже есть, используя PHP можно получить с него данные таким образом:
Code: Select all
require_once './src/Autoload.php';
WpOrg\Requests\Autoload::register();
$url = 'https://zont-online.ru/api/devices';
$data = array('load_io' => true);
$zont_token='some_token';
$headers = array('X-ZONT-Client' => 'email@email.com', 'Content-Type' => 'application/json', 'X-ZONT-Token' => $zont_token);
$response = WpOrg\Requests\Requests::post($url, $headers, json_encode($data));
$result = json_decode($response->body, true);
$zal_temp = $result['devices'][0]['io']['z3k-state']['device_id']['temperature'];
print_r($zal_temp);
Но не получается реализовать такую же конструкцию для z-way
Попробовал такой код:
Code: Select all
fetch('https://zont-online.ru/api/devices', {method: 'POST', mode: 'cors', cache: 'no-cache', headers: {'Content-Type': 'application/json', 'X-ZONT-Client': 'email@email.com', 'X-ZONT-Token': 'some_token'}, body: JSON.stringify({'load_io': 'true'})});
Code: Select all
[core] fetch is not defined