NEWS
Bewässerung und Lüftungsteuerung
-
Hallo zusammen,
ich versuche gerade meine Hausautomation auszubauen nun bin ich an einen Punkt angelangt an dem ich alleine nicht weiterkomme…
Ich versuche mal zu erklären was ich vorhabe und wo ich hilfe gebrauche.
1. Elektrischer Schaltplan den ich gezeichnet habe (ich hoffe ihr könnt es lesen) kann ich den so umsetzten oder gibt es dort fehler die ich eingebaut habe?
2. ich habe einen Wemos mit dem ich Temperatur und Feuchte messen möchte kann ich da 2stk. BME280 anschließen? An dem Wemos gibt es einen Pin für SCL und einen für SCA den zweiten BME28 einfach auf 2 andere Pins legen und in der ESPEasy Config zuweisen?
3. Ich brächte ein Skripte am besten Blockly da ich Java nicht behersche welches einen lüfter Steuert um meine Garage im Winter zu entfeuchten, folgendes sollte dieses Skripte erfüllen:
3.1 Lüfter soll anlaufen wenn die Feuchtigkeit in der Garage über Relative Luftfeuchtigket von 65% liegt und ab 55% wieder abschalten.
3.2 Es müsste die Absoloute feuchtigkeit innen/aussen verglichen werden um mir von draussen nicht noch feuchtere luft in die Gagage zu holen
3.3 Es soll eine mindest Temperatur in der Garage gehalten werden ca. 3 Grad da ich im Winter Schimmelprobleme in der Garage habe.
4. Dazu Plane ich noch eine Steuerung meiner Bewässerungsanlage ich würde diese Gerne über meine Visu Steuern Ein/Aus wäre kein Problem ich möchte diese aber Halbwegs Automatisieren dh. ich drücke in der Visu ein Widget dabei soll die Voreingestellte zeit Pro Zone (3Stk. V1-3) laufen zb. Zone1 10min, Zone2 15min und Zone3 13min. Dieses Skripte sollte acuh über Blockly laufen.
So, ich hoffe ich konnte es euch einigermaßen erklären und bin auf eure Antworten gespannt.
2113_schaltplan.png -
Zu 3. Mit Blockly kann ich nicht dienen, aber mit einem Skript. In die Konfiguration der JS-Instanz muss unter "Zusätzliche NPM-Module" dewpoint eingetragen werden.
// Garagenlüftung var tiid = getIdByName("Garage.Temperatur"); var taid = getIdByName("Aussen.Temperatur"); var fiid = getIdByName("Garage.rel_Feuchte"); var faid = getIdByName("Aussen.rel_Feuchte"); var lid = getIdByName("Garage.Lueften"); var ti = getState(tiid).val; // Raumtemperatur in °C var ta = getState(taid).val; // Aussentemperatur in °C var fi = getState(fiid).val; // Raumfeuchte in %rH var fa = getState(faid).val; // Aussenfeuchte in %rH var DP = require('dewpoint'); // 70 m über NN var xdp = new DP(70); // Feuchtegehalt berechnen function calcx(t, rh) { var y = xdp.Calc(t, rh); return y.x; } var xi = calcx(ti, fi); // Feuchtegehalt innen var xa = calcx(ta, fa); // Feuchtegehalt außen // Lüftung steuern mit 0,3 g/kg, 0,5 K und 10 % Hysterese function lueften() { if (xa <= (xi - 0.4) && fi >= 65 && ti >= 3.5) { setState(lid, true); } else if (xa >= (xi - 0.1) || fi <= 55 || ti <= 3.0) { setState(lid, false); } } // Script start lueften(); on(fiid, function (dp) { fi = dp.state.val; xi = calcx(ti, fi); lueften(); }); on(faid, function (dp) { fa = dp.state.val; xa = calcx(ta, fa); lueften(); }); on(tiid, function (dp) { ti = dp.state.val; xi = calcx(ti, fi); lueften(); }); on(taid, function (dp) { ta = dp.state.val; xa = calcx(ta, fa); lueften(); });
-
kann ich da 2stk. BME280 anschließen? `
Ja, I²C ist ein Bus, d.h. Du kannst 2 BME280 parallel betreiben, wenn Du jedem eine andere Adresse verpasst. Das geht über SDO (Pin 5): Bei einem Sensor mit GND (Pin 0) und beim anderen Sensor mit Vddio (Pin 6) verbinden. -
Zu 3. Mit Blockly kann ich nicht dienen, aber mit einem Skript. In die Konfiguration der JS-Instanz muss unter "Zusätzliche NPM-Module" dewpoint eingetragen werden. `
Super, teste ich die Tage mal