Hi,
Ich möchte euch kurz meine neue Bewässerungssteuerung mit Zisternenautomatik mit ESP8266, OLED, PCF8574 und Ultraschallsensor vorstellen.
Mit diesem Sketch bekommnt man die Möglichkeit, Bewässerungsventile effizient zu steuern. Dabei kann der Aufbau der Anlage von "sehr einfach" bis "hoch komplex" mit mehreren dezentral verteilten und miteinander kommunizierenden Steuerungen varieren. Alle Features sind optional und können via integrierter Weboberfläche konfiguriert sowie auch deaktiviert werden. Im einfachsten Fall benötigt man aber nur ein Relais und ein ESP8266 oder ESP32.
Die folgenden Ventile werden unterstützt:
- klassische Ventile (Strom An -> Offen / Strom aus -> Geschlossen, zb. Gardena/Hunter 24VAC Ventile)
- Bistabile Ventile (Stromstoss- bzw. Impulsventile, zb. Gardena 9V Ventile, BilligVentile 3.6VDC, 4.5VDC, 9VDC)
Nachfolgende Funktionen bietet dieser Sketch:
- Steuerung fast beliebig viele Ventile/Relais über Kaskadierung von Controllern, nur begrenzt durch den RAM des ESP
- kontinuierliche Messung des Füllstandes einer Zisterne via Ultraschall oder analoger Messeinheit
- Anzeige des prozentualen Füllstandes über ein OLED
- Senden des Füllstandes der Zisterne per MQTT (falls aktiviert)
- Unterstützung einer automatisierten Umschaltung auf eine alternative Wasserzufuhr (zb. Trinkwasser) bei leerer Zisterne (Schwellwert einstellbar)
- Einstellung einer maximalen, gleichzeitigen Bewässerung je nach maximal möglicher lokalen Fördermenge
- selbständiges Schließen der Ventile nach Erreichen der Öffnungsdauer (on-for-timer)
- Steuerung vollständig per MQTT
Advanced Features für komplexere BewässerungsstrukturenWerden komplexere Bewässerungsstrukturen benötigt bei denen Angängigkeiten von Ventilen bestehen, so können diese ebenfalls als sogenannte "Relationen" in der Weboberfläche konfiguriert werden. Als Beispiel sei eine oder mehrere verlegte Ringleitungen genannt bei dem jede Ringleitung ein HauptAbsperrVentil besitzt welche die Wasserzufuhr des gesamtes (Teil-)Ringes (de)aktiviert. An den einzelnen Bewässerungsstellen sitzen Ventile (mit eigener ESP-Steuerung) die kleinere Bereiche bewässern. Hierzu wittmet sich eine eigene WiKi Seite.
Die folgende Hardware wird unterstützt:
- bis zu 8x i2C PCF8574 Controller (also maximal 64 Ventile)
- Ansteuerung der Ventile direkt über interne GPIOs
- bis zu 4x i2C TB6612FNG Motordriver für bistabile Ventile (also maximal 8 Ventile)
- Ventile über den 1Wire DS2408 IC, mehrere DS2408 sind möglich
- Ultraschallsensor HCS-SR04 zur Füllstandsmessung
- Analoge Messeinheit zur Füllstandsmessung, optional mit ADS1115 ADC
- i2C OLED Display SSD1306
Eine Vollständige Beschreibung incl Code gibt es hier:
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki
Update:
da es immer wieder Rückfragen per PN gibt: Im Wiki ist jetzt auch die Dokumentation zum OneWire drin.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Anschluss-von-OneWire-DS2408-Switches
Weiterhin musste ich für die Analoge Messung einen ADS1115 ADC hinzufügen da der ESP onboard ADC seehr(!) ungenau ist. Auch dieses ist nun im Wiki drin.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Konfiguration-eines-Sensors
Info: das PreRelease 2.5.2 ist raus. Falls keine Fehlermeldungen eintrudeln gehts Anfang Mai ins ProduktionsRelease.
Im Wiki ist die Beschreibung des automatisierten Updates komplett überarbeitet.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Update-Automatisierung
Hallo Tobias!
Bin beim Suchen auf deine Bewässerungssteuerung gestoßen - super wie das umsetzt :-)
Ich wollte nun deinen sketch hochladen - leider wird mit der Fehlermeldung
"'pcf8574Device' has not been declared"
abgebrochen :-(
Hast du vielleicht eine Idee woran das liegen könnte?
LG aus Wien
Helmut
Hi
Die Definition dessen ist in der pumpcontrol.h
Vielleicht liegt es an der Arduino Version?
Ich nutze die 1.6.13
Gesendet von iPhone mit Tapatalk
Hat es funktioniert? Läuft es jetzt?
Gesendet von iPhone mit Tapatalk
Hallo Tobias,
Sieht gut aus deine Bewässerungssteuerung.
Könntest du mal noch eine geneuere Aufstellung der Komponenten(Sprich Pumpe, Ventile incl. verkabelung etc ), die du verbaut hast machen?
Würde mich interessieren.
Gruß
Carlos
Hi,
für alle die eine Steuerung für eine Gartenbewässerung suchen möchte ich auf die neue Version meines Sketches (branch: dev) hinweisen. Die aktuell dev-Version sollte eigentlich fast alle Anforderungen abdecken. Es werden bis zu 85 Ventile unterstützt, normale als auch bistabile.
Ein Blick ins dazugehörige Wiki lohnt sich: https://github.com/tobiasfaust/ESP8266_PumpControl/wiki
Es gibt sowohl ein MinimalBeispiel als auch ein komplexeres ;) , alles mit vielen Bildern
Hi,
Seit gestern ist das Final Release fertig, inclusive flashbarem Binary. Aus meiner Sicht funktioniert alles.
Es wäre super wenn sich einige Tester finden könnten.
Aus Ausblick kommt später noch eine Ansteuerung von Ventilen die an einem oder mehreren 1Wire DS2408 hängen.
Gesendet von iPhone mit Tapatalk
Hi hab das Ganze auf einen esp geladen und auf ein esp Motorschield besorgt weiß jemand wie ich nun am besten ein gardena 9v Ventil anschließen kann ?
Im Wiki von meinem Git Repo ist ein eigener Artikel für den Anschluss des Motorshields. Ebenso ein Artikel für den Anschluss eines Gardena Ventils.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki
Danke deine Seite im Wiki hab ich schon gefunden. Was mir halt noch fehlt ist ob ich für die 9 V Gardena Ventile dein Programm verwenden kann da ich im Webinterface ja Zeiten einstellen muss. Die Quelle die du auch für Gardena 9V Ventile verlinkst geht ja wieder einen anderen Weg.
Also mein Verständnis ist bisher das ich die Ausgänge D1 und D3 für Ventil 1 belegen muss um den Motortreiber anzusteuern. Aber was stelle ich nun für Zeiten ein oder klappt das nicht da Gardena etwas speziell ist.
am Ausgang des Motortreiber benötige ich ja dann auch noch ein Widerstand und eine Diode laut Wiki ?? Also irgendwie blick ich dort noch nicht ganz durch.
Sobald ich alles am laufen habe helfe ich dir gerne den Wiki an dieser Stelle zu verfeinern.
Danke dir vorab für das tolle Projekt. Da kann ja bald der Sommer kommen
Hi, doch das geht. Gardena braucht imho 250/30ms für den Schaltvorgang. Steht das nicht in der Quelle drin?
Jedes bistabiles Ventil benötigt bestimmte Zeiten um sauber schalten zu können ;)
Edit: stimmt steht nicht in der Quelle, aber hier: :)
https://help.gardena.com/hc/de/articles/115001177234-Welche-technischen-Daten-hat-dieses-9-V-Bewässerungsventil-
Gesendet von iPhone mit Tapatalk
Also hab das ganze jetzt mal so aufgebaut und verdrahtet aber irgendwie schaltet nichts ...
Stelle mal die "ms" Zeiten auf 999 und miss bitte mal mit einem Multimeter die Ausgänge am Motorshield.
Wenn du dort den Schaltevorgang nachmessen kannst, ist softwareseitig alles i.o. Das habe ich natürlich auch schon selbst geprüft ;)
Mit einem GardenaVentil habe ich es selbst aber noch nicht getestet
Also dort wird was angesteuert, allerdings mit einem Multimeter schwer zu sagen was ;-).
Muss ich dann zwei Ports hinzufügen ? Einen zum Öffnen und einen zum schließen.
Öffnungsimpuls: positiv, 9 V, + 300 mA, 250 ms.
Schließimpuls: negativ, 9 V, - 50 mA, 62,5 ms.
Heißt ich muss wie im Bild es einstellen. 62,5 kann ich ja nicht einstellen sondern nur 62 oder 63 ms.
Der erste Eintrag sieht korrekt aus, nur statt 30 eben 63.
Den 2ten brauchst du nicht.
Du misst mit dem Multimeter beim öffnen einen Impuls von +/- und beim schließen einen Impuls von -/+
Denk aber dran das Ventil auch richtig herum anzuschließen. Auch da hilft ein Multimeter.
Gesendet von iPhone mit Tapatalk
also habe den zweiten eintrag dann wieder gelöscht. Laut Multimeter kommt kurz ca. -4 volt raus. danach wieder -7,81. Egal ob ich ein oder ausschalte. Irgendwas ist dort wohl noch faul... Wenn ich den Anschluss drehe hab ich die gleichen Werte halt nur mit mit positiven Spannungen.
Noch Tips wie ich jetzt weiter vorgehen kann...
ich schau mir das am Mittwoch mit meinem bistabilen TestVentil mal an. Vorher komme ich nicht dazu.
Zur Info: verantwortlich hier ist der Code Zeile 150-157 in der ValveHardware.cpp (https://github.com/tobiasfaust/ESP8266_PumpControl/blob/master/valveHardware.cpp)
} else if (dev->HWType == GPIO) {
digitalWrite(PortMap1.internalPort, state);
if (Port2) {
analogWrite(PortMap2.internalPort, 255);
delay(duration);
analogWrite(PortMap2.internalPort, 0);
}
}
Port 1 definiert die Polungsrichtung, also +/- oder -/+
Mit Port2 wird der Impuls gesetzt (Strom an/aus geschaltet)
Wo stelle ich die Ports eigentlich ein. Hab ich dort was übersehen ??
Zitat von: maddin2020 am 17 Februar 2020, 19:47:21
Wo stelle ich die Ports eigentlich ein. Hab ich dort was übersehen ??
Hast du doch gemacht, mit D1/D3
aktualisiere mal bitte den Sketch, ich habe ein Miniupdate im Git gemacht.
Dann stelle mal bitte die Konfig wie folgt ein. Damit schaltet bei mir das BilligVentil wieder munter hin und her
Für Gardene musst du aber die anderen Zeiten einstellen
Funktioniert es jetzt?
Gesendet von iPhone mit Tapatalk
Es schaltet aber irgendwie ein und direkt wieder aus 😞 Irgendwelche Tips ?
sorry, keine ahnung. Liegt an der Verschaltung oder an der Spannung/Strom
versuch mal etwas mehr als 9V anzulegen, ev. 12V.
Mein 3.6V Ventil hat bei 3.3V auch nicht geschaltet, erst als ich knapp 5V angelegt hatte (ESP und MotorDriver aus derselben Stromquelle)
Hallo Tobias
erstmal danke für den Projekt, bin dabei das für mein Pflanzengieß Projekt zu laufen zu bekommen.
Funktionier auch soweit ganz gut, der HCS-RS04 ist für den Füllstand meines Wasserkanister zuständig.
Das Ventil ist dann mit dem Befehl on-for-timer für die Bewässerung zuständig.
Jetzt zu meiner Frage:
Ich würde noch einen Kapazitiven Feuchtigkeitssensor mit analogen Ausgang anschließen Z.B
https://www.az-delivery.de/products/bodenfeuchte-sensor-modul-v1-2?variant=12461193855072&gclid=EAIaIQobChMIvKmcxNj05wIViqQYCh1VHwSWEAQYASABEgIqpPD_BwE (https://www.az-delivery.de/products/bodenfeuchte-sensor-modul-v1-2?variant=12461193855072&gclid=EAIaIQobChMIvKmcxNj05wIViqQYCh1VHwSWEAQYASABEgIqpPD_BwE)
um erst bei einer bestimmten Feuchtigkeit meine Pflanze zu gießen.
Gibt es eine Möglichkeit diesen Sensor ähnlich von den Parameter her wie den HCS-RS04 "min wert, max Wert Prozent" mit Ausgabe über MQTT in denem
Programm einfügen.
Gruß Mike
Hi
Ich habe auch Bidenfeuchtesensoren im Einsatz, aber die Xiaomi Bluetooth Sensoren.
Jede Art von Sensoren musst du aber klassisch an Fhem anbinden und die Ventile dann mittels DOIF und MQTT Devices steuern
Bei Bedarf kann ich Beispiele in mein Wiki aufnehmen
Gesendet von iPhone mit Tapatalk
Hi Maddin2020,
funktioniert es jetzt? Poste mal bitte ein paar Erkenntnisse vom Gardena Modul. Ich selbst habe es nämlich nicht
Ich habe jetzt die Doku/Wiki um die TabletUI Integration ergänzt. Es hatten schon einige danach gefragt....
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Integration-FHEM
und hier der fertige aufbau mit einem kleinen 3.6V Impulsventil. In Zusammenhang mit einem Xiaomi Bodenfeuchtesensor wird damit ein Blumentopf (Tropfventil) auf der Südseite bewässert. Damit spare ich bei sonnigem Wetter 2 mal pro Tag gießen
Das günstigste Angebot für den Bluetooth Xiaomi Mi Plant Sensor habe ich hier gepostet: https://forum.fhem.de/index.php/topic,109571.0.html
Im Wiki ist es hier zu finden: https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Beispiel-mit-einem-Impulsventil
Hallo Tobias,
ich habe den Sketch nun erfolgreich auf einen Node MCU mit ESP8266 geflasht.
Soweit läuft das Teil erst einmal im Demo Betrieb, danke für die Investierte Zeit und dass du den Code zur Verfügung stellst.
Momentan warte ich noch auf meinen PCF8574 damit ich mein Relais Bord anschließen kann.
Soweit ich gesehen habe sind per MQTT nur on-for-timer vorgesehen, ein reines ein oder ausschalten ohne Zeit Begrenzung scheint nicht vorgesehen zu sein oder übersehe ich etwas?
Einen laufenden on-for-timer kann man wohl mit dem Wert 0 abbrechen.
Für mich wären on / off Befehle nützlich, da ich gerne an die freien Relais die Gartenbeleuchtung mit 12V und den Brunnen anschließen würde.
Ich vermute die Steuerung mit dem timer wurde aus Sicherheitsgründen gewählt damit niemand vergisst die Ventile zu schließen.
Eventuell könnte man für bestimmte Relais in der Konfiguration "ausnahmen" aktivieren, um eben auch andere Verbraucher dauerhaft an und aus schalten zu können...
Grüße
Dominik
Hi,
Das ist korrekt. Ich hatte bisher noch keinen Grund ein ON einzubauen aus Sicherheitsgründen. Ein OFF gibt es imho aber schon.
Da ich an einem abgesetzten Ventil im Vorgarten an einem freien Port ebenfalls eine LED Beleuchtung steuern will werde ich auf dasselbe Problem stoßen ;)
Ein ON einzubauen ist relativ einfach, hoffe das ich nächste Woche dazu komme :)
EDIT: hab es mal ungetestet eingebaut uns ins GIT eingecheckt. Bitte teste mal und gib Rückinfo :)
an schalten: <devicename>/set/state 1
aus schalten: <devicename>/set/state 0
Hi,
danke für die Änderung.
Auf Anhieb hat es bei mir mit dem Befehl:
PumpControl/Valve1/set/state 1 oder 0 nicht funktioniert.
Ich habe in der valveStructure.cpp dann das command von "/set/state" auf "state-on-off" abgeändert und neu kompiliert.
Der Befehl lautet dann:
PumpControl/Valve1/state-on-off 1 oder 0
damit scheint es nun zu funktionieren.
Ich lass das Relais 1 mal über Nacht auf on und dann morgen mal schauen...
Grüße und Danke
Hallo Tobias,
ich versuche gerade meine Gartenbewässerung ans laufen zu bekommen zu ende zu planen und Steuerungstechnisch umzusetzen.
Da kommt mir Dein PumpControl schon recht gelegen. Was mich aber stört ist das der WemosD1 über WLan kommuniziert. Ich würde drahtgebundene kommunikation bevorzugen.
Ich habe hier einen simplen Druckschalter welcher die Pumpe schaltet wenn der Wasserdruck im 50 liter behälter unter 2Bar fällt.
Ich habe noch einen ESP32-EVB rumliegen, den könnte ich via POE mit Spannung versorgen. Im letzten Jahr kaufte ich bereits 8 "billig" Ventile von Royal Gardineer - welche ja auch als ImpulsVentil auf deinen Bildern als Beispiel dienen. Ich würde also zusätzlich noch diese I2C Controller benötigen. Wie war denn das mit diesen Ventilen, die schalten doch durch polumgekehrte Impulse, oder?
Ich frage mich jetzt nur ob das Projekt PumpControl auch in einer solchen Konstellation funktionieren würde, oder ich bei Null anfangen muss...
Was hast Du für einen meinung dazu..?
Hi,
ich denke den Sketch auf den ESP32 zu erweitern ist mit den richtigen ESP32 Libraries (zb. SimpleWebserver Beispiel) relativ einfach möglich. Da würde ich mich schlussendlich über einen PullRequest freuen :)
Warum aber bist du bzgl WLAN skeptisch? Sicherheit? Da sollte doch ein sehr gute kryptischer WLAN Schlüssel reichen. Ebenfalls kann/sollte man das IOT Netzwerk vom Home Netzwerk trennen.
Bzgl Sicherheit zum Abschalten (zb. das der OFF befehl nicht ankommt und der Garten zum Freibad wird) gibt es das problem nicht da alles mit on-for-timer geschaltet wird. :)
Und ja, deine Ventile schalten wie meine mit Polumkehr. Deswegen braucht man auch immer eine H-Bridge (MotorDriver). Siehe Wiki, da habe ich 2 Varianten für, eine davpon via I2C, da kann man maximal 8 Ventile pro ESP schalten
Das mit dem Wlan ist ein bisschen meiner Philosophie geschuldet...
Ich möchte am liebsten nur Mobile geräte im Wlan haben.
Mein Hauptventil möchte ich auch weiterhin direkt aus meiner Wago SPS schalten, noch dazu ist es Stromlos geschlossen - sodass der Garten hoffentlich nie zur Badewanne wird.
Ich überlege mal wie ich das nun umsetze, zur Zeit habe ich noch keine erfahrung und auch keinen bedarf an MQTT, meine bereits verbauten ESPs kommunizieren via UDP mit FHEM.
Die Standard H-Bridge die Du im Wiki beschreibst sollte aber doch auch am ESP32 arbeiten, oder? Ich würde dann zumindest schonmal die passende Hardware "besorgen" direkt für maximale ausbaustufe mit 8 Ventilen.
Zitat von: der-Lolo am 19 April 2020, 12:11:21
Die Standard H-Bridge die Du im Wiki beschreibst sollte aber doch auch am ESP32 arbeiten, oder? Ich würde dann zumindest schonmal die passende Hardware "besorgen" direkt für maximale ausbaustufe mit 8 Ventilen.
Ja, alle Hardware die ich im Wiki beschreibe, funktionieren an allen Arduino´s bzw ESP´s
Meine Hauptventile sind auch stromlos geschlossen ;) (Hunter 24VAC an meiner PumpControl HauptInstallation mit PCF 8-Port Erweiterung
So gerade noch einmal nachgesehen, das Relais 1 ist noch immer angeschaltet.
Alles so wie es sein soll mit dem abgewandelten Befehl "PumpControl/Valve1/state-on-off 1"
Falls jemand bedarf hat:
Ich hätte noch zwei von den Royal Gardineer Ventilen hier liegen, die ich nicht benötige.
Grüße
Ich habe letztes Jahr 8 Stück gekauft - 6 werde ich brauchen...
Habe also noch zwei auf Reserve. Danke fürs Angebot.
Problem sind aber aktuell die TB6612FNG um die Ventile zu steuern... Die sind nicht verfügbar und haben Liefertermine mitte Juni.
Falls noch jemand eine Quelle für diese Teile hat - immer her damit. Sonst wird mein Projekt wohl erstmal auf Eis landen.
dieser shop hier hat 11-12Tage Lieferzeit.....
https://eckstein-shop.de/SparkFun-Motor-Driver-Dual-TB6612FNG-1A
Ansonsten nimm doch erstmal das ESP8266 Motordriver Aufsteckboard. Damit gehen zumindest erstmal 2 Ventile.
Hallo Tobias
Super Sache dein Projekt. Werde das demnächst auch nutzen.
Ist es möglich, den Wert eines analogen Feuchte Sensors über MQTT an FHEM zu schicken? Oder gibt das die Firmware schon her? Es müsste ja theoretisch leicht sein, unter dem Punkt Sensor-Config, einen 5. Punkt einzufügen.
Hi,
Egal welcher Sensor, der umgerechnete Prozent Wert des Füllgrades als auch der Rohwert werden per MQTT bereitgestellt.
Steht auch so im Wiki ( hoffe ich ) ;)
PS: heute sind endlich meine neuen 5€ Billig China Impulsventile angekommen, damit kann ich jetzt endlich meine Vorgarten Blumentöpfe einzeln bewässern :)
Gesendet von iPhone mit Tapatalk
Wie lange waren die unterwegs..?
3 Wochen
Gesendet von iPhone mit Tapatalk
Zitat von: Tobias am 25 April 2020, 11:13:07
Hi,
Egal welcher Sensor, der umgerechnete Prozent Wert des Füllgrades als auch der Rohwert werden per MQTT bereitgestellt.
Steht auch so im Wiki ( hoffe ich ) ;)
Also wird der Sensorwert trotzdem übertragen, obwohl ich disabled auswähle?
ZitatPS: heute sind endlich meine neuen 5€ Billig China Impulsventile angekommen, damit kann ich jetzt endlich meine Vorgarten Blumentöpfe einzeln bewässern :)
Hast du dazu nen link?
Wenn der Sensor auf disabled steht, dann natürlich nicht.
Aber wenn du kein Bypass Ventil definierst dann hat der Sensor keinen Aktor und macht quasi nichts außer zu messen.
Ein Link zu den Ventilen findest du im Wiki beim Beispielaufbau und/oder im Abschnitt der Impulsventile
Gesendet von iPhone mit Tapatalk
Zitat von: der-Lolo am 19 April 2020, 16:18:39
Problem sind aber aktuell die TB6612FNG um die Ventile zu steuern... Die sind nicht verfügbar und haben Liefertermine mitte Juni.
Falls noch jemand eine Quelle für diese Teile hat - immer her damit. Sonst wird mein Projekt wohl erstmal auf Eis landen.
Hi, hier habe ich gerade einen geordert weil mir noch einer fehlte:
https://www.ebay.de/itm/172384463627
Gesendet von iPhone mit Tapatalk
Ich hab die jetzt beim Eckstein Shop bestellt.
Ich hatte auf dem Plan stehen noch solche
https://www.amazon.de/gp/product/B01L4QQ56Q/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1 (https://www.amazon.de/gp/product/B01L4QQ56Q/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1)
hinter die Ventile zu bauen um die Schaltung der Ventile zu kontrollieren. Ich habe zwar noch keinen plan wie ich sie einbinde, finde den plan aber charmant.
Hi,
ich habe grade gesehen das mein Link zum Eckstein Shop auf den falschen Motortreiber verweist. Es MUSS die i2C Variante sein, zb. der passende zum Wemos D1 Mini, siehe mein Link von heute morgen.
Im Wiki ist auch der richtige verlinkt.
Sorry
och mäno...
30€ verbrennen hätte sicher mehr Spaß gemacht ;)
Sorry, ich habe auch erst heute morgen gesehen das es beide Varianten gibt :(
Habe gleich auf meiner wiki Seite explizit drauf hingewiesen.
Edit: bei dem link heute morgen kostet das Stück etwas über 8€ wenn man nicht 4 Wochen auf Chinaware (3-4€) warten kann
Gesendet von iPhone mit Tapatalk
Ich krieg es auf Teufel komm raus nicht kompiliert.
In file included from sketch\valveStructure.h:14:0,
from sketch\valveStructure.cpp:1:
sketch\valveStructure.cpp: In member function 'void valveStructure::LoadJsonConfig()':
BaseConfig.h:12: error: expected ')' before ';' token
#define min(x,y) _min(x,y);
^
sketch\valveStructure.cpp:188:69: note: in expansion of macro 'min'
if (json.containsKey(buffer)) { myValve.port1ms = max(10, min(json[buffer].as<int>(), 999));}
^
valveStructure.cpp:188: error: expected primary-expression before ')' token
if (json.containsKey(buffer)) { myValve.port1ms = max(10, min(json[buffer].as<int>(), 999));}
^
valveStructure.cpp:188: error: expected ';' before ')' token
In file included from sketch\valveStructure.h:14:0,
from sketch\valveStructure.cpp:1:
BaseConfig.h:12: error: expected ')' before ';' token
#define min(x,y) _min(x,y);
^
sketch\valveStructure.cpp:191:69: note: in expansion of macro 'min'
if (json.containsKey(buffer)) { myValve.port2ms = max(10, min(json[buffer].as<int>(), 999));}
^
valveStructure.cpp:191: error: expected primary-expression before ')' token
if (json.containsKey(buffer)) { myValve.port2ms = max(10, min(json[buffer].as<int>(), 999));}
^
valveStructure.cpp:191: error: expected ';' before ')' token
exit status 1
expected ')' before ';' token
IDE ist: Arduino 1.6.13
Libs sind so wie im Wiki installiert.
Hi,
hier ein paar Bilder zum Nachbau einer Steuerung mit 2 Billigventilen. Die Kosten für die reine Steuerung dafür betragen 16.50€
* 130x100mm Aufputzverteilerdose: 1.50€
* ESP8266 + Motodriver Board: 5€
* 2 Impulsventile 1/2" 3.6V: 2x5€
Die Anschlussstutzen der Ventile an einen Gardena Verlegeschlauch findet ihr bei www.pvc-welt.de, siehe letzten Bild
Zitat von: tiwo85 am 27 April 2020, 14:04:34
Ich krieg es auf Teufel komm raus nicht kompiliert.
IDE ist: Arduino 1.6.13
Libs sind so wie im Wiki installiert.
leider keine Ahnung, du hast auch als Board den ESP8266 ausgewählt?
Ansonsten bitte einfach das Binary aus dem aktuellen Release nutzen und auf den ESP flashen
hab ich jetzt gemacht.
Wie kann ich nun die maximale Anzahl an Threads einstellen? In der V1 war dies ja unter Automatik-Konfiguration möglich.
Kleiner Featurerequest: Anzeige der Versionsnummer unter Status
Hallo,
sehr schön, was Ihr da macht.
@Tobias: Wie bzw. mit was misst Du die Feuchte und den Nährstoffgehalt ?
Jens
oh, die Begrenzung der Threads habe ich wohl unterschlagen :( Muss ich demnächst wieder einbauen.
Aber bei jedem Schaltvorgang wird die aktuelle Anzahl per MQTT rausgepusht.
@Jewe, Ich benutze ausschließlich Xiaomi Bluetooth Bodenfeuchte Sensoren. Die senden auch noch Batteriestatus, Temperatur und Lichtintensität. Eine Batterie hält gut ein Jahr (CR2032)
Kannst du mir vielleicht noch mitteilen, welche Versionen du von der IDE und den Librarys benutzt?
Wie ist denn die Sendeleistung dieser Sensoren? Anders gefragt - wie weit sind die Sensoren vom Dongle entfernt..?
Ich habe mal die Wiki Seite der FTUI Integration überarbeitet da ich das DOIF und die Einstellungen massiv erweitert hatte
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Integration-FHEM
@der-LoLo: Mit den Xiaomi BLE Sensoren in Verbindung mit einem Raspi Zero W hat man einen echten Aktionsradius von 10m
@tiwo85: ich nutze auch die 1.6.13, ich habe mal ein library package in das aktuelle Release geladen. Da solltest du alles finden.
https://github.com/tobiasfaust/ESP8266_PumpControl/releases
Zitat von: tiwo85 am 27 April 2020, 15:23:50
Kleiner Featurerequest: Anzeige der Versionsnummer unter Status
Hab ich mal eingebaut und eingecheckt damit ich es nicht vergesse....
Weiterhin ist jetzt der Befehl
setstate eingebaut
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Steuerung-via-MQTT
Vielen Dank Tobias. Lag bei mir an den Libraries. Jetzt funktioniert das Compilen auch mit Vscode.
Gesendet von meinem ONEPLUS A6013 mit Tapatalk
Hallo Tobias,
die Motor-Shields sind da, ich möchte ja meinen ESP32EVB von Olimex nutzen. Es geht nun um die Anschlüsse, im GitHub Wiki kann ich nichts dazu finden, hast Du irgendwo eine Doku zum thema?
Hi,
Das TB6612 shield musst du erst mit einer anderen Firmware flashen, siehe zb. Anleitung von espeasy. Danach muss hinten die lötbrücke vom STBY zum i2c geschlossen werden.
Danach funktioniert das shield zumindest mit dem Test Sketch.
Damit es mit meinem pumpcontrol funktioniert muss ich noch einen fix ins github bringen. Da bin ich gerade dran.
Gesendet von iPhone mit Tapatalk
So, der Fix ist nun im Github. Jetzt funktioniert es auch perfekt mit dem TB6612 Wemos MotorShield. Bitte beachtet, das ich die MotorLibrary wechseln musste. Das Wiki habe ich in der Library Aufstellung aktualisiert.
Für das Wemos TB6612 habe ich nun eine eigene Beispiel Wiki Seite erstellt:
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Beispiel-mit-einem-Impulsventil-%232
Sehr interessantes Projekt !
Vorallem da ich schon seit paar Tagen bei Gardena immer wieder schaue - aber mir die Cloud Lösung nicht gefällt ;)
Eine Frage zu den Sensoren hätte ich - habe mir nun auch die Bluetooth Sensoren von XIAOMI bestellt.
Habe gelesen du bindest die per Raspi Zero ein, der benötigt keinerlei HArdware mehr dazu oder?
Was lauft da an software drauf, damit der die Daten an einen MQTT oder so weiterschickt?
Hat eventuell mal wer getestet ob man das auch ohne Raspi mit einem Arduino ESP oder so einlesen kann?
Schau mal in den Wiki Artikel zur FHEM Einbindung. Dort sind Anleitung mit Templates verlinkt. Auf dem Raspi läuft ein schlankes FHEM drauf.
Ich habe es malk mit einem ESP32 mit OpenMqttGateway versucht, aber 1) kommen da keine Batteriedaten und 2) viel schlimmer die Reichweise ist deutlich(!!!!) weniger als beim Raspi. Preislich machts kaum einen UNterschied wenn man den Raspi günstig (12€ plus Versand) bekommt.
Ich decke meinen Garten mit 3 Raspi Zero W komplett ab.
ah das script (Config) habe ich übersehen.
Mein "Problem" mit dem Raspi ist halt immer die SD Karte, die nach einem Stromausfall und co öfters mal beleidigt ist/wird ...
Hallo Tobias,
Habe deinen deine Steuerung mal testweise auf einem Wemo mit relais shield installiert.
In FHEM benutze ich ein MQTT2 device das immer automatisch angelegt wird.
Bei jedem reboot des Wemo wird mir leider immer ein neues MQTT2 device angelegt mit einer neuen ID z.B. MQTT2_PumpControl_47365.
Ware es möglich die MQTT ClientID konfigurierbar zu machen?
Außerdem kann ich in der Ventil Config das Ventil anlegen, aber es wird beim Set on/off immer in rot unten undefined angezeigt.
Was ist da falsch?
Gruß
Carlos
Hi Carlos,
das mit dem "undefinied" beim "Set on/Off" ist nur ein Anzeige Fehler. Dort soll eine Entsprechende Fehlermeldung erscheinen wenn in der Definition ein Fehler ist und abgespeichert werden soll.
Die ClientID habe ich extra als Random gewählt damit mehrere Clients parallel laufen können und eventuelles Caching des Mosquittoservers ein Connect ncht ablehnt.
Mit dem FHEM Modul MQTT2-Server habe ich schlechte Erfahrungen gemacht, mit einem externen Mosquitto und dem normalen MQTT Modul habe ich seit mehreren Jahren keine Ausfälle.
EDIT: schreibt doch bitte FeatureRequests als Issue in mein GitHub, ich verliere sonst den Überblick:
https://github.com/tobiasfaust/ESP8266_PumpControl/issues/new/choose
EDIT2: aktuell bin ich an einem automatischen Deployment auf dem ESP dran wenn es ein neues Release gibt. Bis jetzt habe ich bei mir 7 ESP8266 mit PumpControl im Garten, da will ich nicht mehr selbst überall händisch updaten :(
Hi,
ich habe ein neues Release online.
Ab jetzt funktiuoniert der MotorDriver TB6612 sauber.
Die größere Ändeurng ist, das ab sofort ein automatisches Releaseupdate möglich ist (Basiseinstellunge n)
https://github.com/tobiasfaust/ESP8266_PumpControl/releases/tag/v2.4.1
Hallo Tobias,
wow, klasse Projekt. Habe das am WE mal aufgebaut und ein bistabiles Ventil genommen.
Klappt super.
ABER: wenn ich "on-for-timer" nutze wird der Zustand durch die sibscribed readings korrekt gesetzt.
Beim einschalten wir auch Threads auf 1 gesetzt.
Nach dem timer wird der "state" auch zurük auf 0 geführt, allerdings verbleibt Threads auf 1
Zur Config:
Ich habe den internen MQTT2 Server von FHM und das Device somit als MQTT2 Device nach Deinem Gerüst definiert.
Wenn ich das Ventil mit "setstate" ein bzw. ausschalte wird Threads jedesmal korrekt mit geführt.
Kennst Du das Verhalten, und gibt es dazu Tipps?
Danke,
mit bestem Gruß,
Olaf
Danke für die Info, stimmt, hier ist noch ein kleiner Bug.
Dieser hat aber gott-sei-dank keine Auswirkung auf die Funktionalität. Ich kümmer mich drum :)
Mir sind 2 Fehler aufgefallen.
1.: Bei direkter Zuweisung der Ventile mit einem GPIO ist das Ergebnis invertiert. Es müsste die Möglichkeit geben, den Ausgang zu invertieren.
2.: Das Oled-Display scheint zu streiken. Mit den Examples der OLED-Library funktioniert es. Ich kann mir vorstellen, das eine der anderen I2C-Libs dazwischen funkt. Das Problem kann ich bis zur 2.0 verfolgen.
Ich habe das beides bei Github mal als Issue erstellt.
Hi,
wie ich schon in den Issues geschrieben hatte, ich brauche die Scrrenshots deiner Einstellungen. Das OLED funktioniert definitiv, habe ich jetzt eben getestet. Bzgl der Invertierung muss ich noch testen.
Ohne deine Einstellungen ist aber alles nur Glaskugelsehen
Ich will für mich einen Schwung der I2C Motortreiber TB6612 für mich bestellen. Die müssen ja auch noch mit einer neuen Firmware geflashed werden.
Hat jemand auch noch Interest? Die kann ich für 5€ das Stück fertig mit PinHeader gelötet und geflashed anbieten.
Zitat von: Tobias am 14 Mai 2020, 07:57:14
Hi,
wie ich schon in den Issues geschrieben hatte, ich brauche die Scrrenshots deiner Einstellungen. Das OLED funktioniert definitiv, habe ich jetzt eben getestet. Bzgl der Invertierung muss ich noch testen.
Ohne deine Einstellungen ist aber alles nur Glaskugelsehen
Das habe ich gestern abend glatt übersehen. Ich habe das nun an den Issue angehangen. Das Merkwürdige ist halt, das das Display mit ESPEasy auf Anhieb funktioniert.
Im ersten Screenshot sieht man das das Display nicht im i2c Bus gefunden wird.
Bitte Check in den Basis Einstellungen die eingestellten i2c Pins
Gesendet von iPhone mit Tapatalk
Zitat von: Tobias am 14 Mai 2020, 19:05:09
Im ersten Screenshot sieht man das das Display nicht im i2c Bus gefunden wird.
Bitte Check in den Basis Einstellungen die eingestellten i2c Pins
Wenn man den Wald vor lauter Bäumen nicht sieht.
:-X
PIN 1 und 2 vertauscht
Danke nochmal. Hast du schon eine Lösung für die Threads? Ich habe nämlich letzte Woche mit der Queue Library rumgespielt und würde da mal was versuchen und dir anschließend zukommen lassen.
Dann kannst du den Issue ja wieder schließen.
Zu den Threads bin ich noch nicht gekommen.
Ich ärgere mich gerade mit den Github Actions herum. Bekomm da ein Build&Deploy nicht hin :(
Gesendet von iPhone mit Tapatalk
Guck mal hier :
https://github.com/arduino-libraries/ArduinoMqttClient/blob/master/.github/workflows/compile-examples.yml (https://github.com/arduino-libraries/ArduinoMqttClient/blob/master/.github/workflows/compile-examples.yml)
Vielleicht hilft dir das weiter.
@Tobias, ich würde wohl 2x TB6612 nehmen, ist aber nicht zeitkritisch ;) Meld Dich einfach kurz per PM, wegen den Details, wenn es soweit ist :)
Ich warte noch auf die Ventile usw dann werde ich Deine Steuerung auch endlich einsetzen können :)
Ronny
Hallo Tobias,
ich würde auch 2 TBs nehmen ;)
Ich habe bereits einen laufen und nun auch mit 2 bi-stabilen Ventilen in einer kleinen Verteiler-Dose.
Aber meine Studies wollen auch Bewässerungsprojekte machen, also wären 2 TBs schon gut.
Ist aber auch nicht super zeitkritisch. Sag per PM Bescheid, wie wir es managen wollen.
Danke & Gruß,
Olaf
Ich habe jetzt mal 20 Stück bestellt.
Für nur 2 bistabile Ventile ist die Nutzung der Standard MotorDriver Groundplane eventuell einfacher handhabar. Da muss man nur zusammenstecken und es läuft. Den TB6612 benötigt man erst, wenn man am ESP mehr als 2 bistabile VEntile betreiben will.
Zitat von: tiwo85 am 14 Mai 2020, 19:53:59
Guck mal hier :
https://github.com/arduino-libraries/ArduinoMqttClient/blob/master/.github/workflows/compile-examples.yml (https://github.com/arduino-libraries/ArduinoMqttClient/blob/master/.github/workflows/compile-examples.yml)
Vielleicht hilft dir das weiter.
Super danke, ich habe jetzt einen komplett automatisierten CI/CD Prozess hinbekommen.
Ein Push im GitHub löst im GitHub Actions einen neuen Build aus, Es wird dann ein neues json file generiert und anschliessend zusammen mit dem Binary in mein AWS S3 geladen. Dort löst die Upload Aktion eine AWS Lamda Funktion aus, die das "grosse" releases.json file generiert welches bei mir dann im Sketch referenziert wird :)
Bei einer
eingestellten Automatik im Sketch wird dann automatisch das neue Release auf den ESP8266 deploed und neu gestartet :) Voila :)
https://tfa-releases.s3.eu-central-1.amazonaws.com/ESP8266_PumpControl/releases.json
PS: Man merkt das ich selbst davon begeistert bin :)
Hi,
die version 2.4.2 ist als PreLive vorhanden.
Bugs mit dem TB6612 sind gefixt und der AutomatikUpdateModus funktioniert jetzt fehlerfrei.
Download hier:
https://tfa-releases.s3.eu-central-1.amazonaws.com/ESP8266_PumpControl/ESP8266_PumpControl.esp8266.esp8266.d1_mini.v2.4.2-32.PRE.bin
Oder im "prelive" Branch zum selbst kompilieren zu finden.
Für alle Interessierten, ich habe den Release prozess mitllerweile vollautomatisiert sodass jetzt sogar auch im GitHub für eine Prelive oder Produktiv VErsion ein Github Release mit Binaries, SourceCode und Library package angelegt wird.
Wer das für sein GitHub nachbauen will habe ich alles hier dokumentiert:
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Technik%3A-CI-CD
Anmerkungen sind hier gerne willkommen!
Die Versionsnummer in der Firmware hat sich nicht geändert.
Gesendet von meinem ONEPLUS A6013 mit Tapatalk
doch, muss. Ist jetzt 2.4.3
Wurde bei mir automatisch installiert und wird auch im manuellen Modus in der Liste angeboten
Ich habe das 2.4.3 von Github und das sieht so aus.
Gesendet von meinem ONEPLUS A6013 mit Tapatalk
Jupp, klar.
Du musst das Update über den ESP selbst machen. Oder vorher einen kompletreset.
Der ESP merkt sich, welche VErsion installiert ist. Fehlt diese Info, dann nimmt er die Info aus dem _Release.h (Das ist bei einer Erstinstallation oder nach einem Komplettreset)
Bügelst du ein Release manuell drüber, weiss er davon nix und nimmt weiterhin die Info aus seiner abgespeicherten Info.
Lösung ist das Update über den ESP selbst machen und nicht manuell ;)
Ahhhh.....
Jetzt läuft es nach einem Reset.
Tobias, kannst Du mir mal erklären was Du hier bzgl. update Prozess machst?
Ich werde einen ESP32-EVB mit POE zur Bewässerungssteuerung einsetzen, ich habe ein bisschen basteln müssen bis ich die Lösung des Updates via Lan am laufen hatte. Auf meinen ESPs läuft ein kleiner Webserver über den ich die erzeugte firmware.bin als Datei hochlade. Der ESP macht den rest dann selbst.
Diese methode muss ich zwingend beibehalten. Ich hoffe das ist möglich.
das was du beschreibst geht bei mir auch.
Vielmehr geht es aber bei meinem UPdateprozess darum, das ALLES Vollautomatisch geupdated wird sobald ich im Git ein Push absetze.
Lies dir mal bitte die Wiki seite dazu durch, da habe ich alles erklärt :)
Zitat von: carlos am 04 Mai 2020, 16:25:38
Hallo Tobias,
Habe deinen deine Steuerung mal testweise auf einem Wemo mit relais shield installiert.
In FHEM benutze ich ein MQTT2 device das immer automatisch angelegt wird.
Bei jedem reboot des Wemo wird mir leider immer ein neues MQTT2 device angelegt mit einer neuen ID z.B. MQTT2_PumpControl_47365.
Ware es möglich die MQTT ClientID konfigurierbar zu machen?
Gruß
Carlos
ist jetzt eingebaut, bitte installiere mal die Version v2.4.4-41.DEV und teste. Bitte mit Rückinfo :)
Gibt es nicht als Release, wird nur auf dem ESP -> Basis-Config Seite -> Manuelles Update angezeigt
Falls es nicht angezeigt wird, mal auf das Reload Symbol klicken und die Basis-Config Seite neu laden
Hallo Tobias,
Installiert, getestet und für sehr gut befunden.
Interessanterweise kann man jetzt , wenn man "Füllstandsmessung mit externem Signal per MQTT" nutzt und die gleiche ClientID dafür benutzt dies alles in dem FHEM MQTT2 device vereinen.
Siehe:
Internals:
CFGFN
CID PumpControl_001640EF
DEF PumpControl_001640EF
DEVICETOPIC MQTT2_PumpControl_001640EF
FUUID 5eda4743-f33f-1bd0-2ab0-82bd7cf37ae52be9
IODev m2s
LASTInputDev m2s
MSGCNT 5
NAME MQTT2_PumpControl_001640EF
NR 52208
STATE 0
TYPE MQTT2_DEVICE
m2s_MSGCNT 5
m2s_TIME 2020-06-05 15:25:48
.attraggr:
.attrminint:
READINGS:
2020-06-05 15:23:15 IP 192.168.178.59
2020-06-05 15:25:48 Threads 0
2020-06-05 15:25:48 state 0
2020-06-05 15:31:59 zisterne 81,555
Attributes:
IODev m2s
alias MQTT2_PumpControl_001640EF
readingList PumpControl_001640EF:PumpControl/IP:.* IP
PumpControl_001640EF:PumpControl/Valve1/state:.* state
PumpControl_001640EF:PumpControl/Threads:.* Threads
PumpControl_001640EF:PumpControl/Valve2/state:.* state
PumpControl_001640EF:Pumpcontrol/zisterne:.* zisterne
room MQTT2_DEVICE
Wollte dir schon vorschlagen da auch die ClientID mit konfigurierbar zu machen, aber ich denke das braucht man dann nicht.
Weiter so, gefällt mir wie du das voran treibst.
Was mir gerade noch einfällt bzgl OLED gibt es kein reading.
Könnte man als Erweiterung auch noch mit einbauen.
Danke und Gruß
Carlos
super ;)
Das OLED hat kein Reading /MQTT Topic weil es nichts anderes aussagt was schon jetzt als Topic übermittelt wird ;)
Hall Tobias,
Ich bin am überlegen welche Bewässerungslösung ich einführe. Zur Disposition stehen Opensprinkler und Deine Lösung.
Was für Open Sprinkler spricht ist die App mit der offenbar komfortablen Zeitsteuerung um Bewässerungspläne zu nutzen. Was dagegen spricht ist die nicht vorhandene Schnittstelle zu vorhandenen Sensoren (Pegelmessung, Wetter,...).
Bei Deiner Lösung ist es anders herum - Schnittstelle zu vorhandenen Pegelmessern ist da // Wettereinbindung hab ich noch nicht gefunden // aber dafür gibt es keine ,,schön" Plantagen Zeitpläne - muss ja für die Gärtner*IN* auch funktionieren.
Meine Idealvorstellung ist:
- Deine offene Lösung inkl. Nutzung vorhandener Sensorik / Daten (Wetterforecast von Netatmo, Pegelmesser, Bodenfeuchte)
- Steuerung von Ventilen per MQTT (bspw. Shelly 4Pro o.ä.)
- ein einfach einzustellender Bewässerungsplan
- einer App mit WAF-Akzeptanz (bspw. Opensprinkler)
Geht Deine Roadmap in diese Richtung?
Liebe Grüsse aus Leipzig.
Erik
Hi,
schau dir mal bitte in meinem Wiki den Abschnitt der FHEM Integration an. Mittes TabletUI ist der WAF Faktor als absolut gut zu bewerten. Zumindest meine Frau kommt damit sehr gut klar.
Da die eigentliche Steuerung in FHEM über DOIFs passiert, ist auch dort eine Wettereinbindung und Zeitsteuerung nutzbar.
In meinem Beispiel wird die prognostizierte Niederschlagsmenge des Tages berücksichtigt. Es gibt pro Tag eine Zeitrange oder einen speziellen Zeitpunkt. Es gibt 2 Thresholds für die Bodenfeuchte.
Das Ganze ist beliebig im DOIF als auch im TabletUI als WAf Frontend erweiterbar.
Falls man keinen BOdenfeuchtesensor hat kann man auch den prognostizierten Sonneneinstrahlungswert oder auch den Verdunstungsgrad heranziehen (Nutzung des Proplanta Moduls)
Ansicht:
https://forum.fhem.de/index.php?action=dlattach;topic=92443.0;attach=135100;image
Einstellungen:
https://forum.fhem.de/index.php?action=dlattach;topic=92443.0;attach=135134;image
Hallo Tobias,
Zitat von: Tobias am 08 Juni 2020, 09:19:31
Ansicht:
https://forum.fhem.de/index.php?action=dlattach;topic=92443.0;attach=135100;image
wie misst Du denn den Nährstoffgehalt? Oder wird der irgendwie errechnet? Wäre mal interessant für mich zu wissen.
Danke + Gruß
Peter
Der Xiaomi Bodenfeuchtesensor misst Feuchte, Temperatur, Lichtintensität und auch den Nährstoffgehalt. Was jetzt davon wieviel errechnet ist kann ich aber nicht sagen. Alle diese Daten spuckt er so aus.
Gibt es schon updates zu den Motor-Treibern?
Vielen Dank,
mit bestem Gruß,
Olaf
Was für Updates und warum?
Gesendet von iPhone mit Tapatalk
Moin Ihr Gärtner,
ich habe mir einen Wemos mit dem Binary Dev 2.4.4 geflasht. Dieser wurde per MQTT2 device in FHEM auch brav erkannt.
defmod MQTT2__PumpControl_0016301C MQTT2_DEVICE _PumpControl_0016301C
attr MQTT2__PumpControl_0016301C IODev MQTT2_FHEM_Server
attr MQTT2__PumpControl_0016301C autocreate 1
attr MQTT2__PumpControl_0016301C readingList _PumpControl_0016301C:/PumpControl/state:.* state\
_PumpControl_0016301C:/PumpControl/IP:.* IP\
_PumpControl_0016301C:/PumpControl/version:.* version\
_PumpControl_0016301C:/PumpControl/Ventil1/state:.* state\
_PumpControl_0016301C:/PumpControl/Threads:.* Threads\
_PumpControl_0016301C:/PumpControl/Ventil2/state:.* state\
_PumpControl_0016301C:/PumpControl/Ventil3/state:.* state\
_PumpControl_0016301C:/PumpControl/Ventil4/state:.* state
attr MQTT2__PumpControl_0016301C room Garten
Die Ventile/Relais lassen sich per Hand in der Weboberfläche auch ordentlich schalten und der State wird in FHEM angezeigt.
Was ich nicht hinbekomme ist:
- Wie kann ich die Ventile per SET Befehl über MQTT schalten (SETLIST)? Die Konfiguration im Wiki beschreibt ja ein Beispiel welches nicht auf MQTT2 aufsetzt)
- In dem Zusammenhang fehlt mir auch der "on-for-timer" Befehl ;-(
- Das einlesen der Pegelwerte per MQTT erfolgt irgendwie nicht (auch nicht in der Weboberfläche). Hier ist das Tonic in der Weboberfläche folgendermaßen definiert: "/WEMOS_Zisterne/Pegel". In MQTTfx sehe ich den Pegel mit folgeödendem Topic "WEMOS_Zisterne/Pegel/". Egel welche "/" ich am Anfang oder ende weglasse - einen Pegel sehe ich nicht ;-(
Könnt Ihr meine Probleme auflösen bzw. Links schicken damit ich selbst suchen kann?
Herzlichen Dank und Grüße aus Leipzig.
//Erik
Zu MQTT2 kann ich nix sagen.
Zum Levelsensor: das Topic "WEMOS_Zisterne/Pegel/" kann es nicht sein ;) entweder fehlt hinten noch etwas oder der letzte slash ist zuviel. Exakt SO wie in MQTTFX ankommt musst du es auch im Device konfigurieren.
Probier auch mal ein Reset zwischendurch.
Im Zweifel musst du Schreenshots posten
Hallo Tobias,
das Projekt Alarmanlage ist mir dazwischen gekommen, jetzt wird es aber langsam höchste Eisenbahn mit der Bewässerung...
Ich finde es toll wie Du alles im github dokumentiert hast - aber was mir auf anhieb fehlt ist ein Schaltplan, wie verschalte ich die Wemos Motorshields mit dem ESP32EVB um die RoyalGardineer Ventile damit zu schalten..? Brauche ich noch irgendeine Fremdspannung?
Zitat von: der-Lolo am 26 Juni 2020, 19:22:59
aber was mir auf anhieb fehlt ist ein Schaltplan, wie verschalte ich die Wemos Motorshields mit dem ESP32EVB um die RoyalGardineer Ventile damit zu schalten..? Brauche ich noch irgendeine Fremdspannung?
Hi,
auf das L293D MotorDriver Board wird ein normales ESP Development Board einfach nur aufgesteckt. Hier musst entsprechend die Pins nur 1:1 zu deinem Board verdrahten.
Wenn deine Ventile deine Eingangsspannung vertragen, brauchst du keine weitere Stromquelle.
Bei den TB6612 I2C Boards musst du auch nur entsprechend den Aufdrucken verdrahten, VCC/GND/SDA/SCL
Wo du dann SDA und SCL am ESP schlussendlich anschließt, kannst du auf der Weboberfläche einstellen.
Gruss
Hallo, großes Lob, die Bewässerungssteuerung ist wirklich klasse! Ich habe leider Relais die genau andersrum angesteuert werden. Wird set on aktiviert, schaltete das Relais aus - und anders herum. Wäre eine Anpassung möglich?
Edit: Habe mir andere Relais bestellt.
Hi,
Diesen Invers-Schalter habe ich schon für das nächste Release eingeplant, ist auch nix wildes .... bin nur gerade im Sommerurlaub im Allgäu :)
Grüsse
TOP, einen schönen Resturlaub :)
Ich hätte noch nen kleines Feature-Request:
Die Restlaufzeit der Ventile alle 10,15 oder 30 Sekunden per mqtt ausgeben.
Hi,
ich habe heute Änderungen im Code eingecheckt.
Die letzten 3 Punkte sind hier aus dem Foum als FeatureRequests platziert gewesen
Ihr müsst den "development" Branch auschecken!
Oder noch besser wer schon eine aktuelle Version von Pumpcontrol einsetzt muss bei eingestellten Automatik Update mit Dev-Stage nur warten, das Update kommt von alleine. Oder bei eingestelltem manuellem Update die letzte DevVersion auswählen, siehe screenshot (Details hier (https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Technik:-CI-CD))
Release 2.4.5:
- Feature: deletion of WiFi credentials now possible
- Feature: ESP Hostname now the configured Devicename
- Bug: WIFI Mode forces to STATION-Mode, some devices has been ran in unsecured STA+AP Mode
- Bug: security issue: dont show debug output of WiFi Connection (password has been shown)
- Feature: valve reverse mode: enable if your valve act on LOW instead of ON
- Feature: AutoOff: possibility to setup a security AutoOff
- Bug: count of Threads now push out if an on-for-timer has been expired
Hallo Tobias,
ich bin gerade dabei meine bestehende Bewässerung etwas zu optimieren bzw. für das nächste Jahr vorzubereiten und finde deine Lösung interessant.
Mein Problem ist allerdings, das ich derzeit eine dezentrale Steuerung mit Bewässerungscomputer einsetze und auch keinen Strom vor Ort habe.
Meinst du deine Lösung ließe sich auch mit Akkus und idealerweise einem Solarmodul zum Laden umsetzen? Wenn ja welche Ventile würdest du dafür empfehlen? Ich nehme mal an die billigen bistabilen 3,6V Ventile wären hierfür am besten geeignet.
Gruß David
Hi,
ich habe neben einer zentralen HauptabsperrSteuerung auch einige dezentrale Steuerungen im Garten verteilt. Habe aber neben dem Gardena 13mm Wasserrohr noch ein 2x 2.5mm² Kabel gelegt und zentral 5V eingespeist. Damit werden sowohl ESP als auch die 3,6V Ventile gesteuert.
Also wenn du das SO hinbekommst wäre ideal. Mit Solar müsstest du ein entsprechend grosses Solarmodul und Batterie mit einer Ladelogik daneben stellen. Von den Kosten/Nutzen eher unterridisch und nur als NOT-Lösung bedingt einsetzbar.
Hi Tobias,
danke für die Antwort.
Kabel sind aktuell nicht vorgesehen, deswegen die Frage.
Das Solarmodul ist auch mehr ein Gimmick, bzw. war der Gedanke, dass die Akkus dadurch vielleicht länger durchhalten. Es ginge natürlich auch ohne.
Ich denke ich werde über die Wintermonate mal einen Testaufbau zuhause starten und schauen wie weit ich mit Akkus/Batterien komme.
Du hast nicht zufällig einen Link für die 3,6V Ventile mit Versand aus Deutschland/EU oder?
Die Ventile gibt es nicht in DE, und falls doch nur zu überteuerten Preisen. Du brauchst sie ja nicht dringend, die Bewässerungsperiode ist fast vorbei.
Am besten du bestellst über aliexpress, da kosten diese günstig ab 4,50€.
Hallo Tobias,
Gute neue features. Eine Frage wird das:
- Feature: AutoOff: possibility to setup a security AutoOff
auch über MQTT zu handeln sein?
Sprich publish und subscribe?
Gruß
Carlos
Hi,
aktuell nicht, das AutoOff als Sicherheitsabschaltung stellt man fest pro Ventil auf der Weboberfläche ein.
Per MQTT kann man ein on-for-timer absetzen :)
Das AutoOff greift nur, wenn nach einem "on" kein "off" innerhalb der eingestelltren Sicherheitszeit kommt. Egal ob das "on" per MQTT kommt oder auf der Weboberfläche das Ventil auf "on" gestellt wurde.
Beispielsweise kann man ja auch eine Vorgartenbeleuchtung schalten, da macht ein AutoOff keinen Sinn. Bei einer Bewässerung macht es Sinn ;)
Deswegen ist es Pro Ventil einstellbar.
Zitat von: hackepeter am 16 Juli 2020, 21:17:24
Hallo, großes Lob, die Bewässerungssteuerung ist wirklich klasse! Ich habe leider Relais die genau andersrum angesteuert werden. Wird set on aktiviert, schaltete das Relais aus - und anders herum. Wäre eine Anpassung möglich?
eingebaut in der aktuellen 2.4.5 (dev) und damit erledigt ;)
Benutzt jemand hier eigentlich noch Relais die per 1wire und einem DS2408 angesteuert werden oder bin ich hier der einzige?
Hallo Tobias,
nein, bist du nicht. Ich habe mir gerade auf Grundlage einer 16fach Relais Karte eine kleine Aufsteck Platine für die Relais Karte gefädelt auf der 2x DS2408 drauf sind. Meine aktuelle Lösung nutzt noch ein 8fach Hutschienenmodul von der Stange. Ich habe aber bereits 10 Ventile im Garten vergraben, werde die Bewässerung entsprechend auf die 16fach Lösung umstellen und das 8fach Modul anderweitig verwenden. Zur Ansteuerung verwende ich bisher noch Dein SprinkleControl aus 2014. Beobachte aber seit geraumer Zeit deine Aktivitäten bzgl. PumpControl im Forum und auf Github. Meine 1wire Ansteuerung basiert im übrigen auf Deiner LED Statusmonitor Schaltung V2.5. Nach dem Stecker 1xBAT54S, dann 2*DS2408 mit jeweils eigenen Entstörkondensatoren und der RSTZ Beschaltung. Die 16 Ausgänge der beiden DS2408 gehen jeweils über einen 1K Widerstand auf den jeweiligen Low aktiv Eingang des entsprechenden Kanals der 16fach Relais Karte. Dadurch wird der Strom soweit begrenzt das die 20mA des DS2408 reichen um alle 8 Kanäle gleichzeitig zu betreiben......
Lange Rede kurzer Sinn. Ja, es gibt noch andere die mit 1Wire ihre Bewässerung betreiben. Und nutzen sogar Lösungen von Dir. Wenn auch in meinem Fall noch nicht die neue Pump Control.
Beste Grüße,
Uwe
Hallo Tobias,
Ich habe gerade auch meine Gartenbewässerung fertig geplant, als Steuerung habe ich einen ESP32 mit Bodenfeuchtesensoren und Regenmesser ausgewählt.
Nun habe ich mal einen kleinen Prototypen mit einem für ein anderes Projekt gedachten ESP8266 und 2 Relais nur mit ESPEasy und FHEM-Anbindung mittels ESPEasy-Modul gebastelt und frage mich - bitte nicht falsch verstehen - was Deine "PumpControl" eigentlich kann, das mit den Bordmitteln von ESPEasy in Kombination mit FHEM nicht auch möglich ist/wäre?
(Gut, Du kontrollierst auch noch den Füllstand einer Zisterne, aber für das erwähnte andere Projekt habe ich einen SR-04 angeschlossen und kann per Ruleset auch in Abhängigkeit der Entfernung ein Relais ansteuern lassen, das beispielsweise die Zisterne füllen kann.)
Grobe Idee vom Ablauf:
Grundsätzlich übernimmt FHEM das Ein- und Ausschalten der Bewässerung unter Berücksichtigung der Bodenfeuchte (und/oder Niederschlagsmenge) und der Wettervorhersage. Getriggert wird wie im ESPEasy-Rules-Beispiel mittels 2 Events "startwatering/stopwatering", zusätzlich läuft in ESPEasy ein "Nottimer", der die Ventile schliesst falls FHEM das "stopwatering"-Event nicht auslöst.
Als zusätzliche ESPEasy-Rule läuft ein weiteres Sicherheitsnetz, das bei Unterschreiten einer bestimmten Bodenfeuchte das Bewässern ebenfalls startet. Auch das ist quasi der Notbetrieb, falls FHEM nicht rechtzeitig die Bewässerung einschaltet.
Ich will Dein Projekt nicht schlecht machen und frage mich deshalb, ob ich irgenwas grob übersehe???
Hi,
für konstruktive Diskussion bin ich immer zu haben.
Nein, du übersiehst im Groben erstmal nichts. Mit Boardmitteln ist mit ESPEasy viel zu machen. Gegenüber meinem Sketch aber komplizierter weil an mehreren Stellen viel eingestellt werden muss. Gerade mit dem Nottimer. Ziel ist es ja das der ESP selbst das Abschalten übernimmt und nicht FHEM (thema: FHEM Absturz, Netzwerkprobleme)
Soweit ich das sehe stößt man beim ESPEasy bei den komplexeren Themen aber schnell an die Grenzen. Thema: Relationen.
Ich schalte ein Ventil ein und automatisch öffnen andere Ventile von anderen Pumpcontrolinstanzen die richtigen Strecken damit an dem Ventil was ich aktiv geöffnet habe auch Wasser ankommt. Thema: Hauptabsperrung, Verteilung in mehreren Kreisen. Ist in meinem Wiki auch als Beispiel definiert.
Weiterhin ich überzeugt das das ESPEasy nicht mit bistabilen Ventilen umgehen kann, nur mit den normalen Ventilen. Lasse mich aber gerne eines Besseren belehren.
Ich habe auch zuerst mit einer ESPEasy Definition angefangen. Hat auch anfangs sehr gut funktioniert. Problem ist, das mit der ESP öfters nicht mehr reagiert hat. Das ESPEasy lief, aber nach einiger Zeit hat wurden einige Ventile immer mal wieder nicht geöffnet. Nach einem Reboot lief es wieder.
Diese "unzuverlässigkeit" und die "Programmierung an vielen Ecken" hat mich schlussendlich zu einer einfach zu handhabenden und integrierten Lösung gedrängt.
Zumindest die Version 2 lief dieses Jahr zuverlässig, auch mit meinen Kaskaden/Relationen sauber durch.
Anderes Thema: Ich habe mal den 1Wire DS2408 hinzugefügt. Noch Beta, aber es läuft. Noch nicht im Git, nur hier als binary.
Zuerst muss man in den Basiseinstellungen 1Wire aktivieren und den benutzten Pin angeben. Dann ein Reboot.
Danach solte ein neuer Reiter "OneWire" auftauchen bei dem alle DS2408 aufgelistet sind, incl den zu benutzenden Portnummern. (Wenn der Pin richtig ausgewählt ist an dem die SD2408 hängen.) Bitte den Bus PullUp, zb. einen 4k7, nicht vergessen.
Danach können die dort aufgelisteten Portnummern in den Porteinstellungen benutzt werden.
Achtung: bitte nur DS2408 in den Bus hängen, ich habe noch keine Prüfung auf andere 1wire Komponenten eingebaut.
Über einen Test mit Rückmeldung wäre ich wirklich sehr erfreut :)
Danke für die Rückmeldung, das lässt sich durchaus zuversichtlich in die "ESPEasy-Only"-Richtung blicken.
Zitat von: Tobias am 17 Oktober 2020, 17:36:17
Gegenüber meinem Sketch aber komplizierter weil an mehreren Stellen viel eingestellt werden muss.
Das ist wahrscheinlich richtig. Dafür weiss ich dann auch an welcher Stelle ich ändern muss, wenn ich am Verhalten was anpassen will.
Und: Dein Sketch kann bzgl. Sensorik bei weitem nicht alles, was ich mit dem Teil machen will. Daher müsste ich dort was "dazubasteln". Soweit ich bisher sehe, lässt sich aber alles mittels ESPEasy abdecken, sodass ich versuchen will dabei zu bleiben.
Zitat von: Tobias am 17 Oktober 2020, 17:36:17
Gerade mit dem Nottimer. Ziel ist es ja das der ESP selbst das Abschalten übernimmt und nicht FHEM (thema: FHEM Absturz, Netzwerkprobleme)
Da habe ich schon eine einfache Möglichkeit gefunden, wie man nur mit Bordmitteln eine Art "on-for-timer" Funktion schaffen kann, die direkt am ESP32 unter ESPEasy läuft und daher genauso sicher sein sollte. (FHEM triggert das Öffnen des Ventils und gibt gleichzeitig die nötige Laufzeit mit, ESPEasy schliesst das Ventil sobald die Laufzeit erreicht ist.)
Zitat von: Tobias am 17 Oktober 2020, 17:36:17
Soweit ich das sehe stößt man beim ESPEasy bei den komplexeren Themen aber schnell an die Grenzen. Thema: Relationen.
Den Anwendungsfall habe ich nicht, aber Du magst Recht haben.
Ich will versuchen möglichst alle Logik in FHEM zu machen (z.B. Auswertung Bodenfeuchte und Wettervorhersage), sodass der ESP32 nur ein "smarter Steller" und "smarter Sensor" ist.
Zitat von: Tobias am 17 Oktober 2020, 17:36:17
Weiterhin ich überzeugt das das ESPEasy nicht mit bistabilen Ventilen umgehen kann, nur mit den normalen Ventilen. Lasse mich aber gerne eines Besseren belehren.
Auch diesen Anwendungsfall habe ich nicht, ich habe 24V-AC-Ventile gekauft.
Zitat von: Tobias am 17 Oktober 2020, 17:36:17
Ich habe auch zuerst mit einer ESPEasy Definition angefangen. Hat auch anfangs sehr gut funktioniert. Problem ist, das mit der ESP öfters nicht mehr reagiert hat. Das ESPEasy lief, aber nach einiger Zeit hat wurden einige Ventile immer mal wieder nicht geöffnet. Nach einem Reboot lief es wieder.
Diese "unzuverlässigkeit" und die "Programmierung an vielen Ecken" hat mich schlussendlich zu einer einfach zu handhabenden und integrierten Lösung gedrängt.
Verstehe ich, damit wäre ich auch nicht zufrieden. Das Ding wär' dann für mich aber nur eine Art Kombination aus "smarter Steller" und "smarter Sensor", weshalb sich das mittels periodischem automatischen Reboot einfach lösen liesse.
Hi zusammen,
für das neue Jahr und neuer Bewässerungs-saison habe am Sketch weitergebaut. Wichtigstes Feature was mir wichtig war: 1Wire DS2408 Support sowie ESP32 Support.
Es wäre hilfreich wenn es ein paar testen könnten
Das fertige Binary gibt es hier: http://tfa-releases.s3-website.eu-central-1.amazonaws.com/ESP8266_PumpControl/ESP8266_PumpControl.ino.ESP32.v2.5.0-62.DEV.bin
Alternativ natürlich im Git -> developing Branch: https://github.com/tobiasfaust/ESP8266_PumpControl/tree/development
ChangeLog:
Release 2.5.0:
- Feature: Add OneWire DS2408 hardware support
- Feature: Add a keepalive message via MQTT, configurable at BasisConfig:
- Feature: Add configurable DebugMode at BaseConfig
- Feature: push out memory and rssi values via mqtt together with keepalive message if Debugmode >= 4
- Feature: support for ESP32, still without OTA Update and Wifi Credential deletion
Release 2.4.5:
- Feature: deletion of WiFi credentials now possible
- Feature: ESP Hostname now the configured Devicename
- Bug: WIFI Mode forces to STATION-Mode, some devices has been ran in unsecured STA+AP Mode
- Bug: security issue: dont show debug output of WiFi Connection (password has been shown)
- Feature: valve reverse mode: enable if your valve act on LOW instead of ON
- Feature: AutoOff: possibility to setup a security AutoOff
- Bug: count of Threads now push out if an on-for-timer has been expired
Hi,
die hier letztes Jahr angesprochenen TB6612FNG Controller habe ich hier. Ich bin aktuell dabei diese zusammen zu löten und mit der aktuellen Firmware zu bespielen.
Es kann 2 Versionen anbieten:
* Kaskadierbar, also übereinander aufsteckbar (7€) -> Bild 2+3
* nicht kaskadierbar, nur ein Controller kann direkt auf einen Wemos D1 Mini aufgesteckt werden (5€) -> Bild 1
Bitte melden wer wieviele haben möchte. Versand 2€.
Wer mehrere ordert haben alle Controller selbstverständlich verschiedene i2c Adressen.
Wer nicht weiß worum es geht, siehe hier:
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Anschluss-von-bistabilen-Ventilen
ps: mittlerweile ist nicht nur ein OLED Display mit SSD1306 Controller möglich sondern auch ein SH1106 Controller möglich.
Die Anpassung war von meiner Seite notwendig da ich neben dem Umstieg auf den ESP32 auch ein größeres OLED verbauen wollte und dieses dummerweise einen anderen Controller hatte :(
Hi,
da es immer wieder Rückfragen per PN gibt: Im Wiki ist jetzt auch die Dokumentation zum OneWire drin.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Anschluss-von-OneWire-DS2408-Switches
Weiterhin musste ich für die Analoge Messung einen ADS1115 ADC hinzufügen da der ESP onboard ADC seehr(!) ungenau ist. Auch dieses ist nun im Wiki drin.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Konfiguration-eines-Sensors
info: das PreRelease 2.5.2 ist raus. Falls keine Fehlermeldungen eintrudeln gehts Anfang Mai ins ProduktionsRelease.
Im Wiki ist die Beschreibung des automatisierten Updates komplett überarbeitet.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Update-Automatisierung
Da die Bewässerungssaison dieses Jahr etwas später einsetzt konnte ich noch nicht so testen wie ich wollte. Hat hier jemand den neuesten Stand schon im Einsatz?
Bitte um kurze Rückinfo. Ich möchte den Stand ungern mit zu wenig Tests in den Github Master/Produktivbranch schieben.
Weiterhin wollten letztes Jahr mehrere einen fertigen TB6612FNG Controller haben. Ich habe noch welche da.
Stelle am Wochenende auf PumpControl um. Wenn alles fertig ist, gebe ich dir gerne Rückmeldung ;)
Moin,
Ich habe meine PumpControl jetzt aus dem Winterschlaf geholt, kann aber noch keine Erfahrungsberichte liefern, weil mir der Robby immer wieder dazwischen fährt.
Hier mal ein paar Bilder eines PumpControl Hutschienenmoduls für eine DS2408 1Wire Ansteuerung. Optional kann man noch ein OLED anstecken, habe ich bei meinem aber nicht gemacht, deswegen ist auch nur der Pinheader auf der PLatine dazu zu sehen.
Hab noch 4 Platinen übrig...ggf auch schon fertig aufgebaut.
Dazu das Wiki: https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Anschluss-von-OneWire-DS2408-Switches
Zitat von: Tobias am 25 Januar 2021, 14:59:01
ChangeLog:
Release 2.5.0:
- Feature: Add OneWire DS2408 hardware support
- Feature: Add a keepalive message via MQTT, configurable at BasisConfig:
- Feature: Add configurable DebugMode at BaseConfig
- Feature: push out memory and rssi values via mqtt together with keepalive message if Debugmode >= 4
- Feature: support for ESP32, still without OTA Update and Wifi Credential deletion
Release 2.4.5:
- Feature: deletion of WiFi credentials now possible
- Feature: ESP Hostname now the configured Devicename
- Bug: WIFI Mode forces to STATION-Mode, some devices has been ran in unsecured STA+AP Mode
- Bug: security issue: dont show debug output of WiFi Connection (password has been shown)
- Feature: valve reverse mode: enable if your valve act on LOW instead of ON
- Feature: AutoOff: possibility to setup a security AutoOff
- Bug: count of Threads now push out if an on-for-timer has been expired
Hi Tobias.
Ich habe es nun geschafft die Release 2.5.2 PRE zu installieren.
Seit dem Update harkt das Schalten der Relais über die die GUI (Standard Relais direkt am I/O) und die "Reverse" Funktion der I/Os funktioniert nicht mehr.
Leider bekomme ich auch aktuell die 2.4.5 nicht mehr kompiliert, da mir angeblich die ESP8266WiFi.h fehlt.
Hi,
das die "Reverse" Funktion nicht funktioniert wie auch einen anderen kleinen Fehler bei 1Wire habe ich gerade gestern auch bemerkt. Update kommt....
Das die GUI hakelt ist ein Phänomen bei ESP32, ich habe keine Ahnung woran das liegt. Beim ESP8266 hakt es nicht. Allerings ist die normale Funktion via MQTT davon nicht betroffen. Die GUI wird ja normalerweise nur bei der Installation und Einrichtung einmalig benötigt, sonst nicht mehr. Deswegen habe ich das Phänomen noch nicht weiter verfolgt.
Normalerweise musst du nicht selbst kompilieren. Über die Updatefunktion kannst du doch alte Release ziehen..?? Ansosten gibt es auch die fertigen Release Binaries im Github
Hi Tobias.
Danke für das Feedback und dass du nach dem Fehler suchst.
Leider habe ich kein altes Release für die 2.4.5 und den ESP32 gefunden.
Beim kompilieren findet er dann nicht die spezifischen ESP8266 Libs (heißen ja beim ESP32 anders).
Dann warte ich mal auf den Bugfix und kümmere mich weiter um die Verkabelung ;)
Hi,
Update Bugfix: bitte probier mal des DevRelease 82
Zitat von: Jostar am 29 Mai 2021, 15:42:08
Hallo,
habe den Motordriver bestellt, dauert aber noch, kommt ja aus China.
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Anschluss-von-bistabilen-Ventilen hier im unteren Bild, genau diese grauen Ventile habe ich (von Fa. Perl) mit der 4-fach-Verteilerleiste mit den roten Drehknaufen.
Welches Gehäuse hattest du hier verwendet? Wenn ich es richtig verstanden habe, braucht man für 4 dieser Ventile 2 Motordriver (H-Brücke). Da diese nicht seriell ansteuerbar sind auch 2 ESP, richtig?
Plan wäre s mit 9V-Batterien zu betreiben, dezentral im Garten. Wie checkst du, ob die Batterien alle werden? Habe schon die Sorge, dass die Kappazität noch reiht das Ventil zu öffnen, aber nicht mehr zu schließen. ggf. kann man die Batteriespannung direkt am ESP als analogen Eingang noch messen?
Vielen Dank und Grüße
Hi,
für die grauen Ventile braucht man 9V, korrekt. Dadurch das man den ESP aber nicht mit einer Batterie betrieben kann, braucht man sowiso permanentstrom. Entweder betreibt man ESP (+Powershield) und die Ventile mit 9V oder durch Einsatz eines StepUp oder StepDownWandlers mit einer anderen Spannung.
Die Platine mit der H-Bridge macht nur Sinn wenn man nicht mehr als 2 bistabile Ventile hat. Hat man mehr wie du, machen die TB6612FNG Controller mehr sinn.
Siehe auch Spezifikationen des tb6612fng:
https://www.exp-tech.de/motoren/motorsteuerung/dc-motortreiber/8386/sparkfun-motor-driver-dual-tb6612fng-1a
Ich habe mir schon eine Platine gebaut wo man einen ESP32, Display, 1Wire, i2c, AnalogSensor und mehrere(!) tb6612fng bzw Wemos PowerShields ohne Verkabelung aufstecken kann. (Bei Interesse melden).
Bei mir im Garten habe ich überall wo es nötig war eine 2x 2,5mm² Leitung mit 5VDC verlegt. Deswegen benutze ich auch die 3.6V bistabilen Ventile. ESP und Ventile an derselben Spannung. Die Ventile funktionieren super damit.
Klingt nach einem guten Plan. Rein technisch ist es auch kaum Mehraufwand neben dem Wasserrohr noch ein Kabel mit zu verbuddeln. Bei 5 V mache ich mir bezüglich Spannungsabfall auf der Länge aber Sorgen. Welche Länge hast du damit erfolgreich umsetzen können?
Zitat von: Jostar am 30 Mai 2021, 09:12:16
Klingt nach einem guten Plan. Rein technisch ist es auch kaum Mehraufwand neben dem Wasserrohr noch ein Kabel mit zu verbuddeln. Bei 5 V mache ich mir bezüglich Spannungsabfall auf der Länge aber Sorgen. Welche Länge hast du damit erfolgreich umsetzen können?
Die längste Strecke sind ca. 10m. Deswegen habe ich ja auch ein 2.5mm² Kabel benutzt ;)
Ich habe auch nicht EIN zentrales Stromversongungskabel sondern mehrere, Je nach Länge zwischen Steckdosenverfügbarkeit und Standort des ESP.
Notfalls kann man ja auch mit 9V oder 12V arbeiten und an jeden ESP ein Wemos PowerShield hängen.
Zitat von: Tobias am 28 Mai 2021, 16:11:41
Hi,
Update Bugfix: bitte probier mal des DevRelease 82
Gude.
Also das Bugfix läuft aktuell seit gestern. Vielen Dank dafür!
Allerdings nun auf einem ESP8266, da der ESP32 den Geist aufgegeben hat.
Kleiner Nachtrag zur Dev. Version:
- Gelegentlich wird bei mir die MQTT Konfiguration verworfen. Definitiv aber nach einem Update
- Die IP Adresse wird nicht vollständig per MQTT übertragen. Das 4. Oktett ist nur zweistellig
- Das Dropdown der verfügbaren Releases wird nicht gefüllt
Hi,
einen Verursacher des merkwürdigen Verhaltens habe im AutoUpdater ausgemacht. Das Parsen eines grossen json files braucht unmengen Speicher.
Ich habe jetzt für ESP8266 und ESP32 verschiedene releases.jsons bereitgestellt.
Für den ESP8266 wird nur noch das aktuellste Release pro Stage in der Liste zur Installation angeboten, beim ESP32 sind es die letzten 5 Versionen.
Bitte passt den Pfad bei Euch an:
http://tfa-releases.s3-website.eu-central-1.amazonaws.com/ESP8266_PumpControl/releases_ESP8266.json
http://tfa-releases.s3-website.eu-central-1.amazonaws.com/ESP8266_PumpControl/releases_ESP32.json
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Update-Automatisierung
Zitat von: Tobias am 02 Juni 2021, 09:27:50
Bitte passt den Pfad bei Euch an:
Funktioniert. Danke!
Das Dev-Release 84 ist raus. Bitte unbedingt updaten!
Zitat- Bug: bistable valve works again due an definition error in 2.5.2
- Bug: ESP8266: reduce autoupdater to last version due RAM limitations by changing json file definition
- Bug: valve sometimes doesnt switch back to OFF status after on-for-timer
Edit: da war noch ein fieser Bug, bitte auf die 85 updaten!
Hi,
alle bisher gemeldeten Bugs sind entfernt. Das 86er PreRelease ist raus.
Bitte testet es und gebt mir Rückinfo ob bei Euch alles funktioniert. Wenn alles i.o. gehts bald als echtes Release raus. Das wäre dann auch das erste ESP32'er Productive Release :)
https://github.com/tobiasfaust/ESP8266_PumpControl/releases
Hallo zusammen,
ich habe FHEM seit vielen Jahren im Einsatz und würde jetzt gerne meine Pflanzen automatisch gießen lassen. Dafür würde ich gerne die ESP8266_Pump-Control einsetzen.
Habe mir dafür eine NODEMCU und einen dazu passenden 293 Motorshield besorgt und auch die neuste Version von Pump0Control draufgespielt.
Dazu habe ich mir 2 Ventile von Pearl (Royal Gardeneer) gekauft. Die Ventile funktionieren, wenn ich sie manuell mit +6V oder -6V schalte.
Leider hänge ich jetzt etwas fest: Beim Pumpcontrol bekomme ich die Konfiguration nicht so richtig hin. Wenn ich das richtig verstanden habe, muss ich D1 und D3 als Schaltausgänge für den ersten Motor konfigurieren (was passiert dann mit dem I2C, der auf D1 und D2 läuft, muss das irgendwie abgeschaltet werden?) und auf bistabiles Relais schalten. Allerdings schaltet das System anscheinend nur in eine Richtung.
Habe es mit 5V an der Motorspannungsversorgung versucht und auch mit 9V. Das Ventil habe ich an Motor 1 + und - angeschlossen.
Könnte mir vielleicht jemand einen Tipp geben, wie ich das Ganze zum laufen kriege? Oder funktioniert es mit dem Motorshield und den Pearl Ventilen nicht?
Wäre cool, wenn mir jemand einen Tipp geben könnte, was ich da machen könnte.
Stephan
Hi,
bitte nutze die aktuelle PRE Version.
Bzgl Einstellungen schau mal auf diese seite ganz unten:
https://github.com/tobiasfaust/ESP8266_PumpControl/wiki/Anschluss-von-bistabilen-Ventilen
Für I2C musst du dann natürlich andere Ports einstellen, auch wenn diese nicht benutzt werden.
Hallo Tobias!
Vielen Dank für Deine Antwort!
Ich habe jetzt die Version 89 und Version 90 ausprobiert. Dabei ist mir folgendes aufgefallen:
Kann es sein, dass wenn ich die Ports für I2C verändere (zB 7 und 8 anstatt 2 und 3) und diese dann als bistabiles Relais konfiguriere, der Start der Firmware Probleme beim starten hat? Es dauert teilweise sehr lange (5 Minuten und länger), bis ich das Gerät im Wlan ist und ich es über die Oberfläche ansprechen kann und sehe, wenn ich es über den seriellen Monitor anschaue, dass immer wieder versucht wird, i2c anzusprechen.
Wenn der 8266 dann hochgefahren ist und ich zwischen den beiden Zuständen schalten will, liegen bei "On" dauerhaft 5 V an und bei off dauerhaft 0 Volt, obwohl ich als Typ bistabil gewählt habe und 10 ms Schaltzeit. Müssten dort nicht eigentlich einmal +5V für 10 ms und das andere Mal -5V für 10 ms anliegen oder mache ich einen Denkfehler?
Wenn der Start 5min und länger dauert hat er den connect ins WLAN i.d.R. nicht hinbekommen und hat einen AP geöffnet.
Das er beim i2c hängt habe ich noch nicht beobachtet.
Bei mir habe ich es so tlw:
i2c SDA -> RX
i2c SDL -> TX
grundsätzlich kannst du dort aber irgendeinen Port eintragen der unbenutzt ist
rest siehe bild
Jaaaa, jetzt läufts! 8) Superklasse, vielen Dank für Deine Hilfe!!! :)
Mein dummer Fehler, ich hatte die Reihenfolge für das erste und zweite Feld falsch rum eingegeben, dabei steht es in Deiner Anleitung, wie es gehört (was ich übersehen hatte): Oben D3, darunter D1, beim zweiten Oben D4, darunter D3. Ich Döspaddel!
Das andere Problem mit dem Verbinden hat sich mittlerweile auch geklärt: der NodeMCU ist vorhin abgeraucht, wurde sehr heiß und wird jetzt nicht mehr am USB erkannt. Ich denke, der hatte von Anfang an eine Macke. Hatte glücklicherweise ein 3er-Pack bestellt, Nummer 2 ist jetzt im Einsatz und funktioniert tadellos. (5V waren zu wenig fürs Ventil, aber mit 7.5 V funktionierts bei mir.)
1000 Dank nochmal für Deine Hilfe! Jetzt kann ich Schläuche und Verteiler bestellen :D
Stephan
Nach sehr langen Tests gibt es heute das lang ersehnte Prod Release :)
Läuft super stabil, insbesondere mit einem ESP32
https://github.com/tobiasfaust/ESP8266_PumpControl/releases
Für das kommende Release muss ich Funktionalität aus dem ESP8266 entfernen um Speicher wieder freizuschaufeln. Die volle Funktionalität gibt es dann nur noch im ESP32
Danke Tobias für deine Arbeit und das du das hier teilst. Ich habe gerade auch im Garten gebuddelt und Leerrohre mit Schläuchen verlegt. Jetzt kommt mir dein Projekt natürlich gerade recht. Die Schläuche laufen bei mir alle in einem kleinen Raum zusammen, wo ich gerne ein Verteilerkasten installieren würde. Da der Raum relativ beengt ist, möchte ich alles was möglich ist, in diesen Verteilerkasten packen. Zu den Schläuchen habe ich auch 2 Netzwerkanschlüsse verlegt, die dann ebenfalls dort mit rein kommen. Jetzt plane ich 5 Hunter-Ventile anzusteuern. Da ich eh einen Netzwerkanschluss dort habe, würde ich den ESP32 gerne verkabeln. Hat das schon jemand gemacht? Ich hatte hier schon von dem ESP32-EVB Board von Olimex gelesen, würde das funktionieren?
Hi,
das mit dem Olimex sollte grundsätzlich funktionieren.
Das ist ja echt witzig das du JETZT danach fragst. Ich habe gerade ein Olimex Board von "der Lolo" zum Testen hier, bekomme es aber nicht hin die korrekten Ethernet Einstellungen zu finden damit der ETH Anschlusss läuft.
Wenn du helfen willst, dann versuche bitte mit der Arduino IDE und einem als Board eingestelltes "ESP32 Development Board" den ETH Example Sketch auf dem Olimex ans laufen zu bekommen.
Mich interessiert vor allem die Parameter von "ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE);" die zum Olimex Board passen
https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/ETH_TLK110
oder
https://github.com/IvanPLoza/ATS.ESP32/blob/master/libraries/WiFi/examples/ETH_LAN8720_internal_clock/ETH_LAN8720_internal_clock.ino
Zur Not ans LAN Kabel ein AccessPoint hängen ;)
Mhhh, ich überlege nochmal ob mir es das Geld wert ist um es zu testen. Ansonsten würde ich schauen ob ich nicht eine Alternative, wie z.B. einen Accesspoint, installiere. Aber danke schon mal, melde mich dann dann. :)
Gibt es etwas Neues bzgl einer LAN Anbindung? Beim Olimex habe ich vorerst, auch aufgrund Zeitmangels, aufgehört zu testen.
Ich habe mir auch mal ein standard LAN Modul bestellt um zu testen.
Nutzt irgendjemand ausser ich selbst den OneWire Teil?
Ich habe meinen aktuellen Platinenentwurf für einen ESP32 ins github gelegt. Es sollte für die meisten Anwendungen ausreichen. Auf die Platine kommen nur Stiftleisten, keine anderen Bauteile. Also auch für Lötanfänger geeignet ;)
Neben dem ESP32 können dort geschlossen werden:
* 2x i2c Header, zb. für ein OLED
* Header für ein PCF8274 Portexpander
* 2x Header für TB6612FNG Controller
* Header für ein ADS1115 Converter für eine analoge Füllstandsmessung
* Header für freie ESP32 gpio´s
https://github.com/tobiasfaust/ESP8266_PumpControl/tree/master/circuit
Hallo Tobias,
hattest Du mit dem Olimex ESP32 nochmal versuche gestartet?
Hi,
Aufgrund Zeitmangels dann nicht wieder. Ich habe verschiedene Konfigurationen ausprobiert und keine hatte funktioniert.
Ich brauche ein funktionierendes Beispiel welches mit dem olimex funktioniert.
noch ein Hinweis für die aktuelle Saison:
bitte mit der aktuellen Firmware an einen ESP8266 erstmal nur max 2 Ventile hängen. Wenn es mehr sein sollen bitte einen ESP32 nehmen.
Ich bin gerade dabei alles auf den Asyncronen Webserver umzubauen damit das webinterface nicht mehr die langen Wartezeiten hat, weiterhin dabei die FW für den ESP8266 zu verschlanken ohne die Zusatzmodule.