-
Notifications
You must be signed in to change notification settings - Fork 167
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
eff1c22
commit 96b9713
Showing
12 changed files
with
148 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,56 @@ | ||
--- | ||
title: "ioBroker Grundlagen" | ||
lastChanged: "11.08.2023" | ||
lastChanged: "24.08.2024" | ||
--- | ||
|
||
ioBroker ist eine reine Softwarelösung um verschiedene IoT-Systeme zu einem Gesamtsystem zu verbinden. | ||
Demnach wird auch zu jedem System weiterhin eine Zentrale (Gateway/Interface) benötigt um dessen Geräte einbinden zu können. | ||
|
||
ioBroker ist eine reine Softwarelösung um verschiedene IoT-Systeme zu einem | ||
Gesamtsystem zu verbinden. Demnach wird auch zu jedem System weiterhin eine | ||
Zentrale (Gateway/Interface) benötigt um dessen Geräte einbinden zu können. | ||
|
||
In Sonderfällen kann so eine Zentrale per Software nachgebildet werden, oder als | ||
Hardware (USB-Stick o.ä.) an den ioBroker Server angesteckt werden. | ||
In Sonderfällen kann so eine Zentrale per Software nachgebildet werden, | ||
oder als Hardware (USB-Stick o.ä.) an den ioBroker Server angesteckt werden. | ||
|
||
## Modularität | ||
ioBroker ist modular aufgebaut. Diese Module heißen bei ioBroker ***Adapter***. | ||
Es gibt über 400 [Adapter](http://download.iobroker.net/list.html) zur Anbindung von diverser Hardware oder Einbindung | ||
verschiedenster Informationen wie Wetter, Kalender usw. | ||
Es gibt über 600 [Adapter](http://download.iobroker.net/list.html) zur Anbindung von diverser Hardware oder Einbindung verschiedenster Informationen wie Wetter, Kalender usw. | ||
|
||
Daher müssen in einer Installation nur die Adapter installiert werden, die für | ||
die individuellen Bedürfnisse benötigt werden. Dies spart Speicherplatz und | ||
Rechenpower. | ||
Daher müssen in einer Installation nur die Adapter installiert werden, die für die individuellen Bedürfnisse benötigt werden. | ||
Dies spart Speicherplatz und Rechenpower. | ||
|
||
Zu jedem Adapter werden sogenannte ***Instanzen*** erstellt. Dieses sind die | ||
"Arbeitsversionen" der Adapter. Je nach Adapter können beliebig viele Instanzen | ||
erzeugt werden um verschiedene Subsysteme oder unterschiedliche Aufgabenbereiche | ||
voneinander abzugrenzen. | ||
Zu jedem Adapter werden sogenannte ***Instanzen*** erstellt. | ||
Dieses sind die "Arbeitsversionen" der Adapter. | ||
Je nach Adapter können beliebig viele Instanzen erzeugt werden um verschiedene Subsysteme | ||
oder unterschiedliche Aufgabenbereiche voneinander abzugrenzen. | ||
|
||
In diesen Instanzen findet die entsprechende Konfiguration statt. | ||
|
||
## Architektur | ||
### Server | ||
Eine Besonderheit von ioBroker besteht darin, dass die Aufgaben auch auf mehrere | ||
Server verteilt werden **können**. In so einem Fall spricht man von einem | ||
***Multihost-System***. Gründe für die Aufteilung können räumlicher Art oder | ||
eine Leistungsverteilung sein. | ||
Eine Besonderheit von ioBroker besteht darin, dass die Aufgaben auch auf mehrere Server verteilt werden **können**. | ||
In so einem Fall spricht man von einem ***Multihost-System***. | ||
Gründe für die Aufteilung können räumlicher Art oder eine Leistungsverteilung sein. | ||
|
||
### Anforderungen an die Hardware | ||
Ein ioBroker Server kann nahezu auf jeder Hardware installiert werden. Einzige | ||
Bedingung ist, dass es für das entsprechende Betriebssystem eine aktuelle | ||
Version von [nodejs](https://nodejs.org/en/download/) gibt. | ||
Ein ioBroker Server kann nahezu auf jeder Hardware installiert werden. | ||
Einzige Bedingung ist, dass es für das entsprechende Betriebssystem eine aktuelle Version von [nodejs](https://nodejs.org/en/download/) gibt. | ||
|
||
!> Stand März 2023 wird für ioBroker Node.js 18.x empfohlen. | ||
!> Stand August 2024 wird für ioBroker Node.js 18.x empfohlen. | ||
|
||
Für eine größere Installation wird außerdem ein Arbeitsspeicher (RAM) von | ||
mindestens 2 GB besser 4 GB empfohlen. Zum Testen reicht ein Raspberry Pi 2/3 | ||
mit 1 GB RAM, als Slave für wenige Adapter in einer Multihost-Umgebung | ||
reichen sogar noch kleinere Kleinrechner. | ||
|
||
### Software | ||
ioBroker verwaltet die Daten in einer Datenbank. Dementsprechend ist auch die | ||
Struktur der Daten organisiert. | ||
ioBroker verwaltet die Daten in einer Datenbank. Dementsprechend ist auch die Struktur der Daten organisiert. | ||
|
||
Zu jedem Adapter gibt es einen sogenannten Namespace, der sämtliche Daten zu | ||
einer Instanz des Adapters enthält. Dementsprechend lautet der Name des | ||
Namespaces z.B.: ***AdapterName.0*** | ||
Zu jedem Adapter gibt es einen sogenannten Namespace, der sämtliche Daten zu einer Instanz des Adapters enthält. | ||
Dementsprechend lautet der Name des Namespaces z.B.: ***AdapterName.0*** | ||
|
||
Innerhalb dieses Bereiches legt ioBroker die Geräte, deren Kanäle und wiederum | ||
deren Datenpunkte mit ihren Werten (Zuständen) an. | ||
Innerhalb dieses Bereiches legt ioBroker die Geräte, deren Kanäle und wiederum deren Datenpunkte mit ihren Werten (Zuständen) an. | ||
|
||
![Objektstruktur](../admin/media/ADMIN_Objekte_status_tree.png) | ||
|
||
in diesem Beispiel handelt es sich um einen selbst angelegten Namespace für | ||
eigene Messwerte. | ||
in diesem Beispiel handelt es sich um einen selbst angelegten Namespace für eigene Messwerte. | ||
|
||
[Adapter]: http://download.iobroker.net/list.html | ||
[nodejs]: https://nodejs.org |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,49 @@ | ||
--- | ||
lastChanged: "13.09.2018" | ||
template: true | ||
lastChanged: "24.08.2024" | ||
--- | ||
# Controller und Adapter | ||
|
||
# Adapter und Controller | ||
## Was ist ein Controller? | ||
|
||
?> ***Dies ist ein Platzhalter***. | ||
<br><br> | ||
Hilf mit bei ioBroker und erweitere diesen Artikel. | ||
Bitte beachte den [ioBroker Style Guide](https://www.iobroker.net/#de/documentation/community/styleguidedoc.md), | ||
damit die Änderungen einfacher übernommen werden können. | ||
Ein Controller in ioBroker ist eine zentrale Komponente, die für die Verwaltung und Koordination des gesamten ioBroker-Systems verantwortlich ist. | ||
Er übernimmt Aufgaben wie die Verwaltung der Adapter, die Speicherung von Daten und die Bereitstellung von Schnittstellen für die Kommunikation zwischen den verschiedenen Komponenten des Systems. | ||
Momentan ist Controller mit TypeScript geschrieben. | ||
|
||
### Hauptfunktionen eines Controllers | ||
- | ||
- **Verwaltung der Adapter**: Der Controller überwacht und steuert die verschiedenen Adapter, die im ioBroker-System installiert sind. | ||
- **Datenverwaltung**: Der Controller speichert und verwaltet die Daten, die von den Adaptern gesammelt werden. | ||
- **Systemüberwachung**: Der Controller überwacht den Zustand des gesamten Systems und stellt sicher, dass alle Komponenten und Adapter ordnungsgemäß funktionieren. Er kann Benachrichtigungen und Alarme auslösen, wenn Probleme auftreten. | ||
|
||
## Was ist ein Adapter? | ||
|
||
Ein Adapter in ioBroker ist eine Softwarekomponente, die es ermöglicht, verschiedene Geräte, | ||
Dienste oder Protokolle in das ioBroker-System zu integrieren. | ||
Adapter fungieren als Schnittstellen zwischen ioBroker und den externen Systemen, die Sie steuern oder von denen sie Daten sammeln. | ||
|
||
### Hauptfunktionen eines Adapters | ||
|
||
1. **Datenintegration**: Adapter sammeln Daten von externen Geräten oder Diensten und stellen diese Daten im ioBroker zur Verfügung. Dies kann z.B. Sensordaten, Statusinformationen oder andere relevante Daten umfassen. | ||
2. **Steuerung**: Adapter ermöglichen es, externe Geräte oder Dienste über das ioBroker-System zu steuern. Dies kann z.B. das Ein- und Ausschalten von Geräten, das Einstellen von Parametern oder das Ausführen von Befehlen umfassen. | ||
3. **Protokollübersetzung**: Adapter übersetzen die Kommunikationsprotokolle externer Geräte oder Dienste in ein Format, das ioBroker verstehen kann. Dies ermöglicht die nahtlose Integration verschiedener Systeme, die unterschiedliche Protokolle verwenden. | ||
|
||
### Beispiele für Adapter | ||
|
||
- **Zigbee-Adapter**: Ermöglicht die Integration von Zigbee-basierten Geräten wie Lampen, Sensoren und Schaltern. | ||
- **MQTT-Adapter**: Ermöglicht die Kommunikation mit MQTT-basierten Diensten und Geräten. | ||
- **HTTP-Adapter**: Ermöglicht die Integration von Diensten, die über HTTP kommunizieren. | ||
|
||
### Vorteile der Verwendung von Adaptern | ||
|
||
- **Flexibilität**: Adapter ermöglichen die Integration einer Vielzahl von Geräten und Diensten, unabhängig von deren Kommunikationsprotokollen. | ||
- **Erweiterbarkeit**: Neue Adapter können entwickelt werden, um zusätzliche Geräte oder Dienste zu unterstützen, wodurch das ioBroker-System kontinuierlich erweitert werden kann. | ||
- **Zentralisierung**: Durch die Verwendung von Adaptern können alle Geräte und Dienste zentral über das ioBroker-System verwaltet und gesteuert werden. | ||
|
||
### Typen von Adaptern | ||
- **Geräteadapter**: Diese Adapter ermöglichen die Integration und Steuerung von physischen Geräten wie Lampen, Sensoren und Schaltern. Beispiele sind der Zigbee-Adapter und der Z-Wave-Adapter. | ||
- **Protokolladapter**: Diese Adapter übersetzen verschiedene Kommunikationsprotokolle in ein Format, das ioBroker verstehen kann. Beispiele sind der MQTT-Adapter und der HTTP-Adapter. | ||
- **Serviceadapter**: Diese Adapter ermöglichen die Integration von Online-Diensten und APIs. Beispiele sind der Alexa-Adapter und der Google-Home-Adapter. | ||
- **Datenbankadapter**: Diese Adapter ermöglichen die Speicherung und Abfrage von Daten in verschiedenen Datenbanksystemen. Beispiele sind der SQL-Adapter und der InfluxDB-Adapter. | ||
- **Visualisierungsadapter**: Diese Adapter bieten Möglichkeiten zur Visualisierung und Darstellung von Daten. Beispiele sind der Vis-Adapter und der Flot-Adapter. | ||
- **Skriptadapter**: Diese Adapter ermöglichen das Erstellen und Ausführen von Skripten innerhalb von ioBroker. Beispiele sind der JavaScript-Adapter und der Blockly-Adapter. | ||
- **Spezialadapter**: Diese Adapter bieten spezielle Funktionen oder Integrationen, die nicht in die anderen Kategorien passen. Beispiele sind der Ping-Adapter und der Backitup-Adapter. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Kategorien/Aufzählungen | ||
Eine wichtige Rolle in ioBroker spielen die Kategorie-Definitionen. | ||
Sie helfen dabei, die Objekte in der Visualisierung zu gruppieren und zu sortieren. | ||
|
||
Eine Kategorie ist die Liste von Objekten die zusammen gruppiert sind, z.B. alle Geräte in einem Raum oder alle Geräte vom Typ "Beleuchtung". | ||
|
||
Von Start an gibt es zwei Kategorien: `Räume` und `Funktionen`. Allerdings können auch eigene Kategorien definiert werden. | ||
|
||
## Wozu werden die Kategorien verwendet? | ||
- **Visualisierung**: Die Kategorien helfen dabei, die Objekte in der Visualisierung zu gruppieren und zu sortieren. | ||
- **Logik**: In Skripten können die Kategorien verwendet werden, um bestimmte Aktionen für alle Objekte einer Kategorie auszuführen. | ||
- **Szenes**: Die Kategorien können in Szenen verwendet werden. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.