Es können darüber sämtliche Werte und Stati ausgelesen werden. Es können ebenfalls Einstellungen vorgenommen werden. Realisiert habe ich das Auslesen, das Setzen des Sollwertes für Warmwasser und das Setzen des Betriebsmodus für Heizung und Warmwasser.
Hardware
Serielle Schnittstelle der Luxtronik 1.
Serielles Kabel, eigenbau, nur PINS 2, 3 und 5 verbinden (wenns nicht funktioniert, erst mal 2 und 3 tauschen)
RS232 to LAN Converter: USR TCP232 – 302.
Einstellungen Serielle Schnittstelle : 57600/8/N/1 , Modus :TCP-Server
Reset Timeout:0
Referenz für die Verbindung: https://wiki.fhem.de/wiki/Luxtronik_1_in_FHEM
Auslesen mit Befehl «1800»
Die Befehle an die Serielle Schnittstelle sind ASCII – Zahlenkombinationen, gefolgt von einem <CR>.
Da ich es nicht geschafft habe, diese Kombinationen direkt aus dem HM-Script mit Netcat an die Schnittstelle zu senden, habe ich alle Befehle in Textfiles auf der CCU2 gepackt.
In Putty habe ich die Datei für «1800» so angelegt: echo -e "1800\r" > 1800.txt
Dazu HM-Script zum Auslesen und zuordnen der Werte zu den definierten Systemvariablen:
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:10.CMD_SETS").State("{ cat /usr/local/addons/1800.txt; sleep 1; }|/usr/local/addons/tools/nc -c 192.168.1.117 8899");
dom.GetObject("CUxD.CUX2801001:10.CMD_QUERY_RET").State(1);
string wpraw = dom.GetObject("CUxD.CUX2801001:10.CMD_RETS").State();
string wptempVL = ((wpraw.StrValueByIndex(";", 3).ToFloat()) / 10).ToString(1);
string wptempRL = ((wpraw.StrValueByIndex(";", 4).ToFloat()) / 10).ToString(1);
string wptempAT = ((wpraw.StrValueByIndex(";", 7).ToFloat()) / 10).ToString(1);
string wptempBW = ((wpraw.StrValueByIndex(";", 8).ToFloat()) / 10).ToString(1);
string wptempBWs = ((wpraw.StrValueByIndex(";", 9).ToFloat()) / 10).ToString(1);
integer wpStatus = (wpraw.StrValueByIndex(";",164).ToInteger());
if (wpraw != "")
{
dom.GetObject("Heizung VL").State(wptempVL.ToFloat());
dom.GetObject("Heizung RL").State(wptempRL.ToFloat());
dom.GetObject("Aussentemperatur").State(wptempAT.ToFloat());
dom.GetObject("Heizung BW Ist").State(wptempBW.ToFloat());
dom.GetObject("Heizung BW Soll").State(wptempBWs.ToFloat());
dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State(wptempBW.ToFloat());
if (wpStatus == 0) {dom.GetObject("Heizung Betriebszustand").State("Heizung");}
if (wpStatus == 1) {dom.GetObject("Heizung Betriebszustand").State("Warmwasser");}
if (wpStatus == 5) {dom.GetObject("Heizung Betriebszustand").State("Bereitschaft");}
}
Ich lese nur die für mich wichtigsten Variablen aus der Rückmeldung der Steuerung aus. Was in den Zahlen sonst noch alles versteckt ist, findet man hier: https://github.com/christophgysin/heatp ... ic_V24.png
Weitere Befehle/Funktionen
- Auslesen Betriebsart Heizung und Betriebsart Warmwasser
Setzen Betriebsart Heizung und Betriebsart Warmwasser
Setzen Sollwert Warmwasser
Möglich (Programmiercodes vorhanden) wären auch:
- Setzen der Heizkurve
Ansteuerung der Pumpen
Setzen der Prioritäten (Heizung/WW/…)
Mit besten Grüssen
Forelleblau