Skip to content

Commit

Permalink
Created some articles
Browse files Browse the repository at this point in the history
  • Loading branch information
GermanBluefox committed Aug 24, 2024
1 parent eff1c22 commit 96b9713
Show file tree
Hide file tree
Showing 12 changed files with 148 additions and 90 deletions.
2 changes: 1 addition & 1 deletion docs/content.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* [Objects](basics/objects)
* [States or Datapoints](basics/states)
* [Alias](basics/alias)
* [Enums](basics/functions)
* [Enums](basics/enums)
* [Roles](basics/roles)
* [Glossary](basics/glossary)

Expand Down
56 changes: 23 additions & 33 deletions docs/de/basics/README.md
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
53 changes: 45 additions & 8 deletions docs/de/basics/adapter.md
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.
2 changes: 1 addition & 1 deletion docs/de/basics/alias.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Zusätzlich dazu, dass die Hardware ausgetauscht wird, wird die Adresse dieses G

Da die alte Adresse an vielen Stellen wie vis, Javascript, Szenen oder anderen verwendet wurde, muss der Benutzer nun alle diese Stellen finden und dort ersetzen.

Diese Funktion ermöglicht es dem Benutzer, einen Alias für den Datenpunkt eines physisches Gerätes zuzuweisen und diesen Alias in allen Fällen zu verwenden.
Diese Funktion ermöglicht es dem Benutzer, einen Alias für den Datenpunkt eines physischen Gerätes zuzuweisen und diesen Alias in allen Fällen zu verwenden.
Wenn das Gerät ausgetauscht werden muss, muss die ID nur im Alias geändert werden.

Ein weiterer Anwendungsfall für diese Funktion ist die Unterstützung von Geräten in speziellen intelligenten Adaptern wie iot oder material.
Expand Down
31 changes: 24 additions & 7 deletions docs/de/basics/architecture.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
---
title: "Architektur"
lastChanged: "05.02.2022"
lastChanged: "24.08.2024"
---

# Systemaufbau
## Architektur

ioBroker ist modular, d.h. aus vielen einzelnen Komponenten aufgebaut. Jedes Modul hat eine spezifische Aufgabe. Um den Überblick zu behalten, besitzt ioBroker deshalb einen zentralen Koordinator für alle seine Module. Dieser Koordinator ist der im Hintergrund arbeitende `js-controller`. Er ist zuständig für die zentrale Datenhaltung sowie Management und Kommunikation zwischen allen Modulen. Die Module selbst werden `Adapter` genannt. Adapter werden vom Anwender
nur bei Bedarf installiert. Die webbasierte Administrationsoberfläche `admin` ist selbst auch ein
Adapter. Der Admin-Adapter oder kurz "Admin" ist die Managementoberfläche eines ioBroker-Systems. Der [Admin](https://www.iobroker.net/#de/documentation/admin/README.md) wird in der Regel mit der Adresse [http://localhost:8081](http://localhost:8081) aufgerufen.
ioBroker ist modular, d.h. aus vielen einzelnen Komponenten aufgebaut. Jedes Modul hat eine spezifische Aufgabe. Um den Überblick zu behalten, besitzt ioBroker deshalb einen zentralen Koordinator für alle seine Module. Dieser Koordinator ist der im Hintergrund arbeitende `js-controller`. Er ist zuständig für die zentrale Datenhaltung sowie Management und Kommunikation zwischen allen Modulen. Die Module selbst werden `Adapter` genannt.
Adapter werden vom Anwender nur bei Bedarf installiert. Die webbasierte Administrationsoberfläche `admin` ist selbst auch ein Adapter. Der Admin-Adapter oder kurz "Admin" ist die Managementoberfläche eines ioBroker-Systems. Der [Admin](https://www.iobroker.net/#de/documentation/admin/README.md) wird in der Regel mit der Adresse [http://localhost:8081](http://localhost:8081) aufgerufen.

Wenn ein neuer Adapter mit dem Admin installiert wird, werden zuerst die Adapterdateien aus dem Internet geladen und auf die Server-Festplatte geschrieben. Soll ein Adapter gestartet werden, wird zuerst eine `Instanz` des Adapters erzeugt. Jede Adapterinstanz kann individuell konfiguriert und unabhängig mit dem Admin gestoppt und gestartet werden. Deshalb läuft jede Instanz in einem eigenen Prozess, der im Hintergrund mit dem ioBroker js-controller kommuniziert.

In einem `Multihost`-System mit mehreren ioBroker-Servern können Instanzen von Adaptern auch auf verschiedenen Servern verteilt werden. Dadurch kann die Last verteilt oder direkt vor Ort zusätzliche Hardware angebunden werden (z.B. IO-Ports, USB).

Die Kommunikation zwischen Adaptern, js-controller, Datenbanken und Webfrontends erfolgt über mehrere TCP/IP-Verbindungen. Der Datenaustausch erfolgt je nach gewählter Einstellung entweder im Klartext oder verschlüsselt.

ioBroker und Adapter sind vorwiegend in der Programmiersprache JavaScript geschrieben. Zur Ausführung von JavaScript benötigt man eine entsprechende Laufzeitumgebung. ioBroker setzt deshalb auf [Node.js](https://github.com/nodesource/distributions#installation-instructions). Diese Laufzeitumgebung gibt es für verschiedenste Softwareplattformen wie Linux, Windows und macOS.
ioBroker und Adapter sind vorwiegend in der Programmiersprache JavaScript geschrieben. Zur Ausführung von JavaScript benötigt man eine entsprechende Laufzeitumgebung. ioBroker setzt deshalb auf [Node.js](https://github.com/nodesource/distributions#installation-instructions). Diese Laufzeitumgebung gibt es für verschiedenste Softwareplattformen wie Linux, Windows und macOS.

Zur Installation von ioBroker und den Adaptern wird der Node Package Manager, kurz `npm`, genutzt. Dieser kann Module samt ihrer Abhängigkeiten suchen, installieren, entfernen, kompilieren und aktualisieren.
Ohne Node.js funktioniert ioBroker nicht. Eine manuelle Installation von Node.js ist nicht nötig, dies erledigt direkt der ioBroker-Installer.
Expand All @@ -29,6 +28,24 @@ Im gleichen Zug erreichen frühere LTS-Versionen ihr Lebensende (EOL, End of Lif

ioBroker nutzt viele Module und Erweiterungen aus der JavaScript Open-Source Scene, dort kommt es regelmäßig vor, dass Versionen die EOL gehen, zeitnah danach auch nicht weiter unterstützt werden. Das hat im ersten Schritt keine echte Auswirkung, aber mittelfristig wird es, Adapter und später auch den js-controller geben, der EOL Versionen von Node.js nicht mehr unterstützt.

## Adapter und Instanzen

@@@ Hübsches Bild mit Architekturschichten @@@
@@@ JS-Controller erklären und Überleitung zu Adapter & Instanzen @@@
Adapter sind spezielle Module, die verschiedene Geräte, Dienste oder Protokolle in das ioBroker-System integrieren. Sie fungieren als Schnittstellen zwischen ioBroker und den externen Systemen, die Sie steuern oder von denen sie Daten sammeln. Adapter können in verschiedenen Kategorien eingeteilt werden, wie z.B. Geräteadapter, Protokolladapter, Serviceadapter, Datenbankadapter, Visualisierungsadapter, Skriptadapter und Spezialadapter.

Jede Adapterinstanz kann individuell konfiguriert und unabhängig mit dem Admin gestoppt und gestartet werden. Dies ermöglicht eine flexible und skalierbare Integration von verschiedenen Geräten und Diensten in das ioBroker-System. Adapterinstanzen laufen in eigenen Prozessen und kommunizieren im Hintergrund mit dem js-controller.

## Multihost-Systeme

In einem Multihost-System können mehrere ioBroker-Server miteinander verbunden werden, um die Last zu verteilen oder zusätzliche Hardware vor Ort anzubinden. Dies ermöglicht eine bessere Skalierbarkeit und Flexibilität des ioBroker-Systems. Adapterinstanzen können auf verschiedenen Servern verteilt werden, um die Systemressourcen optimal zu nutzen.

Die Kommunikation zwischen den Servern erfolgt über TCP/IP-Verbindungen, und der Datenaustausch kann je nach Einstellung im Klartext oder verschlüsselt erfolgen. Multihost-Systeme bieten eine robuste und skalierbare Lösung für große Installationen mit vielen Geräten und Diensten.

## Sicherheit und Updates

Sicherheit und regelmäßige Updates sind wichtige Aspekte bei der Nutzung von ioBroker. Node.js, die zugrunde liegende Laufzeitumgebung, entwickelt sich schnell weiter und erhält regelmäßig Updates, die die Stabilität und Sicherheit verbessern. Es ist wichtig, die LTS-Versionen von Node.js zu verwenden, da diese über einen längeren Zeitraum gepflegt werden und Sicherheitsupdates erhalten.

ioBroker und seine Adapter nutzen viele Module und Erweiterungen aus der JavaScript Open-Source-Community. Es ist wichtig, diese Module regelmäßig zu aktualisieren, um von den neuesten Sicherheits- und Stabilitätsverbesserungen zu profitieren. Der Node Package Manager (npm) erleichtert die Verwaltung und Aktualisierung dieser Module.

## Zusammenfassung

ioBroker ist ein modulares und skalierbares System zur Integration und Steuerung von verschiedenen Geräten, Diensten und Protokollen. Der zentrale Koordinator, der js-controller, verwaltet die Adapter und sorgt für die Kommunikation zwischen den verschiedenen Komponenten des Systems. Adapter ermöglichen die flexible Integration von Geräten und Diensten, und Multihost-Systeme bieten zusätzliche Skalierbarkeit und Flexibilität. Sicherheit und regelmäßige Updates sind wichtige Aspekte, um die Stabilität und Zuverlässigkeit des ioBroker-Systems zu gewährleisten.
12 changes: 12 additions & 0 deletions docs/de/basics/enums.md
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.
12 changes: 0 additions & 12 deletions docs/de/basics/functions.md

This file was deleted.

8 changes: 4 additions & 4 deletions docs/de/basics/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ die wichtigsten Begriffe, die im und um den ioBroker auftreten erläutert.

* **Adapter**

Ein Modul oder Treiber für ein Gerät, Service oder zur Bereistellung von
Daten. Durch den sehr modularen Aufbau von ioBroker ist quasi alles ein
Ein Modul oder Treiber für ein Gerät, Service oder zur Bereistellung von Daten.
Durch den sehr modularen Aufbau von ioBroker ist quasi alles ein
Adapter: Admin-Oberfläche, Visualisierung, Scripting, …

* **Admin**
Expand All @@ -20,11 +20,11 @@ die wichtigsten Begriffe, die im und um den ioBroker auftreten erläutert.
Instanzen, anlegen und prüfen von Objekten, Zuständen, editieren von
Skripten und vielem mehr.

* **Aufzählung**
* **Kategorien**

englischer Begriff: enum(eration)

Eine Aufzählung ist eine Liste bestimmter Objekte, die zu einer Gruppe
Eine Aufzählung/Kategorie ist eine Liste bestimmter Objekte, die zu einer Gruppe
zusammengefügt wurden.

* **Blockly**
Expand Down
Loading

0 comments on commit 96b9713

Please sign in to comment.