Plugin-Daten
AutorPaolo Bazzi
Logo
StatusSTABLE
Version0.2.0
Min. LB Version1.4.2
Release Downloadhttps://github.com/paolobazzi/LoxBerry-Plugin-BWT-Aqua/archive/0.2.0.zip
BeschreibungAnbindung von BWT Aqua Wasserenthärtungsanlage an Loxone.
SprachenEN, DE
Diskussionhttps://www.loxforum.com/forum/projektforen/loxberry/plugins/278330-plugin-bwt-aqua-anbindung-wasserenth%C3%A4rter

BWT Aqua

Version History...


Download

Funktion des Plugins

Das Plugin verbindet sich via HTTP auf die BWT Aqua Perla Wasserenthärtungsanlage und liest via HTTP die aktuellen Daten zu Durchfluss und Füllstand aus.

Die Daten werden aus der Weboberläche der Anlage ausgelesen, welche im lokalen Netz unter https:%%//%%<IP-der-BWT>/users/login zur Verfügung steht.


Installation

Zip Downloaden und installieren. Automatische Updates werden noch nicht unterstützt.

Konfigurationsoptionen

Die folgenden Einstellungen stehen zur Verfügung:

  • IP Adresse: Die lokale IP Adresse Enthärtungsanlage (ohne HTTP)
  • Code: Das Passwort für den Zugriff auf die Enthärtungsanlage  (Der Code steht in der Mail der Registrierung der Anlage bei BWT. Alternativ kann der Code via BWT Support angefragt werden).
  • Per HTTP senden: Wenn eingeschaltet, werden die Daten der Enthärtungsanlage alle 15 Min an virtuelle Eingänge des Miniservers gesendet.
  • Per HTTP bereitstellen: Mittels verlinkter URL können die Daten der Enthärtungsanlage aus Loxone mittels virtuellem HTTP Eingang ausgelesen werden.
  • Miniserver: Auswahl des Miniservers für den Versand der Daten via HTTP.


Mittels Button Testen kann der Verbindungsaufbau und das abrufen der Daten getestet werden. Sofern "Per HTTP senden" aktiviert ist, werden die Daten auch direkt zum Testen an den Miniserver gesendet.

Die Ausgabe zeigt, ob die Verbindung klappt und listet die abgerufenen Werte.

URLhttp://loxberry/plugins/bwt-aqua/index.cgi?action=test

Einrichtung in der Loxone Config Software

Variante "Per HTTP senden"

Virtueller Eingang Bedeutung Typ
bwt-aqua-flow-current Aktueller Durchfluss (Liter) Virtueller Eingang
bwt-aqua-flow-current-percent Aktuelle Leistung (Prozent) Virtueller Eingang
bwt-aqua-flow-today Aktueller Durchfluss Heute (Liter) Virtueller Eingang
bwt-aqua-flow-month Aktueller Durchfluss Monat (Liter) Virtueller Eingang
bwt-aqua-flow-year Aktueller Durchfluss Jahr (m 3) Virtueller Eingang
bwt-aqua-regenerant-refill-days Regeneriermittel verbleibend (Tage) Virtueller Eingang
bwt-aqua-regenerant-remaining Regeneriermittel Stand (Prozent) Virtueller Eingang
bwt-aqua-data-timestamp Letzte Datenübertragung Virtueller Text Eingang
bwt-aqua-column1-remaining-capacity Restkapazität Säule 1 (Liter) Virtueller Eingang
bwt-aqua-column2-remaining-capacity Restkapazität Säule 2 (Liter) Virtueller Eingang
bwt-aqua-column1-state Regenerationsschritt Säule 1 Virtueller Text Eingang
bwt-aqua-column2-state Regenerationsschritt Säule 2 Virtueller Text Eingang
bwt-aqua-sole-counter-last-extracted-quantity Solezähler - Zuletzt abgesaugte Menge (ml) Virtueller Eingang

Die Namen der Eingänge werden in Zukunft konfigurierbar sein. Aktuell stehen sie schon im Konfigurationsfile des Plugins, sind aber via Oberfläche noch nicht anpassbar.


Visualisierung in Loxone

Variante "Per HTTP bereitstellen"

Alternativ können die Werde auch via HTTP Eingang abgerufen werden.

URL:   http://loxberry/plugins/bwt-aqua/index.cgi?action=fetch

Befehlserkennung:

Virtueller Eingang Bedeutung Typ
flowCurrent=\v Aktueller Durchfluss (Liter) Zahl
flowCurrentPercent=\v Aktuelle Leistung (Prozent) Zahl
flowToday=\v Aktueller Durchfluss Heute (Liter) Zahl
flowMonth=\v Aktueller Durchfluss Monat (Liter) Zahl
flowYear=\v Aktueller Durchfluss Jahr (m 3) Zahl
regenerantRefillDays=\v Regeneriermittel verbleibend (Tage) Zahl
regenerantRemainingDays=\v Regeneriermittel Stand (Prozent) Zahl
timestamp=\v Letzte Datenübertragung Zahl  (in Virtuellem Status mit <v.d> formatieren
remainingCapacityColumn1=\v Restkapazität Säule 1 (Liter) Zahl
remainingCapacityColumn2=\v Restkapazität Säule 1 (Liter) Zahl
soleCounterLastExtractedQuantity=\v Solezähler - Zuletzt abgesaugte Menge  (ml) Zahl 
stateColumn1=\1 Regenerationsschritt Säule 1 Zahl (in Statusbaustein prüfen, Wert = 66 entspricht "Betrieb")
stateColumn2=\1 Regenerationsschritt Säule 2 Zahl (in Statusbaustein prüfen, Wert = 66 entspricht "Betrieb")


Vorlage für virtuelle Eingänge:  

1269957097.xml

Importiert in der Config und mit Status-Baustein ergänzt:


Danke an Armin Votava  für die Vorlage.

Befehle aufrufen

Via BWT Aqua Plugin lassen sich auch diverse Aktionen auf der BWT Wasserenthärtungsanlage auslösen.


1) Zur Konfiguration zunächst den Loxberry Server als virtuellen Ausgang anlegen (Adresse als IP eintragen):

2) Danach für jede gewünschte Aktion einen virtuellen Ausgangsbefehl anlegen (Name und Befehl bei EIN eintragen):


Die möglichen Befehle sind hier aufgeführt oder auch direkt in der Loxberry Konfigurationsseite des Plugins aufgeführt:

Aktion Ausgangsbefehl
Regeneriermittelbefüllung /plugins/bwt-aqua/index.cgi?action=trigger&id=489&value=1
Urlaubsmodus einschalten /plugins/bwt-aqua/index.cgi?action=trigger&id=484&value=1
Urlaubsmodus ausschalten /plugins/bwt-aqua/index.cgi?action=trigger&id=484&value=0
Extra Regeneration auslösen /plugins/bwt-aqua/index.cgi?action=trigger&id=482&value=1
Extra Spülung auslösen /plugins/bwt-aqua/index.cgi?action=trigger&id=483&value=1
Ausserbetriebsetzen /plugins/bwt-aqua/index.cgi?action=trigger&id=507&value=1
Wiederinbetriebnahme /plugins/bwt-aqua/index.cgi?action=trigger&id=507&value=0


Vorlage für virtuelle Ausgänge: 

1269957098.xml
Danke an Armin Votava  für die Vorlage.


3) In der Loxone Config für Aktionen mit ein/aus einen Schalter und für Aktionen welche nur aufgerufen werden einen Taster anlegen:


Visualisierung mit Urlaubsmodus Ein:

Zugriff auf neue lokale BWT API

Im Jahr 2022 hat BWT den Zugriff auf die vom Plugin verwendete lokale API durch einen Umbau der Firmware auf Zugriff via VNC Technologie verunmöglicht. Als Ersatz gibts dafür seit Firmware Version: 2.0203 eine neue (noch nicht offiziell kommunizierte) lokale REST API.

Die passende Firmware könnt ihr euch via BWT Support aufspielen lassen. Danach muss die lokale API in den Einstellungen einmalig aktiviert werden: Menü → Einstellungen → Allgemein → Verbindungen, ganz unten: API auf "ein".

Dank Authentifizierung mittels Basic-Auth lässt sich die API direkt ohne Plugin in Loxone einbinden:

Aufruf aus Loxone:

Bezeichnung Befehlserkennun Einheit
Durchfluss Tag [l] "WaterTreatedCurrentDay_l" :\v <v.1> l
Durchfluss Monat [l] "WaterTreatedCurrentMonth_l" :\v <v.1> l
Durchfluss Jahr [l] "WaterTreatedCurrentYear_l" : "\v <v.1> l
Vorrat [Tage] "RegenerativRemainingDays" :\v <v>
Vorrat [%] "RegenerativLevel" :\v <v> %

Beispielkonfiguration Virtueller HTTP Eingang (Inhalt als XML Datei abspeichern und in Loxone importieren, anschliessend username, passwort und IP anpassen):

Beispielkonfiguration Virtueller HTTP Eingang
<?xml version="1.0" encoding="utf-8"?>
<VirtualInHttp Title="BWT Local API" Comment="" Address="http://username:password@192.168.1.2:8080/api/GetCurrentData" PollingTime="900">
	<Info templateType="2" minVersion="12021105"/>
	<VirtualInHttpCmd Title="Verbrauch Tag [l]" Comment="" Check="&quot;WaterTreatedCurrentDay_l&quot; :\v" Signed="true" Analog="true" SourceValLow="0" DestValLow="0" SourceValHigh="100" DestValHigh="100" DefVal="0" MinVal="-10000" MaxVal="10000"/>
	<VirtualInHttpCmd Title="Verbrauch Monat [l]" Comment="" Check="&quot;WaterTreatedCurrentMonth_l&quot; :\v" Signed="true" Analog="true" SourceValLow="0" DestValLow="0" SourceValHigh="100" DestValHigh="100" DefVal="0" MinVal="-10000" MaxVal="10000"/>
	<VirtualInHttpCmd Title="Verbrauch Jahr [l]" Comment="" Check="&quot;WaterTreatedCurrentYear_l&quot; : &quot;\v" Signed="true" Analog="true" SourceValLow="0" DestValLow="0" SourceValHigh="100" DestValHigh="100" DefVal="0" MinVal="-10000" MaxVal="10000"/>
	<VirtualInHttpCmd Title="Vorrat Tage" Comment="" Check="&quot;RegenerativRemainingDays&quot; :\v" Signed="true" Analog="true" SourceValLow="0" DestValLow="0" SourceValHigh="100" DestValHigh="100" DefVal="0" MinVal="-10000" MaxVal="10000"/>
    <VirtualInHttpCmd Title="Vorrat" Comment="" Check="&quot;RegenerativLevel&quot; :\v" Signed="true" Analog="true" SourceValLow="0" DestValLow="0" SourceValHigh="100" DestValHigh="100" DefVal="0" MinVal="-10000" MaxVal="10000"/>	
</VirtualInHttp>

Der Aufruf /GetCurrentData liefert auch weitere Daten. Achtung: textuelle Werte wie Datum lassen sich via virtuellem HTTP Eingang leider in Loxone nicht abgreifen.

/GetCurrentData Beispielwerte
{
	"ActiveErrorIDs": "",
	"BlendedWaterSinceSetup_l": 12344,
	"CapacityColumn1_ml_dH": 15848200,
	"CapacityColumn2_ml_dH": 15848200,
	"CurrentFlowrate_l_h": 0,
	"DosingSinceSetup_ml": 0,
	"FirmwareVersion": "2.0207",
	"HardnessIN_CaCO3": 345,
	"HardnessIN_dH": 10,
	"HardnessIN_fH": 18,
	"HardnessIN_mmol_l": 2,
	"HardnessOUT_CaCO3": 24,
	"HardnessOUT_dH": 2,
	"HardnessOUT_fH": 3,
	"HardnessOUT_mmol_l": 1,
	"HolidayModeStartTime": 0,
	"LastRegenerationColumn1": "2023-09-13 01:55:25",
	"LastRegenerationColumn2": "2023-09-13 02:51:01",
	"LastServiceCustomer": "2023-09-11 10:35:13",
	"LastServiceTechnican": "2023-09-22 08:43:04",
	"OutOfService": 0,
	"RegenerationCountSinceSetup": 1234,
	"RegenerationCounterColumn1": 456,
	"RegenerationCounterColumn2": 789,
	"RegenerativLevel": 63,
	"RegenerativRemainingDays": 40,
	"RegenerativSinceSetup_g": 230000,
	"ShowError": 0,
	"WaterSinceSetup_l": 12345,
	"WaterTreatedCurrentDay_l": 123,
	"WaterTreatedCurrentMonth_l": 4567,
	"WaterTreatedCurrentYear_l": 890722
}

Es stehen neben dem Aufruf von /GetCurrentData auch weitere Endpunkte mit zusätzlichen Daten zur Verfügung.

Verbrauch für den aktullen Tag zur Verfügung:

/GetDailyData Beispielwerte
{
	"0000_0029_l": 0,
	"0030_0059_l": 0,
	"0100_0129_l": 0,
	"0130_0159_l": 0,
	"0200_0229_l": 0,
	"0230_0259_l": 0,
	"0300_0329_l": 0,
	"0330_0359_l": 0,
	"0400_0429_l": 0,
	"0430_0459_l": 0,
	"0500_0529_l": 0,
	"0530_0559_l": 0,
	"0600_0629_l": 0,
	"0630_0659_l": 0,
	"0700_0729_l": 0,
	"0730_0759_l": 0,
	"0800_0829_l": 0,
	"0830_0859_l": 1,
	"0900_0929_l": 2,
	"0930_0959_l": 3,
	"1000_1029_l": 4,
	"1030_1059_l": 0,
	"1100_1129_l": 1,
	"1130_1159_l": 2,
	"1200_1229_l": 8,
	"1230_1259_l": 9,
	"1300_1329_l": 2,
	"1330_1359_l": 0,
	"1400_1429_l": 0,
	"1430_1459_l": 2,
	"1500_1529_l": 2,
	"1530_1559_l": 0,
	"1600_1629_l": 0,
	"1630_1659_l": 0,
	"1700_1729_l": 0,
	"1730_1759_l": 0,
	"1800_1829_l": 0,
	"1830_1859_l": 13,
	"1900_1929_l": 5,
	"1930_1959_l": 1,
	"2000_2029_l": 0,
	"2030_2059_l": 0,
	"2100_2129_l": 0,
	"2130_2159_l": 0,
	"2200_2229_l": 0,
	"2230_2259_l": 0,
	"2300_2329_l": 0,
	"2330_2359_l": 0
}

Verbrauch pro Tag im Monat:

/GetMonthlyData Beispielwerte
{
	"Day01_l": 10,
	"Day02_l": 20,
	"Day03_l": 30,
	"Day04_l": 20,
	"Day05_l": 0,
	"Day06_l": 0,
	"Day07_l": 101,
	"Day08_l": 102,
	"Day09_l": 103,
	"Day10_l": 156,
	"Day11_l": 232,
	"Day12_l": 22,
	"Day13_l": 222,
	"Day14_l": 233,
	"Day15_l": 123,
	"Day16_l": 34,
	"Day17_l": 124,
	"Day18_l": 30,
	"Day19_l": 40,
	"Day20_l": 23,
	"Day21_l": 40,
	"Day22_l": 20,
	"Day23_l": 40,
	"Day24_l": 23,
	"Day25_l": 30,
	"Day26_l": 40,
	"Day27_l": 30,
	"Day28_l": 40,
	"Day29_l": 40,
	"Day30_l": 40,
	"Day31_l": 30
}

Verbrauch pro Monat im Jahr:

/GetYearlyData Beispielwerte
{
	"Month01_l": 1234,
	"Month02_l": 1234,
	"Month03_l": 1234,
	"Month04_l": 1234,
	"Month05_l": 1234,
	"Month06_l": 1234,
	"Month07_l": 1234,
	"Month08_l": 1234,
	"Month09_l": 1234,
	"Month10_l": 1234,
	"Month11_l": 1234,
	"Month12_l": 1234
}

Fragen stellen und Fehler melden