Java Webinterface
Die Luxtronik 2 hat vor Firmware Version 3.81 ein Java Applet als Webinterface ausgeliefert, diese hat via Port 8888 bzw. 8889 daten gelesen und geschrieben.
Ab Version 3.81 wurde auf ein Websockets basierendes Protokoll gewechselt.
Das Protokoll das davor vom Java Applet verwendet wurde ist aber weiterhin aktiv! und wird z.B. von der Smartphone App verwendet.
Webinterface
Das Webinterface an sich ist ungeeignet um mittels MS angesprochen zu werden, allerdings muss auch dieses irgendwie an die Daten der Heizung kommen was wir für unsere Zwecke nutzen können.
Das Webinterface ist unter der IP Adresse der Wärmepumpe, z.B. 192.168.178.10 erreichbar. Sieht man sich die Ethernet Pakete an, die von und zur Wärmepumpe gehen nach dem das Webinterface aufgerufen wurde (mitteles Wireshark), sieht man das das Webinterface eine neue Verbindung auf Port 8889 zur WP öffnet (8888 auf Luxtronik 2 Modulen mit SW Versionen < 1.76). Dabei sendet das Java Applet bestimmte Byte Sequenzen an die WP und bekommt darauf hin eine ganze Reihe an Bytes zurück. Dieses Verhalten lässt sich mit der PicoC Funktionalität des MS nachbilden und man kommt an die gewünschten Informationen.
Verbindung aufbauen und Daten anfragen
Um eine Verbindung aufzubauen connected man auf die IP der Luxtronik unter Verwendung des Ports 8889.
Es gibt 4 mögliche Kommandos die an die Luxtronik gesendet werden können.
Die Übersetzungen der Bezeichnungen sind möglicherweise nicht korrekt!
3002 - Parameter schreiben
Man sendet 4 Bytes mit dem Kommando, Big Endian formatiert, gefolgt von 4 Bytes mit der Parameter Nummer und 4 Bytes mit dem neuen Wert:
0x00 0x00 0x0b 0xba 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00Die Luxtronik antwortet mit dem Kommando (4 Bytes) und dem Parameterwert (4 Bytes) , ebenfalls Big Endian formatiert.
3003 - Parameter lesen
Man sendet 4 Bytes mit dem Kommando, Big Endian formatiert, gefolgt von 4 Null Bytes:
0x00 0x00 0x0b 0xbb 0x00 0x00 0x00 0x00Die Luxtronik antwortet mit dem Kommando (4 Bytes) und der Anzahl an Parametern die folgen (4 Bytes) , ebenfalls Big Endian formatiert.
Sobald man die Anzahl weiss, liest man diese Anzahl an Integern (jeweils 4 Bytes)
Beschreibung:
3004 - Berechnungen lesen
Man sendet 4 Bytes mit dem Kommando, Big Endian formatiert, gefolgt von 4 Null Bytes:
0x00 0x00 0x0b 0xbc 0x00 0x00 0x00 0x00Die Luxtronik antwortet mit dem Kommando (4 Bytes), dem Status (4 Bytes) und der Anzahl an Berechnungen die folgen (4 Bytes) , ebenfalls Big Endian formatiert.
Sobald man die Anzahl weiss, liest man diese Anzahl an Integern (jeweils 4 Bytes)
Nachfolgend ist eine Tabelle die (fast) alle Parameter Beschreibt und zeigt wie man die Werte interpretieren muss.
Rot hinterlegte Felder sind unklar
Die Parameter 0 - 10 sind auch unklar, im Java Code werden erst die Parameter ab 10 behandelt
Die Parameter 6 + 7 ergeben bei mir einen Unix Zeitstempel der sich in den "01.01.2007 01:00:00" umrechnen lässt, aber die Bedeutung erschliesst sich nicht
Viele Parameter sind bei mir mit 0, Ich vermute das nicht verbaute Hardware trotzdem in den Daten abgebildet ist um alle Modelle mit einer Software zu erschlagen.
ID | Identifier | Beschreibung | Umrechnung | Einheit |
|---|---|---|---|---|
10 | ID_WEB_Temperatur_TVL | Vorlauftemperatur Heizkreis | Wert / 10 | °C |
11 | ID_WEB_Temperatur_TRL | Rücklauftemperatur Heizkreis | Wert / 10 | °C |
12 | ID_WEB_Sollwert_TRL_HZ | Rücklauf-Soll Heizkreis | Wert / 10 | °C |
13 | ID_WEB_Temperatur_TRL_ext | Rücklauftemperatur im Trennspeicher. | Wert / 10 | °C |
14 | ID_WEB_Temperatur_THG | Heisgastemperatur | Wert / 10 | °C |
15 | ID_WEB_Temperatur_TA | Aussentemperatur | Wert / 10 | °C |
16 | ID_WEB_Mitteltemperatur | Durchschnittstemperatur Aussen über 24 h (Funktion Heizgrenze) | Wert / 10 | °C |
17 | ID_WEB_Temperatur_TBW | Warmwasser Ist-Temperatur | Wert / 10 | °C |
18 | ID_WEB_Einst_BWS_akt | Warmwasser Soll-Temperatur | Wert / 10 | °C |
19 | ID_WEB_Temperatur_TWE | Wärmequellen-Eintrittstemperatur | Wert / 10 | °C |
20 | ID_WEB_Temperatur_TWA | Wärmequellen-Austrittstemperatur | Wert / 10 | °C |
21 | ID_WEB_Temperatur_TFB1 | Mischkreis 1 Vorlauftemperatur | Wert / 10 | °C |
22 | ID_WEB_Sollwert_TVL_MK1 | Mischkreis 1 Vorlauf-Soll-Temperatur | Wert / 10 | °C |
23 | ID_WEB_Temperatur_RFV | Raumtemperatur Raumstation 1 | Wert / 10 | °C |
24 | ID_WEB_Temperatur_TFB2 | Mischkreis 2 Vorlauftemperatur | Wert / 10 | °C |
25 | ID_WEB_Sollwert_TVL_MK2 | Mischkreis 2 Vorlauf-Soll-Temperatur | Wert / 10 | °C |
26 | ID_WEB_Temperatur_TSK | Fühler Solarkollektor | Wert / 10 | °C |
27 | ID_WEB_Temperatur_TSS | Fühler Solarspeicher | Wert / 10 | °C |
28 | ID_WEB_Temperatur_TEE | Fühler externe Energiequelle | Wert / 10 | °C |
29 | ID_WEB_ASDin | Eingang "Abtauende, Soledruck, Durchfluss" | Keine | Boolean |
30 | ID_WEB_BWTin | Eingang "Brauchwarmwasserthermostat" | Keine | Boolean |
31 | ID_WEB_EVUin | Eingang "EVU Sperre" | Keine | Boolean |
32 | ID_WEB_HDin | Eingang "Hochdruck Kältekreis" | Keine | Boolean |
33 | ID_WEB_MOTin | Eingang "Motorschutz OK" | Keine | Boolean |
34 | ID_WEB_NDin | Eingang "Niederdruck" | Keine | Boolean |
35 | ID_WEB_PEXin | Eingang "Überwachungskontakt für Potentiostat" | Keine | Boolean |
36 | ID_WEB_SWTin | Eingang "Schwimmbadthermostat" | Keine | Boolean |
37 | ID_WEB_AVout | Ausgang "Abtauventil" | Keine | Boolean |
38 | ID_WEB_BUPout | Ausgang "Brauchwasserpumpe/Umstellventil" | Keine | Boolean |
39 | ID_WEB_HUPout | Ausgang "Heizungsumwälzpumpe" | Keine | Boolean |
40 | ID_WEB_MA1out | Ausgang "Mischkreis 1 Auf" | Keine | Boolean |
41 | ID_WEB_MZ1out | Ausgang "Mischkreis 1 Zu" | Keine | Boolean |
42 | ID_WEB_VENout | Ausgang "Ventilation (Lüftung)" | Keine | Boolean |
43 | ID_WEB_VBOout | Ausgang "Solepumpe/Ventilator" | Keine | Boolean |
44 | ID_WEB_VD1out | Ausgang "Verdichter 1" | Keine | Boolean |
45 | ID_WEB_VD2out | Ausgang "Verdichter 2" | Keine | Boolean |
46 | ID_WEB_ZIPout | Ausgang "Zirkulationspumpe" | Keine | Boolean |
47 | ID_WEB_ZUPout | Ausgang "Zusatzumwälzpumpe" | Keine | Boolean |
48 | ID_WEB_ZW1out | Ausgang "Steuersignal Zusatzheizung v. Heizung" | Keine | Boolean |
49 | ID_WEB_ZW2SSTout | Ausgang "Steuersignal Zusatzheizung/Störsignal" | Keine | Boolean |
50 | ID_WEB_ZW3SSTout | Ausgang "Zusatzheizung 3" | Keine | Boolean |
51 | ID_WEB_FP2out | Ausgang "Pumpe Mischkreis 2" | Keine | Boolean |
52 | ID_WEB_SLPout | Ausgang "Solarladepumpe" | Keine | Boolean |
53 | ID_WEB_SUPout | Ausgang "Schwimmbadpumpe" | Keine | Boolean |
54 | ID_WEB_MZ2out | Ausgang "Mischkreis 2 Zu" | Keine | Boolean |
55 | ID_WEB_MA2out | Ausgang "Mischkreis 2 Auf" | Keine | Boolean |
56 | ID_WEB_Zaehler_BetrZeitVD1 | Betriebsstunden Verdichter 1 | Keine | Sekunden |
57 | ID_WEB_Zaehler_BetrZeitImpVD1 | Impulse Verdichter 1 | Keine | Impulse |
58 | ID_WEB_Zaehler_BetrZeitVD2 | Betriebsstunden Verdichter 2 | Keine | Sekunden |
59 | ID_WEB_Zaehler_BetrZeitImpVD2 | Impulse Verdichter 2 | Keine | Impulse |
60 | ID_WEB_Zaehler_BetrZeitZWE1 | Betriebsstunden Zweiter Wärmeerzeuger 1 | Keine | Sekunden |
61 | ID_WEB_Zaehler_BetrZeitZWE2 | Betriebsstunden Zweiter Wärmeerzeuger 2 | Keine | Sekunden |
62 | ID_WEB_Zaehler_BetrZeitZWE3 | Betriebsstunden Zweiter Wärmeerzeuger 3 | ?? (Wert / 7200 = Stunden) | ?? |
63 | ID_WEB_Zaehler_BetrZeitWP | Betriebsstunden Wärmepumpe | Keine | Sekunden |
64 | ID_WEB_Zaehler_BetrZeitHz | Betriebsstunden Heizung | Keine | Sekunden |
65 | ID_WEB_Zaehler_BetrZeitBW | Betriebsstunden Warmwasser | Keine | Sekunden |
66 | ID_WEB_Zaehler_BetrZeitKue | Betriebsstunden Kühlung | Keine |