no message
This commit is contained in:
+121
-42
@@ -1,67 +1,146 @@
|
||||
# Manager_1
|
||||
Beschreibung des Moduls.
|
||||
# Enelix-Verbrauchermodul Ansteuerung Askoheat
|
||||
|
||||
### Inhaltsverzeichnis
|
||||
Dieses Modul integriert einen Askoheat-Heizstab als steuerbaren Boiler-Verbraucher in das Belevo Energiemanagement-System (Enelix). Es berechnet dynamisch verfügbare Leistungsstufen, kommuniziert mit dem übergeordneten Manager und steuert die Askoheat-Leistungsvariable anhand von Boilertemperatur, Zeitplan, Legionellenschutz, PV-Überschuss und Peak-Shaving-Anforderungen.
|
||||
|
||||
---
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
|
||||
1. [Funktionsumfang](#1-funktionsumfang)
|
||||
2. [Voraussetzungen](#2-voraussetzungen)
|
||||
3. [Software-Installation](#3-software-installation)
|
||||
4. [Einrichten der Instanzen in IP-Symcon](#4-einrichten-der-instanzen-in-ip-symcon)
|
||||
5. [Statusvariablen und Profile](#5-statusvariablen-und-profile)
|
||||
6. [WebFront](#6-webfront)
|
||||
7. [PHP-Befehlsreferenz](#7-php-befehlsreferenz)
|
||||
3. [Installation](#3-installation)
|
||||
4. [Instanz anlegen & Konfiguration](#4-instanz-anlegen--konfiguration)
|
||||
5. [Statusvariablen & Profile](#5-statusvariablen--profile)
|
||||
6. [WebFront / Bedienung](#6-webfront--bedienung)
|
||||
7. [Mapping auf Code-Komponenten](#7-mapping-auf-code-komponenten)
|
||||
8. [Zukünftige Erweiterungen](#8-zukünftige-erweiterungen)
|
||||
|
||||
### 1. Funktionsumfang
|
||||
---
|
||||
|
||||
*
|
||||
## 1. Funktionsumfang
|
||||
|
||||
### 2. Voraussetzungen
|
||||
* **Zyklische Steuerung:** In konfigurierbaren Intervallen (`Interval`) berechnet das Modul die aktuell verfügbaren Leistungsschritte und aktualisiert den Status.
|
||||
* **Askoheat-Leistungsansteuerung:** Die vom Manager zugewiesene Leistung wird auf eine Heizstufe von `0` bis `7` umgerechnet und an die konfigurierte Leistungsvariable (`Variable_Leistung`) gesendet.
|
||||
* **PowerSteps-Generierung:** Das Modul meldet dem Enelix-Manager ein Array an möglichen Leistungsschritten (`PowerSteps`), basierend auf Boilertemperatur, Betriebsmodus und Boilergrenzen.
|
||||
* **Peak-Shaving vs. PV-Überschuss:** Im Peak-Shaving-Modus werden Leistungsschritte nur zur Sicherstellung der Mindesttemperatur angeboten. Im PV-Modus können zusätzliche Leistungsschritte bis zur Maximaltemperatur angeboten werden.
|
||||
* **Temperaturüberwachung:** Berücksichtigung von Mindesttemperatur (`Mindesttemperatur`), Maximaltemperatur (`Maximaltemperatur`) und Legionellentemperatur (`Legionellentemperatur`).
|
||||
* **Temperaturglättung:** Optional kann die gemessene Boilertemperatur über eine PT1-Filterung geglättet werden.
|
||||
* **Zeitplan:** Über einen Solltemperatur-Zeitplan kann das Modul prüfen, ob die nächste Zieltemperatur mit der verfügbaren Leistung rechtzeitig erreichbar ist.
|
||||
* **Legionellenschutz:** Wird die Legionellentemperatur längere Zeit nicht erreicht, erhöht das Modul temporär die Temperaturanforderung.
|
||||
* **Idle-Schutz:** Nach einer Leistungsänderung kann eine konfigurierbare Sperrzeit (`IdleCounterMax`) berücksichtigt werden, bevor weitere Leistungsänderungen erfolgen.
|
||||
|
||||
- IP-Symcon ab Version 7.1
|
||||
---
|
||||
|
||||
### 3. Software-Installation
|
||||
## 2. Voraussetzungen
|
||||
|
||||
* Über den Module Store das 'Manager_1'-Modul installieren.
|
||||
* Alternativ über das Module Control folgende URL hinzufügen
|
||||
* IP-Symcon **>= 8.0**
|
||||
* Modul-URL: `https://git.belevo.ch/dh/enelix.git`
|
||||
* Vorhandener und eingerichteter Enelix Manager.
|
||||
* Askoheat- oder Heizstab-Steuerung mit einer schaltbaren Leistungsstufenvariable.
|
||||
* Temperaturfühler als Variable in IP-Symcon.
|
||||
* Aktivierte Aktion auf der Leistungsstufenvariable (`Variable_Leistung`).
|
||||
|
||||
### 4. Einrichten der Instanzen in IP-Symcon
|
||||
---
|
||||
|
||||
Unter 'Instanz hinzufügen' kann das 'Manager_1'-Modul mithilfe des Schnellfilters gefunden werden.
|
||||
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
|
||||
## 3. Installation
|
||||
|
||||
__Konfigurationsseite__:
|
||||
1. In IP-Symcon **Module Control** öffnen.
|
||||
2. **Hinzufügen -> Git-Repository**.
|
||||
3. URL eingeben und **Installieren**.
|
||||
4. IP-Symcon neu starten.
|
||||
|
||||
Name | Beschreibung
|
||||
-------- | ------------------
|
||||
|
|
||||
|
|
||||
---
|
||||
|
||||
### 5. Statusvariablen und Profile
|
||||
## 4. Instanz anlegen & Konfiguration
|
||||
|
||||
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
|
||||
### 4.1 Instanz anlegen
|
||||
|
||||
#### Statusvariablen
|
||||
* Rechtsklick **Instanzen** -> **Instanz hinzufügen**
|
||||
* Filter: **Belevo**
|
||||
* Auswahl: **Ansteuerung_Askoheat**
|
||||
|
||||
Name | Typ | Beschreibung
|
||||
------ | ------- | ------------
|
||||
| |
|
||||
| |
|
||||
### 4.2 Properties
|
||||
|
||||
#### Profile
|
||||
| Name | Typ | Beschreibung |
|
||||
| ---------------------------- | -------------- | ----------------------------------------------------------------------- |
|
||||
| **IdleCounterMax** | NumberSpinner | Anzahl der Intervall-Zyklen zwischen zwei Leistungsänderungen. |
|
||||
| **Interval** | NumberSpinner | Berechnungsintervall in Sekunden. |
|
||||
| **BoilerLeistung** | NumberSpinner | Maximale Askoheat-Leistung in Watt. |
|
||||
| **Variable_Leistung** | SelectVariable | Variable, an welche die Askoheat-Heizstufe `0` bis `7` gesendet wird. |
|
||||
| **Variable_Temperatur_Ist** | SelectVariable | Variable mit der aktuellen Boilertemperatur. |
|
||||
| **Boilertemperatur_glätten** | Select | Aktiviert die PT1-Glättung der gemessenen Boilertemperatur. |
|
||||
| **ZeitKonstante** | NumberSpinner | Zeitkonstante des PT1-Filters in Sekunden. |
|
||||
| **Boilervolumen** | NumberSpinner | Boilervolumen in Litern für die Berechnung der benötigten Wärmemenge. |
|
||||
| **Zeitplan** | List | Liste aus Uhrzeit und Solltemperatur für geplante Boiler-Zielwerte. |
|
||||
|
||||
Name | Typ
|
||||
------ | -------
|
||||
|
|
||||
|
|
||||
---
|
||||
|
||||
### 6. WebFront
|
||||
## 5. Statusvariablen & Profile
|
||||
|
||||
Die Funktionalität, die das Modul im WebFront bietet.
|
||||
| Ident | Typ | Beschreibung |
|
||||
| ------------------------ | ------- | ------------------------------------------------------------------------------ |
|
||||
| **PowerSteps** | String | JSON-Array der dem Manager angebotenen Leistungsschritte. |
|
||||
| **Aktuelle_Leistung** | Integer | Die aktuell geschaltete Soll-Leistung in Watt. |
|
||||
| **Power** | Integer | Die aktuell vom Manager zugewiesene Soll-Leistung. |
|
||||
| **Idle** | Boolean | Status der Sperrzeit (`true` = bereit für neue Werte, `false` = gesperrt). |
|
||||
| **Bezogene_Energie** | Float | Rechnerisch aufsummierte Energie (Leistung x Zeit). |
|
||||
| **PV_Prio** | Integer | Priorität des Verbrauchers für PV-Optimierung, tiefe Nummer = hohe Priorität. |
|
||||
| **Sperre_Prio** | Integer | Priorität des Verbrauchers für Peak-Optimierung, tiefe Nummer = hohe Priorität. |
|
||||
| **Is_Peak_Shaving** | Boolean | Vom Manager übermittelter aktueller Betriebsmodus. |
|
||||
| **Boilertemperatur** | Float | Aktuelle Boilertemperatur, roh oder geglättet. |
|
||||
| **Mindesttemperatur** | Integer | Untere Temperaturgrenze für den Boiler. |
|
||||
| **Maximaltemperatur** | Integer | Obere Temperaturgrenze für PV-Überschussnutzung. |
|
||||
| **Legionellentemperatur**| Integer | Zieltemperatur für den Legionellenschutz. |
|
||||
| **LegioCounter** | Integer | Interner Zähler für die Legionellenschutzlogik. |
|
||||
| **IdleCounter** | Integer | Interner Zähler für die Sperrzeit. |
|
||||
| **Leistung_Delta** | Integer | Interne Variable für Leistungsdifferenzen. |
|
||||
|
||||
### 7. PHP-Befehlsreferenz
|
||||
Es werden keine eigenen Variablenprofile angelegt.
|
||||
|
||||
`boolean GEF_BeispielFunktion(integer $InstanzID);`
|
||||
Erklärung der Funktion.
|
||||
---
|
||||
|
||||
Beispiel:
|
||||
`GEF_BeispielFunktion(12345);`
|
||||
## 6. WebFront / Bedienung
|
||||
|
||||
Die Temperaturgrenzen sowie die Prioritäten werden über folgende Variablen eingestellt:
|
||||
|
||||
`Mindesttemperatur` - Temperatur, unter welcher der Boiler zwingend freigegeben wird.
|
||||
|
||||
`Maximaltemperatur` - Temperatur, bis zu welcher PV-Überschüsse zur Warmwassererzeugung genutzt werden dürfen.
|
||||
|
||||
`Legionellentemperatur` - Zieltemperatur für die Legionellenschutzfunktion.
|
||||
|
||||
`PV_Prio` - Priorität des Verbrauchers für PV-Optimierung, tiefe Nummer = hohe Priorität.
|
||||
|
||||
`Sperre_Prio` - Priorität des Verbrauchers für Peak-Optimierung, tiefe Nummer = hohe Priorität.
|
||||
|
||||
`PowerSteps` - Dem Manager angebotene mögliche Leistungsstufen.
|
||||
|
||||
`Aktuelle_Leistung` - Tatsächlich geschaltete Leistung.
|
||||
|
||||
`Boilertemperatur` - Aktuelle Temperatur des Boilers.
|
||||
|
||||
---
|
||||
|
||||
## 7. Mapping auf Code-Komponenten
|
||||
|
||||
| Komponente | Funktion im Code (`module.php`) |
|
||||
| ----------------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| **Timer-Registrierung** | `ApplyChanges()` setzt `Timer_Do_UserCalc_Verb` basierend auf `Interval`. |
|
||||
| **Leistungszuteilung** | `SetAktuelle_Leistung($power)` setzt `Power`, `Aktuelle_Leistung`, `Bezogene_Energie` und Idle. |
|
||||
| **Askoheat-Stufenumrechnung** | `SetAktuelle_Leistung($power)` rechnet Watt auf eine Heizstufe von `0` bis `7` um. |
|
||||
| **PowerSteps-Berechnung** | `GetCurrentData($Peak)` erstellt die verfügbaren Leistungsstufen abhängig vom Betriebsmodus. |
|
||||
| **7-Stufen-Berechnung** | `Calc_Seven_Steps($power)` erzeugt Leistungsschritte von `0` bis zur maximalen Boilerleistung. |
|
||||
| **Temperaturglättung** | `GetCurrentData($Peak)` berechnet optional die PT1-gefilterte Boilertemperatur. |
|
||||
| **Zeitplanprüfung** | `getNextTimeAndTemperature()`, `calculateRemainingTime()` und `canBoilerReachTemperature()`. |
|
||||
| **Wärmemengenberechnung** | `calculateRequiredHeat()` berechnet die benötigte Energie für eine Temperaturdifferenz. |
|
||||
| **Legionellenschutz** | `GetCurrentData($Peak)` verwaltet `LegioCounter`, `Maximaltemperatur` und `Mindesttemperatur`. |
|
||||
| **Idle-Logik** | `ProcessIdleCounter()` verwaltet die Sperrzeit zwischen Leistungsänderungen. |
|
||||
| **Nachtprüfung** | `ist_nachts()` prüft den Zeitraum von 22:00 bis 07:00 Uhr. |
|
||||
|
||||
---
|
||||
|
||||
## 8. Zukünftige Erweiterungen
|
||||
|
||||
* Konfigurierbare Schwellenwerte für die Legionellenschutz-Zeitlogik.
|
||||
* Frei wählbare Anzahl an Askoheat-Leistungsstufen.
|
||||
* Eigene Variablenprofile für Temperatur, Leistung und Prioritäten.
|
||||
|
||||
Reference in New Issue
Block a user