# Issues on the Get Zoom Room sensor data

**URL:** <https://devforum.zoom.us/t/issues-on-the-get-zoom-room-sensor-data/85101>\
**Category:** Zoom Rooms\
**Created:** [March 21, 2023, 10:18pm UTC](https://devforum.zoom.us/t/issues-on-the-get-zoom-room-sensor-data/85101 "2023-03-21T22:18:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![viktor.gawor](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/viktor.gawor/32/46674_2.png) [@viktor.gawor](https://devforum.zoom.us/u/viktor.gawor)\
**Post date:** [March 21, 2023, 10:18pm UTC](https://devforum.zoom.us/t/issues-on-the-get-zoom-room-sensor-data/85101/1 "2023-03-21T22:18:04Z")

</div>

Hi creating a rest api to pull sensordata from a zoom room using neatbar.  
I want to pull sensor\_type as REAL\_TIME\_PEOPLE\_COUNT, i managed to pull room\_id but not the sensor data. What am i doing wrong?

```auto
import os
import time
import jwt
import requests
from flask import Flask, jsonify

app = Flask( __name__ )

ZOOM_BASE_URL = "https://api.zoom.us/v2"
ZOOM_API_KEY = "xxx"
ZOOM_API_SECRET = "xxx"

def generate_jwt(api_key, api_secret):
    header = {"alg": "HS256", "typ": "JWT"}
    payload = {"iss": api_key, "exp": int(time.time()) + 3600}
    token = jwt.encode(payload, api_secret, algorithm="HS256", headers=header)
    return token

def get_room_ids():
    headers = {
        'Authorization': f'Bearer {generate_jwt(ZOOM_API_KEY, ZOOM_API_SECRET)}',
        'Content-Type': 'application/json'
    }
    response = requests.get(f'{ZOOM_BASE_URL}/rooms', headers=headers)
    if response.status_code == 200:
        rooms = response.json()["rooms"]
        return [room["id"] for room in rooms]
    return []

def get_sensor_data(room_id):
    headers = {
        'Authorization': f'Bearer {generate_jwt(ZOOM_API_KEY, ZOOM_API_SECRET)}',
        'Content-Type': 'application/json'
    }
    response = requests.get(f'{ZOOM_BASE_URL}/rooms/{room_id}/sensors', headers=headers)
    try:
        if response.status_code == 200:
            return response.json()
    except ValueError as e:
        print(f"Error parsing JSON response for room {room_id}: {e}")
    return {}

def format_sensor_data(room_id, sensor_data):
    formatted_data = {"roomId": room_id, "sensors": []}
    sensor_type_map = {
        "CO2": "CO2",
        "TEMPERATURE": "Temperature",
        "REAL_TIME_PEOPLE_COUNT": "Real Time People Count",
        "HUMIDITY": "Humidity",
        "VOC": "VOC"
    }

    if 'sensors' in sensor_data:
        for sensor in sensor_data['sensors']:
            print(f"Sensor description for room {room_id}: {sensor['description']}") # Debug print
            if sensor['description'] in sensor_type_map:
                formatted_sensor = {
                    "sensor_type": sensor_type_map[sensor['description']],
                    "sensor_value": sensor['value']
                }
                formatted_data["sensors"].append(formatted_sensor)
    return formatted_data

@app.route("/api/zoom-rooms-sensor-data", methods=["GET"])
def get_zoom_rooms_sensor_data():
    room_id_list = get_room_ids()
    all_sensor_data = []

    for room_id in room_id_list:
        sensor_data = get_sensor_data(room_id)
        formatted_data = format_sensor_data(room_id, sensor_data)
        all_sensor_data.append(formatted_data)

    return jsonify(all_sensor_data)

if __name__ == " __main__":
    app.run(debug=True, port=8080)

```
