Heimeier RTL Ventil / Universal Stellantrieb Smarthome

mit iobroker und nat√ľrlich alexa!

 

Problemstellung: F√ľr manche Heizungsventile gibt es keine passenden Stellantriebe bzw ich habe dazu nichts gefunden.

Manche sind vielleicht auch veraltet und daf√ľr wird nichts mehr hergestellt.¬†

Bei mir ist es eine Heizung an der Wand im Bad, an die gleichzeitig die Fußbodenheizung angeschlossen ist.

Wie auch immer ich will, dass die letzte Heizung die noch von Hand gestellt werden muss auch √ľber die Haussteuerung arbeitet.

 

 

 

 

Bitcoins / Litecoins / Ethereum / und andere schnell und einfach kaufen --> Du bekommst 10$ in Bitcoin geschenkt!

 

Folgende Teile werden benötigt (Adblocker aus, sonst keine Links)

 

Nodemcu

Servo
Kabel
Netzteil oder andere 5V Spannungsquelle

optional

amazon echo (jede Version)

 

 

 

Außerdem benätigst du die mechanishe Anbindung des Servos an die Heizung ich habe mir einen Adapter gezeichnet und gedruckt.

3D gedruker Adapter

 

Dann ben√∂tigst du nat√ľrlich noch Kabel, einen L√∂tkolben und vielleicht ein paar L√ľsterklemmen.¬†

Als Software benötigst du ESPEasy.

Flash Vorgang:

  • Node mit dem PC verbinden und im Ger√§temanager pr√ľfen welcher COM Port erstellt wird.
  • flash.cmd aus dem¬†Zipfile¬†doppelt klicken und starten. CMD sollte sich √∂ffnen.
  • COM Port aus Ger√§temanager angeben.
  • Wenn du die Node aus meinem Link hast, dann 4096 w√§hlen.
  • Build 120 oder neuer w√§hlen.

Nun siehst du ein neues WLAN der Node. Du kannst dich mit dem WLAN verbinden und auf die IP 192.168.4.1 surfen.

Mit dem Kennwort configesp kommst du weiter. Hier nun die Node mit deinem WLAN verbinden.

 

So weit so gut, die Gundinstallation ist abgeschlossen. Nun noch das Servo verkabeln. 

Hier das Bild der GPIO Schnittstelle der NODEMCU

 

Die Verkableung sieht folgendermaßen aus

Ich habe den Servo an GPIO5 (D1) angeschlossen, daher lautet der Aufruf:

Show/Hidden bash code

View source
 
 
 
http://<espeasyip>/control?cmd=Servo,1,5,90
 
 
  

 

1 = Servo 1; 5 = Pin GPIO5 --> D1; 90 = Stellwert (0-180 angeben)

 

Ab jetzt kannst du deine Heizung via PC / Smaprtphone steuern. Zwar noch ziemlich spartanisch, aber man braucht nicht laufen ;)

 

Ich gehe davon aus, dass du eine laufende Instanz von iobroker hast. Dann geht es hier weiter. Im Badezimmer habe ich ein xioami

 

In iobroker legst du ein neues Gerät mit einem Datenpunkt an "Gewuenschte_Temp".

Mit dem Script hier steuere ich nun die Badheizung automatisch. Wie jedes andere Gerät kann die Heizung nun auch via alexa gesteuert werden.

Show/Hidden bash code

View source
 
 
 
var tempbad, gewtemp, tempdiff;
 
 
 
on({id: 'javascript.0.EigeneGeraete.Heizung_Bad_Gew_Temp', change: "ne"}, function (obj) {
 var value = obj.state.val;
 var oldValue = obj.oldState.val;
 tempbad = parseFloat(getState("mihome.0.devices.weather_v1_158d0001d6bf98.temperature").val);
 gewtemp = parseFloat(getState("javascript.0.EigeneGeraete.Heizung_Bad_Gew_Temp").val);
 tempdiff = parseFloat((gewtemp - tempbad));
 console.log(gewtemp);
 console.log(tempbad);
 console.log(tempdiff);
 if (getState("fhem.0.Fenster_Bad.state").val != 'Open') {
 console.log('Fenster ist zu');
 if (tempdiff <= 0.1) {
 try {
 require("request")('http://192.168.0.158/control?cmd=Servo,1,5,180').on("error", function () {console.error(e);});
 } catch (e) { console.error(e); }
 console.log("request: " + 'http://192.168.0.158/control?cmd=Servo,1,5,180');
 setState("javascript.0.EigeneGeraete.Heizung_Bad"/*Heizung_Bad*/, 20);
 }
 if (tempdiff >= 0.1 && tempdiff < 0.3) {
 try {
 require("request")('http://192.168.0.158/control?cmd=Servo,1,5,100').on("error", function () {console.error(e);});
 } catch (e) { console.error(e); }
 console.log("request: " + 'http://192.168.0.158/control?cmd=Servo,1,5,100');
 setState("javascript.0.EigeneGeraete.Heizung_Bad"/*Heizung_Bad*/, 40);
 }
 if (tempdiff >= 0.3 && tempdiff < 0.4) {
 try {
 require("request")('http://192.168.0.158/control?cmd=Servo,1,5,60').on("error", function () {console.error(e);});
 } catch (e) { console.error(e); }
 console.log("request: " + 'http://192.168.0.158/control?cmd=Servo,1,5,60');
 setState("javascript.0.EigeneGeraete.Heizung_Bad"/*Heizung_Bad*/, 60);
 }
 if (tempdiff >= 0.4 && tempdiff < 0.5) {
 try {
 require("request")('http://192.168.0.158/control?cmd=Servo,1,5,40').on("error", function () {console.error(e);});
 } catch (e) { console.error(e); }
 console.log("request: " + 'http://192.168.0.158/control?cmd=Servo,1,5,40');
 setState("javascript.0.EigeneGeraete.Heizung_Bad"/*Heizung_Bad*/, 80);
 }
 if (tempdiff >= 0.5) {
 try {
 require("request")('http://192.168.0.158/control?cmd=Servo,1,5,0').on("error", function () {console.error(e);});
 } catch (e) { console.error(e); }
 console.log("request: " + 'http://192.168.0.158/control?cmd=Servo,1,5,0');
 setState("javascript.0.EigeneGeraete.Heizung_Bad"/*Heizung_Bad*/, 100);
 }
 } else {
 try {
 require("request")('http://192.168.0.158/control?cmd=Servo,1,5,180').on("error", function () {console.error(e);});
 } catch (e) { console.error(e); }
 console.log("request: " + 'http://192.168.0.158/control?cmd=Servo,1,5,180');
 }
});
 
 
  

 

 

Dir hat das Projekt gefallen. Dann unterst√ľtze mich gerne mit einer kleinen Spende via Paypal.

Kommentar schreiben

Sicherheitscode
Aktualisieren