Integration Hauslüftung (KWL)

Ja, wie gerade im anderen Thread geschrieben: Meine KWL stellt die 24V direkt zur Verfügung, muss halt dann an Klemme XYZ abgegriffen werden. Wo genau sollte Dir das Handbuch der Steuerung verraten.

Welches Modell/ Hersteller hast du verbaut? Habe viessmann 300 w.

@Fritzmaddin

Ich habe eine Helios EC 300W. Muss mal schauen, ob ich da auch 24V abgreifen kann…

Marc

Hallo zusammen,
Ich konnte das mit einer Brink Renovent 400 ähnlich umsetzen. Es war lediglich notwendig, aus dem Standard-Modell eine Plus-Modell zu machen (Freilegen des Anschlussterminals und Änderung des Mäuseklaviers).
Die 24V-Versorgungsspannung liefert die Anlage, die Ansteuerung erfolgt über 0-10V mit dem genannten Qubino Dimmer.
Den freien Input des Dimmers möchte ich nutzen, um den Filterwechsel darüber zu melden. Da mir dafür kein Schaltplan vorliegt, muss ich bis zum Messen auf den nächsten Filterwechsel warten.

Die Verknüpfung mit der Netatmo ist noch nicht implementiert, sollte aber gehen.
Viele Grüße

Hallo zusammen,

abe ein einfaches 24VDC Netzteil beorgt und angeschlossen. Funktioniert soweit, Inklusion auch.

An den Klemmen des Dimmerausgans liegen bei mir aber durchgehend 11 V an, unabhängig vom Dimmerzustand und Schaltzustand.

Hattet ihr das auch?

Wie konntet ihr das lösen?

Danke für eure Unterstützung!

Gruß,
Marc

Ich ziehe die Frage zurück. Habe neu inkludiert und jetzt funktioniert es.

Danke euch trotzdem!

Marc

Hat jemand den Mod schon mit einer Viessmann KWL durchgeführt?

Danke für denn Tip mit dem Qubino 0-10v, hat mit meiner Helios KWL ohne zusätzliches Netzteil funktioniert. Die 10V die am 4-Stufenschalter ankommen reichen für den Betrieb, der Qubino braucht keine 12-24V. Und das beste, der alte schalte funktioniert auch noch zusätzlich.

Ich hab unsere KWL (integriert in der Heizungsanlage Stiebel Eltron LWZ 304) auch in Homee integriert.

Allerdings nicht direkt sondern homee -> lokaler webhook --> lokaler webserver --> php-Script --> lokale Webseite der Stiebel Heizung (ISG-Modul).

Damit kann ich in homee die Lüftungsstufen (0-3) und die dazu gehörenden Ab-/Zuluft Volumenströme (80-300 m³) setzen. Ich bekomme zwar keine Rückmeldung in Richtung homee aber bisher hats noch immer funktioniert.
In der Heizungssoftware selbst kann man nur Tag/Nacht konfigurieren.
Mit homee bin ich da nun zeitlich und von den Regeln viel flexibler.
Sehr praktisch wenn man dann ad hoc im Sommer beim Schlafengehen Stufe 3 mit asymetrischen Volumenströmen (Unterdruck) aktivieren kann und einfach ein Fenster im Schlafzimmer klappt damit dort die kühle Nachluft einströmt ohne über den Wärmetauscher zu müssen.
Mit einer netatmo Sensorik könnte ich auch die Luftqualität hernehmen als Trigger aber ich bin nicht so der netatmo/cloud Freund hab da aber noch nichts aus dem Z-Wave Sortiment gefunden was mir in homee die Luftqualität anzeigen würde so wie es netatmo tut.

Wichtig war mir dass alles lokal im LAN abläuft.
Nur wenn der homee Proxy mal weg ist dann geht halt die Sprachsteuerung nicht.

Mit der gleichen Lösung kann ich auch noch vieles andere an der Heizung verstellen aber das ist ja hier nicht das Thema.

2 „Gefällt mir“

Ich werfe mal eine andere (Software) Lösung in den Ring. Nachdem wir in unser Haus mit einer Helios KWL eingezogen sind, bestand Integrationsbedarf in homee :slight_smile: . Ist das Ergebnis von zwei Stunden scripten an einem verregneten Sonntag - daher auch noch nicht super hübsch :wink: .

Helios KWL bietet eine Modbus TCP Schnittstelle an. Diese erfordert, dass die KWL im Netzwerk verfügbar ist und die modbus Schnittstelle in der KWL Webkonfiguration aktiviert ist (Konfiguration -> Gerät -> Gebäudeleittechnik -> Modbus Aktiviert:). Mit meinem folgenden Python Script auf einem Raspberry kann man dann per homee Webhook Befehle an den KWL senden.

Nach dem Starten des scripts läuft dauerhaft ein Webserver auf dem Raspberry (bis das Script wieder gestoppt wird). Z.B. beim Aufruf von http://raspberry_ip:8087/partymodus_an sendet der Raspberry drei Befehle an die KWL per modbus TCP: Lüfterstufe = 4, Laufzeit = 180min, Partymodus = an. Damit schaltet die KWL dann für 3h in den Lüftermodus 4. Lässt sich auch alles schön im Webserver des KWL nachverfolgen.

Im Moment ist Ruhemodus an / aus, Partybetrieb an / aus und Zuluft Temperatur implementiert, wobei letzteres nur Ready-only ist und dem Testen des Scripts dient. Das Script kann anhand der guten Dokumentation des Herstellers “FUNKTIONS- UND SCHNITTSTELLENBESCHREIBUNG Modbus Gateway TCP/IP” beliebig erweitert werden.

Funktioniert für mich perfekt. So kann man z.B. per FT55 den Partymodus aktivieren und dadurch die Lüftungsanlage auf die höchste Stufe stellen. Zudem möchte ich darüber im Sommer gewisse Lüftungssteuerungszenarien abbilden (z.B. bei sinkender Aussentemperatur nachts das tagsüber erwärmte Haus durch gesteigerte Lüftungsleistung abkühlen). Es gilt lediglich zu beachten, dass lediglich ein Befehl zur gleichen Zeit an die KWL gesendet wird, da die Modbus Implementierung mit Registern arbeitet.

Hier der aktuelle Stand des Scripts für Interessierte (Verwendung auf eigene Gefahr - hier geht’s immerhin um die frische Luft im Haus :wink: ):

#!/usr/bin/python
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.payload import BinaryPayloadBuilder
import logging
import argparse
import fcntl, sys, os
import re
import time

# Starts a web server and serve as webhook interface to steer the helios KWL
# E.g. homee -> webhook via HTTP -> raspberry running this script -> modbus TCP -> helios KWL
# Based on the work published here: https://github.com/home-assistant/home-assistant/issues/5185
# Call the webserver via: http://IP_WEBSERVER:PORT/BEFEHL
# Supported commands: zuluft, partymodus_an, partymodus_aus, ruhebetrieb_an, ruhebetrieb_aus
# More details on commands in document: FUNKTIONS- UND SCHNITTSTELLENBESCHREIBUNG FUNCTIONAL AND INTERFACE DESCRIPTION Modbus Gateway TCP/IP

SLAVE_ID = 180
FIRST_REGISTER_ADDR = 0x01
KWL_IP = 'helios'					# IP of KWL system
WEB_SERVER_PORT_NUMBER = 8087		# port number for webserver


def kwl_comm_start(ip, variable, rtr):
	try:
		kwl_com = kwl_comm(ip, variable, rtr)
		return kwl_com
	except:
		print "Error in communication"
		return "Error in communication"

def kwl_comm(ip, variable, rtr):
    logging.basicConfig()
    log = logging.getLogger()
    log.setLevel(logging.ERROR)

    rtr = rtr + 3
    if rtr < 8:
	rtr = 8

    client = ModbusClient(ip, 502)
    client.connect()

    builder = BinaryPayloadBuilder(byteorder=Endian.Little,
                 wordorder=Endian.Big)
    builder.add_string(variable + '\0')

    payload = builder.build()
    client.write_registers(FIRST_REGISTER_ADDR, payload,
                           skip_encode=True, unit=SLAVE_ID)

    result = client.read_holding_registers(
        FIRST_REGISTER_ADDR, rtr, unit=SLAVE_ID)

    output = BinaryPayloadDecoder.fromRegisters(result.registers,
                                             byteorder=Endian.Little,
                 wordorder=Endian.Big).decode_string(rtr)

    output = re.sub(u'([\u0000])', "", output)
    client.close()
    return(output)


class webHandler(BaseHTTPRequestHandler):
	
	#Handler for the GET requests
	def do_GET(self):
		print self.path.lower()
		self.send_response(200)
		self.send_header('Content-type','text/html')
		self.end_headers()
		
		if self.path.lower()=="/zuluft":
			kwl_comm_out = kwl_comm_start(KWL_IP, 'v00105', 8)
		elif self.path.lower()=="/partymodus_an":
			kwl_comm_out = kwl_comm_start(KWL_IP, 'v00091=180', 6)
			kwl_comm_out = kwl_comm_out + " " + kwl_comm_start(KWL_IP, 'v00092=4', 5)
			kwl_comm_out = kwl_comm_out + " " + kwl_comm_start(KWL_IP, 'v00094=1', 5)
		elif self.path.lower()=="/partymodus_aus":
			kwl_comm_out = kwl_comm_start(KWL_IP, 'v00094=0', 5)
		elif self.path.lower()=="/ruhebetrieb_an":
			kwl_comm_out = kwl_comm_start(KWL_IP, 'v00096=180', 6)
			kwl_comm_out = kwl_comm_out + " " + kwl_comm_start(KWL_IP, 'v00097=0', 5)
			kwl_comm_out = kwl_comm_out + " " + kwl_comm_start(KWL_IP, 'v00099=1', 5)
		elif self.path.lower()=="/ruhebetrieb_aus":
			kwl_comm_out = kwl_comm_start(KWL_IP, 'v00099=0', 5)
		else:
			kwl_comm_out = "No valid request"
		return self.wfile.write(kwl_comm_out)

try:
	server = HTTPServer(('', WEB_SERVER_PORT_NUMBER), webHandler)
	print 'Started KWL server on port ' , WEB_SERVER_PORT_NUMBER
	server.serve_forever()

except KeyboardInterrupt:
	print 'Shutting down the KWL web server'
	server.socket.close()

Und so sieht der Webhook aus (läuft bei mir auf dem homeean Raspberry mit):

5 „Gefällt mir“

@Pinky

Wie meinst du dass der alte Schalter noch funktioniert. Hast du jetzt 2 mal 0-10 V parallel an der KWL hängen. Die müssen sich doch beeinflussen.

Grüße Chris

Ich habe die KWL einer Stiebel LWZ 304 Trend (wird auch manchmal unter dem Namen Tecalor verkauft) mit Homee verbunden.

Homee Webhook auf einen lokalen Webserver (Tablet was sowieso läuft um die Heizungsdaten zu loggen) und dort wird damit ein PHP Script angestossen was auf der lokalen Webseite des ISG Web (Erweiterungsmodul der LWZ) geht und dort die gewünschten Einstellungen vornimmt.

Sollte jemand die gleiche Heizung und Interesse an der Lösung haben kann ich sie gerne teilen. Schickt am Besten ne PN weil ich nicht in jeden Thread wieder reinschaue.

1 „Gefällt mir“

Hi captsamson,
ich habe auch eine Tecalor 304 mit Lüftungsanlage am Laufen. Mein Gedanke ich will den CO2 Wert im Haus messen und dann die Lüftung entsprechend hochfahren. Hab aber noch kein Plan wie ich an die 304er rankomme, damit ich das über Homee anbinden kann. Gibt es eine Schnittstelle hierfür?

Danke für alle Tipps.

Gruß Alex

Die von mir genutzte Schnittstelle ist das ISG Web. Kostet aber ne Stange Geld.
Dazu dann eben der lokale Webserver der Dinge über PHP scripts auf dem ISG Web verändert.
Das PHP Script ruft Homee über einen Webhook auf.

Es wäre also kein Problem bei bestimmten CO2 Werten (so du die denn in homee misst) eine andere Lüftungsstufe an der Heizung zu starten.

Du kannst auch nicht nur die Lüftungsstufen 0-3 nutzen sondern kannst ja auch gleichzeitig mit dem PHP auch die Luftvolumenströme ändern man kann also ganz flexibel zwischen 80-300m³ einstellen, auch asymetrisch um z.B. einen Unterdruck zu erzeugen (im Sommer nachts mit fenster im Schlafzimmer auf Kipp).

Es gibt neben dem ISG Web Modul von Stiebel wohl auch noch die Möglichkeit ein Raspberry an die Heizung zu verbinden und dann irgendwas mit fhem zu machen.
Da kenn ich mich aber nicht aus.

Hi Captsamson,

Danke für deinen Tipp, das ISG Web ist mir zu teuer. Ich werde es über meine QNAP versuchen, dort FHEM installieren und die Werte auslesen. Mal schauen ob ich das hinbekomme.

Kannst Du mir noch verraten welchen Webserver du im Einsatz hast? Oder läuft das auf dem ISG Web Modul von Stiebel?

Gruß
Alex

Als Webserver habe ich xampp auf einem Windows10 Tablet im Einsatz. Das läuft fürs Logging (Firefox iMacro’s um die Webseite des ISG Web nach vielen Werte zu parsen und das in eine CSV zu loggen) eh 24/7. Im LAN ohne Internetzugriff.

Im xampp Ordner liegen dann eben PHP files die ich durch Webhook von homee auslöse.
Diese PHP machen nix anderes als sozusagen auf die Webseite des ISGs zu gehen und dort bestimmte Felder zu befüllen und dann diese zu speichern.

Beispiel:

<?php
$isg_website = "http://<IP vom ISG>";
$modus_luefterstufe = "3"; // 0-3
$volumenstrom_zuluft_stufe3 = "80"; // 80-300
$volumenstrom_abluft_stufe3 = "300"; // 80-300
$code_modus_lueferstufe=rawurlencode ("[{\"name\":\"val82\",\"value\":".$modus_luefterstufe."}]");
$code_volumenstrom_zuluft_stufe3=rawurlencode ("[{\"name\":\"val93\",\"value\":".$volumenstrom_zuluft_stufe3."}]");
$code_volumenstrom_abluft_stufe3=rawurlencode ("[{\"name\":\"val96\",\"value\":".$volumenstrom_abluft_stufe3."}]");
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $isg_website."/save.php"); // url
curl_setopt ($cu, CURLOPT_POSTFIELDS, "data=".$code_modus_lueferstufe);
$req1 = curl_exec ($cu); // request mit den Änderungsdaten abschicken
curl_setopt($cu, CURLOPT_URL, $isg_website."/save.php"); // url
curl_setopt ($cu, CURLOPT_POSTFIELDS, "data=".$code_volumenstrom_zuluft_stufe3);
$req1 = curl_exec ($cu); // request mit den Änderungsdaten abschicken
curl_setopt($cu, CURLOPT_URL, $isg_website."/save.php"); // url
curl_setopt ($cu, CURLOPT_POSTFIELDS, "data=".$code_volumenstrom_abluft_stufe3);
$req1 = curl_exec ($cu); // request mit den Änderungsdaten abschicken
curl_close ($cu);
?>

Dies ist z.B. so ein PHP was nicht nur die Lüfterstufe auf 3 setzt sondern gleichzeitig auch noch den Volumenstrom so einstellt dass er asymetrisch ist, also mehr reinzieht als rauspustet.
Nutzen wir im Sommer nachts um mit Kipplüftung kühle Nachtluft ohne Umweg über den Wärmetauscher ins Haus zu bekommen und dient hier mal als Beispiel wo nicht nur 1 Wert verändert wird.

Das PHP hab ich nicht selbst erstellt sondern habe von einem anderen Nutzer eines bekommen mit dem man nur die Lüfterstufe verändern konnte.
Man kann aber jeden Wert auf der ISG GUI verändern, man muss nur die variable dafür kennen. die “val”-ID.
Und die findet man gut im Browser raus wenn man den Seitenquelltext anzeigt.
Dann einfach nur ein bisschen Copy Paste und man hat alle Möglichkeiten.

Wie das natürlich mit der Webseite des FHEM ausschaut, bzw. wie man dort von aussen über Homee die Werte ändern könnte… das kann ich nicht sagen.

1 „Gefällt mir“

Vielen Dank, leider ist meine QNAP nicht wirklich so clever um FHEM zu installieren. Versuche es nun mit einer Raspberry.

Werde mich, auch wenn es noch etwas dauert, sicherlich nochmals bei Dir melden. Möchte dann noch wissen wie das mit der Lüftung und den Strömen so ist…

Hallo,
hab auch eine Brink.
Könntest du bitte etwas detaillierter beschreiben, wie du das umgesetzt hast?
Danke :pray:

siehe auch

1 „Gefällt mir“

Hallo zusammen,
ich habe auch eine KWL von Zehnder (ComfoAir E350 - die Fertighausbauer-Edition…). Hat die schon mal jemand erfolgreich angesteuert mit 0-10V? Und wie harmoniert das mit dem vorhandenem 4 Stufen Drehschalter?