NEWS
Neu entwickelter Heizungs-Controller für ELV HmIP-VDMot
-
@wendy2702 Hi,
Entwickler ist Lenti84, da gibt es auch Informationen zum Preis.
https://github.com/Lenti84/VdMot_ControllerEvtl. ein Issue anlegen.
-
@gargano
Hallo Gargano,ich habe den VdMot Controller seit einigen Tagen mit einem Loxone Miniserver / Loxberry / Mosquitto Browser in Betrieb, 12 Ventile sind dran. Ich kann per MQTT die Ventile grundsätzlich ansteuern, aber es gibt ein paar Problemchen oder möglicherweise auch Verständnisprobleme meinerseits. Soweit ich das mitbekommen habe, bist Du für den Softwarepart zuständig, der auch das MQTT Protokoll enthält, daher ein paar Fragen an Dich:
Wenn ich die Checkbox bei "Publish Target" / Protocol aktiviere, dann wird der Targetwert aller Ventile auf "0" gesetzt und kann über MQTT nicht mehr gesetzt werden. Haken weg, dann gehts. Feature oder Bug?In meinem MQTT Browser kommen folgende Topics an:
_VdMot_common_state
_VdMot_common_heatControl
_VdMot_common_parkPosition
...und für jedes aktivierte Ventil ...
_VdMot_valves_Bad1_actual
_VdMot_valves_Bad1_meancur
_VdMot_valves_Bad1_state
_VdMot_valves_Bad1_target
_VdMot_valves_Bad1_temp1
_VdMot_valves_Bad1_temp2Die Ventile kann ich so publish /VdMot/valves/Bad1/target <v> ansteuern. Nun möchte ich den Controller per MQTT veranlassen, eine Kalibrierung durchzuführen. Laut Doku zum JSON Interface sollte das mit /cmd und Payload {"action":"vCalib"} funktionieren. Eigentlich sollte mein Broker JSON nach MQTT übersetzen können, aber ich habe es auf alle möglichen Arten versucht und bekomme es nicht hin. Wie würde ein Topic aussehen, mit dem der Controller die Kalibrierung anstößt bzw. wie können die JSON Payloads aus der Software Doku zum WTH32 grundsätzlich mit MQTT verwendet werden?
Danke und Gruß!
-
@mcscotty Hi,
grundsätzlich können Json Payloads nicht über mqtt sondern über axios gehen per JS.
Publish values ist ein Feature, bei iobroker ist es möglich beides zu haben. Schreiben und Lesen. Bei Fhem z.B. ist es nicht möglich und bei Dir wohl auch nicht. Deshalb die Checkbox. Bin gerade im Urlaub, deshalb kann ich Dir kein Beispiel mittels axios geben. Aber ein Anstossen der Kalibrierung mittels mqtt wäre auch eine Sache. Kannst Du mir da ein Issue schreiben ?
Bin Anfang Juli wieder im Lande.Nachtrag: Ich verwende die eingebaute PI-Regelung und übergebe per mqtt nur die Soll und Ist- Werte
-
@gargano Ich hänge mich mal hier an, da ich genau dieses Board für einen Bekannten an iobroker anbinden soll. Da ich mit MQTT keine praktischen Erfahrung habe, wollte ich gerne wissen, ob es ausreichend ist, den Adapter Server/Client zu installieren. Es geht um das Auslesen der Werte als auch Einstellen der Werte.
Im Prinzip geht es ihm nur darum, das Board per MQTT anzusprechen, da das Webinterface nicht ausreichend ist. Meine Idee ist es, ihm ein RPi mit einer iobroker Installation hinzustellen und den Adapter zu installieren. Ist das ausreichend oder gar overpowered, wenn er nichts anderes damit macht?
Über eine Antwort würde ich mich freuen. -
@wurstdlx Ein Rpi ist völlig ausreichend und auch nicht überpowered.
Ich habe ein RPI 4 mit 8 GB und steuere damit auch einige andere Sachen.Per MQTT kannst Du entweder die Ventile mit den Stellwerte direkt steuern, oder Du teilst dem FBMot die Soll und Istwerte mit und überlässt die Regelung den FBMot.
Ausser dem Adapter Server/Client brauchst Du aber dann auch noch die Soll/Istwerte.
Bei mir habe ich die Werte von der Homematic. -
@gargano Vielen Dank für die schnelle Antwort. Scheinbar kenn ich mich doch noch nicht genug mit MQTT aus.
Wie meinst du das, du hast die Werte von der Homematic? Steh da noch ein wenig auf dem Schlauch. Mittels dem Adapter kann ich doch die Ventile steuern ("Stellwerte"), benötige ich dann noch die Soll/Istwerte?
Und wenn der Adapter installiert ist, erzeugt er die Datenpunkte selbst, oder muss ich die erstellen? -
@wurstdlx Das hat nichts mit MQTT zu tun, sondern ist die Physik einer Steuerung bzw. Regelung.
So wie Du es vorhast, nur die Stellwerte der Ventile zu setzen handelt es sich um eine Steuerung.
Z,B. Du setzt das Ventil für das Wohnzimmer auf 30 %. Dann bleibt es immer so , bis Du es veränderst.Anders und komfortabler ist es bei einer Regelung Da setzt Du den Sollwert der Temperatur, z.B. 22 °C. Damit die Regelung funktioniert , benötigt der VDMot die Soll-Temperatur (22°C) und laufend die Ist-Temperatur.
Dies geschieht bei mir über die Homematic. Den Rest macht das System automatisch.
Aber das nur am Rande.Eine einfache Steuerung lässt sich auch mit MQTT realisieren.
Einfach den 'target' Wert setzen.Die Datenpunkte werden automatisch erstellt.
-
@gargano Oh super, vielen Dank für die Erklärung. Das ergibt natürlich Sinn, habe im ganzen Eifer des Gefechts die Regelung vergessen, die natürlich die Ist Temperatur benötigt.
Dann werde ich mich mal an das Aufsetzen von MQTT in iobroker wagen. -
@gargano klingt ja sehr interessant das Teil.
Was wird genau angeboten? Das pre assembled PCB und man besorgt sich die Teile selbst und lötet diese dann selbst ans Board?
Oder gibt es das alles fertig? Über einen Preis habe ich bisher nichts gefunden.
https://github.com/Lenti84/VdMot_Controller/blob/master/hardware/assembly_kit.md -
@lobomau Es kommt als Bausatz mit gelöteten SMD Teile. Durchsteckteile werden mitgeliefert und muss man selber löten. Dauer ca. 1 Stunde.
Den aktuellen Preis kenn ich jetzt nicht, bitte bei Lenti84 nachfragen.
Ansonsten schau mal hier ;
https://github.com/Lenti84/VdMot_Controller/issues/23https://www.tindie.com/products/lenti/vdmot_controller/
Option THT und Blackpill mit auswählen .
Dazu braucht man noch den WTH32, den muß man sich selber besorgen.
-
Hi, ich interessiere mich für 3 Boards.
Ich habe zwei Fragen:
Ich nutze IObroker, da gibt es ja die Erweiterung die Heizungsaktoren steuern kann (Heatingcontrol). Dieses Erweiterung kann derzeit noch keine motorbetriebenen Ventile in der Art ansteuern, dass Sie die Ventilposition regeln kann, sondern nur wie bei den alten Ventilen Ein/Aus.
Die Erweiterung brauch folgende Datenpunkte über MQTT
-
Isttemparatur (beziehe ich über ein Wandthermostat im jeweiligen Raum)
-
Ventil ein/aus - (Jetzt kommt die eigentlich wichtige Frage) kann ich die Ventile bei diesem Board per MQTT an und aus (true/false) schalten, also nicht die Ventilposition in % o.ä. regeln, sondern ganz simple an und aus schalten?
-
Kann ich die Solltemperatur per MQTT für jeden Raum bei diesem Board setzen?
DIes alles kann ja der Falmot von Homematic eben nicht, auch wenn es simpel klingt…
Und die andere Frage: Dein Board wird mit DC betrieben oder ist ein Netzteil bereits mit auf der Platine? Falls es DC benötigt, welche Dimensionierung sollte das Netzteil haben?
Danke für die Hilfe
Beste Grüße
Elluminatus -
-
@elluminatus Hi,
erstmal Danke für das Interesse.
Das Projekt ist eine Zusammenarbeit von Lenti84 und mir. Lenti84 hat die Hardware und die Software für den STM32 entwickelt, ich habe die Software für den WTH32 (ESP32) entwickelt.
Ich benutze auch IOBroker und verwende den onboard PI Controller zum Steuern der Fussbodenheizung.
Ich habe dazu die Homematic IP Wandthermostate verwendet ( da ich früher auch die Homematic Fussbodenaktoren verwendet habe, allerdings die Thermoelektrischen Antriebe) , beabsichtige aber in naher Zukunft die Sonoff NS Panel zu verwenden. Die Soll / Ist Temperatur beziehe ich aus den Homematic Sensoren.Zu Deinem Fragen :
Ventil ein / aus geht nicht, nur 0..100% , das ist ja das Gute daran. ELV macht macht ja auch inzwischen die Motorenansteuerung.Bei Dir ist folgendes denkbar :
- Isttemperatur aus dem Raumfühler.
- Solltemperatur mittels Heatingcontrol
- kleines Script, welches die Soll/ Ist Temperatur bei jeder Änderung an die VDMot mittels MQTT sendet.
- Verwendung des des Onboard PI - Regler
Beispiel von mir :
Ist -Temperatur vom Homematic IP Sensor
Soll - Temperatur vom Homematic IP Sensor
Script :
const idWohn_Temp="hm-rpc.2.000A98A9A38D11.1.ACTUAL_TEMPERATURE";
const idWohn_SetPoint="hm-rpc.2.000A98A9A38D11.1.SET_POINT_TEMPERATURE";
const idWohn_FB_Value="mqtt.1.VdMotFBH.valves.Wohn.tValue";
const idWohn_FB_Target="mqtt.1.VdMotFBH.valves.Wohn.tTarget";on({id: idWohn_Temp, change: 'ne'}, function (obj) {
setState(idWohn_FB_Value,obj.state.val);
});on({id: idWohn_SetPoint, change: 'ne'}, function (obj) {
setState(idWohn_FB_Target,obj.state.val);
});Dadurch werden Soll / Ist Temperatur über MQTT dem VDMot übertragen. Der Pi Regler vom VDMot macht dann alles automatisch
Eintellungen VDMot :
Valves :
MQTT :
PI-Control :
Falls mehrere Heizungskreise in einem Raum existieren, kannst Du die Kanäle zusammenlegen (linken) . Bei mir ist es Essen / Küche /Wohn. Angesteuert mittels MQTT wird dann nur der Master Kanal ( Bei mir der Wohn Kanal) .
Auf hydraulischen Abgleich der einzelnen zusammengefassten Kreise achten !
Die Schwierigkeit ist nur die passenden Parameter für den PI Control rauszufinden.Netzteil ist nicht mit auf der Platine, Du benötigst ein externes Netzteil.
Ich habe ein Hutscheinen Netzteil 12V / 2 A verwendet , betreibe aber auch noch ein Netzwerkswitch , Interface für Resol/SolarThermie und einen WebCtrl2 damit. Gemessen habe ich max. 250 mA vom VDMot, also sollte ein 12V / 1 A genügen für ein Board, oder ein 12V / 2A für Deine 3 Boards.Viele Grüße
Werner -
@gargano Ja genau die NSPanel sind bei mir auch verbaut. Bei diesen stelle ich dann die Soll Temperatur ein. SDolltemp kommt also vom NSPanel. Ein separater BME280 gibt mir die Ist Temp in jedem Raum.
Also Soll aus dem NSPanel
Ist aus dem BME280Jetzt muss ich nur den Umweg gehen, solange die Heatingcontrol Erweiterung noch keine Motorventile kann, dass ich die Befehle aus der Heatingcontrol Erweiterung da einbaue, bis es dann irgendwann in diesem Jahr die Möglichkeit gibt Motorventile in Heatingcontrol zu betreiben.(Oder zweite Möglichkeit erstmal ganz auf Heatingcontrol zu verzichten und die interne PI Steuerung zu nutzen, bis Motorventile bei Heatingcontrol unterstützt werden, Heatingscontrol hat halt viele Steuermöglichkeiten)
Was meinst Du?Danke für die ganze Hilfe!!
Gruß Elluminatus
-
@elluminatus
Du nimmst auch Tasmota für die NSPanel ?
Wie hast Du den BME280 angeschlossen ?
Ich habe noch keine NSPanel, die habe ich direkt in China beim Hersteller bestellt, da nur der die neue Version hat, die in die 60mm Unterputzdosen passen. Versand war kostenlos, daher billiger als bei Ebay oder sonst wo.Da der NSPanel keine Heizprogramme kann, werde ich es so machen :
Heatingcontrol für die Sollwerte verwenden, damit kann ich dann auch Heizprogramme fahren.
Sollwerte werden über Heatingcontrol auf den NSPanel geschrieben.
Bei Änderung der Soll / Ist Werte vom NSPanel werden diese über MQTT dem VDMot mitgeteilt. der Rest macht der PI-Regler vom VDMot.Gruß Werner
-
@gargano
Den BME280 habe ich in einer separaten UP Dose zusammen mit einem Bewegungsmelder über einen ESP laufen. Einige Bilder vom Testaufbau habe ich hier:Ja ich nehme auch Tasmota mit Lovelace. Dort gibt es unzählige Funktionen auf dem NSPanel u.a. auch zum steuern der Heizung.
Wenn ich die VDmot Platinen habe (habt Ihr schon einen Liefertermin für Januar?) werde ich Deine Ausführungen mal nachvollziehen und es auch so mit NSPanel, VDmot PI Regler und Heatingscontrol umsetzen...
Hier ein Link mit Beispielbildern:
Und hier der Link zum NSPanel Thread hier im Forum mit einer wunderbaren Community
und hier die Beschreibung der Thermostat Einstellungen und Möglichkeiten mit Lovelace
Gruß Elluminatus
-
@elluminatus Du kannst Dich auf Tindi auf die Warteliste setzen lassen.
-
@gargano sagte in Neu entwickelter Heizungs-Controller für ELV HmIP-VDMot:
Da der NSPanel keine Heizprogramme kann, werde ich es so machen :
Heatingcontrol für die Sollwerte verwenden, damit kann ich dann auch Heizprogramme fahren.
Sollwerte werden über Heatingcontrol auf den NSPanel geschrieben.
Bei Änderung der Soll / Ist Werte vom NSPanel werden diese über MQTT dem VDMot mitgeteilt. der Rest macht der PI-Regler vom VDMot.Hi Gargano,
hast du Deine NSPanel inzwischen und kannst Du vielleicht mal darlegen, wie Du dies genau umsetzen wirst? Sprich ich habe irgendwie einen Knoten im Kopf wie "Änderungen über MQTT dem VDMot mitteilen" geschehen sollen.
Bei der Heatingcontrol APP muss ja der Aktor mit dem Stellglied und der Objekt Identifikation eingetragen werden.
Was trägst Du dort ein?Mein VDmot Boards sind da und auch schon zusammen gebaut und geflasht. Jetzt fehlt nur noch der Einbau und die Inbetriebnahme, dann wird es endlich wärmer als 13 Grad im Keller.
Ich habe auch mit Andreas gesschrieben und er sagte ich könne mal per MQTT Explorer die Angaben für Heatingcontrol senden, dann würde er schauen, wie er einen Sub Eintrag erstellen kann, der true/false auswirft. Aber da bin ich überfordert...
Kannst Du bei dem einen oder dem anderen helfen?
Gruß Elluminatus
-
Hi,
Was von Tindie muss man den Betsllen damit man es komplett hat?
-
@elluminatus Hi,
der VDMot hat ja einen eigenen Control PI-Algorithmus und dem braucht man nur die Soll und Istwerte mitzuteilen.
Ich habe das über ein kleines JS-Script gelöst :Soll wert ist : heatingcontrol.0.Rooms.Wohnzimmer.CurrentTarget
Mit dem NSPanel wird dies dann der Ist Wert : alias.0.NSPanels.Wohn.Sensor.ANALOG.Temperature.ACTUAL
Falls Du einen anderen Temp Sensor verwendest dann den Wert von dem entsprechenden Sensor.
Die Id's müsstest Du dann entsprechend anpassen.Script :
const idWohn_Temp="alias.0.NSPanels.Wohn.Sensor.ANALOG.Temperature.ACTUAL";
const idWohn_SetPoint="heatingcontrol.0.Rooms.Wohnzimmer.CurrentTarget";
const idWohn_FB_Value="mqtt.1.VdMotFBH.valves.Wohn.tValue";
const idWohn_FB_Target="mqtt.1.VdMotFBH.valves.Wohn.tTarget";on({id: idWohn_Temp, change: 'ne'}, function (obj) {
setState(idWohn_FB_Value,obj.state.val);
});on({id: idWohn_SetPoint, change: 'ne'}, function (obj) {
setState(idWohn_FB_Target,obj.state.val);
});Also bei jeder Änderung von SetPoint oder Temp werden die Daten über MQTT dem FBMot mitgeteilt.
Heatingcontrol hat damit nichts zu tun, außer die Sollwerte (Setpoints) zu verwalten.
Also keinen Aktor eintragen.Anstatt direkt auf die Objekte zuzugreifen kannst Du das auch mit Alias lösen.
Dazu ein Greät erstellen :
Aktuelle Temp dann Deine Objekt-ID.Im Heating Conrtrol dann dies einstellen :
und die IDs so anpassen
const idWohn_Temp="alias.0.Thermostate.Wohn.ACTUAL";
const idWohn_SetPoint="alias.0.Thermostate.Wohn.SET";Der Vorschlag von Andreas funktoniert nicht, da es dann ein 2-Punkt Regelung wäre und keine PI.
NSPanel habe ich inzwischen, bin aber mit der Temperaturmessung nicht zufrieden.
Ich werde wohl ein DS18B20 anschließen.VG Werner
-
Was von Tindie muss man den Bestellen damit man es komplett hat?
Alles.
Dazu noch ein Hutschienen-Gehäuse bestellen. (gibts nicht auf Tindie)
12V Netzteil.Gruß