diff --git a/alexa4p3/README.md b/alexa4p3/README.md
index 942fb6c02..f88a2ea10 100755
--- a/alexa4p3/README.md
+++ b/alexa4p3/README.md
@@ -4,34 +4,34 @@ Alexa4PayloadV3
## Table of Content
-1. [Generell](#generell)
-2. [Change Log](#changelog)
-3. [Requrirements](#requirements)
- [Einrichtung Amazon-Skill / Lambda-Funktion](#Skill) **Neu**
-4. [Icon / Display Categories](#Icons) **Update**
-5. [Entwicklung / Einbau von neuen Skills](#Entwicklung)
-6. [Alexa-ThermostatController](#ThermostatController) + [Thermosensor](#Thermostatsensor)
-7. [Alexa-PowerController](#PowerController)
-8. [Alexa-BrightnessController](#BrightnessController)
-9. [Alexa-PowerLevelController](#PowerLevelController)
-10. [Alexa-PercentageController](#PercentageController)
-11. [Alexa-LockController](#LockController)
-12. [Alexa-CameraStreamController](#CameraStreamController) **Update**
-13. [Alexa-SceneController](#SceneController)
-14. [Alexa-ContactSensor](#ContactSensor)
-15. [Alexa-ColorController](#ColorController)
-16. [Alexa-RangeController](#RangeController) **Neu**
-17. [Alexa-ColorTemperaturController](#ColorTemperaturController) **Neu**
-18. [Alexa-PlaybackController](#PlaybackController) **Neu**
-19. [Web-Interface](#webinterface) **Neu**
-
-
-
-## [Beispiel-Konfigurationen](#Beispiel) **Neu**
-
-
-- [der fast perfekte Rolladen](#perfect_blind) **Neu**
-- [Items in Abhängikeit des letzten benutzten Echos-Devices schalten](#get_last_alexa) **Neu**
+1. Generell]
+2. Change Log
+3. Requrirements
+ Einrichtung Amazon-Skill / Lambda-Funktion **Neu**
+4. Icon / Display Categories **Update**
+5. Entwicklung / Einbau von neuen Skills
+6. Alexa-ThermostatController + Thermosensor
+7. Alexa-PowerController
+8. Alexa-BrightnessController
+9. Alexa-PowerLevelController
+10. Alexa-PercentageController
+11. Alexa-LockController
+12. Alexa-CameraStreamController **Update**
+13. Alexa-SceneController
+14. Alexa-ContactSensor
+15. Alexa-ColorController
+16. Alexa-RangeController **Neu**
+17. Alexa-ColorTemperaturController](#ColorTemperaturController) **Neu**
+18. Alexa-PlaybackController](#PlaybackController) **Neu**
+19. Web-Interface](#webinterface) **Neu**
+
+
+
+## Beispiel-Konfigurationen **Neu**
+
+
+- der fast perfekte Rolladen **Neu**
+- Items in Abhängikeit des letzten benutzten Echos-Devices schalten **Neu**
# --------------------------------------
## Generell
diff --git a/alexa4p3/README.md.off b/alexa4p3/README.md.off
new file mode 100755
index 000000000..942fb6c02
--- /dev/null
+++ b/alexa4p3/README.md.off
@@ -0,0 +1,1275 @@
+# alexa4p3
+
+Alexa4PayloadV3
+
+## Table of Content
+
+1. [Generell](#generell)
+2. [Change Log](#changelog)
+3. [Requrirements](#requirements)
+ [Einrichtung Amazon-Skill / Lambda-Funktion](#Skill) **Neu**
+4. [Icon / Display Categories](#Icons) **Update**
+5. [Entwicklung / Einbau von neuen Skills](#Entwicklung)
+6. [Alexa-ThermostatController](#ThermostatController) + [Thermosensor](#Thermostatsensor)
+7. [Alexa-PowerController](#PowerController)
+8. [Alexa-BrightnessController](#BrightnessController)
+9. [Alexa-PowerLevelController](#PowerLevelController)
+10. [Alexa-PercentageController](#PercentageController)
+11. [Alexa-LockController](#LockController)
+12. [Alexa-CameraStreamController](#CameraStreamController) **Update**
+13. [Alexa-SceneController](#SceneController)
+14. [Alexa-ContactSensor](#ContactSensor)
+15. [Alexa-ColorController](#ColorController)
+16. [Alexa-RangeController](#RangeController) **Neu**
+17. [Alexa-ColorTemperaturController](#ColorTemperaturController) **Neu**
+18. [Alexa-PlaybackController](#PlaybackController) **Neu**
+19. [Web-Interface](#webinterface) **Neu**
+
+
+
+## [Beispiel-Konfigurationen](#Beispiel) **Neu**
+
+
+- [der fast perfekte Rolladen](#perfect_blind) **Neu**
+- [Items in Abhängikeit des letzten benutzten Echos-Devices schalten](#get_last_alexa) **Neu**
+# --------------------------------------
+
+## Generell
+
+Die Daten des Plugin müssen in den Ordner /usr/local/smarthome/plugins/alexa4p3/ (wie gewohnt)
+Die Rechte entsprechend setzen.
+
+Das Plugin sollte ohne Änderungen die ursprünglichen Funktionen von Payload V2
+weiterverarbeiten können.
+
+Um die neuen Payload-Features nutzen zu können muss lediglich die Skill-Version in der Amazon Hölle auf PayLoad Version 3 umgestellt werden. Alles andere kann unverändert weiterverwendet werden.
+
+Das Plugin muss in der plugin.yaml eingefügt werden :
+
+
+Alexa4P3:
+ plugin_name: Alexa4P3
+ service_port: 9000
+
+
+Das ursprünglich Plugin kann deaktiviertwerden :
+
+
+#alexa:
+# plugin_name: alexa4p3
+# service_port: 9000
+
+
+Idealerweise kopiert man sich seine ganzen conf/yaml Files aus dem Items-Verzeichnis.
+und ersetzt dann die "alten" Actions durch die "Neuen". Nachdem der Skill auf Payload V3 umgestellt wurde
+muss ein Discover durchgeführt werden. Im besten Fall funktioniert dann alles wie gewohnt.
+
+In den Items sind die "neuen" V3 Actions zu definieren :
+
+Zum Beispiel :
+
+PayloadV2 : turnon
+
+PayloadV3 : TurnOn
+
+Die Actions unterscheiden sich zwischen Payload V2 und V3 oft nur durch Gross/Klein-Schreibung
+
+## Change Log
+
+### 20.10.2020
+- Doku von Schuma für die Einrichtung des Skills bei Amazon ergänzt - eingefügt bei Requirements
+
+### 11.04.2020
+- Version auf 1.0.2 für shNG Release 1.7 erhöht
+
+### 12.03.2020
+- Ergänzung bei Wertänderung durch das Plugin wid der "Plugin Identifier" "alexa4p3" an die Change Item-Methode übegeben (PR #332)
+
+### 07.12.2019
+- Web-Interface um Protokoll-Log ergänzt
+- PlaybackController realisiert
+- bux-fix for alias-Devices, es wurden nicht alle Eigenschaften an das Alias-Device übergeben. Voice-Steuerung funktionierte, Darstellung in der App war nicht korrekt.
+
+### 06.12.2019 - zum Nikolaus :-)
+- RangeController mit global "utterances" für Rolladen realisiert - endlich "Alexa, mach den Rolladen zu/auf - hoch/runter"
+
+### 01.12.2019
+- Web-Interface ergänzt
+- Prüfung auf Verwendung von gemischtem Payload V2/V3 im Web-Interface
+- Bug-Fix bei falsch definierten Devices (alexa_name fehlt) - Issue #300 - diese werden entfernt und ein Log-Eintrag erfolgt
+- Bug-Fix alexa-description (PR #292) - die Beschreibung in der App lautet nun "device.name" + "by smarthomeNG"
+- alexa_description beim Geräte Discovery ergänzt
+
+### 20.04.2019
+- Authentifizierungsdaten (Credentials) für AlexaCamProxy eingebaut
+- Umbennung des Plugin-Pfades auf "alexa4p3" !! Hier die Einträge in der plugin.yaml anpassen.
+
+### 17.02.2019
+- Version erhöht aktuell 1.0.1
+- CameraStreamController Integration für Beta-Tests fertiggestellt
+
+### 26.01.2019
+- ColorController eingebaut
+- Doku für ColorController erstellt
+- Neues Attribut für CameraStreamController (**alexa_csc_proxy_uri**) zum streamen von Kameras in lokalen Netzwerken in Verbindung mit CamProxy4AlexaP3
+
+### 19.01.2019
+- Version auf 1.0.0.2 erhöht
+- ContactSensor Interface eingebaut
+- Doku für ContactSensor Interface ergänzt
+- DoorLockController fertiggestellt
+- DoorLockController Doku ergänzt
+- ReportLockState eingebaut
+- Doku für die Erstellung des Alexa-Skill´s auf Amazon als PDF erstellt
+
+### 31.12.2018
+- Version auf 1.0.0.1 erhöht
+- CameraStreamController eingebaut
+- Dokumentation für CameraStreamController ergänzt
+- PowerLevelController eingebaut
+- Dokumentation für PowerLevelController ergänzt
+- Debugs und Testfunktionen kontrolliert und für Upload entfernt
+
+### 24.12.2018
+- Doku für PercentageController erstellt
+- Bug Fix für fehlerhafte Testfunktionen aus der Lambda
+
+### 12.12.2018
+- Scene Controller eingebaut
+- Doku für Scene Controller erstellt
+- PercentageController eingebaut
+
+
+## Requrirements
+
+Das Plugin benötigt Modul Python-Requests. Dies sollte mit dem Core immer auf dem aktuellen Stand mitkommen.
+
+
+## Amazon Skill / Lambda
+
+Es muss ein funktionierender Skill in der Amazon Developer Konsole / AWS Lambda erstellt werden.
+Eine ausführliche Dokumentation unter ./assets/Alexa_V3_plugin.pdf zu finden.
+Vielen Dank @schuma für die ausführliche Dokumentation
+
+Ansonsten keine Requirements.
+
+## Icons / Catagories
+Optional kann im Item angegeben werden welches Icon in der Alexa-App verwendet werden soll :
+
+alexa_icon = "LIGHT"
+
++
Value | +Description | +
---|---|
ACTIVITY_TRIGGER | +A combination of devices set to a specific state. Use activity triggers for scenes when the state changes must occur in a specific order. For example, for a scene named "watch Netflix" you might power on the TV first, and then set the input to HDMI1. | +
CAMERA | +A media device with video or photo functionality. | +
COMPUTER | +A non-mobile computer, such as a desktop computer. | +
CONTACT_SENSOR | +An endpoint that detects and reports changes in contact between two surfaces. | +
DOOR | +A door. | +
DOORBELL | +A doorbell. | +
EXTERIOR_BLIND | +A window covering on the outside of a structure. | +
FAN | +A fan. | +
GAME_CONSOLE | +A game console, such as Microsoft Xbox or Nintendo Switch | +
GARAGE_DOOR | +A garage door. Garage doors must implement the ModeController interface to open and close the door. | +
INTERIOR_BLIND | +A window covering on the inside of a structure. | +
LAPTOP | +A laptop or other mobile computer. | +
LIGHT | +A light source or fixture. | +
MICROWAVE | +A microwave oven. | +
MOBILE_PHONE | +A mobile phone. | +
MOTION_SENSOR | +An endpoint that detects and reports movement in an area. | +
MUSIC_SYSTEM | +A network-connected music system. | +
NETWORK_HARDWARE | +A network router. | +
OTHER | +An endpoint that doesn't belong to one of the other categories. | +
OVEN | +An oven cooking appliance. | +
PHONE | +A non-mobile phone, such as landline or an IP phone. | +
SCENE_TRIGGER | +A combination of devices set to a specific state. Use scene triggers for scenes when the order of the state change is not important. For example, for a scene named "bedtime" you might turn off the lights and lower the thermostat, in any order. | +
SCREEN | +A projector screen. | +
SECURITY_PANEL | +A security panel. | +
SMARTLOCK | +An endpoint that locks. | +
SMARTPLUG | +A module that is plugged into an existing electrical outlet, and then has a device plugged into it. For example, a user can plug a smart plug into an outlet, and then plug a lamp into the smart plug. A smart plug can control a variety of devices. | +
SPEAKER | +A speaker or speaker system. | +
STREAMING_DEVICE | +A streaming device such as Apple TV, Chromecast, or Roku. | +
SWITCH | +A switch wired directly to the electrical system. A switch can control a variety of devices. | +
TABLET | +A tablet computer. | +
TEMPERATURE_SENSOR | +An endpoint that reports temperature, but does not control it. The temperature data of the endpoint is not shown in the Alexa app. | +
THERMOSTAT | +An endpoint that controls temperature, stand-alone air conditioners, or heaters with direct temperature control. | +
TV | +A television. | +
WEARABLE | +A network-connected wearable device, such as an Apple Watch, Fitbit, or Samsung Gear. | +
+ alexa_retrievable = true
+
+
+default = false
+**==!! Achtung das sorgt für Traffic auf der Lambda bei Benutzung der Alexa-App !!==**
+
+
+Die sonstigen Parameter aus dem ursprüngliche Alexa-Plugin bleiben erhalten und werden weiterhin genutzt.
+(alexa_name / alexa_device / alexa_description / alexa_actions /alexa_item_range)
+
+Beispiel für Item im .conf-Format:
+
+
+[OG]
+ [[Flur]]
+ name = Flur_Obeschoss
+ [[[Spots]]]
+ alexa_name = "Licht Flur OG"
+ alexa_device = Licht_Flur_OG
+ alexa_actions = "TurnOn TurnOff"
+ alexa_icon = "LIGHT"
+ type = bool
+ visu_acl = rw
+ knx_dpt = 1
+ knx_listen = 1/1/107
+ knx_send = 1/1/107
+ enforce_updates = true
+ [[[[dimmen]]]]
+ type = num
+ alexa_device = Licht_Flur_OG
+ alexa_actions = "AdjustBrightness SetBrightness"
+ alexa_retrievable= True
+ alexa_item_range = 0-255
+ visu_acl = rw
+ knx_dpt = 5
+ knx_listen = 1/4/100
+ knx_send = 1/3/100
+ knx_init = 1/4/100
+ enforce_updates = true
+ [[[Treppe]]]
+ type = bool
+ visu_acl = rw
+ knx_dpt = 1
+ knx_listen = 1/1/133
+ knx_send = 1/1/133
+ enforce_updates = true
+
+
+
+im .yaml-Format :
+
+
+%YAML 1.1
+---
+
+OG:
+
+ Flur:
+ name: Flur_Obeschoss
+ Spots:
+ alexa_name: Licht Flur OG
+ alexa_device: Licht_Flur_OG
+ alexa_actions: TurnOn TurnOff
+ alexa_icon: LIGHT
+ type: bool
+ visu_acl: rw
+ knx_dpt: 1
+ knx_listen: 1/1/107
+ knx_send: 1/1/107
+ enforce_updates: 'true'
+ dimmen:
+ type: num
+ alexa_device: Licht_Flur_OG
+ alexa_actions: AdjustBrightness SetBrightness
+ alexa_retrievable: 'True'
+ alexa_item_range: 0-255
+ visu_acl: rw
+ knx_dpt: 5
+ knx_listen: 1/4/100
+ knx_send: 1/3/100
+ knx_init: 1/4/100
+ enforce_updates: 'true'
+ Treppe:
+ type: bool
+ visu_acl: rw
+ knx_dpt: 1
+ knx_listen: 1/1/133
+ knx_send: 1/1/133
+ enforce_updates: 'true'
+
+
+## Entwicklung / Einbau von neuen Fähigkeiten
+Um weitere Actions hinzuzufügen muss die Datei p3_actions.py mit den entsprechenden Actions ergänzt werden.
+(wie ursprünglich als selbstregistrierende Funktion)
+
+
+
+@alexa('action_name', 'directive_type', 'response_type','namespace',[]) // in der Datei p3_actions.py
+@alexa('TurnOn', 'TurnOn', 'powerState','Alexa.PowerController',[]) // in der Datei p3_actions.py
+
+
+
+Hierbei ist zu beachten, das für die jeweilige Action die folgenden Paramter übergeben werden :
+
+action_name = neuer Action-Name z.B.: TurnOn (gleich geschrieben wie in der Amazon-Beschreibung - auch Gross/Klein)
+
+directive_type = gleich wie action_name (nur notwendig wegen Kompatibilität V2 und V3)
+
+response_type = Property des Alexa Interfaces
+siehe Amazon z.B. : https://developer.amazon.com/docs/device-apis/alexa-brightnesscontroller.html#properties
+
+namespace = NameSpace des Alexa Interfaces
+siehe Amazon z.B.: https://developer.amazon.com/docs/device-apis/list-of-interfaces.html
+
+[] = Array für Abhängigkeiten von anderen Capabilties (z.B. beim Theromcontroller ThermostatMode und TargetTemperatur)
+
+In der "service.py" muss für den ReportState der Rückgabewert für die neue Action hinzugefügt werden.
+(siehe Quellcode)
+
+## Alexa-ThermostatController + Thermosensor
+
+Es kann nun via Alexa die Solltemperatur verändert werden und der Modus des Thermostaten kann umgestellt werden.
+Die Konfiguration der YAML-Datei sieht wie folgt aus
+
+Es müssen beim Thermostaten in YAML die Einträge für :
+alexa_thermo_config, alexa_icon, alexa_actions vorgenommen werden.
+
+alexa_thermo_config = "0:AUTO 1:HEAT 2:COOL 3:ECO 4:ECO"
+Hierbei stehen die Werte für für die KNX-Werte von DPT 20
+
+
+$00 Auto
+$01 Comfort
+$02 Standby
+$03 Economy
+$04 Building Protection
+
+
+Die Modi AUTO / HEAT / COOL / ECO / OFF entsprechen den Alexa-Befehlen aus dem Theromstatconroller
+siehe Amazon : https://developer.amazon.com/docs/device-apis/alexa-property-schemas.html#thermostatmode
+
+
+alexa_icon = "THERMOSTAT" = Thermostatcontroller
+
+alexa_icon = "TEMPERATURE_SENSOR" = Temperatursensor
+
+
+### Thermostatsensor
+
+Der Temperartursensor wird beim Item der Ist-Temperatur hinterlegt.
+Der Thermostatconroller wird beim Thermostat-Item hinterlegt. An Amazon werden die Icons als Array übertragen.
+Die Abfrage der Ist-Temperatur muss mit der Action "ReportTemperature" beim Item der Ist-Temperatur hinterlegt werden.
+
+
+alexa_actions : "ReportTemperature"
+
+
+Alexa wie ist die Temperatur in der Küche ?
+
+### Verändern der Temperatur (SetTargetTemperature AdjustTargetTemperature)
+
+
+alexa_actions = "SetTargetTemperature AdjustTargetTemperature"
+
+
+Hiermit werden die Solltemperatur auf einen Wert gesetzt oder die Temperatur erhöht.
+Diese Actions müssen beim Item des Soll-Wertes des Thermostaten eingetragen werden
+
+Alexa erhöhe die Temperatur in der Küche um zwei Grad
+
+Alexa stelle die Temperatur in der Küche auf zweiundzwanzig Grad
+
+Alexa wie ist die Temperatur in der Küche eingestellt ?
+
+### Thermostatmode
+
+alexa_actions = "SetThermostatMode"
+
+Hier wird das Item des Modus angesteuert. Diese Action muss beim Item des Thermostat-Modes eingetragen werden.
+Falls keine Modes angegeben wurden wird "0:AUTO" als default gesetzt
+
+Alexa stelle den Thermostaten Küche auf Heizen
+
+
+
+%YAML 1.1
+---
+EG:
+ name: EG
+ sv_page: cat_seperator
+ Kueche:
+ temperature:
+ name: Raumtemperatur
+ alexa_description : "Küche Thermostat"
+ alexa_name : "Küche Thermostat"
+ alexa_device : thermo_Kueche
+ alexa_thermo_config : "0:AUTO 1:HEAT 2:OFF 3:ECO 4:ECO"
+ alexa_icon : "THERMOSTAT"
+ actual:
+ type: num
+ sqlite: 'yes'
+ visu: 'yes'
+ knx_dpt: 9
+ initial_value: 21.8
+ alexa_device : thermo_Kueche
+ alexa_retrievable : True
+ alexa_actions : "ReportTemperature"
+ alexa_icon : "TEMPERATURE_SENSOR"
+ SollBasis:
+ type: num
+ visu_acl: rw
+ knx_dpt: 9
+ initial_value: 21.0
+ alexa_device : thermo_Kueche
+ alexa_actions : "SetTargetTemperature AdjustTargetTemperature"
+ Soll:
+ type: num
+ sqlite: 'yes'
+ visu: 'yes'
+ visu_acl: rw
+ knx_dpt: 9
+ initial_value: 21.0
+ alexa_device : thermo_Kueche
+ mode:
+ type: num
+ visu_acl: rw
+ knx_dpt: 20
+ initial_value: 1.0
+ alexa_device : thermo_Kueche
+ alexa_actions : "SetThermostatMode"
+ state:
+ type: bool
+ visu_acl: r
+ sqlite: 'yes'
+ visu: 'yes'
+ knx_dpt: 1
+ cache: true
+ alexa_device : thermo_Kueche
+
+
+Beispiel für einen MDT-Glastron, der Modus wird auf Objekt 12 in der ETS-Parametrierung gesendet (Hierzu eine entsprechende
+Gruppenadresse anlegen)
+
+
+ temperature:
+ name: Raumtemperatur
+ alexa_description : "Küche Thermostat"
+ alexa_name : "Küche Thermostat"
+ alexa_device : thermo_Kueche
+ alexa_thermo_config : "0:AUTO 1:HEAT 2:OFF 3:ECO 4:ECO"
+ alexa_icon : "THERMOSTAT"
+ plan:
+ type: num
+ visu_acl: rw
+ database@mysqldb: init
+ knx_dpt: 9
+ knx_send: 2/1/2
+ knx_listen: 2/1/2
+ knx_cache: 2/1/2
+ alexa_device : thermo_Kueche
+ alexa_actions : "SetTargetTemperature AdjustTargetTemperature"
+ state:
+ type: num
+ visu_acl: r
+ database@mysqldb: init
+ knx_dpt: 9
+ knx_listen: 2/1/1
+ knx_cache: 2/1/1
+ alexa_device : thermo_Kueche
+ alexa_retrievable : True
+ alexa_actions : "ReportTemperature"
+ alexa_icon : "TEMPERATURE_SENSOR"
+ mode:
+ type: num
+ visu_acl: rw
+ knx_dpt: 20
+ initial_value: 1.0
+ alexa_device : thermo_Kueche
+ alexa_actions : "SetThermostatMode"
+
+ humidity:
+ type: num
+ visu_acl: r
+ database@mysqldb: init
+ knx_dpt: 9
+ knx_listen: 2/1/5
+ knx_cache: 2/1/5
+
+ actor_state:
+ type: num
+ visu_acl: r
+ database@mysqldb: init
+ knx_dpt: '5.001'
+ knx_listen: 2/1/3
+ knx_cache: 2/1/3
+
+
+
+## Alexa-PowerController
+
+Alexa schalte das Licht im Büro ein
+
+Mit dem PowerController können beliebige Geräte ein und ausgeschalten werden.
+Folgende Paramter sind anzugeben :
+
+
+ alexa_actions = "TurnOn TurnOff"
+
+
+Beispiel
+
+
+ [[[Licht]]]
+ type = bool
+ alexa_name = "Licht Büro"
+ alexa_description = "Licht Büro"
+ alexa_actions = "TurnOn TurnOff"
+ alexa_retrievable = true
+ alexa_icon = "LIGHT"
+ visu_acl = rw
+ knx_dpt = 1
+ knx_listen = 1/1/105
+ knx_send = 1/1/105
+ enforce_updates = true
+
+
+## Alexa-BrightnessController
+Alexa stelle das Licht am Esstisch auf fünfzig Prozent
+Alexa dimme das Licht am Esstisch um zehn Prozent
+Folgende Parameter sind anzugeben :
+
+
+ alexa_actions = "AdjustBrightness SetBrightness"
+ alexa_item_range = 0-255
+
+
+Es kann der BrightnessController mit dem PowerController kombiniert werden
+
+Beispiel :
+
+ [[[Licht_Esstisch]]]
+ type = bool
+ alexa_name = "Licht Esstisch"
+ alexa_actions = "TurnOn TurnOff"
+ alexa_device = licht_esstisch
+ alexa_description = "Licht Esstisch"
+ alexa_icon = "SWITCH"
+ alexa_retrievable= True
+ visu_acl = rw
+ knx_dpt = 1
+ knx_listen = 1/1/9
+ knx_send = 1/1/9
+ enforce_updates = true
+ [[[[dimmen]]]]
+ type = num
+ alexa_device = licht_esstisch
+ alexa_actions = "AdjustBrightness SetBrightness"
+ alexa_retrievable= True
+ alexa_item_range = 0-255
+ visu_acl = rw
+ knx_dpt = 5
+ knx_listen = 1/4/9
+ knx_send = 1/3/9
+ knx_init = 1/4/9
+ enforce_updates = true
+
+
+## Alexa-PowerLevelController
+## !!!! erst ab Plugin-Version 1.0.1 oder höher !!!!
+
+Alexa stelle Energie Licht Küche auf achtzig
+Alexa erhöhe Energie Licht Küche um zehn
+
+Es können Werte von 0-100 angesagt werden.
+
+Der PowerLevelController kann in Verbindung mit dem PowerController verwendet werden. Funktionsweise entspricht der von PercentageController und BrightnessController
+
+Folgende Parameter sind anzugeben :
+
+
+ alexa_actions = "SetPowerLevel AdjustPowerLevel"
+ alexa_item_range = 0-255
+
+
+## Alexa-PercentageController
+
+Alexa stelle Rolladen Essen West auf achtzig Prozent
+
+Mit dem PercentageController können Geräte auf einen bestimmten Prozentwert gestellt werden. Der PercentageController eignet sich für die Umsetzung von
+Rolladen/Jalousien.
+
+Folgende Parameter sind anzugeben :
+
+
+ alexa_actions = "SetPercentage AdjustPercentage"
+ alexa_item_range = 0-255
+
+
+In Verbindung mit dem PowerController (TurnOn / TurnOff) kann der Rolladen
+dann mit "Schalte Rolladen Büro EIN" zugefahren werden und mit "Schalte Rolladen Büro AUS" aufgefahren werden.
+(Zwar nicht wirklich schön aber funktioniert)
+
+'enforce_updates' sollte auf true gesetzt sein damit auch auf den Bus gesendet wird wenn keine Änderung des Wertes erfolgt.
+
+Beispiel Konfiguration im yaml-Format:
+
+ Rolladen:
+ alexa_name: Rollladen Büro
+ alexa_device: rolladen_buero
+ alexa_description: Rollladen Büro
+ alexa_icon: SWITCH
+
+ move:
+ type: num
+ alexa_device: rolladen_buero
+ alexa_actions: TurnOn TurnOff
+ alexa_retrievable: 'True'
+ visu_acl: rw
+ knx_dpt: 1
+ knx_send: 3/2/23
+ enforce_updates: 'true'
+
+ stop:
+ type: num
+ visu_acl: rw
+ enforce_updates: 'true'
+ knx_dpt: 1
+ knx_send: 3/1/23
+
+ pos:
+ type: num
+ visu_acl: rw
+ alexa_device: rolladen_buero
+ alexa_actions: SetPercentage AdjustPercentage
+ alexa_item_range: 0-255
+ knx_dpt: 5
+ knx_listen: 3/3/23
+ knx_send: 3/4/23
+ knx_init: 3/3/23
+ enforce_updates: 'true'
+
+
+
+## Alexa-LockController
+## !!!! erst ab Plugin-Version 1.0.1 oder höher !!!!
+Die Probleme in der Amazon-Cloud mit dem LockController sind behoben.
+
+Die Funktion ist im Moment so realisiert, das bei "Unlock" ein "ON" (=1) auf
+das Item geschrieben wird. Bei "Lock" wird ebenfalls ein "ON" (=1) auf die Gruppenadresse geschrieben. Eventuell die Werte mittels "eval"-Funktion direkt
+in der Item Config anpassen.
+Für den Zustand Smartlock geschlossen oder offen ist
+"OFF" (=0) Tür offen
+"ON" (=1) Tür geschlossen
+
+Wenn keine Rückmeldewert angegeben ist **(ReportLockState)** wird als default Wert "Locked" gemeldet.
+Es wird beim Öffnen oder Schliessen immer der
+ausgeführte Befehl als Rückmeldng gegeben.(Locked/Unlocked)
+
+Directive "Alexa schliesse die Haustür auf", Rückgabewert "Unlocked"
+Directive "Alexa schliesse die Haustür ab", Rückgabewert "Locked"
+
+Es muss nach dem das Smartlock gefunden wurden die Sprachsteuerung über die Alexa-App freigegeben werden. Es muss für die Sprachsteuerung ein 4-stelliger PIN eingegeben werden welcher immer bei öffnen abgefragt wird. (Vorgabe Amazon, kann nicht umgangen werden)
+
+Folgende Befehle sind möglich :
+
+Alexa, entsperre die Haustür
+
+Alexa, schliesse die Haustür auf
+
+Alexa, sperre die Haustür
+
+Alexa, schliesse die Haustür ab
+
+Folgende Parameter sind anzugeben :
+
+
+ alexa_actions : Lock Unlock ReportLockState
+ alexa_icon: SMARTLOCK
+
+
+Beispiel mit einem Aktor-Kanal für öffnen, ein Aktor-Kanal für schliessen mit virtueller Rückmeldung, rücksetzen des Aktorkanals nach 5 Sekunden via autotimer
+
+
+ haustuer:
+ name: haustuer
+ alexa_description: Haustür
+ alexa_name: Haustuer
+ alexa_device: haustuer
+ alexa_icon: SMARTLOCK
+ unlock:
+ knx_send: 9/9/1
+ type: bool
+ visu_acl: rw
+ knx_dpt: 1
+ alexa_device: haustuer
+ alexa_actions: Unlock
+ autotimer: 5 = 0
+ on_change:
+ - test.testzimmer.haustuer.state = 0 if sh.test.testzimmer.haustuer.unlock() == True else None
+ lock:
+ knx_send: 9/9/2
+ type: bool
+ visu_acl: rw
+ knx_dpt: 1
+ alexa_device: haustuer
+ alexa_actions: Lock
+ autotimer: 5 = 0
+ on_change:
+ - test.testzimmer.haustuer.state = 1 if sh.test.testzimmer.haustuer.lock() == True else None
+ state:
+ type: num
+ visu_acl: rw
+ alexa_device: haustuer
+ alexa_actions: ReportLockStatelexa_actions: ReportLockState
+
+
+Beispiel mit einem Aktor-Kanal für öffnen, ein Aktor-Kanal für schliessen mit KNX-Eingang für die Rückmeldung.Der jeweilige Aktor-Kanel ist als Treppenlicht-Automat konfiguriert und stellt selbstständig zurück.
+
+
+ haustuer:
+ name: haustuer
+ alexa_description: Haustür
+ alexa_name: Haustuer
+ alexa_device: haustuer
+ alexa_icon: SMARTLOCK
+ unlock:
+ knx_send: 9/9/1
+ type: bool
+ visu_acl: rw
+ knx_dpt: 1
+ alexa_device: haustuer
+ alexa_actions: Unlock
+ lock:
+ knx_send: 9/9/2
+ type: bool
+ visu_acl: rw
+ knx_dpt: 1
+ alexa_device: haustuer
+ alexa_actions: Lock
+ state:
+ knx_listen: 9/9/3
+ knx_init: 9/9/3
+ type: num
+ visu_acl: rw
+ knx_dpt: 20
+ alexa_device: haustuer
+ alexa_actions: ReportLockState
+
+
+## Alexa-CameraStreamContoller
+## !!!! erst ab Plugin-Version 1.0.1 oder höher !!!!
+
+Alexa zeige die Haustür Kamera.
+
+Der CameraController funktioniert mit Cameras die den Anforderungen von Amazon entsprechen.
+d.h. :
+- TLSv1.2 Verschlüsselung
+- Kamera auf Port 443 erreichbar
+
+##!! für Kameras im lokalen Netzwerk wird gerade noch ein Camera Proxy entwickelt - dieser gibt dann die Möglichkeit auch private Kameras einzubinden !!
+#Look out for : AlexaCamProxy4P3
+
+
+Aus den bereitgestellten Streams wird
+immer der mit der höchsten Auflösung an Alexa übermittelt.
+
+Folgende Parameter sind anzugeben :
+
+##### alexa_csc_proxy_uri **Update**: URL über DynDNS vergeben um die Kamera mittels CamProxy4AlexaP3 zu streamen
+
+##### alexa_proxy_credentials **Update**: Zugangsdaten für den AlexaCamProxy falls dieser mit Authentication "Basic" oder "Digest" parametriert wird. Angabe in der Form "USER":"PWD"
+
+
+##### alexa_camera_imageUri: die URL des Vorschau-Pictures der Kamera
+
+##### alexa_stream_1: Definition für den ersten Stream der Kamara, es werden bis zu 3 Streams unterstützt. Hier müssen die Details zum Stream definiert werden (protocol = rtsp, resolutions = Array mit der Auflösung, authorizationTypes = Autorisierung, videoCodecs = Array der VideoCodes, autoCodecs = Array der Audiocodes)
+
+##### alexa_csc_uri: Auflistung der Stream-URL´s für Stream1: / Stream2: / Stream3
+siehe Tabelle unten für mögliche Werte
+
+(Beispiel im YAML-Format):
+
+
+ doorcam:
+ name: doorcam
+ alexa_description: Haustürkamera
+ alexa_name: Doorcam
+ alexa_device: doorcam
+ alexa_icon: CAMERA
+ alexa_actions: InitializeCameraStreams
+ alexa_camera_imageUri: 'http://192.168.178.9/snapshot/view0.jpg'
+ alexa_csc_uri: '{"Stream1":"192.168.178.9","Stream2":"192.168.178./2","Stream3:...."}'
+ alexa_auth_cred: 'USER:PWD'
+ alexa_stream_1: '{
+ "protocols":["RTSP"],
+ "resolutions":[{"width":1920,"height":1080}],
+ "authorizationTypes":["BASIC"],
+ "videoCodecs":["H264"],
+ "audioCodecs":["G711"]
+ }'
+ alexa_stream_2: '{
+ "protocols":["RTSP"],
+ "resolutions":[{"width":1920,"height":1080}],
+ "authorizationTypes":["NONE"],
+ "videoCodecs":["H264"],
+ "audioCodecs":["AAC"]
+ }'
+ alexa_stream_3: '{.......
+ }'
+ alexa_csc_proxy_uri: alexatestcam.ddns.de:443
+ alexa_proxy_credentials: user:pwd
+
+
+Als Action ist fix "alexa_actions: InitializeCameraStreams" anzugeben.
+Als Icon empfiehlt sich "alexa_icon: CAMERA".
+
+Es können aktuell bis zu drei Streams pro Kamera definiert werden. In "alexa_csc_uri" werden die URL´s der Streams definiert. Die Items "alexa_csc_uri" und "alexa_stream_X" werden beim Laden der Items als Json geladen.
+
+
+!! Unbedingt auf korrekte Struktur im Json-Format achten !!
+
+
+Die Kamera URL´s müssen in der gleichen Reihenfolge zu den Streams (alexa_stream_X) sein.
+
+
+Mit dem Eintrag "alexa_auth_cred" werden User und Passwort für den Zugriff auf die Kamera hinterlegt.
+
+Mit dem Eintrag "alexa_camera_imageUri" wird die URL für den eventuell Snapshot der Kamera definiert.
+
+Für die Streams werden folgende Einstellungen untersützt:
+
++protocols : RTSP +resolutions : alle die von der Kamera unterstützt werden +authorizationTypes : "BASIC", "DIGEST" or "NONE" +videoCodecs : "H264", "MPEG2", "MJPEG", oder "JPG" +audioCodecs : "G711", "AAC", or "NONE" ++ +!! alle Einstellungen sind als Array definiert [] !! +## Alexa-SceneController + +Alexa aktiviere Szene kommen + +Mit dem Scene-Controller können Szenen aufgerufen werden. +Folgende Parameter sind anzugeben: +
+alexa_actions = "Activate"
+alexa_item_turn_on = 3
+alexa_icon = "SCENE_TRIGGER"
+
+
+Das "alexa_item_turn_on" ist die Nummer der Szene die aufgerufen werden soll.
+
+
+Beispiel Konfiguration :
+
+scene:
+ type: num
+ name: scene_kommen
+ alexa_description : "Szene Kommen"
+ alexa_name : "Szene Kommen"
+ alexa_device : Szene_Kommen
+ alexa_icon : "SCENE_TRIGGER"
+ alexa_item_turn_on : 3
+ alexa_actions : "Activate"
+ alexa_retrievable : false
+
+
+## ContactSensor Interface
+
+Alexa ist das Küchenfenster geschlossen ?
+Alexa ist das Küchenfenster geöffnet ?
+
+Folgende Parameter sind anzugeben:
+
+alexa_actions = "ReportContactState"
+alexa_icon = "CONTACT_SENSOR"
+
+
+Beispiel Konfiguration :
+
+fensterkontakt:
+ type: bool
+ name: kuechenfenster
+ alexa_description: Küchenfenster
+ alexa_name: kuechenfenster
+ alexa_device: kuechenfenster
+ alexa_icon: CONTACT_SENSOR
+ alexa_actions: ReportContactState
+ alexa_retrievable: 'True'
+
+
+
+## ColorController
+
+Alexa, setze Licht Speicher auf rot
+
+Folgende Paramter sind anzugeben :
+
+
+alexa_actions = "SetColor"
+alexa_color_value_type = RGB
+alexa_icon = "LIGHT"
+
+
+
+**"alexa_color_value_type" = RGB oder HSB**
+
+Der Parameter "alexa_color_value_type" gibt an ob die Werte von Alexa
+als RGB-Werte [120, 40, 65] oder als HSB-Werte[350.5, 0.7138, 0.6524] im list-Objekt an das Item übergeben werden.
+Default-Wert ist : RGB
+
+Die Helligkeit wird bei Farbwechsel unverändert beibehalten. Bei HSB-Werten wird der ursprüngliche Wert gepuffert und als aktueller Wert wieder an das Item übergeben.
+
+Zum Wechseln der Helligkeit einen BrightnessController hinzufügen
+Details siehe [BrightnessController](#BrightnessController)
+Beispiel Konfiguration (wobei R_Wert, G_Wert, B_Wert für die Gruppenadressen stehen :
+
+%YAML 1.1
+---
+Speicher:
+ Lampe_Speicher:
+ alexa_description: Licht Speicher
+ alexa_device: DALI_RGB_Speicher
+ alexa_name: Licht Speicher
+ alexa_icon: LIGHT
+ Dimmwert:
+ type: num
+ alexa_device: DALI_RGB_Speicher
+ alexa_actions: AdjustBrightness SetBrightness
+ alexa_retrievable: True
+ alexa_item_range: 0-255
+ Farbwert_RGB:
+ type: list
+ alexa_device: DALI_RGB_Speicher
+ alexa_color_value_type: RGB
+ alexa_actions: SetColor
+ alexa_retrievable: True
+ alexa_color_value_type: RGB
+ on_change:
+ - R_WERT = list[0]
+ - G_WERT = list[1]
+ - B_WERT = list[2]
+
+
+
+## RangeController
+
+
+Folgende Paramter sind anzugeben :
+
+
+alexa_actions: SetRangeValue AdjustRangeValue
+alexa_range_delta: 20
+alexa_item_range: 0-255
+
+
+ergänzt um das entsprechende Categorie-Icon
+
+
+alexa_icon: EXTERIOR_BLIND
+
+
+oder
+
+
+alexa_icon: INTERIOR_BLIND
+
+
+Der RangeController kann mit dem Percentage-Controller kombiniert werden
+
+
+alexa_actions: SetRangeValue AdjustRangeValue SetPercentage
+alexa_range_delta: 20
+alexa_item_range: 0-255
+
+
+
+## ColorTemperaturController
+
+Es müssen die Parameter für den einstellbaren Weiss-Bereich unter "alexa_item_range" in Kelvin von/bis angegeben werden.
+Da die Geräte der verschiedenen Hersteller unterschiedliche Weißbereiche abdecken ist wird dieser Wert benötigt.
+Falls ein Weißwert angefordert wird den das jeweilige Gerät nicht darstellen kann wird auf den Minimum bzw. den Maximumwert gestellt.
+
+Als Alexa-Actions müssen SetColorTemperature/IncreaseColorTemperature/DecreaseColorTemperature angegeben werden.
+Als Rückgabewert wird das entsprechende Item vom plugin auf den Wert von 0 (warmweiss) bis 255 (kaltweiss) gesetzt.
+
+Hinweis : Alexa unterstützt 1.000 Kelvin - 10.000 Kelvin
+
+
+alexa_item_range: 3000-6500
+alexa_actions: SetColorTemperature IncreaseColorTemperature DecreaseColorTemperature
+
+
+## PlaybackController
+
+Eingebaut um fahrende Rolladen zu stoppen.
+
+#### Alexa, stoppe den Rolladen Büro
+
+Das funktioniert nur, wenn beim Rolladen/Jalousie kein TurnOn/TurnOff definiert sind. Die Rolladen müssen mittels "AdjustPercentage" und "SetPercentage" angesteuert werden. Dann kann mit dem "Stop" Befehl der Rolladen angehalten werden.
+
+Die Action lautet "Stop". Es wird an dieser Stelle der Alexa.PlaybackController zweck entfremded. Dieser Controller hat eine "Stop" Funktion implementiert welche hier genutzt wird.
+Beim ausführen des Befehls wird eine "1" an das Item übergeben. Das Item muss der Stopbefehl für den Rolladen sein. enforce_update muss auf True stehen.
+
+Alle Actions senden jeweils ein "True" bzw. "EIN" bzw. "1"
+
+implementierte Funktionen:
+
+alexa_actions: Stop / Play / Pause / FastForward / Next / Previous / Rewind / StartOver
+
+
+# Web-Interface
+
+Das Plugin bietet ein Web-Interface an.
+
+Auf der ersten Seite werden alle Alexa-Geräte, die definierten Actions sowie die jeweiligen Aliase angezeigt. Actions in Payload-Version 3 werden grün angezeigt. Actions in Payload-Version 2 werden in rot angezeigt.
+Eine Zusammenfassung wird oben rechts dargestellt. Durch anklicken eine Zeile kann ein Alexa-Geräte für die Testfunktionen auf Seite 3 des Web-Interfaces auswewählt werden
+![webif_Seite1](./assets/Alexa4P3_Seite1.jpg)
+
+Auf der Zweiten Seite wird ein Kommunikationsprotokoll zur Alexa-Cloud angezeigt.
+![webif_Seite2](./assets/Alexa4P3_Seite2.jpg)
+
+Auf Seite drei können "Directiven" ähnlich wie in der Lambda-Test-Funktion der Amazon-Cloud ausgeführt werden. Der jeweilige Endpunkt ist auf Seite 1 duch anklicken zu wählen. Die Kommunikation wird auf Seite 2 protokolliert.
+So könnne einzelne Geräte und "Actions" getestet werden.
+
+![webif_Seite3](./assets/Alexa4P3_Seite3.jpg)
+
+Auf Seite 4 kann interaktiv ein YAML-Eintrag für einen Alexa-Kamera erzeugt werden. Der fertige YAML-Eintrag wird unten erzeugt und kann via Cut & Paste in die Item-Definition von shNG übernommen werden.
+
+![webif_Seite4](./assets/Alexa4P3_Seite4.jpg)
+
+
+# Beispiele
+
+## Der fast perfekte Rolladen
+
+Mit diesen Einstellungen kann ein Rolladen wie folgt gesteuert werden :
+
+Alexa,
+
+mache den Rolladen hoch
+
+mache den Rolladen runter
+
+öffne den Rolladen im Büro
+
+mache den Rolladen im Büro auf
+
+schliesse den Rolladen im Büro
+
+mache den Rolladen im Büro zu
+
+fahre Rolladen Büro auf siebzig Prozent
+
+stoppe Rolladen Büro
+
+
+
+Es wird zum einen der RangeController mit erweiterten Ausdrücken verwendet zum anderen wird
+der PlaybackController zweckentfremdet für das Stop-Signal verwendet.
+
+### !! Wichtig !!
+
+
+Die erweiterten Ausdrücke (öffnen/schliessen - hoch/runter) werden durch das Plugin automatisch
+beim RangeController eingebunden wenn als Alexa-Icon "EXTERIOR_BLIND" oder "INTERIOR_BLIND" parametriert werden.
+
+Beim Stop des Rolladen-Items muss "alexa_actions: Stop" angegeben werden
+Um das Item automatisch zurückzusetzen empfiehlt sich der autotimer-Eintrag.
+
+
+Bei der Positionierung des Rolladen muss "alexa_range_delta: xx" angegeben werden.
+"xx" ist hier der Wert der beim Kommando hoch/runter gesendet wird.
+Bei xx=20 und "Rolladen runter" würde der Rolladen 20 Prozent nach unten fahren.
+Bei xx=20 und "Rolladen hoch" würde der Rolladen 20 Prozent nach oben fahren.
+Wenn der Rolladen bei "hoch/runter" komplett fahren soll kann hier auch 100 angegeben werden.
+
+Für die Positionierung ist "alexa_item_range: 0-255" anzugeben.
+
+
+ Rolladen:
+ alexa_name: Rollladen Büro
+ alexa_device: rolladen_buero
+ alexa_description: Rollladen Büro
+ alexa_icon: EXTERIOR_BLIND
+ alexa_proactivelyReported: 'False'
+ alexa_retrievable: 'True'
+
+ move:
+ type: num
+ visu_acl: rw
+ knx_dpt: 1
+ knx_send: 3/2/23
+ enforce_updates: 'true'
+
+ stop:
+ type: num
+ visu_acl: rw
+ enforce_updates: 'true'
+ knx_dpt: 1
+ knx_send: 3/1/23
+ alexa_device: rolladen_buero
+ alexa_actions: Stop
+ alexa_retrievable: 'False'
+ alexa_proactivelyReported: 'False'
+ autotimer: 1 = 0
+
+ pos:
+ type: num
+ visu_acl: rw
+ knx_dpt: 5
+ knx_listen: 3/3/23
+ knx_send: 3/4/23
+ knx_init: 3/3/23
+ enforce_updates: 'true'
+ alexa_actions: SetRangeValue AdjustRangeValue
+ alexa_retrievable: 'True'
+ alexa_range_delta: 20
+ alexa_item_range: 0-255
+
+
+
+## Items in Abhängikeit des letzten benutzten Echos-Devices schalten
+
+Wenn das AlexaRc4shNG-Plugin aktiviert ist kann über eine Logik das letzte Echo-Gerät welches einen Sprachbefehl bekommen hat ermittelt werden und abhängig davon können Items geschalten werden. So kann z.b. eine raumabhängige Steuerung für das Licht und Rolladen erstellt werden.
+
+Es wird ein Item für Licht pauschal erstellt :
+```
+ Licht_pauschal:
+ alexa_name: Licht
+ alexa_device: Licht_pauschal
+ alexa_description: Licht Pauschal
+ alexa_icon: OTHER
+ alexa_actions: TurnOn TurnOff
+ alexa_proactivelyReported: 'False'
+ type: num
+ visu_acl: rw
+ enforce_updates: 'true'
+```
+
+eine entsprechende Logik welche durch das item "Licht_pauschal" getriggert wird schaltet dann die entsprechenden Items.
+```
+#!/usr/bin/env python3
+#last_alexa.py
+
+myAlexa = sh.alexarc4shng.get_last_alexa()
+if myAlexa != None:
+ triggeredItem=trigger['source']
+ triggerValue = trigger['value']
+ if triggeredItem == "test.testzimmer.Licht_pauschal":
+ if myAlexa == "ShowKueche":
+ sh.EG.Kueche.Spots_Sued(triggerValue)
+ if myAlexa == "Wohnzimmer":
+ sh.OG.Wohnzimmer.Spots_Nord(triggerValue)
+ sh.OG.Wohnzimmer.Spots_Sued(triggerValue)
+
+```