Поделиться через


Аналитика помещений

Резервирование помещений в сочетании с данными датчика занятости предоставляет ключевые аналитические сведения для менеджеров по недвижимости и помещений, чтобы лучше понять, проанализировать и оптимизировать использование помещений. Анализируя данные о резервировании, отражающие предполагаемое использование помещений, наряду с данными датчиков, показывающими фактическую заполняемость, менеджеры могут понять заполненность и поведение резервирования, а также определить высокие ставки без показа. Эти данные помогают руководителям принимать более обоснованные решения о доступности помещений.

Использование помещений на основе намерения использовать

Аналитика помещений использует данные о резервировании помещений для отслеживания предполагаемого использования комнат, предоставляя аналитические сведения о планируемой заполняемости помещений.

Данные о резервировании собираются из всех почтовых ящиков комнат в Exchange, связанных с клиентом, через службу, которая работает ежедневно.

Использование помещений на основе фактической заполняемости

Аналитика помещений использует сигналы о заполненности для обнаружения фактического присутствия людей, что позволяет измерять фактическое использование помещений.

В настоящее время корпорация Майкрософт поддерживает следующие сигналы о заполнении:

  • CRS (сводки по записям звонков из собраний Teams)
  • MTR (комната Microsoft Teams)
  • Другие датчики количества людей или других людей

Подключение данных CRS

Сводный сигнал записи звонков содержит время начала и окончания собрания Teams, которое можно использовать для вывода о заполнении комнаты. Данные CRS публикуются командой Платформы анализа субстрата (SIP) в наборе данных SIGS.

Сигнал CallRecordSummarized доступен в наборе данных SIGS через 4 дня после события. И он остается доступным в течение 28 дней.

Процесс включения CRS

В настоящее время CRS поддерживается в следующих основных регионах: NAM, EUR, JPN и APAC. Если ваша организация находится в одном из поддерживаемых регионов, процесс подключения данных CRS полностью автоматизирован.

Для интеграции данных не требуется никаких действий вручную. Когда система обнаружит, что вы находитесь в поддерживаемом регионе, поток данных запускается автоматически.

Схема набора данных

Столбец Тип Описание
AadTenantId String Идентификатор клиента записи. Он используется для секционирования данных в контейнер клиента и удаляется после секционирования.
ActorId String Microsoft Entra ID субъекта, который может быть пользователем или комнатой. Позже он используется для присоединения к идентификатору комнаты из инвентаризации помещений для получения сигналов из комнат.
StartTime String Время начала собрания, указывающее, что комната занята.
EndTime String Время окончания собрания, указывающее, что комната больше не занята.
PrimarySmtp String SMTP пользователя или комнаты.
ActorIdType String Тип идентификатора субъекта, который должен быть Microsoft Entra ID. Эта строка используется для отладки.
ActorType String Тип субъекта, который всегда является "пользователь" независимо от человека или комнаты.
CreationTime String Время создания этой записи.
DatasetCategory String Категория набора данных, которая может быть коммерческой или MSIT.
SignalType String CallRecordSummarized— тип сигнала в наборе данных SIGS.

Подключение данных MTR

Сигнал MTR содержит время начала и окончания собрания Teams, которое можно использовать для определения заполняемости помещений. Этот сигнал совпадает с сигналом CRS, но он экспортируется и отправляется администратором клиента вручную. Таким образом, он является альтернативой CRS или может использоваться для тестирования перед подключением клиента.

Процесс включения MTR

  1. Скачайте данные MTR.

  2. Отформатируйте данные в формате CSV, используя следующую схему:

    В следующем примере показано содержимое примера csv-файла.

    ConferenceId,MeetingId,StartTime,EndTime,CallParticipants,DurationSeconds,alias,Display name,Device Type 
    
    3f60f7d2-cbb9-4493-9681-05400035e728,meeting_15cd6425-ff12-4b7f-b360-2d880748de48,2024-08-01 04:30:00,2024-08-01 06:00:00,19,5400.0,user,Floor6-NonOnboarded-Room4,MTR 
    
    c0aad920-430e-4dc0-bd05-09d93c44213f,meeting_02fdae08-e742-4bd7-a5c8-fb4c59235a7f,2024-08-01 07:30:00,2024-08-01 08:30:00,11,3600.0,user,Floor6-NonOnboarded-Room4,MTR 
    
  3. Выполните командлет Push-Dataset, чтобы отправить данные.

    В следующем примере показан командлет Push-Dataset.

PS C:\> Push-Dataset -Type TeamsDeviceCalls -Path "C:\Datasets\Datasets\TeamsDeviceCalls" 

Примечание.

Внутри параметра path укажите имя папки, в которой находится CSV-файл. Для данных MTR поддерживается только прием исторических данных.

Инструкции по использованию командлета Push-Dataset

  1. Откройте PowerShell 7 (не от имени администратора).

  2. Установите Microsoft Places, выполнив следующий командлет Windows PowerShell. Дополнительные сведения об установке Microsoft Places см. в Microsoft Places коллекция PowerShell.

    Install-Module -Name MicrosoftPlaces -AllowPrerelease -Force 
    
  3. Импортируйте модуль Microsoft Places, выполнив следующий командлет Windows PowerShell.

    Import-Module -Name MicrosoftPlaces 
    
  4. Подключитесь к модулю Microsoft Places, выполнив следующий командлет Places PowerShell.

    Connect-MicrosoftPlaces 
    
  5. Отправьте набор данных из расположения на устройстве (с помощью папки и пути), выполнив следующий Places командлет PowerShell.

    PS C:\> Push-Dataset -Type TeamsDeviceCalls -Path "<path-to-csv-file-folder>"
    
Схема набора данных для аналитики помещений
Столбец Тип Описание
ConferenceId String Идентификатор конференции.
MeetingId String Идентификатор собрания.
StartTime String Время начала собрания в формате UTC.
EndTime String Время окончания собрания в формате UTC.
CallParticipants String Число участников, присоединившихся к собранию.
DurationSeconds String Продолжительность собрания.
псевдоним String Псевдоним, однозначно определяющий устройство MTR.
Отображаемое имя String Это поле содержит имя конференц-зала.
Тип устройства String Тип устройства всегда имеет значение "MTR" (в данном случае).

Подключение датчиков заполняемости и количества людей выполняется в четыре этапа.

  1. Подключение устройства.
  2. Отправка данных телеметрии.
  3. Прием данных телеметрии в режиме реального времени.
  4. Убедитесь, что данные доступны в Places.

Подключение устройств

Первый шаг включает в себя отправку CSV-файла с метаданными устройства, включая способ сопоставления устройств с PlaceId в Microsoft Places. Этот шаг помогает контекстуализировать данные телеметрии по достижении Places.

На следующей схеме показано, как подключить устройства и датчики к Places.

Схема, показывающая, как подключить устройства и датчики к Microsoft Places.

Во-первых, необходимо подготовить данные устройства.

  1. Скачайте сведения о месте из Microsoft Places. Сначала установите PowerShell 7 , выполнив следующий командлет PowerShell. Дополнительные сведения о PowerShell в Windows см. в статье Установка PowerShell в Windows.

    Install-Module -Name ExchangeOnlineManagement  
    
    Import-Module -Name ExchangeOnlineManagement  
    
    Connect-ExchangeOnline
    
  2. Откройте PowerShell от имени администратора и выполните следующую команду ExchangeOnline PowerShell, чтобы проверка, имеет ли ваша учетная запись требуемую роль TenantPlacesManagement, и убедитесь, что имя пользователя указано.

    Get-ManagementRoleAssignment -Role TenantPlacesManagement -GetEffectiveUsers
    
  3. При наличии необходимых разрешений вы увидите следующее имя и назначенную роль.

    • Имя: PlacesAdmin
    • Назначенная роль: TenantPlacesManagement
  4. Чтобы получить идентификатор PlaceId для зданий, откройте новое окно PowerShell и выполните следующий командлет Windows PowerShell.

    Install-Module -Name MicrosoftPlaces -AllowPrerelease -Force  
    
    Connect-MicrosoftPlaces
    
  5. Выполните следующие команды, чтобы скачать список этажей и комнат.

    $buildingName = “” 
    $allPlaces = Get-PlaceV3 | Select-Object PlaceId, DisplayName, Type, ParentId 
    $building = $allPlaces | Where-Object { $_.DisplayName -eq $buildingName -and $_.Type -eq "Building" } 
    $floors = $allPlaces | Where-Object { $_.ParentId -eq $building.PlaceId } 
    $spacesAndRooms = $floors | ForEach-Object { 
    $floor = $_; 
    $allPlaces | Where-Object { $_.ParentId -eq $floor.PlaceId }   
    } 
    $places = @() 
    $floors | ForEach-Object { $places += $_ } 
    $spacesAndRooms | ForEach-Object { $places += $_ } 
    $outputPath = 'C:\places.csv' 
    $places | Select-Object PlaceId, DisplayName, Type | Export-Csv -Path $outputPath -NoTypeInformation
    
  6. Выходной файл в пути к CSV-файлу должен содержать следующие сведения:

    PlaceId DisplayName Тип
    5d275bba-5d7d-487f-855e-75cd2943204f Этаж 1 Floor
    0fa1b1eb-6066-45ea-8f7c-09b4e8cc4e74 Конференц-зал 1202/3455 (9) Room
  7. Скачайте метаданные устройства из партнерского решения или из системы, включая все устройства.

  8. Используйте скрипт или вручную сопоставьте устройства с PlaceId, используя следующий формат данных для PlacesDevice.

Столбец Описание Примечания Пример
DeviceId (обязательный) Уникальный идентификатор устройства (рекомендуется: Manufacturer_DeviceUniqueId). Должен соответствовать идентификатору отправленной телеметрии. Manuf1_3455
DisplayName Отображаемое имя устройства. При необходимости можно использовать понятное имя. Manuf1_3455
Описание Описание устройства.
MacAddress Mac-адрес устройства. Поставщик предоставлен (при наличии).
Производитель (обязательно) Производитель устройства. Предоставляется ИТ-администратором. Manuf1
IPV4Address IPV4Address устройства. Поставщик предоставлен (при наличии).
IPV6Address IPV6Address устройства. Поставщик предоставляется при наличии.
PlaceId (обязательный) Идентификатор PlaceId, с которым устройство сопоставлено в Places. ИТ-администратор сопоставляет DeviceID с полем DisplayName из списка комнат. 76fe540f-01a9-425e-acd5-5d7d1da44fbf
Tags Список настраиваемых тегов, связанных с устройством, которые помогут с поиском. [ "IsVirtual_False", "Building_121"]
Sensor.SensorId (обязательно) Уникальный идентификатор датчика в устройстве. Должны входить в стандартные полезные данные телеметрии. PeopleCount, Заполнение
Sensor.DisplayName Отображаемое имя датчика. Можно использовать понятное имя (если применимо). Заполнение, Число людей
Sensor.SensorType (обязательно) Тип датчика. Проверенный список (см. примеры). Скрепки
Sensor.PlaceId Уникальный идентификатор места, обслуживаемого датчиком (необходимо указать эту информацию только в том случае, если датчик находится в другом месте, отличном от расположения устройства). 76fe540f-01a9-425e-acd5-5d7d1da44fbf

Общие рекомендации по устройствам и датчикам

  • Рекомендуется указать DeviceId в качестве Manufacturer_DeviceUniqueId. Однако в тех случаях, когда партнеры не могут отправлять данные телеметрии на уровне устройства (например, они объединяют данные телеметрии с нескольких устройств), виртуальный Идентификатор устройства можно создать как Manufacturer_Building_VirtualDeviceId. В этом случае VirtualDeviceId может быть естественным ключом пространства. Если клиент предоставляет VirtualDeviceId, следует включить сведения о физических устройствах, с которых вычисляется телеметрия. Сведения о физическом устройстве могут быть в тегах.

  • Если Sensor.SensorType уникален для устройства, необходимо только указать SensorType. В случаях, когда существует несколько потоков данных для определенного типа датчика для устройства, требуется уникальный SensorId. SensorType и SensorId в большинстве случаев являются PeopleCount, Occupancy и т. д., если sensorType не является уникальным для устройства. В этом случае SensorId является SensorType_SomeUnique идентификатором.

После подготовки метаданных устройства сведения об устройстве можно отправить в Microsoft Places следующими способами.

  • Использование командлетов PowerShell
  • Использование API Microsoft Graph

Использование командлетов PowerShell

Для индивидуального управления устройствами можно напрямую использовать командлеты PowerShell Microsoft Places. Дополнительные сведения о командлетах Places см. в модуле командлетов Microsoft Places для PowerShell.

Примечание.

Для выполнения командлетов необходимо назначить роль TenantPlacesManagement.

Имя командлета Описание Параметры
New-PlaceDevice Создает новое устройство DeviceId (обязательный), DisplayName, Description, MACAddress, Manufacturer (обязательно), IPV4Address, IPV6Address, PlaceId (обязательно), Tags, Sensors (обязательно)
Remove-PlaceDevice Удаляет устройство Идентификатор (обязательный)
Set-PlaceDevice Обновления устройства Id (обязательный), DeviceId (обязательный), DisplayName, Description, MACAddress, Manufacturer (обязательно), IPV4Address, IPV6Address, PlaceId, Tags, Sensors (обязательно)
Get-PlaceDevice Возвращает устройство Id, Filter, Top
  1. Откройте PowerShell 7 (не от имени администратора).

  2. Установите Microsoft Places, выполнив следующий командлет Windows PowerShell. Дополнительные сведения об установке Microsoft Places см. в Microsoft Places коллекция PowerShell.

    Install-Module -Name MicrosoftPlaces -AllowPrerelease -Force 
    
  3. Импортируйте модуль Microsoft Places, выполнив следующий командлет Windows PowerShell.

    Import-Module -Name MicrosoftPlaces 
    
  4. После установки и импорта модуля подключитесь к модулю Microsoft Places, выполнив следующий Places командлет PowerShell.

    Connect-MicrosoftPlaces
    
  5. Используйте пример командлета New-PlaceDevice, показанный ниже, чтобы добавить устройство. Параметр Sensors — это объект типа MicrosoftPlaces.PlacesDevices.Sensor с указанными выше полями.

    New-PlaceDevice -DeviceId "contoso_9D6816" -DisplayName "Contoso 9D6816 Device" -Description "Contoso 9D6816 Device" -MACAddress "00:0A:95:9D:68:16" -Manufacturer "Contoso" -IPV4Address "192.168.1.100" -IPV6Address "2001:db8::ff00:42:8329" -PlaceId "acfa3bc0- 2b83-425b-8910-84a0250e9671" -Tags "BuildingA" -Sensors (New-Object MicrosoftPlaces.PlacesDevices.Sensor -Property @{SensorType="occupancy"})
    
  6. Используйте Get-PlaceDevice для просмотра списка устройств. По умолчанию возвращается 10 устройств. Чтобы вернуть больше устройств, добавьте параметр -top, как показано ниже.

    Get-PlaceDevice -top 100
    
  7. Используйте Set-PlaceDevice, чтобы обновить устройство с помощью существующего идентификатора.

    Set-PlaceDevice -Id "e5a216ff-1d32-4647-8dab-a2523ee5796e" -DeviceId "contoso_7D6816" -DisplayName "Contoso 7D6816 Device" -Description "Contoso 9D6816 Device" -MACAddress "00:0A:95:9D:68:16" -Manufacturer "Contoso" -IPV4Address "192.168.1.100" -IPV6Address "2001:db8::ff00:42:8329" -PlaceId "acfa3bc0- 2b83-425b-8910-84a0250e9671" -Tags "BuildingA" -Sensors (New-Object MicrosoftPlaces.PlacesDevices.Sensor -Property @{SensorType="peopleCount"}) 
    
  8. Используйте Remove-PlaceDevice для удаления устройства.

    Remove-PlaceDevice -Id "e5a216ff-1d32-4647-8dab-a2523ee5796e" 
    

Использование API Microsoft Graph

Для изменения процесса или автоматизации и интеграции с существующими системами можно использовать API Microsoft Graph.

Чтобы использовать API, выполните следующие действия.

  1. Создайте регистрацию приложения в Microsoft Entra.im. Дополнительные сведения о разрешениях PlaceDeviceRead.All и PlaceDevice.ReadWrite.All см. в справочнике по разрешениям Microsoft Graph.

  2. Создание и развертывание приложения для синхронизации сведений об устройстве между Microsoft Places и партнерами.

Дополнительные сведения об устройствах с датчиками см. в следующих API-интерфейсах Microsoft Graph и документации по устройствам:

Пример устройства:

POST https://graph.microsoft.com/beta/workplace/sensorDevices

{ 
            "deviceId": "contoso_9D6821_occ_new", 
            "displayName": "Contoso 9D6816 Device", 
            "description": "Contoso 9D6816 Device", 
            "macAddress": "00:0A:95:9D:68:16", 
            "manufacturer": "Contoso", 
            "ipV4Address": "192.168.1.100", 
            "ipV6Address": "2001:db8::ff00:42:8329", 
            "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671", 
            "tags": [ 
                "BuildingA", 
                "Floor 3", 
                "Room 300", 
                "Conference Room" 
            ], 
            "sensors": [ 
                { 
                    "sensorId": "Occupancy", 
                    "displayName": null, 
                    "sensorType": "occupancy", 
                    "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671" 
                } 
            ] 
        } 
  • Сведения о том, как просмотреть определенное устройство, см. в разделе Get workplaceSensorDevice.

Пример:

GET
https://graph.microsoft.com/beta/workplace/sensorDevices/<workplacesensordevice-id> 

GET 
https://graph.microsoft.com/beta/workplace/sensorDevices/8e404458-e9b1-4153-b6b5-4858ccee1486 

Пример ответа:

{ 
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#workplace/sensorDevices/$entity", 
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET workplace/sensorDevices('<guid>')?$select=description,deviceId", 
    "id": "8e404458-e9b1-4153-b6b5-4858ccee1486", 
    "deviceId": "contoso_9D6821_occ_new", 
    "displayName": "Contoso 9D6816 Device", 
    "description": "Contoso 9D6816 Device", 
    "macAddress": "00:0A:95:9D:68:16", 
    "manufacturer": "Contoso", 
    "ipV4Address": "192.168.1.100", 
    "ipV6Address": "2001:db8::ff00:42:8329", 
    "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671", 
    "tags": [ 
        "BuildingA", 
        "Floor 3", 
        "Room 300", 
        "Conference Room" 
    ], 
    "sensors": [ 
        { 
            "sensorId": "Occupancy", 
            "displayName": null, 
            "sensorType": "occupancy", 
            "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671" 
        } 
    ] 
}
  • Дополнительные сведения об обновлении существующего устройства см. в разделе Update workplaceSensorDevice.

Пример:

PATCH https://graph.microsoft.com/beta/workplace/sensorDevices/8e404458-e9b1-4153-b6b5-4858ccee1486 

{ 
            "deviceId": "contoso_9D6821_occ_new", 
            "displayName": "Contoso 9D6816 Device New", 
            "description": "Contoso 9D6816 Device", 
            "macAddress": "00:0A:95:9D:68:16", 
            "manufacturer": "Contoso", 
            "ipV4Address": "192.168.1.100", 
            "ipV6Address": "2001:db8::ff00:42:8329", 
            "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671", 
            "tags": [ 
                "BuildingA", 
                "Floor 3", 
                "Room 300", 
                "Conference Room" 
            ], 
            "sensors": [ 
                { 
                    "sensorId": "Occupancy", 
                    "displayName": null, 
                    "sensorType": "occupancy", 
                    "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671" 
                } 
            ] 
        } 

Пример ответа:

{ 
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#workplace/sensorDevices/$entity", 
    "id": "8e404458-e9b1-4153-b6b5-4858ccee1486", 
    "deviceId": "contoso_9D6821_occ_new", 
    "displayName": "Contoso 9D6816 Device New", 
    "description": "Contoso 9D6816 Device", 
    "macAddress": "00:0A:95:9D:68:16", 
    "manufacturer": "Contoso", 
    "ipV4Address": "192.168.1.100", 
    "ipV6Address": "2001:db8::ff00:42:8329", 
    "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671", 
    "tags": [ 
        "BuildingA", 
        "Floor 3", 
        "Room 300", 
        "Conference Room" 
    ], 
    "sensors": [ 
        { 
            "sensorId": "Occupancy", 
            "displayName": null, 
            "sensorType": "occupancy", 
            "placeId": "acfa3bc0-2b83-425b-8910-84a0250e9671" 
        } 
    ] 
}

Пример:

DELETE https://graph.microsoft.com/beta/workplace/sensorDevices/<workplaceSensorDevice-Id>

DELETE https://graph.microsoft.com/beta/workplace/sensorDevices/052062b9-38f6-48d4-a638-05a72c79419b

Отправка данных телеметрии

После подключения устройств к Microsoft Places вы можете выполнить однократное заполнение исторических данных, чтобы заполнить Places данными телеметрии. Затем можно настроить Places для непрерывного получения данных телеметрии с устройств в актуальном состоянии. На следующей схеме показан поток отправки файлов обратной заполнения (верхняя половина) и непрерывный поток телеметрии устройства (нижняя половина).

Схема, показывающая, как можно выполнить однократное заполнение исторических данных в Microsoft Places.

Вариант 1. Использование командлета Push-Dataset

Microsoft Places принимает исторические данные в определенном формате CSV-файла и схеме. Эти данные необходимо экспортировать из существующей системы, а затем использовать следующий командлет PowerShell для отправки данных.

Имя командлета Описание Параметры Пример
Push-Dataset Передает набор данных в ADLS. Type, Path Push-Dataset -Type RoomOccupancy -Path C:\sensordata\

Примечание.

Тип может быть RoomOccupancy и PeopleCount. Роль должна быть назначена TenantPlacesManagement. Дополнительные сведения о командлетах PowerShell см. в Microsoft Places коллекция PowerShell.

  1. Откройте PowerShell 7 (не от имени администратора).

  2. Установите Microsoft Places, выполнив следующий командлет Windows PowerShell. Дополнительные сведения об установке Microsoft Places см. в Microsoft Places коллекция PowerShell.

    Install-Module –Name MicrosoftPlaces –AllowPrerelease –Force
    
  3. Импортируйте модуль Microsoft Places, выполнив следующий командлет Windows PowerShell.

    Import-Module -Name MicrosoftPlaces 
    
  4. Подключитесь к модулю Microsoft Places, выполнив следующий командлет Places PowerShell.

    Connect-MicrosoftPlaces 
    
  5. Отправьте набор данных из расположения на устройстве (с помощью папки и пути), выполнив следующий Places командлет PowerShell.

    Push-Dataset -Type RoomOccupancy -Path <folder path> 
    
Формат CSV-файла для PeopleCount
Столбец Порядок столбцов Комментарий Пример
DeviceId 1 Идентификатор устройства. Manuf1_1202_3455
SensorId 2 Идентификатор датчика. PeopleCount
Значение 3 Целое число без знака. PeopleCount (любое целое число без знака, например 5).
IngestionTime 4 Метка времени из телеметрии в формате UTC. 2023-06-27T18:24:20.808Z
locationHint String Дополнительные сведения для указания расположения устройства. Здание-1

Пример CSV-файла:

19966d8e-4434-477a-a38a-2df5651cd90f,6afe1ea7-82aa-451c-b2e1-48e48ca39ec0,5, 2023-06-27T18:24:20.808Z,building1 

19966d8e-4434-477a-a38a-2df5651cd90f,6afe1ea7-82aa-451c-b2e1-48e48ca39ec0,5, 2023-06-27T18:24:20.808Z,building1 

457702f3-c58d-44fa-9d26-f153fcd27452,a7387ed0-b540-47b0-8170-bc9c80f6c5b9,5, 2023-06-27T18:24:20.808Z,building1 

457702f3-c58d-44fa-9d26-f153fcd27452,a7387ed0-b540-47b0-8170-bc9c80f6c5b9,5, 2023-06-27T18:24:20.808Z,building1 
Формат CSV-файла для размещения
Столбец Порядок столбцов Комментарий Пример
DeviceId 1 Идентификатор устройства. Manuf1_1202_3455
SensorId 2 Идентификатор датчика. RoomOccupancy
Значение 3 Целое число без знака. Заполнение: True или False.
IngestionTime 4 Метка времени из телеметрии в формате UTC. 2023-06-27T18:24:20.808Z
locationHint String Дополнительные сведения для указания расположения устройства. Здание-1

Пример CSV-файла:


19966d8e-4434-477a-a38a-2df5651cd90f,6afe1ea7-82aa-451c-b2e1-48e48ca39ec0,true, 2023-06-27T18:24:20.808Z,building1 

19966d8e-4434-477a-a38a-2df5651cd90f,6afe1ea7-82aa-451c-b2e1-48e48ca39ec0,true, 2023-06-27T18:30:20.808Z,building1 

457702f3-c58d-44fa-9d26-f153fcd27452,a7387ed0-b540-47b0-8170-bc9c80f6c5b9,false, 2023-06-27T18:40:20.808Z,building1 

457702f3-c58d-44fa-9d26-f153fcd27452,a7387ed0-b540-47b0-8170-bc9c80f6c5b9,true, 2023-06-27T18:45:20.808Z,building1 

Вариант 2. Автоматизация с помощью Microsoft API Graph

Чтобы создать приложение для автоматизации отправки данных телеметрии и создать приложение для автоматизации регистрации и подключения устройств, API доступны через Microsoft Graph. Чтобы использовать API, выполните следующие действия.

  1. Создайте регистрацию приложения в Microsoft Entra. Дополнительные сведения о разрешениях PlaceDeviceRead.All и PlaceDevice.ReadWrite.All см. в справочнике по разрешениям Microsoft Graph.

  2. Создайте и разверните приложение для синхронизации данных телеметрии между Microsoft Places и партнерами.

  3. Используйте API IngestTelemetry для отправки данных о заполненности и подсчете людей в Microsoft Places.

Дополнительные сведения о приеме телеметрии датчика для рабочего датчика и дополнительные сведения об API IngestTelemetry см. в статье workplaceSensorDevice: ingestTelemetry.

Отправка данных о заполненности и подсчете людей в Microsoft Places с помощью microsoft API Graph
  1. Скачайте данные из существующих систем, как описано ранее.
  2. Подготовьте данные телеметрии на основе следующего формата данных о заполнении.
Формат сигнала данных о занятости
Параметр Тип Описание
данные телеметрии (обязательно) workplaceSensorDeviceTelemetry Коллекция данных телеметрии, собираемых и сообщаемых датчиком на устройстве комнаты.
deviceId (обязательный) String Определяемый пользователем уникальный идентификатор устройства, предоставленный во время создания. Не используйте созданный системой идентификатор устройства. Используйте идентификаторы устройств, подключенные только с помощью командлета new-device.
sensorId String Определяемый пользователем уникальный идентификатор датчика на устройстве. Если устройство имеет несколько датчиков одного типа, необходимо указать свойство для идентификации каждого датчика. Если устройство имеет только один датчик типа, свойство можно опустить. Значение по умолчанию — это тип датчика. Необязательное поле.
boolValue (обязательно) Логический Значение true или false в зависимости от того, занята ли комната.
метка времени (обязательно) DateTimeOffset Дата и время, когда датчик измерял и сообщал о своем значении. Тип метки времени представляет сведения о дате и времени в формате ISO 8601 и всегда находится в формате UTC. Например, полночь в формате UTC 1 января 2024 г. — 2024-01-01T00:00:00Z.
sensorType (обязательный) workplaceSensorType занятие
LocationHint (обязательно) String Дополнительные сведения, используемые для указания расположения устройства.
Люди число данных в формате сигналов
Параметр Тип Описание
данные телеметрии (обязательно) workplaceSensorDeviceTelemetry Коллекция данных телеметрии, собираемых и сообщаемых датчиком на устройстве комнаты.
deviceId (обязательный) String Определяемый пользователем уникальный идентификатор устройства, предоставленный во время создания. Не используйте созданный системой идентификатор устройства. Используйте идентификаторы устройств, подключенные только с помощью командлета new-device.
sensorId String Определяемый пользователем уникальный идентификатор датчика на устройстве. Если устройство имеет несколько датчиков одного типа, необходимо указать свойство для идентификации каждого датчика. Если устройство имеет только один датчик типа, свойство можно опустить. Значение по умолчанию — это тип датчика. Необязательное поле.
intValue (обязательный) Int32 Количество людей, занимающих номер.
метка времени (обязательно) DateTimeOffset Дата и время, когда датчик измерял и сообщал о своем значении. Тип метки времени представляет сведения о дате и времени в формате ISO 8601 и всегда находится в формате UTC. Например, полночь в формате UTC 1 января 2024 г. — 2024-01-01T00:00:00Z.
sensorType (обязательный) workplaceSensorType peopleCount
LocationHint (обязательно) String Дополнительные сведения для указания расположения устройства.
  • Запустите API, чтобы отправить данные в Microsoft Places.

Следующая команда является примером запроса API для заполнения.

{     
"telemetry": [     
        {    
            "deviceId": "19966d8e-4434-477a-a38a-2df5651cd90f", 
            "sensorid":"6afe1ea7-82aa-451c-b2e1-48e48ca39ec0",   
            "sensorType": "occupancy",    
            "boolValue": false,    
            "timestamp": "2021-03-31T09:36:05.144Z",  
            "locationHint":"building1"    
        }    
    ]     
} 

Следующая команда представляет собой пример запроса API для подсчета пользователей:

{     
"telemetry": [     
        {    
            "deviceId": "457702f3-c58d-44fa-9d26-f153fcd27452", 
            "sensorid":"a7387ed0-b540-47b0-8170-bc9c80f6c5b9",   
            "sensorType": "peopleCount",   
            "intValue": 5,    
            "timestamp": "2023-06-27T18:24:20.808Z",  
            "locationHint":"building1"    
        }    
    ]     
}

Прием данных телеметрии в режиме реального времени

Соединителям, описанным в разделе Область, требуется следующее разрешение для запроса службы приема телеметрии в режиме реального времени.

  • PlaceDeviceTelemetry.ReadWrite.All

Необходимо заполнить согласие администратора или создать приложение Microsoft Entra с разрешением на основе выбранной архитектуры. Дополнительные сведения о разрешении PlaceDeviceTelemetry.ReadWrite.All см. в справочнике по разрешениям Microsoft Graph.

На следующей схеме описана архитектура приема данных телеметрии.

Схема, на которой показана архитектура, используемая для приема данных телеметрии.

Для клиентов, выбирающих эти типы интеграции, необходимо заполнить согласие администратора на уровне клиента, чтобы предоставить партнерским службам разрешения на прием данных телеметрии от их имени.

  1. Это применимо, если поставщики оборудования создали мультитенантные соединители SaaS (одиночные и мультитенантные приложения). Дополнительные сведения о мультитенантных соединителях см. в статье Аренда в Microsoft Entra ID.

  2. Получите идентификатор приложения (GUID) от партнера, который получает данные телеметрии от имени вашей службы.

  3. Создайте субъект-службу с идентификатором приложения. На выбор можно выбрать несколько вариантов. Дополнительные сведения см. в статье Создание корпоративного приложения из мультитенантного приложения в Microsoft Entra ID.

Если вы используете Microsoft Graph PowerShell, Graph или Azure CLI, замените идентификатор или идентификатор приложения (из упомянутых команд) на страницах, чтобы создать субъект-службу, а затем предоставьте согласие администратора в субъекте-службе в Azure.

Снимок экрана: диалоговое окно

Если вы используете URL-адрес согласия администратора, замените идентификатор приложения на странице идентификатором партнерского приложения, а затем откройте его в браузере. Он создает субъект-службу и просит предоставить согласие администратора. Чтобы предоставить согласие администратора, выберите Принять.

Снимок экрана: диалоговое окно

Microsoft Places предоставляет api, который принимает данные телеметрии в стандартном формате, доступном через Microsoft Graph. API принимает пакет сообщений телеметрии.

  • Для архитектуры типа B клиенты полагаются на интеграцию, предоставляемую партнерами по оборудованию, размещенными на месте в среде клиента.

  • Для архитектуры типа C клиенты могут создать длительный процесс или процесс на основе событий с помощью функций Azure, чтобы вызвать API-интерфейсы Microsoft Places для отправки данных телеметрии сборки.

  • Архитектуры интеграции типа B и C требуют, чтобы клиенты создали регистрацию приложения в Microsoft Entra, как показано на следующем рисунке, и предоставить согласие администратора в PlaceDeviceTelemetry.ReadWrite.All. Дополнительные сведения о разрешениях, предоставляемых Microsoft Graph, см. в справочнике по разрешениям Microsoft Graph.

Снимок экрана: диалоговое окно Регистрация приложения asn.

Проверка доступности данных в Microsoft Places

После подключения устройств и приема данных динамического датчика API начинает заполняться аналитическими отчетами Microsoft Places. Чтобы разблокировать аналитические сведения, помогающие оптимизировать рабочую область, убедитесь, что данные передаются на панель мониторинга аналитики в течение 72 часов.