Как я могу получить список устройств в IOT Foundation, используя MQTT и PHP.
Я попробовал этот код:
<?php
require("../phpMQTT.php");
$config = array(
'org_id' => 't9m318',
'port' => '1883',
'app_id' => 'phpmqtt',
'iotf_api_key' => 'my api key',
'iotf_api_secret' => 'my api secret',
'device_id' => 'phpmqtt'
);
$config['server'] = $config['org_id'] . '.messaging.internetofthings.ibmcloud.com';
$config['client_id'] = 'a:' . $config['org_id'] . ':' . $config['app_id'];
$location = array();
// initialize client
$mqtt = new phpMQTT($config['server'], $config['port'], $config['client_id']);
$mqtt->debug = false;
// connect to broker
if(!$mqtt->connect(true, null, $config['iotf_api_key'], $config['iotf_api_secret'])){
echo 'ERROR: Could not connect to IoT cloud';
exit();
}
Но я не знаю, что я должен поставить для подписки.
Затем я изменил код и попытался использовать HTTP вместо MQTT:
$ UserPass = $ config [‘iotf_api_key’]. ‘:’. $ Config [‘iotf_api_secret’];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 't9m318.messaging.internetofthings.ibmcloud.com');
curl_setopt($ch, CURLOPT_USERPWD, $UserPass);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json','Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
$arr = json_decode($output,true);
echo $arr;
Но это не работает!
Спасибо
Вы не можете получить список устройств через MQTT, но вы можете использовать HTTP API для просмотра списка всех устройств.
Вы можете получить все устройства с:
https://docs.internetofthings.ibmcloud.com/swagger/v0002.html#!/Bulk_Operations/get_bulk_devices
Или отфильтруйте по deviceType с помощью:
Других решений пока нет …