RTSP Smart IDE to przeglądarkowe środowisko typu low-code/no-code, które umożliwia:
- Elastyczne zarządzanie strumieniami RTSP/RTSMP.
- Autodetekcję urządzeń w sieci (kamery, RPi, inne endpointy).
- Integrację z lokalnymi skryptami Bash/Python i API/OpenAPI.
- Automatyzację akcji w odpowiedzi na statusy endpointów, dostępność sieci Wi-Fi lub urządzeń.
- Tworzenie logiki w formie Scratch-like bloków.
- Generowanie front-endu WWW jako wizualizacji projektów.
- Eksport całego projektu jako paczki ZIP gotowej do deploymentu.
-
Skanowanie LAN w poszukiwaniu urządzeń:
- Kamery IP (RTSP/RTSMP)
- Raspberry Pi
- Inne urządzenia z możliwością wykrycia przez ping, SSDP, Zeroconf
-
Pobieranie metadanych: IP, typ urządzenia, dostępne strumienie.
-
Statusy urządzeń i endpointów (online/offline).
- Skanowanie dostępnych sieci Wi-Fi.
- Pobieranie danych: SSID, siła sygnału, typ zabezpieczeń.
- Statusy: dostępna/niedostępna, połączona/rozłączona.
- Możliwość automatycznego połączenia i reakcji na zmianę statusu.
- Obsługa wielu protokołów strumieniowania.
- Dynamiczne dodawanie i usuwanie strumieni.
- Obsługa autoryzacji i reconnection.
- Monitorowanie API, OpenAPI, serwisów, domen.
- Definicja reguł reakcji na statusy endpointów.
- Alerty i automatyczne akcje (uruchomienie strumienia, skryptu, powiadomienie).
-
Edycja logiki w formie bloków:
- Wywołanie endpointu
- Warunki (status HTTP, brak odpowiedzi, dostępność Wi-Fi)
- Akcje (uruchomienie skryptu, włączenie RTSP, alerty)
-
Podpinanie funkcji Python/Bash jako bloki funkcji.
- Generator stron dla projektów z podglądem strumieni i statusów.
- Integracja z logiką Scratch do dynamicznych widoków.
- Frontend: React + Tailwind + Blockly/Scratch.
- Eksport całego projektu jako paczki ZIP z pełną strukturą:
/project_name
/config
streams.yaml
devices.yaml
/scripts
*.py
*.sh
/frontend
index.html
styles.css
scripts.js
README.md
- Możliwość łatwego uruchomienia projektu na nowej maszynie.
- Backend: Python (FastAPI) + Celery dla harmonogramów.
- Frontend: React + Blockly/Scratch + Tailwind CSS.
- Streaming: OpenCV, GStreamer, FFmpeg.
- Monitoring: HTTPX/Requests + ping + netcat.
- Autodetekcja: Nmap / Zeroconf / SSDP.
- Eksport: Python
zipfile.
- Utworzyć szkielet backendu (FastAPI).
- API dla konfiguracji YAML (CRUD strumieni, urządzeń, Wi-Fi).
- Implementacja prostego monitoringu endpointów.
- Moduł eksportu projektu do ZIP.
- Obsługa RTSP/RTSMP strumieni w backendzie.
- Autodetekcja urządzeń w sieci LAN (kamery, RPi).
- Pobieranie metadanych urządzeń i zapis w YAML.
- Skanowanie dostępnych sieci Wi-Fi w systemie.
- Pobieranie metadanych sieci (SSID, RSSI, typ zabezpieczeń).
- Sprawdzanie dostępności sieci w czasie rzeczywistym.
- Możliwość połączenia/rozłączenia z siecią przez API.
- Integracja Blockly/Scratch do edycji logiki w GUI.
- Dodanie bloków: wywołanie endpointu, warunki, wywołanie skryptów lokalnych.
- Połączenie logiki z statusami Wi-Fi, endpointów i urządzeń.
- Testy scenariuszy automatyzacji.
- Dodanie bloków logiki dla Wi-Fi (dostępna, niedostępna, połączona, rozłączona).
- Połączenie bloków z akcjami: wywołanie endpointu, uruchomienie skryptu, włączenie strumienia.
- Prosty generator stron dla projektów (podgląd RTSP + statusy).
- Połączenie bloków logiki z elementami frontendowymi.
- Testowanie automatycznego dodawania strumieni i endpointów.
- Testowanie integracji Bash/Python jako bloków funkcji.
- Pełne testy eksportu paczki ZIP.
- Obsługa dodatkowych protokołów (RTMP, WebRTC).
- Alerty i powiadomienia w czasie rzeczywistym (email/Telegram).
- Udoskonalenia UI/UX edytora Scratch + generatora WWW.
- Integracja harmonogramów automatyzacji (cron/Celery).
Poniżej minimalny szkielet projektu zgodny z założeniami. Backend (FastAPI) zapewnia CRUD na YAML, proste monitorowanie i eksport do ZIP. Frontend to lekka strona (Tailwind CDN + JS), która wywołuje API.
- Python 3.10+
- Dostęp do internetu (instalacja zależności)
- Zainstaluj zależności i utwórz wirtualne środowisko:
make setup
- Uruchom backend (FastAPI na porcie 8000):
make backend
- W osobnej konsoli uruchom prosty serwer frontendu (port 5173):
make frontend
- Otwórz w przeglądarce:
http://localhost:5173
Frontend komunikuje się domyślnie z http://localhost:8000.
/backend
main.py # FastAPI: API, monitoring, eksport ZIP
requirements.txt # Zależności backendu
/config
streams.yaml # Konfiguracja strumieni
devices.yaml # Wykryte/zarządzane urządzenia
wifi.yaml # Sieci Wi‑Fi (przykłady)
/frontend
index.html # Minimalny dashboard
scripts.js # Wywołania API (health, streams, ping, export)
styles.css # (opcjonalny) CSS uzupełniający
/scripts
sample.sh # Przykładowy skrypt Bash
sample.py # Przykładowy skrypt Python
Makefile # Cele: setup, backend, frontend
exports/ # (ignorowany w git) paczki ZIP z eksportu
GET /api/health– status usługi.GET /api/streams– lista strumieni (zstreams.yaml).POST /api/streams– utworzenie strumienia.PUT /api/streams/{id}– edycja strumienia.DELETE /api/streams/{id}– usunięcie strumienia.GET /api/devices– lista urządzeń (zdevices.yaml).GET /api/monitor/ping?host=8.8.8.8– prosty ping.GET /api/monitor/http?url=https://example.com– sprawdzenie HTTP.POST /api/export– eksport całego projektu do ZIP (do folderuexports/).
Uwaga: akcje RTSP (start/stop) są placeholderami do dalszej implementacji (FFmpeg/GStreamer).
- Implementacja obsługi RTSP/RTSMP (FFmpeg/GStreamer) oraz reconnection.
- Autodetekcja urządzeń (Nmap/Zeroconf/SSDP) i zapis do YAML.
- Integracja Blockly/Scratch w froncie i mapowanie bloków na akcje API/skrypty.
- Rozbudowa generatora WWW podglądów i statusów.
- Docker 20.10+ i Docker Compose v2 (polecenie
docker compose)
make docker-build
make docker-up
Po starcie:
- Frontend (Nginx) nasłuchuje na losowym porcie localhost. Aby sprawdzić port:
docker compose port frontend 80
Otwórz zwrócony adres (np. http://127.0.0.1:32768). API jest dostępne pod ścieżką /api (reverse proxy do serwisu backend).
Najpierw odczytaj port frontendu:
PORT=$(docker compose port frontend 80 | awk -F: '{print $2}')
Testy API przez proxy (zamiast bezpośredniego wystawiania backendu):
curl -s http://127.0.0.1:$PORT/api/health
curl -s http://127.0.0.1:$PORT/api/streams
curl -s "http://127.0.0.1:$PORT/api/monitor/http?url=https://example.com"
make docker-logs # logi backendu
make docker-down # zatrzymanie i usunięcie kontenerów
Uwaga: katalog exports/ jest montowany do kontenera backendu do zapisu paczek ZIP.
