Skip to content

IoT-System ​

Übersicht über das FastBee IoT-System

Die FastBee IoT-Plattform ist eine funktionsreiche IoT-Lösung, die speziell für kleine und mittlere Unternehmen sowie Privatanwender entwickelt wurde. Mit einer Reihe einfach zu bedienender Werkzeuge und Funktionen ermöglicht die Plattform die effektive Verwaltung und Steuerung verschiedenster smarter Geräte. Im Folgenden finden Sie eine ausführliche Vorstellung der FastBee IoT-Plattform:

Seitenübersicht ​

Inhalt dieser SeiteGesamtvorstellung der FastBee IoT-Plattform: Projekthintergrund, Systemfunktionen, Technologie-Stack, Anwendungsszenarien und Systemarchitektur.
AnwendungsfälleFür Leser, die die Fähigkeiten und die Architektur der Business-Version zum ersten Mal kennenlernen und ein Gesamtverständnis des Produkts aufbauen möchten.
VoraussetzungenKeine; anschließend können Sie dem empfohlenen Pfad folgen und die Kapitel zu Architektur sowie Installation und Bereitstellung lesen.

Versionsvergleich ​

FastBee ist in drei Versionen erhältlich: Open-Source-Version, Business-Version und Cluster-Version. Die zentralen Unterschiede sind unten aufgeführt; die vollständige Lizenzpolitik und die Funktionsliste im Einzelnen finden Sie unter Kommerzielle Lizenz.

DimensionOpen-Source-VersionBusiness-VersionCluster-Version
LizenzAGPL v3, kostenlos, nur für nicht kommerzielle ZweckeUnbefristete kommerzielle Lizenz (Installationszertifikat)Unbefristete kommerzielle Lizenz (Installationszertifikat)
Quellcode und UpdatesQuellcode öffentlich, Updates über Gitee/GitHubNach Lizenzierung Updates über privaten Git-Server, ein Jahr Quellcode-Updates inklusiveWie Business-Version
BereitstellungsformDocker-Compose-One-Click-Deployment auf einem ServerEinzelserver-Bereitstellung (Schnellinstallation mit Docker Compose möglich)FMQ-Dienstcluster + Web-Cluster, Hochverfügbarkeit mit Kafka und Lastverteilung
AnbindungsprotokolleMQTT, GB/T 28181 (nur Live)Zusätzlich TCP, UDP, CoAP, HTTP, Modbus, JT808 und weitere ProtokolleWie Business-Version
FunktionsumfangKernfunktionen wie Produkt-/Geräte-/Thing-Modell-Verwaltung, Regelskripte und BerechtigungsverwaltungZusätzlich Visualisierungs-Dashboard, Alarmzentrale, Mandantenfähigkeit, OTA-Firmware-Updates, Datenbrücke, Ticketverwaltung, IoT-SIM-Kartenverwaltung usw. (Web-SCADA und smarter Lautsprecher sind optionale Module)Gleiche Funktionen wie die Business-Version, andere unterstützte Geräteanzahl
AnwendungsfällePersönliches Lernen und nicht kommerzielle NutzungKommerzielle Projekte kleiner und mittlerer UnternehmenKommerzielle Projekte mit großer Geräteanzahl und hohen Verfügbarkeitsanforderungen

1. Plattformvorstellung ​

  • Projekthintergrund: Das Projekt hieß ursprünglich wumei-smart (物美智能) und wurde später in FastBee (蜂信物联) umbenannt. Diese Änderung spiegelt nicht nur die Markenerneuerung wider, sondern markiert auch die Weiterentwicklung und die Erweiterung des Leistungsumfangs im IoT-Bereich.
  • Grundlegende Technologien: Das Plattform-Backend basiert auf dem Spring-Boot-Framework, das Frontend verwendet u. a. Vue. Diese Technologieauswahl gewährleistet die einfache Bedienbarkeit und eine gute Benutzererfahrung der Plattform.

2. Systemfunktionen ​

  • Produktverwaltung: Unterstützt Produktdetails, Thing-Modelle, Kategorien und Geräteautorisierung und hilft Unternehmen, ihre smarten Produkte besser zu organisieren und zu verwalten.
  • Geräteverwaltung: Bietet Verwaltungsfunktionen wie Gerätedetails, Gruppierung, Protokollierung und Echtzeit-Statusüberwachung und gewährleistet einen effizienten und sicheren Gerätebetrieb.
  • Thing-Modell-Verwaltung: Ermöglicht die Definition von Geräteeigenschaften, -funktionen und -ereignissen für eine effektive Interaktion zwischen Gerät und Cloud.
  • Regel-Engine: Unterstützt die Erstellung von Regeln auf Basis von Groovy (Syntax wie Java), sodass das System komplexe Geschäftslogik automatisch verarbeiten kann.
  • Szenenverknüpfung: Unterstützt die direkte oder visuelle Konfiguration automatisierter Szenen für eine nahtlose Zusammenarbeit smarter Geräte.
  • Alarmzentrale: Kann verschiedene Kommunikationswege wie Sprache, SMS und WeCom (Enterprise WeChat) anbinden, benachrichtigt rechtzeitig über Geräteanomalien oder -ausfälle und sorgt für schnelle Reaktionen.
  • Mandantensystem: Unterstützt Datenisolierung und unabhängige Konfiguration, eignet sich für Mandantenumgebungen und erhöht die Flexibilität und Sicherheit des Systems.
  • Anbindung von Videoüberwachung: Unterstützt Überwachungsgeräte nach dem Protokoll GB/T 28181 mit Live-Video, Aufzeichnung und Wiedergabe sowie PTZ-Steuerung – geeignet für Anforderungen der Sicherheitsüberwachung.
  • Szenenverwaltung: Unterstützt die aggregierte Anzeige mehrerer Geräte und kann um Erfassungs- und Berechnungsvariablen erweitert werden; komplexe Datenberechnungen werden unterstützt.
  • Datenbrücke: Dient als Brücke zu externen Datensystemen und unterstützt u. a. die Ein- und Ausgabe von Daten.
  • Datencenter: Unterstützt die Erstellung von Datenberichten, die Anzeige historischer Daten und die Datenanalyse für Geräte.
  • Kommunikationsprotokolle: Unterstützt eine Vielzahl von Geräte-Kommunikationsprotokollen, darunter MQTT, Modbus, TCP, GB28182, HTTP, CoAP usw.
  • IoT-SIM-Karten: Verwaltet die SIM-Karten der Geräteverbindungen, unterstützt die Anbindung verschiedener Händlerplattformen, zeigt Kartenstatus und Datenvolumen an und unterstützt Volumenalarme.
  • Ticketverwaltung: Unterstützt die automatisierte, intelligente und durchgängige Verwaltung von Wartungs-, Reparatur- und Inspektionsaufgaben für Geräte oder Anlagen.

3. Technologie-Stack ​

  • Backend-Technologien: Umfassen Spring Boot, MyBatis, Spring Security, Jwt, Redis, TDengine und mehr und gewährleisten Stabilität und Effizienz der Backend-Dienste.
  • Frontend-Technologien: Nutzen moderne Frontend-Technologien wie ES6, ES7, Vue, Vuex, uView und H5 und verbessern Interaktivität und visuelles Erlebnis der Benutzeroberfläche.
  • Unterstützung mobiler Endgeräte: Unterstützt mehrere mobile Plattformen wie WeChat-Mini-Programm, Android und iOS; die plattformübergreifende App-Entwicklung erfolgt über UniApp, sodass Benutzer auf verschiedenen Geräten arbeiten und verwalten können.

4. Anwendungsszenarien ​

FastBee eignet sich für zahlreiche Szenarien wie Smart Home, Smart Office, Smart Community, Landwirtschaftsüberwachung, Wasserwirtschaftsüberwachung und industrielle Steuerung. Diese Anwendungsszenarien decken ein breites Anforderungsspektrum vom Haushalt bis zur Industrie ab und zeigen das große Einsatzpotenzial von FastBee im IoT-Bereich.

Anwendungsszenarien von FastBee

5. Systemarchitektur ​

┌──────────────────────────────────────────────────────────────────┐
│                       Browser / Mobilgerät                        │
│         Vue2 Web (PC)    +    Vant (H5 / Mini-Programm)          │
└───────────────────────────────┬──────────────────────────────────┘
                                │ HTTP REST / WebSocket(MQTT)
                                ▼
┌──────────────────────────────────────────────────────────────────┐
│                      Nginx (Reverse Proxy)                       │
│        /  → statische Frontend-Ressourcen   /prod-api/ → Backend │
└───────────────────────────────┬──────────────────────────────────┘
                                │
                                ▼
┌──────────────────────────────────────────────────────────────────┐
│                  Spring-Boot-Dienst (8080)                       │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │             fastbee-open-api (Controller-Ebene)            │  │
│  │  device / product / ruleEngine / media / system / ...     │  │
│  └────────────────────────┬───────────────────────────────────┘  │
│  ┌─────────────────────────▼──────────────────────────────────┐  │
│  │              fastbee-service (Service-Ebene)               │  │
│  │     IotService / SceneService / NotifyService / ...        │  │
│  └────────────────────────┬───────────────────────────────────┘  │
│  ┌─────────────────────────▼──────────────────────────────────┐  │
│  │              fastbee-server (Protokollanbindung)           │  │
│  │   MQTT Broker(1883) / HTTP(8081) / CoAP(5683) / TCP(8888) │  │
│  └────────────────────────────────────────────────────────────┘  │
└───────────┬──────────────────┬────────────────────┬──────────────┘
            │                  │                    │
         MySQL              Redis              TDengine
     (Metadaten/        (Cache/Echtzeitwerte)  (historische
      Konfiguration)                           Zeitreihendaten)

6. Codestruktur ​

fastbee/
├── vue/                        ← Frontend-Vue2-Projekt
│   ├── src/
│   │   ├── api/                ← API-Anfragefunktionen der Module
│   │   ├── assets/             ← Statische Ressourcen (Bilder/Icons/Styles)
│   │   ├── components/         ← Globale gemeinsame Komponenten (28 Stück)
│   │   ├── directive/          ← Globale benutzerdefinierte Direktiven
│   │   ├── lang/               ← Sprachpakete für die Internationalisierung
│   │   ├── layout/             ← Layout des Hauptrahmens
│   │   ├── plugins/            ← Registrierung der Vue-Plugins
│   │   ├── router/             ← Routing-Konfiguration
│   │   ├── store/              ← Vuex-Statusverwaltung
│   │   ├── utils/              ← Hilfsfunktionen (request/mqttTool usw.)
│   │   └── views/              ← Views der Geschäftsseiten
│   ├── package.json
│   └── vue.config.js
│
├── springboot/                 ← Backend-Spring-Boot-Multimodulprojekt
│   ├── fastbee-admin/          ← Admin-Controller + Konfiguration
│   ├── fastbee-open-api/       ← Open-API-Schnittstellenebene (IoT-Geschäfts-Controller)
│   ├── fastbee-service/        ← Geschäfts-Service-Ebene (iot-service / system-service)
│   ├── fastbee-server/         ← Protokollanbindungsdienst
│   │   ├── iot-server-core/    ← Zentrale IoT-Servicelogik
│   │   ├── mqtt-broker/        ← Integrierter Netty-MQTT-Broker
│   │   ├── http-server/        ← HTTP-Geräteanbindung
│   │   ├── coap-server/        ← CoAP-Geräteanbindung
│   │   ├── sip-server/         ← SIP-Videoanbindung
│   │   └── boot-strap/         ← Starteinstieg
│   ├── fastbee-protocol/       ← Protokoll-Parsing (Modbus/eigenes Protokoll)
│   ├── fastbee-mq/             ← Message-Queue-Integration
│   ├── fastbee-notify/         ← Benachrichtigungsdienst (SMS/E-Mail/WeChat usw.)
│   ├── fastbee-plugs/          ← Plugins (OSS/OAuth/Quartz/Codegenerierung)
│   ├── fastbee-iot-data/       ← IoT-Datenverarbeitung
│   ├── fastbee-record/         ← Aufzeichnungsdienst
│   ├── fastbee-common-extend/  ← Gemeinsame Hilfserweiterungen
│   └── sql/                    ← Skripte zur Datenbankinitialisierung/-aktualisierung
│
├── docker/                     ← Docker-Compose-Bereitstellungsdateien
└── sdk/                        ← SDK für die Geräteseite

7. Beschreibung der Funktionsmodule ​

Geräteverwaltung ​

FunktionBeschreibung
Geräteregistrierung/-importGeräte manuell hinzufügen oder per Excel-Stapel importieren
Gerätezuweisung/-rücknahmeGeräte nach Organisation/Benutzer zuweisen, Rücknahme möglich
Echtzeit-StatusaktualisierungOnline-/Offline-Status über das MQTT-Abo von /+/{sn}/status/post in Echtzeit aktualisieren
Geräte-QR-CodeQR-Code zur Bindung erzeugen, Druck möglich
OTA-Firmware-UpdateVersionsverwaltung + Verteilung von Update-Aufgaben
BefehlsausgabeAusgabe von Thing-Modell-Eigenschaften / Funktionsaufrufe
SchattenmodusWenn das Gerät offline ist, wird der letzte Wert im Geräteschatten zwischengespeichert

Seitenroute: /iot/device/list → views/iot/device/index.vue

Produktverwaltung ​

FunktionBeschreibung
ProduktvorlageGerätetyp und Thing-Modell definieren
Thing-ModellDrei Elemente: Eigenschaft (Property) / Funktion (Function) / Ereignis (Event)
ProtokollkonfigurationMQTT / HTTP / CoAP / TCP / Modbus / JT808
ProduktveröffentlichungNach der Veröffentlichung kann das Thing-Modell des Geräts nicht mehr geändert werden
Drag-and-drop-EditorVisuelle Konfiguration des Panels für den Gerätelaufzeitstatus

Regel-Engine ​

FunktionBeschreibung
SzenenverknüpfungVisuelle Orchestrierung Trigger → Bedingung → Aktion (gesteuert von LiteFlow)
GerätealarmeAuslösung nach Schwellenwert/Bereich/booleschem Wert, mit Ruhezeiten
RegelskripteGroovy-/JavaScript-Skripte zur Verarbeitung von Rohdaten
One-Click-AuslösungSzenenverknüpfung manuell auslösen

Datencenter ​

FunktionBeschreibung
EchtzeitdatenZuletzt gemeldete Thing-Modell-Werte der Geräte (Redis-Cache)
VerlaufsdatenAbfrage nach Zeitraum (TDengine-Zeitreihendatenbank)
DatenberichteZeitgesteuerte Excel-Erstellung, E-Mail-Benachrichtigung möglich
DatenexportDownload der Verlaufsdaten

Videoüberwachung ​

FunktionBeschreibung
GeräteanbindungUnterstützt das Protokoll GB28181 (SIP)
Echtzeit-WiedergabeRTMP / RTSP / FLV / HLS / WebRTC
Aufzeichnung und WiedergabeAbfrage historischer Aufzeichnungen nach Zeitraum (ZLMediaKit)
PTZ-SteuerungAusgabe von PTZ-Befehlen
GegensprechfunktionAktive SIP-TCP-Methode

Benachrichtigungsdienst ​

Unterstützte Kanäle: SMS (Alibaba Cloud/Tencent), E-Mail, WeChat-Official-Account, WeCom, DingTalk, HTTP-Push, MQTT-Push.

Systemverwaltung ​

Benutzer/Rollen/Organisationen (Mandanten)/Menüs/Wörterbücher/Logs/Systemüberwachung/Codegenerierung.

8. API-Schnittstellendokumentation ​

Die vollständige Schnittstellendokumentation ist über Swagger verfügbar: http://localhost:8080/swagger-ui/index.html (Entwicklungsumgebung)

Alle Schnittstellen verwenden ein einheitliches Antwortformat:

json
{
  "code": 200,
  "msg": "Vorgang erfolgreich",
  "data": { ... }
}

Antwortformat für paginierte Listen:

json
{
  "code": 200,
  "msg": "Vorgang erfolgreich",
  "rows": [ ... ],
  "total": 100
}

Authentifizierungsschnittstellen ​

MethodePfadBeschreibung
POST/loginAnmeldung mit Konto und Passwort
POST/registerBenutzerregistrierung
POST/logoutAbmeldung
GET/getInfoInformationen zum aktuellen Benutzer abrufen
GET/captchaImageGrafisches Captcha abrufen
POST/auth/sms/loginAnmeldung mit SMS-Code
GET/auth/login/{loginId}Social Login über Drittanbieter
POST/auth/ssoLoginSSO Single Sign-on

Anmeldebeispiel:

bash
POST /login
Content-Type: application/json

{
  "username": "admin",
  "password": "admin123",
  "code": "1234",
  "uuid": "xxx-xxx-xxx",
  "sourceType": 1
}
json
{
  "code": 200,
  "msg": "Vorgang erfolgreich",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs..."
  }
}

Nachfolgende Anfragen müssen den Header Authorization: Bearer {token} enthalten.

Geräteschnittstellen (/iot/device) ​

MethodePfadBerechtigungBeschreibung
GET/iot/device/listiot:device:listPaginierte Geräteliste
GET/iot/device/shortListiot:device:listKurze Geräteliste (Startseite)
GET/iot/device/alliot:device:listKurze Liste aller Geräte
GET/iot/device/{deviceId}iot:device:queryGerätedetails
GET/iot/device/getDeviceBySerialNumber/{sn}iot:device:queryAbfrage nach Seriennummer
POST/iot/deviceiot:device:addGerät hinzufügen
PUT/iot/deviceiot:device:editGerät ändern
DELETE/iot/device/{deviceId}iot:device:removeGerät löschen
POST/iot/device/exportiot:device:exportExcel exportieren
POST/iot/device/assignmentiot:device:assignmentGerät einer Organisation zuweisen
POST/iot/device/user/assignmentiot:device:assignmentGerät einem Benutzer zuweisen
POST/iot/device/recoveryiot:device:recoveryGerät zurücknehmen
GET/iot/device/runningStatusiot:device:queryLaufzeitstatus
GET/iot/device/thingsModelValue/{deviceId}iot:device:queryEchtzeitwerte des Thing-Modells
GET/iot/device/statistic-Statistik der Überwachungsdaten

Produktschnittstellen (/iot/product) ​

MethodePfadBeschreibung
GET/iot/product/listPaginierte Produktliste
GET/iot/product/shortListKurze Produktliste
GET/iot/product/{productId}Produktdetails
POST/iot/productProdukt hinzufügen
PUT/iot/productProdukt ändern
DELETE/iot/product/{productId}Produkt löschen
PUT/iot/product/statusProdukt veröffentlichen/zurückziehen
POST/iot/product/copy?productId=Produkt kopieren

Thing-Modell-Schnittstellen (/iot/thingsModel) ​

MethodePfadBeschreibung
GET/iot/thingsModel/listListe der Thing-Modelle
POST/iot/thingsModelThing-Modell hinzufügen
PUT/iot/thingsModelThing-Modell ändern
DELETE/iot/thingsModel/{modelId}Thing-Modell löschen
POST/iot/thingsModel/syncMit Gerät synchronisieren

Regel-Engine-Schnittstellen (/iot/scene) ​

MethodePfadBeschreibung
GET/iot/scene/listListe der Szenenverknüpfungen
POST/iot/sceneSzene hinzufügen
PUT/iot/sceneSzene ändern
DELETE/iot/scene/{sceneId}Szene löschen
POST/iot/scene/trigger/{sceneId}Manuell auslösen

Datencenter-Schnittstellen (/iot/datacenter) ​

MethodePfadBeschreibung
GET/iot/datacenter/latestDataNeueste Daten
GET/iot/datacenter/historyDataVerlaufsdaten

9. Entwicklungsrichtlinien ​

Namenskonventionen für das Frontend ​

TypKonventionBeispiel
Dateien/Verzeichnissekebab-casedevice-edit.vue
KomponentennamenPascalCaseDeviceCard
Variablen/MethodencamelCasedeviceList, handleQuery()
KonstantenUPPER_CASEMAX_PAGE_SIZE
API-DateiencamelCasedevice.js, product.js
CSS-Klassennamenkebab-case.device-item

Namenskonventionen für das Backend ​

TypKonventionBeispiel
PaketnamenKleinbuchstaben, punktgetrenntcom.fastbee.iot.service
KlassennamenPascalCaseDeviceServiceImpl
SchnittstellennamenI + PascalCaseIDeviceService
MethodennamencamelCaselistDeviceByGroup()
KonstantenUPPER_SNAKEMAX_RETRY_COUNT
DatenbanktabellenKleinbuchstaben mit Unterstrichiot_device
DatenbankfelderKleinbuchstaben mit Unterstrichserial_number

Konventionen für das API-Design ​

  • RESTful-Stil, Ressourcennamen als Nomen im Plural
  • Einheitliche Routing-Präfixe: /iot/ (IoT-Modul), /system/ (Systemmodul)
  • Controller erben von BaseController und nutzen @PreAuthorize für die Berechtigungsprüfung
  • Betriebsprotokollierung mit der Annotation @Log
  • Einheitliche Rückgabe mit AjaxResult.success() / getDataTable()
java
@PreAuthorize("@ss.hasPermi('iot:device:add')")
@Log(title = "Gerät", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("Gerät hinzufügen")
public AjaxResult add(@Validated @RequestBody Device device) {
    return toAjax(deviceService.insertDevice(device));
}

10. Häufige Fragen ​

Frontend ​

F: Nach npm install schlägt der Start mit einem Fehler zu patch-package fehl?

Ursache: node_modules ist nicht vollständig installiert oder es liegt ein Cache-Problem vor.

bash
# Cache leeren und neu installieren
rm -rf node_modules package-lock.json
npm cache clean --force
npm install

F: Die Schnittstellen in der Entwicklungsumgebung melden 404?

Prüfen Sie, ob VUE_APP_SERVER_API_URL in .env.development korrekt auf das Backend zeigt und ob das Backend gestartet ist.

F: Der Element-UI-Dialog (MessageBox) öffnet sich nicht?

Prüfen Sie, ob die Komponente global registriert ist; im Projekt erfolgt die Registrierung über Vue.use(Element) in main.js, ein separater Import ist nicht erforderlich.

F: Die MQTT-Verbindung schlägt fehl?

  1. Prüfen Sie, ob VUE_APP_MQTT_SERVER_URL korrekt konfiguriert ist (Entwicklungsumgebung: ws://localhost:8083/mqtt)
  2. Prüfen Sie, ob der integrierte Broker gestartet ist (server.broker.enabled: true + server.broker.websocket-port: 8083)
  3. Prüfen Sie, ob das Token gültig ist (mqttTool verwendet das Token als MQTT-Passwort)

F: Bei vue-treeselect tritt ein Versionskonflikt auf?

Im Projekt wird einheitlich @riophae/vue-treeselect@0.4.0 verwendet; mischen Sie keine anderen Versionen.

F: Der Import der Komponente vue-qr meldet einen Fehler?

javascript
// ✅ Richtig (Standard-Import)
import vueQr from 'vue-qr';
// ❌ Falsch (benannter Import schlägt fehl)
import { VueQr } from 'vue-qr';

Backend ​

F: Beim Start tritt ein Fehler bezüglich license auf?

Konfigurieren Sie in application-dev.yml den korrekten Zertifikatspfad:

yaml
license:
  subject: common
  licensePath: classpath:license.lic

Fordern Sie die Zertifikatsdatei (license.lic) beim Anbieter an und legen Sie sie im Verzeichnis resources ab.

F: TDengine meldet eine Zeitüberschreitung bei der Verbindung?

  1. Prüfen Sie, ob TDengine gestartet ist (Standard-Port 6041)
  2. Prüfen Sie die taos-Datenquellenkonfiguration in application-dev.yml
  3. Falls Sie keine Zeitreihendatenbank benötigen, können Sie sie mit taos.enabled: false überspringen

F: Die Regel-Engine wird nicht ausgelöst?

  1. Prüfen Sie, ob die Szenenverknüpfung den Status „aktiviert" hat
  2. Prüfen Sie die Trigger-Bedingungen (Zahlenbereich, Vergleichsoperatoren)
  3. Prüfen Sie die LiteFlow-Ausführungskette in den Logs

F: Das Gerät ist online, aber der Online-Status ist im Backend nicht sichtbar?

  1. Prüfen Sie die MQTT-Authentifizierung (EMQX-Webhook-Konfiguration)
  2. Prüfen Sie, ob die serialNumber des Geräts mit dem im System erfassten Wert übereinstimmt
  3. Prüfen Sie in den Backend-Logs, ob der Gerätestatus verarbeitet wurde

F: Wie wechsle ich zwischen EMQX und dem integrierten Broker?

yaml
# application.yml
server:
  broker:
    enabled: true   # true = integrierter Netty-Broker
                    # false = externer EMQX (spring.mqtt.host-url muss konfiguriert sein)

F: Wie ist die Datenisolierung bei Mandantenfähigkeit umgesetzt?

Die Plattform isoliert Daten über das Feld tenant_id (Organisations-ID). Die Controller-Ebene ermittelt die Organisationsinformationen des angemeldeten Benutzers über SecurityUtils.getLoginUser(), und die Service-Ebene filtert bei Abfragen automatisch danach.

F: Wie rufe ich die Druid-Überwachungsseite auf?

Rufen Sie im Browser http://localhost:8080/druid/index.html auf; Standardbenutzername und -passwort sind jeweils fastbee (änderbar in application.yml).