> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/analytics/ru/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md).

# Подключение Streamlit

Создавайте пользовательские приложения Streamlit, подключенные к IoT Query через PostgreSQL. Выполняйте запросы к данным трекеров в Python и отображайте статус автопарка в реальном времени на пользовательских панелях мониторинга

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

{% hint style="info" %}
Это руководство является частью **IoT Query** набора документации и в частности описывает подключение Power BI к вашему хранилищу данных. Если вы еще выбираете, какой BI-инструмент использовать, обратитесь к [Выбор BI-инструментов](/docs/analytics/ru/iot-query/connection-setup/selecting-bi-tools.md) обзору.
{% endhint %}

## Возможности панели мониторинга

* Показывать общее количество объектов
* Визуализировать статусы Движение (Движется/Остановился/Стоит)
* Визуализировать статусы подключения (активен/в простое/Оффлайн)
* Подробная таблица с текущим статусом всех транспортных средств
* Фильтрация по типу транспортного средства, группе, статусу движения и статусу подключения
* Автоматическое обновление данных каждые 5 минут
* Переключение между светлой и темной темами

## Технические требования

* Python 3.8+
* Доступ в интернет для подключения к базе данных
* Минимум 2 GB RAM

## Установка и настройка

### 1. Клонируйте репозиторий

```sh
git clone https://github.com/Navixy/bi-integrations.git
```

### 2. Создайте виртуальное окружение

```
# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python -m venv venv
source venv/bin/activate
```

{% hint style="danger" %}
Убедитесь, что у вас установлен Python 3.8 или выше. Проверить версию можно командой `python --version`.
{% endhint %}

### 3. Установите зависимости

После активации виртуального окружения установите все необходимые библиотеки:

```sh
pip install -r requirements.txt
```

## Подключение к базе данных

### 1. Создайте конфигурационный файл

Создайте `.env` файл в корневом каталоге проекта:

```
DB_HOST=your_db_host
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASS=your_db_password
DB_PORT=5432
DB_SCHEMA=raw_business_data
```

#### Справочник параметров подключения

<table><thead><tr><th width="188.81817626953125">Параметр Lakehouse</th><th>Расположение настроек Streamlit</th><th>Примечания</th></tr></thead><tbody><tr><td><strong>Хост</strong></td><td><code>DB_HOST</code> в <code>.env</code> файл</td><td>Адрес сервера базы данных, указанный в приветственном письме</td></tr><tr><td><strong>Порт</strong></td><td><code>DB_PORT</code> в <code>.env</code> файл</td><td>По умолчанию 5432 для PostgreSQL</td></tr><tr><td><strong>Имя базы данных</strong></td><td><code>DB_NAME</code> в <code>.env</code> файл</td><td>Назначенное вам имя базы данных</td></tr><tr><td><strong>Имя пользователя</strong></td><td><code>DB_USER</code> в <code>.env</code> файл</td><td>Ваше имя пользователя базы данных</td></tr><tr><td><strong>Пароль</strong></td><td><code>DB_PASS</code> в <code>.env</code> файл</td><td>Ваш защищенный пароль базы данных</td></tr><tr><td><strong>Режим SSL</strong></td><td>Строка подключения в коде Python</td><td>Установите <strong>require</strong> в строке подключения</td></tr><tr><td><strong>Схема</strong></td><td><code>DB_SCHEMA</code> в <code>.env</code> файл</td><td>Укажите схему (<strong>raw_business_data</strong> или <strong>raw_telematics_data</strong>)</td></tr></tbody></table>

### 2. Получение учетных данных

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

{% hint style="info" %}
Этот `.env` Файл не должен быть включен в систему контроля версий (GitHub), чтобы обеспечить Охрана учетных данных. Это `.gitignore` файл уже настроен так, чтобы исключать этот файл.
{% endhint %}

## Запуск панели мониторинга

После настройки подключения к базе данных запустите панель мониторинга командой:

```
streamlit run moving_status_dashboard.py
```

После запуска вы увидите сообщение, подобное:

```
  Теперь вы можете просмотреть ваше приложение Streamlit в браузере.

  Локальный URL: http://localhost:8501
  Сетевой URL: http://192.168.1.5:8501
```

Откройте указанный URL в браузере. Панель мониторинга будет доступна по адресу <http://localhost:8501> (или по сетевому URL, если вы хотите открыть его с другого устройства в сети).

## Разработка пользовательских компонентов

Если вы хотите изменить панель мониторинга или создать новые компоненты:

### 1. Изменение существующей панели мониторинга

Streamlit автоматически перезагружает приложение, когда вы меняете исходный код. Просто отредактируйте `moving_status_dashboard.py` подайте и сохраните ваши изменения.

### 2. Добавление новых визуализаций

Чтобы добавить новые графики и диаграммы, используйте библиотеки:

* Plotly: `import plotly.express as px` или `import plotly.graph_objects as go`
* Встроенные визуализации Streamlit: `st.bar_chart()`, `st.line_chart()`, и т. д.

Пример добавления нового графика:

```python
import plotly.express as px

# Get data from the database
df = ... # your database query

# Create chart
fig = px.pie(df, values='count', names='status', title='Vehicle Statuses')
st.plotly_chart(fig, use_container_width=True)
```

### 3. Отладка

Для отладки используйте

```python
# Output to Streamlit interface
st.write(f"Debug: {your_variable}")

# Вывод в консоль
print(f"Console debug: {your_variable}")

# Расширенный вывод данных
st.json(data_dict)
st.dataframe(pandas_dataframe)
```

## Устранение неполадок

### Проблемы с подключением к базе данных

* **Ошибка подключения:** Проверьте правильность учетных данных в `.env` файле и доступность базы данных
* **Ошибка SSL:** Убедитесь, что ваш IP-адрес находится в списке разрешенных для доступа к базе данных
* **Ошибки тайм-аута:** Проверьте стабильность интернет-соединения и настройки брандмауэра

### Проблемы с зависимостями

**Ошибка при установке psycopg2-binary:**

* Windows: `pip install pipwin && pipwin install psycopg2-binary`
* Linux: `sudo apt install python3-dev libpq-dev`
* macOS: `brew install postgresql`

**Конфликты зависимостей:**

* Создайте новую виртуальную среду
* Установите зависимости по одной, начиная с streamlit

### Другие проблемы

Вот несколько приемов, которые помогут вам решить распространенные проблемы:

1. Обновите зависимости: `pip install -r requirements.txt --upgrade`
2. Проверьте совместимость Python: `python --version` (должно быть 3.8+)
3. При изменении кода включайте отладочные сообщения:

```
st.write(f"Debug: {your_variable}")
```

4. Ошибки кэша Streamlit: остановите приложение и запустите с `--clear_cache` флаг:

```
streamlit run moving_status_dashboard.py --clear_cache
```

## Следующие шаги

После успешного подключения Power BI к вашему экземпляру Private Telematics Lakehouse рекомендуем вам:

* Изучите доступные схемы данных, ознакомившись с [Обзор схемы](/docs/analytics/ru/iot-query/schema-overview.md) раздел, чтобы лучше понять структуру данных и связи.
* Начните с простых запросов, ориентированных на конкретные бизнес-сущности, прежде чем создавать сложные панели мониторинга, — ознакомьтесь с нашими [примерами запросов](/docs/analytics/ru/example-queries.md) для справки.

### **Поддержка**

По техническим вопросам или запросам на доступ к демонстрационной базе данных, пожалуйста, свяжитесь с: <support@squaregps.com>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/analytics/ru/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
