diff --git a/archive/news/news.en.md b/archive/news/news.en.md
deleted file mode 100644
index 903278d78..000000000
--- a/archive/news/news.en.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## 2018.01.19
-News on 19th of January
-
-## 2018.01.11
-News on 11th of January
\ No newline at end of file
diff --git a/archive/news/news.ru.md b/archive/news/news.ru.md
deleted file mode 100644
index 865e733cc..000000000
--- a/archive/news/news.ru.md
+++ /dev/null
@@ -1,5 +0,0 @@
-## 2018.01.19
-Новости за 19ое число
-
-## 2018.01.11
-Новости за 11ое число
\ No newline at end of file
diff --git a/archive/news/news.de.md b/blog/de/2018_03_17.md
similarity index 86%
rename from archive/news/news.de.md
rename to blog/de/2018_03_17.md
index 1d5684ce3..6046eda3a 100644
--- a/archive/news/news.de.md
+++ b/blog/de/2018_03_17.md
@@ -1,42 +1,41 @@
-## 2018.03.17
-### Ankündigung
-Es wurde die neue Cloud-Adapter-Version vorbereitet.
-
-Es ist wichtig, dass ALLE diese Version haben, wenn der Cloud-Server nächtes mal neu gestartet wird (in einer Woche).
-
-Das ist gültig für iobroker.net und auch für iobroker.pro. Allerdings iobroker.pro wird nach ca. einer Woche nach iobroker.net upgedatet sein.
-
-#### Was ist geändert
-Cloud-Adapter unterstützt jetzt die Steuerungsbefehle vom Cloud-Server.
-
-Es gibt 3 Arten von Cloud-Befehlen:
-
-##### 1. "Redirect".
-Da iobroker.net mit sehr vielen veralteten Clients belastet ist, kann jetzt Cloud-Server die neue Clients auf die neue Adresse 10557 umleiten und die alte Clients einfach zu machen.
-
-Die alten Clients werden alten Server 10555 immer noch belasten, aber es wird ein spezieller schneller Server sein, der nichts macht, ausser die Versionen prüfen. Damit kann Cloud-Server ungefähr 30 Connections pro Sekunde (!) sparen.
-
-Auch zukünftige Umzuge und Load-Ballancing wird damit möglich sein.
-
-##### 2. "Stop".
-Cloud-Server kann jetzt zu Clients, die nicht passende Version haben, "stop"-Befehl senden. Damit werden die Clients angehalten und werden den Server mit Anfragen nicht mehr belasten.
-
-Client wird so lange disconnected, bis der nicht upgedated wird.
-
-Leider ist noch das Befehl mit älteren < 2.5.0 Clients nicht unterstützt und deswegen muss man Trick mit Serverumzug machen.
-
-Aber in der Zukunft wird dann es einfacher.
-
-##### 3. "Wait".
-Beim Start bekommt der Cloud-Server SEHR viele gleizeitige Verbindungsanfragen. Da Datenbank nicht so viele Anfragen gleichzeitig verarbeiten kann werden die Clients gebeten 60-90 Sekunden zu warten und es wird 500 oder 1000 Clients gleichzeitig angebunden.
-
-So kann der Server in Ruhe alle Anfragen verarbeiten, sonst hat man ein "Schaukel-Effekt".
-
-#### "Schaukel-Effekt"
-Es werden viele Clients angebunden und der Server wird langsammer. Die Clients verliehren die Verbindung und fangen sofort wieder eine Verbindung aufzubauen zusätzlich zu alten. Dann Verdoppelt sich die Anzahl von Verbindungen bis der Server gar nichts machen kann. So ein Zustand kann bis zu 5 Stunden dauern.
-
-## 2018.01.19
-Neuegkeiten für 19 Januar
-
-## 2018.01.11
-Neuegkeiten für 11 Januar
\ No newline at end of file
+---
+Author: Homoran
+imageSource: https://pixabay.com/photos/sky-clouds-atmosphere-air-oxygen-1441936/
+---
+
+# Cloud-Adapter-Version
+## Ankündigung
+Es wurde die neue Cloud-Adapter-Version vorbereitet.
+
+Es ist wichtig, dass ALLE diese Version haben, wenn der Cloud-Server nächtes mal neu gestartet wird (in einer Woche).
+
+Das ist gültig für iobroker.net und auch für iobroker.pro. Allerdings iobroker.pro wird nach ca. einer Woche nach iobroker.net upgedatet sein.
+
+### Was ist geändert
+Cloud-Adapter unterstützt jetzt die Steuerungsbefehle vom Cloud-Server.
+
+Es gibt 3 Arten von Cloud-Befehlen:
+
+#### 1. "Redirect".
+Da iobroker.net mit sehr vielen veralteten Clients belastet ist, kann jetzt Cloud-Server die neue Clients auf die neue Adresse 10557 umleiten und die alte Clients einfach zu machen.
+
+Die alten Clients werden alten Server 10555 immer noch belasten, aber es wird ein spezieller schneller Server sein, der nichts macht, ausser die Versionen prüfen. Damit kann Cloud-Server ungefähr 30 Connections pro Sekunde (!) sparen.
+
+Auch zukünftige Umzuge und Load-Ballancing wird damit möglich sein.
+
+#### 2. "Stop".
+Cloud-Server kann jetzt zu Clients, die nicht passende Version haben, "stop"-Befehl senden. Damit werden die Clients angehalten und werden den Server mit Anfragen nicht mehr belasten.
+
+Client wird so lange disconnected, bis der nicht upgedated wird.
+
+Leider ist noch das Befehl mit älteren < 2.5.0 Clients nicht unterstützt und deswegen muss man Trick mit Serverumzug machen.
+
+Aber in der Zukunft wird dann es einfacher.
+
+#### 3. "Wait".
+Beim Start bekommt der Cloud-Server SEHR viele gleizeitige Verbindungsanfragen. Da Datenbank nicht so viele Anfragen gleichzeitig verarbeiten kann werden die Clients gebeten 60-90 Sekunden zu warten und es wird 500 oder 1000 Clients gleichzeitig angebunden.
+
+So kann der Server in Ruhe alle Anfragen verarbeiten, sonst hat man ein "Schaukel-Effekt".
+
+### "Schaukel-Effekt"
+Es werden viele Clients angebunden und der Server wird langsammer. Die Clients verliehren die Verbindung und fangen sofort wieder eine Verbindung aufzubauen zusätzlich zu alten. Dann Verdoppelt sich die Anzahl von Verbindungen bis der Server gar nichts machen kann. So ein Zustand kann bis zu 5 Stunden dauern.
diff --git a/blog/images/2018_03_17.png b/blog/images/2018_03_17.png
new file mode 100644
index 000000000..583f4a652
Binary files /dev/null and b/blog/images/2018_03_17.png differ
diff --git a/docs/de/adapterref/iobroker.harmony/README.md b/docs/de/adapterref/iobroker.harmony/README.md
index 0c223f093..505e446d0 100644
--- a/docs/de/adapterref/iobroker.harmony/README.md
+++ b/docs/de/adapterref/iobroker.harmony/README.md
@@ -1,3 +1,6 @@
+---
+lastChanged: 20.07.2018
+---

# Logitech Harmony
@@ -67,8 +70,7 @@ Der Adapter findet automatisch alle Harmony Hubs, die sich im Subnetz des
ioBroker-Servers befinden.
### Fenster "Logitech Harmony adapter settings"
-
-*Admin Oberfläche*
+
| Feld | Beschreibung |
|:-------------|:-------------|
@@ -85,8 +87,7 @@ verlassen. Dadurch efolgt im Anschluß ein Neustart des Adapters.
Die Installation des Adapters hat im Bereich `Objekte` eine aktive Instanz des
Logitech Harmony-Hub-Adapters angelegt.
-
-*Erste Instanz*
+
Auf einem ioBroker Server lässt sich immer nur eine Instanz des Logitech
Harmony-Adapters installieren.
@@ -101,32 +102,30 @@ Im Bereich `Objekte` werden in einer Baumstruktur alle vom Adapter im Hub
erkannten Geräte und Aktivitäten aufgelistet. Zusätzlich wird auch noch
darüber informiert, ob die Kommunikation mit dem Hub reibungslos erfolgt.
-
-*Objekte des Harmony-Adapters*
+
Jeder Datenpunkt ist mit seinem zugehörigen Datentyp sowie seinen Berechtigungen aufgehführt.
Berechtigungen können lesend (R) sowie schreibend (W) sein. Jeder Datenpunkt kann mindestens gelesen (R) werden, während
andere ebenfalls beschrieben werden können. Zum auffinden eines bestimmten Datenpunkts empfiehlt sich die Suche mittels
der Tastenkombination "STRG + F".
-Objekt | Zugriff | Bescheibung
-:------|:-------:|:-----------
-**harmony.0** | R | Name der ersten *Instanz* des Logitech Harmony-Adapters
- **Harmony Hub**| R | Name des *Hubs*
- **Apple TV Generation 3**| R | Name eines *Geräts*, enthält Gerätefunktionen
- **Denon AV-Empfänger**| R | Name eines *Geräts*, enthält Gerätefunktionen
- **:**| R | Weitere *Geräte*
- **activities**| R | Liste mit allen im Harmony Hub programmierten *Aktivitäten*
- ***hubBlocked***| R | Zeigt an, ob der Hub gerade beschäftigt ist
- ***hubConnected***| R | Status der Verbindung zwischen Adapter und Hub
+| Objekt | Zugriff | Bescheibung|
+|------|-------|-----------|
+|**harmony.0** | R | Name der ersten *Instanz* des Logitech Harmony-Adapters|
+| **Harmony Hub**| R | Name des *Hubs*|
+| **Apple TV Generation 3**| R | Name eines *Geräts*, enthält Gerätefunktionen|
+| **Denon AV-Empfänger**| R | Name eines *Geräts*, enthält Gerätefunktionen|
+| **:**| R | Weitere *Geräte*|
+| **activities**| R | Liste mit allen im Harmony Hub programmierten *Aktivitäten*|
+| ***hubBlocked***| R | Zeigt an, ob der Hub gerade beschäftigt ist|
+| ***hubConnected***| R | Status der Verbindung zwischen Adapter und Hub|
### Gerätefunktionen
Öffnet man ein Gerät, so erhält man eine Liste mit allen zum Gerät gehörenden
Funktionalitäten. Diese Gerätefunktionen sind gerätespezifisch und unterscheiden sich
deshalb bei Geräten unterschiedlichen Typs.
-
-*Gerätefunktionen*
+
#### Auslösen einer Gerätefunktion
Jede Gerätefunktion `{Instanz}.{Hub Name}.{Gerät}.{Gerätefunktion}` löst eine
@@ -144,8 +143,7 @@ Nach dem Auslösen der Gerätefunktion ändert sich der Wert wieder auf 0.
Unterhalb von `activities`werden alle am Harmony Hub programmierten Aktivitäten
aufgelistet.
-
-*Aktivitäten*
+
#### Starten einer Aktivität
Aktivitäten werden gestartet, wenn man bei einer Aktivität
@@ -175,8 +173,6 @@ an. Dabei bedeuten die Werte
Die Bedeutung der Werte ist analog zu
`{Instanz}.{Hub Name}.activities.currentStatus`.
-
-
## Deinstallation
> T: Ich bin der Meinung, dass eine Standarddeinstallation eines Adapters in einem
zentralen Artikel ausführlich dokumentiert wird. Beim Adapter wird (immer)
@@ -202,9 +198,13 @@ Sollten die Installationsdateien vollständig von dem Host gelöscht werden, mus
in der Kachel des Harmony-Adapters in der Rubrik Adapter geschehen.
## Besonderheiten
-Backup
+
+Backup
+
Multihost
+
History
+
Performance
## FAQ
@@ -246,7 +246,7 @@ Performance
5-10 Minuten nach dem WLAN-Routerstart ein.
8. **Der HUB wird nicht gefunden.**
-
+
Prüfe nach, ob der Hub sich wirklich um gleichen Netzwerksubnetz und VLAN
wie der ioBroker-Server befindet. Sind Multicasts erlaubt oder werden diese
vom Router gefiltert? Leuchtet die Status-LED am Hub grün?
@@ -263,6 +263,7 @@ Performance
### JavaScript
Auslösen von Gerätefunktionen. Hier wird der Denon AV-Empfänger ein- oder ausgeschaltet,
wenn sich der Wert eines anderen Datenpunktes verändert.
+
```
if (getState("hm-rpc.0.MEQ01234567.2.STATE").val == true) {
setState("harmony.0.Harmony Hub.Denon AV-Empfänger.PowerOn"/*Denon AV-Empfänger:PowerOn*/, '1', true);
@@ -279,41 +280,31 @@ if (getState("hm-rpc.0.MEQ01234567.2.STATE").val == true) {
Auslösen von Gerätefunktionen. Hier wird der Denon AV-Empfänger ein- oder ausgeschaltet,
wenn sich der Wert eines anderen Datenpunktes verändert.
-
-**Blockly**
+
-[Quelltext][blockly]
+[Quelltext](media/a_harmony_blockly.xml)
### Node-Red
> zugehörige node-red-Elemente
+
> Beispiele
+
> Exporte zum Weiterverwenden
### vis
> zugehörige vis-Elemente
-> Beispiele
-> Exporte zum Weiterverwenden
-> Code-Fragmente
+
+> Beispiele
+
+> Exporte zum Weiterverwenden
+
+> Code-Fragmente
## Links
> Referenzen auf andere Dokumente im ioBroker-Portal
-> Weblinks z.B. zum Hersteller
-> GitHub-Links
-* Herstellerseite https://www.logitech.com/de-de/product/harmony-hub (20.07.2018)
-
-## Historie
-> Der folgende Text dient nur als Platzhalter. Die Historie wird
- vom Dokumentengenerator dynamisch erzeugt und hier eingefügt. Datenquelle
- ist io-package.json -> common.news in der jeweiligen Doku-Sprache
-| Version | Änderung |
-|:-------:|:------------------------------------------|
-|0.9.1 |Fix für problematische Zeichen |
-|0.7.1 |Bug fixes |
-|0.7.0 |Unterstützung für mehrere Hubs hinzugefügt |
-|0.6.2 |falscher Port korrigiert |
-|0.1.0 |Initialer commit |
+> Weblinks z.B. zum Hersteller
+> GitHub-Links
-[logo]: https://badge.fury.io/js/svgo.svg "npm logo"
-[blockly]: media/a_harmony_blockly.xml "Blockly"
+* Herstellerseite [https://www.logitech.com/de-de/product/harmony-hub](https://www.logitech.com/de-de/product/harmony-hub)
diff --git a/docs/de/adapterref/iobroker.harmony/en/README.md b/docs/de/adapterref/iobroker.harmony/en/README.md
deleted file mode 100644
index a0444f5e9..000000000
--- a/docs/de/adapterref/iobroker.harmony/en/README.md
+++ /dev/null
@@ -1,119 +0,0 @@
-
-# Logitech Harmony adapter
-
-The Logitech Harmony adapter allows easy integration of one or
-even multiple Logitech Harmony hubs into an ioBroker system.
-
-With the help of the Logitech Harmony Hubs a variety of entertainment and
-Smart Home devices can be controlled. Using the hub, ioBroker is able to
-start and stop activities and query the status of activities as well.
-Remote devices can be controled with virtual keys.
-
-
-
-*Logitech Harmony Hub with Harmony Elite remote control*
-
-
-
-## Characteristics
-> Attention! The following table is only an example.
-
-| | |
-|-------------------------|:---------------------------------------:|
-| Status of the documentary | 29.07.2018 |
-| current version stable | ![stable][logo] |
-| current version latest | ![latest][logo] |
-| OS | Linux, Windows; OS X |
-| node version | > = 4.x |
-| Developer | Pmant |
-| Github | LINK |
-| License | MIT |
-| Category | Multimedia |
-| Keywords | `harmony`` hub` `logitech`` home automation` |
-| Dependencies | `harmonyhubjs-client`` harmonyhubjs-discover` `semaphore` |
-
-
-
-## Overview
-
-### Logitech Harmony
-Logitech Harmony is compatible with more than 270,000 entertainment and smart
-Home devices. These include TVs and cable boxes, disc players and game consoles
-to AV receivers and streaming media players, as well as intelligent lighting,
-Locks, thermostats and much more.
-
-With Logitech Harmony you can change programs, adjust the volume,
-Set favorites and control lighting and other smart devices. The highlight
-of the system is the creation of actions to control multiple devices with only
-a keystroke.
-
-1. The Logitech Harmony Hub connects to the home network via Wi-Fi.
-2. Harmony hubs do not have an Ethernet port.
-3. The hub supports only the WLAN 2.4 GHz frequency band. The 5 GHz frequency band will be
- unsupported.
-4. An 802.11 g / n router should be used. 802.11 a / b is not supported.
-5. WEP 64/128, WPA Personal, and WEP are used as encryption for the WLAN
- WPA2-AES supported.
-6. UPnP does not need to be enabled for Harmony for the Harmony app to run
- Recognize Hub and communicate with him. On the other hand it has to be activated
- to allow the hub to discover and work with other devices on the network.
- This applies, for example, to devices such as Philips hue, Sonos, Nest, Roku or Smart TVs.
-7. The maximum number of devices per stroke is 8 devices. 15 devices are possible if as
- Remote at least one Harmony Touch or Ultimate one is registered at the hub.
-8. The maximum number of preferred channels is 50 per mobile device.
-
-### Logitech Harmony adapter
-The Logitech Harmony adapter automatically finds all Logitech Harmony hubs
-via a Wi-Fi connection that are located in the same network subnet as the
-ioBroker server
-
-
-Objects for triggering functions and activities (= command macros) are used by the
-adapter automatically created in the ioBroker. Also, the current status of the hub is
-to displayed. By writing or reading of objects values their status can be changed
-and thus actions can be triggered or queried.
-
-
-
-## Prerequisites before installation
-The ioBroker adapter for the Logitech Harmony system can not be used to connect devices or devices
-Create or change activities. That is why it is necessary that before use
-of the adapter the remote control system as described in the instructions of Logitech,
-is set up and works together with the controlled devices.
-
-
-
-## Installation
-An instance of the adapter is installed via the ioBroker Admin interface. The
-detailed instructions for the necessary installaton steps you will find ** here **.
-
-After the installation of an adapter instance opens automatically
-a configuration window.
-
-
-
-## Configuration
-The adapter automatically finds all Harmony hubs that are in the subnet of the
-ioBroker servers.
-
-
-
-### "Logitech Harmony adapter settings" window
-
-*Admin interface*
-
-| Field | Description |
-|: ------------- |: ------------- |
-| ** Hub User ** | In case you provided access to the Harmony Hub configuration with a user and password, please enter the username here. Pay attention to uppercase and lowercase letters. |
-| ** Hub Password ** | If you provide a user and password for access to the Harmony Hub configuration, enter the password here. Pay attention to uppercase and lowercase letters. |
-
-The two fields need only be filled, if the hub is secured with a username
-and a password.
-
-After completing the configuration, the configuration dialog is displayed with `SAVE AND CLOSE`
-leave. This will cause a restart of the adapter.
-
-
-[logo]: https://badge.fury.io/js/svgo.svg "npm logo"
-[blockly]: media/a_harmony_blockly.xml "Blockly"
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_hamony_simple_blockly.jpg b/docs/de/adapterref/iobroker.harmony/en/media/a_hamony_simple_blockly.jpg
deleted file mode 100644
index 26306da42..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/a_hamony_simple_blockly.jpg and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_activities.png b/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_activities.png
deleted file mode 100644
index 9460b96f6..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_activities.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_admin_settings.png b/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_admin_settings.png
deleted file mode 100644
index 406c25ccc..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_admin_settings.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_blockly.xml b/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_blockly.xml
deleted file mode 100644
index 33616a4cb..000000000
--- a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_blockly.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
- EQ
-
-
- val
- hm-rpc.0.MEQ0165864.2.STATE
-
-
-
-
- TRUE
-
-
-
-
-
-
-
- harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn
- FALSE
-
-
- 1
-
-
-
-
- Bei kontrolle schalter = AN kein delay schalte
-
-
-
-
-
-
- EQ
-
-
- val
- hm-rpc.0.MEQ0165864.2.STATE
-
-
-
-
- FALSE
-
-
-
-
-
-
- Bei kontrolle schalter = AUS schalte mit delay
-
-
- timeout
- 1000
-
-
-
- harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn
- FALSE
-
-
- 1
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_geraet.png b/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_geraet.png
deleted file mode 100644
index 598c12de6..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_geraet.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_instanz.png b/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_instanz.png
deleted file mode 100644
index ca53f4a7b..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_instanz.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_objekte.png b/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_objekte.png
deleted file mode 100644
index 8524176b5..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/a_harmony_objekte.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_config_01.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_config_01.png
deleted file mode 100644
index e408cfeb6..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_config_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_01.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_01.png
deleted file mode 100644
index 61a8d4466..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_02.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_02.png
deleted file mode 100644
index 278511b31..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_02.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_03.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_03.png
deleted file mode 100644
index 29b7520f4..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_delete_03.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_01.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_01.png
deleted file mode 100644
index 5faa9b8ba..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_02.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_02.png
deleted file mode 100644
index b3a9478ae..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_02.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_03.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_03.png
deleted file mode 100644
index 610934c1a..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_03.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_04.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_04.png
deleted file mode 100644
index 4c4f0b13c..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_install_04.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects.png
deleted file mode 100644
index 58946eec9..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_01.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_01.png
deleted file mode 100644
index 0122404ce..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_800.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_800.png
deleted file mode 100644
index de36ac25b..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_800.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_small.png b/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_small.png
deleted file mode 100644
index e7941154d..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/adapter_harmony_objects_small.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/harmony.png b/docs/de/adapterref/iobroker.harmony/en/media/harmony.png
deleted file mode 100644
index 5d7694480..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/harmony.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/en/media/harmony_850.jpg b/docs/de/adapterref/iobroker.harmony/en/media/harmony_850.jpg
deleted file mode 100644
index 30384dd03..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/en/media/harmony_850.jpg and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/README.md b/docs/de/adapterref/iobroker.harmony/ru/README.md
deleted file mode 100644
index a7a9ef0b4..000000000
--- a/docs/de/adapterref/iobroker.harmony/ru/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-
-# Адаптер Logitech Harmony
-
-Адаптер Logitech Harmony позволяет легко интегрировать один или несколько
-концентраторов Logitech Harmony в систему ioBroker.
-
-Гарнитура Logitech Harmony может управлять различными развлекательными и
-интеллектуальными домашними устройствами. С помощью ioBroker действия могут
-быть запущены и остановлены через концентратор, состояние активности может быть
-запрошено, а устройства могут дистанционно управляться виртуальными
-нажатиями клавиш.
-
-
-
-**Гарнитура Logitech Harmony с пультом дистанционного управления Harmony Elite**
-
-## Обзор
-
-### Logitech Harmony
-Logitech Harmony совместим с более чем 270 000 развлечений и умных
-Главная устройства. К ним относятся телевизоры и кабельные коробки, проигрыватели дисков и игровые консоли
-к AV-ресиверам и потоковым медиа-плеерам, а также к интеллектуальному освещению,
-Замки, термостаты и многое другое.
-
-С Logitech Harmony вы можете изменять программы, настраивать громкость,
-Установите избранные и контрольные лампы и другие интеллектуальные устройства. Выделение
-Система - это создание действий для управления несколькими устройствами только с помощью
-нажатие клавиши.
-
-1. Гарнитура Logitech Harmony подключается к домашней сети через Wi-Fi.
-2. В концентраторах Harmony нет Ethernet-порта.
-3. Концентратор поддерживает только полосу частот WLAN 2,4 ГГц. Полоса частот 5 ГГц будет
- не поддерживается.
-4. Должен использоваться маршрутизатор 802.11 g / n. 802.11 a / b не поддерживается.
-5. WEP 64/128, WPA Personal и WEP используются в качестве шифрования для WLAN
- WPA2-AES поддерживается.
-6. UPnP не требуется включить для Harmony для приложения Harmony для запуска
- Признайте Хаб и общайтесь с ним. С другой стороны, он должен быть активирован
- чтобы концентратор мог обнаружить и работать с другими устройствами в сети.
- Это относится, например, к таким устройствам, как Philips hue, Sonos, Nest, Roku или Smart TV.
-7. Максимальное количество устройств на ход - 8 устройств. 15 устройств возможны, если в качестве
- Удаленный, по крайней мере, один Harmony Touch или Ultimate один зарегистрирован в концентраторе.
-8. Максимальное количество предпочтительных каналов составляет 50 на мобильное устройство.
-
-### Logitech Harmony адаптер
-Адаптер Logitech Harmony автоматически находит все концентраторы Logitech Harmony, которые
-через соединение Wi-Fi с сервером ioBroker в той же подсети сети
-есть.
-
-Объекты для запуска функций и действий (= командные макросы) используются
-Адаптер автоматически создается в ioBroker. Кроме того, текущий статус концентратора
-в распоряжение. По конкретному описанию или чтению созданных объектов
-их статус может быть изменен, и, таким образом, действия могут быть вызваны или запрошены.
-
-## Предварительные требования перед установкой
-Адаптер ioBroker для системы Logitech Harmony не может использоваться для подключения устройств или устройств
-Создайте или измените действия. Поэтому необходимо, чтобы перед использованием
-адаптера системы дистанционного управления, как описано в инструкциях Logitech,
-настраивается и работает вместе с контролируемыми устройствами.
-
-## установка
-Экземпляр адаптера устанавливается через интерфейс администратора ioBroker.
-подробные инструкции для необходимых шагов установки вы найдете здесь ** здесь **.
-
-После автоматической установки экземпляра адаптера
-окно конфигурации.
-
-## конфигурация
-Адаптер автоматически находит все концентраторы Harmony, которые находятся в подсети
-серверы ioBroker.
-
-### Настройки адаптера Logitech Harmony
-
-**Интерфейс администратора**
-
-| Поле | Описание |
-|: ------------- |: ------------- |
-| ** Hub User ** | Если вы предоставили доступ к конфигурации Harmony Hub с помощью пользователя и пароля, введите здесь имя пользователя. Обратите внимание на прописные и строчные буквы. |
-| ** Hub Password ** | Если вы предоставите пользователю и пароль для доступа к конфигурации Harmony Hub, введите здесь пароль. Обратите внимание на прописные и строчные буквы. |
-
-Эти два поля необходимо заполнить, если в хабе есть имя пользователя
-и пароль защищен.
-
-После завершения настройки диалоговое окно конфигурации отображается с надписью «SAVE AND CLOSE»
-уйти. Это приведет к перезапуску адаптера.
\ No newline at end of file
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_hamony_simple_blockly.jpg b/docs/de/adapterref/iobroker.harmony/ru/media/a_hamony_simple_blockly.jpg
deleted file mode 100644
index 26306da42..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/a_hamony_simple_blockly.jpg and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_activities.png b/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_activities.png
deleted file mode 100644
index 9460b96f6..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_activities.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_admin_settings.png b/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_admin_settings.png
deleted file mode 100644
index 406c25ccc..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_admin_settings.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_blockly.xml b/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_blockly.xml
deleted file mode 100644
index 33616a4cb..000000000
--- a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_blockly.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
- EQ
-
-
- val
- hm-rpc.0.MEQ0165864.2.STATE
-
-
-
-
- TRUE
-
-
-
-
-
-
-
- harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn
- FALSE
-
-
- 1
-
-
-
-
- Bei kontrolle schalter = AN kein delay schalte
-
-
-
-
-
-
- EQ
-
-
- val
- hm-rpc.0.MEQ0165864.2.STATE
-
-
-
-
- FALSE
-
-
-
-
-
-
- Bei kontrolle schalter = AUS schalte mit delay
-
-
- timeout
- 1000
-
-
-
- harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn
- FALSE
-
-
- 1
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_geraet.png b/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_geraet.png
deleted file mode 100644
index 598c12de6..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_geraet.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_instanz.png b/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_instanz.png
deleted file mode 100644
index ca53f4a7b..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_instanz.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_objekte.png b/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_objekte.png
deleted file mode 100644
index 8524176b5..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/a_harmony_objekte.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_config_01.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_config_01.png
deleted file mode 100644
index e408cfeb6..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_config_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_01.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_01.png
deleted file mode 100644
index 61a8d4466..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_02.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_02.png
deleted file mode 100644
index 278511b31..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_02.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_03.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_03.png
deleted file mode 100644
index 29b7520f4..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_delete_03.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_01.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_01.png
deleted file mode 100644
index 5faa9b8ba..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_02.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_02.png
deleted file mode 100644
index b3a9478ae..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_02.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_03.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_03.png
deleted file mode 100644
index 610934c1a..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_03.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_04.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_04.png
deleted file mode 100644
index 4c4f0b13c..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_install_04.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects.png
deleted file mode 100644
index 58946eec9..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_01.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_01.png
deleted file mode 100644
index 0122404ce..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_01.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_800.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_800.png
deleted file mode 100644
index de36ac25b..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_800.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_small.png b/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_small.png
deleted file mode 100644
index e7941154d..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/adapter_harmony_objects_small.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/harmony.png b/docs/de/adapterref/iobroker.harmony/ru/media/harmony.png
deleted file mode 100644
index 5d7694480..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/harmony.png and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.harmony/ru/media/harmony_850.jpg b/docs/de/adapterref/iobroker.harmony/ru/media/harmony_850.jpg
deleted file mode 100644
index 30384dd03..000000000
Binary files a/docs/de/adapterref/iobroker.harmony/ru/media/harmony_850.jpg and /dev/null differ
diff --git a/docs/de/adapterref/iobroker.hm-rega/README.md b/docs/de/adapterref/iobroker.hm-rega/README.md
index f84caad96..a5ec1c1b3 100644
--- a/docs/de/adapterref/iobroker.hm-rega/README.md
+++ b/docs/de/adapterref/iobroker.hm-rega/README.md
@@ -2,14 +2,14 @@
# HomeMatic ReGaHSS
## Homematic
->Homematic ist das Smart Home System von eQ-3, das die umfassende Steuerung
-unterschiedlichster Funktionen mithilfe von Szenarien (von einfach bis komplex)
-in Haus oder Wohnung ermöglicht.
+> Homematic ist das Smart Home System von eQ-3, das die umfassende Steuerung
+ unterschiedlichster Funktionen mithilfe von Szenarien (von einfach bis komplex)
+ in Haus oder Wohnung ermöglicht.
->Die Geräte beinhaltet Produkte zur Licht-, Rollladen- und Heizungssteuerung,
-Gefahrenmelder, Sicherheitssensoren und Produkte zur Wetterdatenmessung. Die
-Funkkommunikation vereinfacht dabei das Nachrüsten. In Neubauten können
-Drahtbus-Komponenten eingesetzt werden.
+> Die Geräte beinhaltet Produkte zur Licht-, Rollladen- und Heizungssteuerung,
+ Gefahrenmelder, Sicherheitssensoren und Produkte zur Wetterdatenmessung. Die
+ Funkkommunikation vereinfacht dabei das Nachrüsten. In Neubauten können
+ Drahtbus-Komponenten eingesetzt werden.
[Quelle](https://www.eq-3.de/produkte/homematic.html)
@@ -21,8 +21,7 @@ zwischen Homematic und ioBroker.
Falls mehrere Zentralen in ioBroker eingebunden werden sollen, ist für jede
Zentrale eine eigene Instanz zu installieren und konfigurieren.
-Mit der Installation von ReGaHSS wird auch eine Instanz des Adapters hm-rpc
-installiert, die vorab konfiguriert und aktiviert werden sollte.
+Mit der Installation von ReGaHSS wird auch eine Instanz des Adapters "hm-rpc"installiert, die vorab konfiguriert und aktiviert werden sollte.
Eine Instanz dieses Adapters kann bis zu 5 unterschiedliche Instanzen des
Homematic RPC Adapters verwalten, die verschiedene Dienste zur Verfügung stellen
diff --git a/docs/de/adapterref/iobroker.hm-rpc/README.md b/docs/de/adapterref/iobroker.hm-rpc/README.md
index e96063f38..ba2787c44 100644
--- a/docs/de/adapterref/iobroker.hm-rpc/README.md
+++ b/docs/de/adapterref/iobroker.hm-rpc/README.md
@@ -96,58 +96,47 @@ CUxD). Für jeden Typ muss eine eigene Instanz angelegt warden.
Zur Kommunikation werden zwei Protokolle zur Verfügung gestellt: XML-RPC und
BIN-RPC.
-`CUxD benötigt zwingend das BIN-RPC-Protokoll; HMIP und RFD das
-XML-RPC-Protokoll.`
+*CUxD benötigt zwingend das BIN-RPC-Protokoll; HMIP und RFD das XML-RPC-Protokoll.*
### Synchronisiere Geräte neu (einmalig)
-
Beim erstmaligen Start des Adapters werden alle Geräte eingelesen. Werden später
Änderungen innerhalb der CCU durchgeführt (Umbennung von Geräten, hinzufügen
neuer Geräte usw.) ist diese Auswahl zu aktivieren und mit „Speichern und
Schließen“ der Neustart des Adapters zu veranlassen.
### Adapter Addresse
-
Im Pulldown-Menü wird die IP des Hosts ausgewählt, auf dem der Adapter
-installiert ist. Die Auswahl von „0.0.0.0. auf alle IPs hören“ und „127.0.0.1“
+installiert ist. Die Auswahl von "0.0.0.0. auf alle IPs hören" und "127.0.0.1"
ist Spezialfällen vorbehalten.
### Adapter Port
-
-Standardmäßig ist hier Port “0” für die automatische Selektion des
+Standardmäßig ist hier Port "0" für die automatische Selektion des
ioBroker-Ports eingestellt und sollte nur in Ausnahmefällen verändert werden.
## Zusätzliche Einstellungen
-
### Adapter Callback Addresse
-
Wenn ioBroker hinter einem Router (z.B. in einem Docker-Container) läuft, können
sich Ein- und Ausgangsadresse unterscheiden. Wird hier die IP des Routers
eingetragen, lässt sich das Problem umgehen, da dann das Weiterleiten zu
ioBroker vom Router übernommen wird.
### Verbindungs-Check Intervall (sec)
-
Im festgelegten Intervall wird eine Ping-Anfrage an die CCU gesendet.
### Wiederverbindungs-Intervall (sec)
-
Zeitspanne, nach der ein erneuter Verbindungsversuch gestartet wird.
### Geräte nicht löschen
-
Geräte werden standardmäßig auch aus der Objektliste entfernt, wenn sie
innerhalb der CCU abgelernt wurden. Um diese Geräte in der Objektliste zu
behalten, beispielweise weil sie nur temporär entfernt wurden, kann diese Option
aktiviert werden.
### Nutze HTTPS
-
Ist diese Option aktiviert, wird eine sichere Verbindung hergestellt.
Funktioniert nur mit XML-RPC Protokoll.
### Nutzername und Passwort
-
Bei Nutzung von HTTPS oder falls für die API der CCU eine Authentifikation
erforderlich ist, sind die Daten hier einzutragen.
@@ -173,7 +162,6 @@ Geräte werden unter ihrer Seriennummer angelegt und Gruppen mit
INT000000*x* bezeichnet.
### Kanal 0 (alle Geräte)
-
Dieser Kanal wird für jedes Gerät angelegt und enthält Funktionsdaten, nachfolgend eine kurze Übersicht:
| *Datenpunkt* | *Bedeutung* |
@@ -187,7 +175,6 @@ Dieser Kanal wird für jedes Gerät angelegt und enthält Funktionsdaten, nachfo
| Unreach/unreach alarm | Systemmeldung Kommunikationsfehler (aktueller Zustand) |
### Kanal 1-6
-
Hier sind Messwerte, Steuerungs- und Zustandsdaten aufgelistet; je nach Funktion
des Gerätes werden unterschiedliche Daten angezeigt. Nachfolgend ein kurzer
Auszug:
diff --git a/docs/de/adapterref/iobroker.mihome/README.md b/docs/de/adapterref/iobroker.mihome/README.md
index 4514386de..75f8f3367 100644
--- a/docs/de/adapterref/iobroker.mihome/README.md
+++ b/docs/de/adapterref/iobroker.mihome/README.md
@@ -13,44 +13,44 @@ werden.
* Betriebsbereites ioBroker System
### Installation der Mi Home App und freischalten der lokalen Netzwerk Funktion
-
#### Android
+
* [Android App](https://play.google.com/store/apps/details?id=com.xiaomi.smarthome) auf einem Android Gerät herunterladen, installieren, öffnen und
den Geschäftsbedingungen zustimmen.
-* Als Land `Festland-China` auswählen
-* Über `Anmelden` ein Konto erstellen
+* Als Land *Festland-China* auswählen
+* Über *Anmelden* ein Konto erstellen
* Nach der erfolgreichen Anmeldung über `+` ein Gerät hinzufügen
-* Unter `Haushaltssicherheit` den `MI Control Hub` auswählen und den Anweisungen
+* Unter *Haushaltssicherheit* den `MI Control Hub` auswählen und den Anweisungen
folgen
* Nach erfolgreichem einbinden des Gateways die 3 Punkte am oberen rechten Bildschirm
-und danach `About` betätigen
-* Den Text `Plug-in version` unten 10mal tippen
+und danach *About* betätigen
+* Den Text *Plug-in version* unten 10mal tippen
* Nun ist der Entwickler Modus eingeschaltet und es sollten nach einer gewissen Zeit
2 weitere Menüpunkte erscheinen
->Falls nicht, wiederholt versuchen
+> Falls nicht, wiederholt versuchen
* Den Menüpunkt `Wireless communication protocol` auswählen
* Den Schiebeschalter oben einschalten, das Passwort notieren und mit `OK` bestätigen.
->Das Passwort wird später bei der ioBroker Installation benötigt.
+> Das Passwort wird später bei der ioBroker Installation benötigt.
Nun können weitere Geräte über das `+` Zeichen angelernt werden.
#### iOS
* [iOS App](https://itunes.apple.com/de/app/mi-home-xiaomi-smarthome/id957323480?mt=8) auf einem iOS Gerät herunterladen, installieren, öffnen und der
Datenschutzerklärung zustimmen
-* Über Profil/Einstellungen/Ländereinstellungen das Land `Festland` auswählen.
-* Über `Anmelden` ein Konto erstellen
+* Über Profil/Einstellungen/Ländereinstellungen das Land *Festland* auswählen.
+* Über *Anmelden* ein Konto erstellen
* Nach der erfolgreichen Anmeldung über `+` ein Gerät hinzufügen
-* Unter `Haushalt Sicherheit` den `MI Control Hub` auswählen und den Anweisungen
+* Unter *Haushalt Sicherheit* den `MI Control Hub` auswählen und den Anweisungen
folgen
* Nach erfolgreichem einbinden des Gateways die 3 Punkte am oberen rechten Bildschirm
-betätigen und `About` betätigen
+betätigen und *About* betätigen
* Wiederholt im leeren unteren Bereich tippen
* Nun ist der Entwickler Modus eingeschaltet und es sollten nach einer gewissen Zeit
weitere Menüpunkte erscheinen
> Falls es nicht gleich klappt, die Schritte wiederholen
* Den 4. Menüpunkt auswählen
* Den Schiebeschalter oben einschalten, das Passwort notieren und mit `OK` bestätigen.
->Das Passwort wird später bei der ioBroker Installation benötigt.
+> Das Passwort wird später bei der ioBroker Installation benötigt.
Nun können weitere Geräte über das `+` Zeichen angelernt werden.
@@ -100,7 +100,7 @@ Die folgende Aufstellung erhebt keinen Anspruch auf Vollständigkeit:
## ioBroker Mi Home Adapter Installation
Weitere Einstellungen erfolgen nur noch über die ioBroker Admin-Oberfläche.
-Den Adapter im Bereich `Adapter` suchen und über das `+` Zeichen installieren.
+Den Adapter im Bereich *Adapter* suchen und über das `+` Zeichen installieren.

@@ -108,13 +108,13 @@ Es öffnet sich dann folgendes Konfigurationsfenster:

-Unter `Default Gateway Key` das oben ermittelte Passwort eintragen und mit `speichern`
-`und schließen` das Fenster schließen. Der laufende Adapter sollte danach unter
-`Instanzen` grün angezeigt werden:
+Unter `Default Gateway Key` das oben ermittelte Passwort eintragen und mit *speichern*
+*und schließen* das Fenster schließen. Der laufende Adapter sollte danach unter
+*Instanzen* grün angezeigt werden:

-Unter `Objekte` wird nun das Gateway und seine angelernten Geräte angezeigt:
+Unter *Objekte* wird nun das Gateway und seine angelernten Geräte angezeigt:

diff --git a/docs/de/adapterref/iobroker.tradfri/README.md b/docs/de/adapterref/iobroker.tradfri/README.md
index cc2c4da45..ff6f9110c 100644
--- a/docs/de/adapterref/iobroker.tradfri/README.md
+++ b/docs/de/adapterref/iobroker.tradfri/README.md
@@ -1,18 +1,7 @@

-Ikea tradfri Adapter
-=============
-
-| Stand der Doku | 10.01.2019 |
-|----------------|---------------------------------|
-| Entwickler | AlCalzone |
-| Kategorie | ioT Systeme |
-| Keywords | Ikea, Tradfri, SmartHome |
-| Abhängigkeiten | |
-| Lizenz | MIT |
-
-Tradfri
----------
+# Ikea tradfri Adapter
+## Tradfri
Tradfri ist ein SmartHome System der Firma Ikea. Zum jetzigen Zeitpunkt umfasst
dieses System verschiedenste Komponenten aus:
@@ -26,8 +15,7 @@ dieses System verschiedenste Komponenten aus:
Das Tradfri System ist somit eines der umfangreichesten SmartHome Komponentensystem
was es momentan auf dem Markt gibt.
-Voraussetzungen zur Verwendung von Tradfri mit ioBroker
----------------------------------------------------------------
+## Voraussetzungen zur Verwendung von Tradfri mit ioBroker
- RaspberryPi 3 Model B+
- Tradfri Gateway
@@ -35,9 +23,7 @@ Voraussetzungen zur Verwendung von Tradfri mit ioBroker
- Tradfri Fernbedienung
-Verwaltung und Steuerung von Tradfri mit ioBroker
----------------------------------------------------------------
-
+## Verwaltung und Steuerung von Tradfri mit ioBroker
Um Tradfri mit ioBroker optimal zu verwalten und zu steuern
wird folgender Adapter benötigt:
@@ -52,7 +38,6 @@ zwischen ioBroker, Gateway und Komponenten.
### Installation des Adapters und Konfiguration der Instanz
-
Schritt 1.
- Installieren des Adapters durch klicken auf  in der linken Navigationsleiste des Webinterface
diff --git a/docs/de/adapterref/iobroker.tr-064/README.md b/docs/en/adapterref/iobroker.tr-064/README.md
similarity index 91%
rename from docs/de/adapterref/iobroker.tr-064/README.md
rename to docs/en/adapterref/iobroker.tr-064/README.md
index 7af245ea2..2054c2bc1 100644
--- a/docs/de/adapterref/iobroker.tr-064/README.md
+++ b/docs/en/adapterref/iobroker.tr-064/README.md
@@ -1,14 +1,6 @@

# ioBroker.tr-064
-[](https://www.npmjs.com/package/iobroker.tr-064)
-[](https://travis-ci.org/soef/ioBroker.tr-064)
-[](https://github.com/soef/iobroker.tr-064/blob/master/LICENSE)
-
-
-
-***This adapter requires at least Node 4.x***
-
### Info
This adapter reads main information from AVM Fritz!Box, like call list or number of messages on answering machine.
Based on this [AVM documentations](https://avm.de/service/schnittstellen/)
diff --git a/docs/de/adapterref/iobroker.tr-064/media/tr-064.png b/docs/en/adapterref/iobroker.tr-064/media/tr-064.png
similarity index 100%
rename from docs/de/adapterref/iobroker.tr-064/media/tr-064.png
rename to docs/en/adapterref/iobroker.tr-064/media/tr-064.png
diff --git a/docs/en/imprint.md b/docs/en/imprint.md
index 9e94ec202..9652a5ce2 100644
--- a/docs/en/imprint.md
+++ b/docs/en/imprint.md
@@ -1,7 +1,6 @@
-# Impressum
-
-## According to § 5 TMG:
+# Imprint
+## According to §5 TMG
ioBroker GmbH
Lorenzstr. 16
76135 Karlsruhe, Germany
@@ -16,19 +15,15 @@ Contact:
E-Mail: info@iobroker.net
## Sources for the images and graphics used:
-Icons made by [Freepik](http://www.freepik.com/) from [www.flaticon.com] (www.flaticon.com) is licensed by CC BY 3.0
-Icons made by [Victor Erixon](http://www.flaticon.com/authors/victor-erixon) from [www.flaticon.com] (www.flaticon.com) is licensed by CC BY 3.0
+Icons made by [Freepik](http://www.freepik.com/) from [www.flaticon.com](www.flaticon.com) is licensed by CC BY 3.0
+Icons made by [Victor Erixon](http://www.flaticon.com/authors/victor-erixon) from [www.flaticon.com](www.flaticon.com) is licensed by CC BY 3.0
## Disclaimer
-
### Liability for content
-
As a service provider we are responsible according to § 7 Abs.1 TMG for own contents on these sides according to the general laws. According to §§ 8 to 10 TMG, however, we as a service provider are not obliged to monitor transmitted or stored external information or to investigate circumstances that indicate illegal activity. Obligations to remove or block the use of information under general law remain unaffected. A liability in this regard, however, is only possible from the date of knowledge of a specific infringement. Upon notification of appropriate violations, we will remove this content immediately.
### Liability for links
-
Our offer contains links to external websites of third parties on whose contents we have no influence. Therefore, we can not assume any liability for these external contents. The respective provider or operator of the pages is always responsible for the contents of the linked pages. The linked pages were checked for possible legal violations at the time of linking. Illegal content was not recognizable at the time of linking. However, a permanent content control of the linked pages is not reasonable without concrete evidence of an infringement. Upon notification of violations, we will remove such links immediately.
### Copyright
-
The content and works on these pages created by the site operators are subject to German copyright law. The reproduction, processing, distribution and any kind of exploitation outside the limits of copyright require the written consent of the respective author or creator. Downloads and copies of this site are for private, non-commercial use only. As far as the contents on this side were not created by the operator, the copyrights of third parties are considered. In particular contents of third parties are marked as such. If you should still be aware of a copyright infringement, we ask for a note. Upon notification of violations, we will remove such content immediately.
\ No newline at end of file
diff --git a/engine/build-lib/consts.js b/engine/build-lib/consts.js
index 664b32b22..5ed68ffa7 100644
--- a/engine/build-lib/consts.js
+++ b/engine/build-lib/consts.js
@@ -5,7 +5,7 @@ module.exports = {
SRC_DOC_DIR: path.join(path.normalize(__dirname + '/../../docs/')).replace(/\\/g, '/'),
SRC_BLOG_DIR: path.join(path.normalize(__dirname + '/../../blog/')).replace(/\\/g, '/'),
GITHUB_EDIT_ROOT: 'https://github.com/ioBroker/ioBroker.docs/edit/engine/',
- LANGUAGES: ['de', 'en', 'ru'],
+ LANGUAGES: ['de', 'en', 'ru', 'zh-cn'],
OVERVIEW: {
@@ -55,5 +55,17 @@ module.exports = {
"visualization-widgets": { "en": "Visualization Widgets", "de": "Visualisierung Widgets", "ru": "Визуальные виджеты", "pt": "Widgets de visualização", "nl": "Visualisatie Widgets", "fr": "Widgets de visualisation", "it": "Widget di visualizzazione", "es": "Widgets de visualización", "pl": "Widżetowe widżety"},
"visualization": { "en": "Visualisation", "de": "Visualisierung", "ru": "Визуализация", "pt": "Visualização", "nl": "Visualisatie", "fr": "Visualisation", "it": "visualizzazione", "es": "Visualización", "pl": "Wyobrażanie sobie"},
"weather": { "en": "Weather", "de": "Wetter", "ru": "Погода", "pt": "Tempo", "nl": "Weer", "fr": "Météo", "it": "Tempo metereologico", "es": "Tiempo", "pl": "Pogoda"},
+ },
+ TRANSLATION_NOTICE: {
+ "en": "If you want to edit this document please delete \"translatedFrom\" field, elsewise this document will be translated automatically again",
+ "de": "Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld \"translationsFrom\". Andernfalls wird dieses Dokument automatisch erneut übersetzt",
+ "ru": "Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен",
+ "pt": "Se você quiser editar este documento, por favor, exclua o campo \"translatedFrom\", caso contrário este documento será traduzido automaticamente novamente",
+ "nl": "Als u dit document wilt bewerken, verwijder dan het veld \"translationFrom\", anders wordt dit document automatisch opnieuw vertaald",
+ "fr": "Si vous souhaitez éditer ce document, supprimez le champ \"translateFrom\", sinon ce document sera traduit de nouveau automatiquement.",
+ "it": "Se vuoi modificare questo documento, cancella il campo \"translatedFrom\", altrimenti questo documento verrà automaticamente tradotto di nuovo",
+ "es": "Si desea editar este documento, elimine el campo \"traducido de\", de lo contrario, este documento se traducirá automáticamente de nuevo",
+ "pl": "Jeśli chcesz edytować ten dokument, usuń pole „translatedFrom”, w przeciwnym razie ten dokument zostanie ponownie przetłumaczony automatycznie",
+ "zh-cn": "如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译"
}
};
diff --git a/engine/build-lib/documentaion.js b/engine/build-lib/documentaion.js
index 2f9b7621f..dd23b409a 100644
--- a/engine/build-lib/documentaion.js
+++ b/engine/build-lib/documentaion.js
@@ -55,7 +55,6 @@ async function translateTitle(title) {
});
}
-
return words;
}
@@ -183,8 +182,9 @@ function replaceImages(text, sourceFile, targetFile) {
sourceFile = sourceFile.substring(i);
const tParts = targetFile.split('/');
const sParts = sourceFile.split('/');
+ sParts.pop();
- const prefix = Array(tParts.length).join('../');
+ const prefix = Array(tParts.length).join('../') + sParts.join('/');
lines.forEach((line, i) => {
// Find images in line and store it
@@ -202,9 +202,9 @@ function replaceImages(text, sourceFile, targetFile) {
link = link.substring(0, pos);
}
if (!link.match(/^https?:/)) {
- link = prefix + link;
+ link = prefix + (link[0] === '/' ? link : '/' + link);
- lines[i] = lines[i].replace(item, ``);
+ lines[i] = lines[i].replace(item, ``);
}
}
});
@@ -223,16 +223,19 @@ async function translateFile(sourceFileName, fromLang, toLang, root) {
}
header.translatedFrom = fromLang;
+ header.translatedWarning = consts.TRANSLATION_NOTICE[toLang];
header.editLink = consts.GITHUB_EDIT_ROOT + 'docs/' + targetFileName.replace(root, '');
let actualText;
if (fs.existsSync(targetFileName)) {
- let {body, header} = utils.extractHeader(fs.readFileSync(targetFileName).toString('utf-8'));
- actualText = body;
+ let result = utils.extractHeader(fs.readFileSync(targetFileName).toString('utf-8'));
+ actualText = result.body;
if (header.translatedFrom !== fromLang) {
return Promise.resolve();
}
- if (header.hash === utils.getFileHash(body)) {
+ const data = extractLicenseAndChangelog(body);
+
+ if (result.header.hash === utils.getFileHash(data.body)) {
return Promise.resolve();
}
}
@@ -250,7 +253,8 @@ async function translateFile(sourceFileName, fromLang, toLang, root) {
}).then(title => {
header.title = title;
header.translatedFrom = fromLang;
- header.hash = utils.getFileHash(body);
+ header.translatedWarning = consts.TRANSLATION_NOTICE[toLang];
+ header.hash = utils.getFileHash(data.body);
utils.writeSafe(targetFileName, utils.addHeader(addChangelogAndLicense(actualText, data.changelog, data.license), header));
console.log(`WARNING: File ${sourceFileName.replace(root, '/')} was translated from ${fromLang} to ${toLang} automatically`);
});
@@ -336,7 +340,7 @@ if (!module.parent) {
});
});*/
- translateFile('C:/pWork/ioBroker.docs/docs/de/adapterref/iobroker.fritzbox/README.md', 'de', 'ru')
+ translateFile('C:/pWork/ioBroker.docs/docs/de/adapterref/iobroker.harmony/README.md', 'de', 'ru')
.then(() => {
console.log('done');
})
diff --git a/engine/build-lib/translation.js b/engine/build-lib/translation.js
index fb1201a32..67cc31cac 100644
--- a/engine/build-lib/translation.js
+++ b/engine/build-lib/translation.js
@@ -144,34 +144,37 @@ function partsTake(text, addIds) {
let current = '';
lines.forEach(line => {
let last = parts.length - 1;
- line = line.trim()
- if (line.startsWith('|') && line.endsWith('|')) {
- parts.push({type: 't', lines: [line]});
- } else
- if (line.startsWith('')) {
current = '';
line = line.substring(0, line.length - 4);
@@ -313,9 +316,21 @@ function partsTake(text, addIds) {
function partsSave(parts, saveNoSource) {
const lines = [];
parts.forEach((part, i) => {
- let text = part.text || part.lines.join('\n');
+ let text = (part.text || part.lines.join('\n')).trim();
+
+ if (part.type === 'code') {
+ console.log(text)
+
+ }
+
if (text.replace(/\n/g, '').trim() || (part.original && part.original.replace(/\n$/, ''))) {
text = text.replace(/\n$/, '');
+ if (part.type === 'h') {
+ const m = text.match(/^(#*) (.+)$/);
+ if (m) {
+ text = m[1] + ' ' + m[2][0].toUpperCase() + m[2].substring(1);
+ }
+ }
if (part.links) {
part.links.forEach((item, i) => {
@@ -333,11 +348,10 @@ function partsSave(parts, saveNoSource) {
}
if (part.images) {
part.images.forEach((item, i) => {
- text = text.replace(`§§IIIII_${i}§§`, ``);
+ text = text.replace(`§§IIIII_${i}§§`, ``);
});
}
-
if (part.original) {
// if last line is empty, put just before it
if (text.match(/\n$/)) {
@@ -356,6 +370,7 @@ function partsSave(parts, saveNoSource) {
!saveNoSource && lines.push('\n');
}
}
+
// do not add new line after headers and tables (only after last table line)
if (part.type !== 'h' && part.type !== 't') {
lines.push('\n');
@@ -505,7 +520,7 @@ function translateText(fromLang, text, toLang) {
return Promise.resolve(text);
} else
// detect table header and do not translate it
- if (text.trim().match(/^[|-]$/)) {
+ if (text.trim().match(/^[-|:]$/)) {
return Promise.resolve(text);
} else
// it must be some words and not only special chars
@@ -558,7 +573,7 @@ function translateText(fromLang, text, toLang) {
if (text.indexOf(' ** ') !== -1) {
// then with **
- let parts = text.split(' **');
+ let parts = text.split(/ \*\*[^*]/);
if (parts.length > 1) {
if (parts.length % 2 === 0) {
console.error('Cannot restore formatting!: ' + text);
@@ -578,7 +593,7 @@ function translateText(fromLang, text, toLang) {
// then with *
const pos = text.indexOf(' * ') !== -1;
if (pos !== -1 && pos) {
- let parts = text.split(' *');
+ let parts = text.split(/ \*[^*]/);
if (parts.length > 1) {
if (parts.length % 2 === 0) {
console.error('Cannot restore formatting!: ' + text);
@@ -611,6 +626,7 @@ function translateText(fromLang, text, toLang) {
});
}
}*/
+ text = text.replace(/& EMSP;/ig, ' ');
return text;
});
diff --git a/engine/front-end/src/App.js b/engine/front-end/src/App.js
index 9e9817d8b..4dd183413 100644
--- a/engine/front-end/src/App.js
+++ b/engine/front-end/src/App.js
@@ -75,10 +75,10 @@ const styles = theme => ({
});
const LANGUAGES = {
- 'en': 'En',
- 'de': 'De',
- 'ru': 'Ру',
- 'zh-cn': 'zh-cn'
+ 'en': {full: 'English', short: 'En'},
+ 'de': {full: 'Deutsch', short: 'De'},
+ 'ru': {full: 'Русский', short: 'Ру'},
+ 'zh-cn': {full: 'Chinese', short: 'zh-cn'},
};
const PAGES = {
@@ -199,7 +199,7 @@ class App extends Router {
this.setState({languageMenu: true, anchorMenu: e.target});
}}>
- {this.state.language.toUpperCase()}
+ {LANGUAGES[this.state.language].short}
,
this.state.languageMenu ? [
(