Und wieder habe ich Probleme mit der Füllstandsmessung in meiner Regenwasser Zisterne. Diesmal liegt es am Kabel vom Abstandssensor in der Zisterne bis zur eigentlichen Elektronik, die im Pumpenhaus ist.

Also wieder ein Projekt dazwischen geschoben…

Zuerst habe ich mir überlegt, die ganze Elektronik, also Sensor und ESP8266 in die Zisterne zu packen. Dazu brauche ich natürlich ein möglichst Wasserdichtes Gehäuse. Ich habe mir etwas entsprechendes schnell in 3D entworfen und ausgedruckt. Auch sind die zuletzt von mir montierten Gewindestangen beim reinigen des Schmutzkorbes irgendwie immer im Weg. Darum habe ich mir eine Rohrschelle besorgt, so dass ich mein Gehäuse mit einer Schraube direkt an einem der Rohre befestigen kann.

Hier auch wie immer die STL-Dateien für das Gehäuse.

Auch habe ich die Verbindung zwischen Platine und Sensor nun mit einem Stecker gelöst. Sollte der Sensor also wieder einmal rosten, kann ich ihn einfach durch einen neuen ersetzen.

Die eigentliche Steuerplatine mit dem ESP8266 habe ich im Gehäuse dann einfach darüber gelegt. Auf dem Bild ist rechts auch der neue Stromanschluss zu sehen. Diesmal als Steckverbindung und mit ordentlich Schrumpfschlauch schön wasserfest gemacht.

ESP8266 Elektronik mit Abstandssensor im Gehäuse
Elektronik im Gehäuse

Dann das Gehäuse mit einer M8 Schraube an der Rohrschelle befestigt und den Deckel mit M3 Gewindeschrauben auf das Gehäuse geschraubt. Nicht zu fest anziehen, sonst bricht der Kunststoff…

Gehäuse an Rohrschelle mit zugeschraubtem Deckel
Zugeschraubtes Gehäuse an Rohrschelle

Dann habe ich das ganze wie geplant an einem der KG Rohre in der Zisterne, kurz über der maximalen Wasserhöhe montiert und den vorher verlegten Stromstecker angeschlossen.

Abstandssensor montiert an Rohrschelle in Zisterne
Sensor in Zisterne

Das eigentliche Netzteil ist im Pumpenhaus geblieben. Zur Sicherheit habe ich dort noch einen 1 Ampere Sicherungsautomaten zwischen geschaltet. Nur für den Fall, das es bei der Elektronik doch einen Wasserschaden gibt, will ich nicht das mein Steckernetzteil “abbrennt”.

1A Sicherung im Pumpenhaus

Bei der Überarbeitung der Wasserstandsmessung habe ich auch die Software auf dem ESP8266 aktualisiert:
– Umstellung auf ESP8266WebServer
– Daten werden nicht mehr zum Homeserver gepusht, sondern dieser kann sich die Daten über eine URL abholen (pull)
– Kleine Internetseite zu Diagnosezwecken gemacht
– Messroutine ist geblieben

// Zisterne3.0.ino
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const int pingPin = 14; // Trigg
const int start_signal = 12; // Echo
const long middles = 5; // Mittelwerte

ESP8266WebServer server(80); // Webserver
WiFiClient client;

              
void setup() {
  Serial.begin(115200);

  IPAddress ip(192, 168, X, Y);
  IPAddress gateway(192, 168, X, Z); 
  IPAddress subnet(255, 255, 255, 0); 
  WiFi.config(ip, gateway, subnet);
  WiFi.begin("SSID", "PWD");

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();

  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());  

  server.on("/", handle_normal);
  server.on("/hs", handle_hs);
  server.on("/hs/1", handle_hs);
  server.onNotFound(handle_NotFound);  
  server.begin();
  Serial.println("http server startet");
}


void loop() {
  server.handleClient();
}

void handle_NotFound(){
  server.send(404, "text/plain", "Not found");
}

void handle_normal() {
  Serial.println("handle /");
  long distance = measureMiddle();
  String msg = String("<!DOCTYPE html><html>") + 
    "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" + 
    "<link rel=\"icon\" href=\"data:,\">" + 
    "<body><h1>Zisterne F&uuml;llstand Server</h1>" + 
    "<p>Example for simple output: /hs/1</p>" + 
    "<br><p>Current distance: " + String(distance) + "</p>" + 
    "</body></html>\r\n" ;
  server.send(200, "text/html", msg); 
}

void handle_hs() {
  Serial.println("handle /hs");
  long distance = measureMiddle();
  String msg = String("D=" + String(distance) + "\r\n");
  server.send(200, "text/html", msg); 
} 

long measureMiddle() {
    Serial.println("measuering");
    long distance, i; 
    distance = 0;
    for (i = 0 ; i <= middles ; i++) {
      distance = distance + doMeasure();
    } 
    distance = distance / middles;  

    Serial.println(distance);

    return (distance);    
}

long doMeasure() {
  long duration;

  pinMode(pingPin,OUTPUT);
  pinMode(start_signal,OUTPUT);
  digitalWrite(start_signal,HIGH);
  delayMicroseconds(20);
  digitalWrite(start_signal,LOW);
  digitalWrite(pingPin,LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin,HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin,LOW);
  pinMode(pingPin,INPUT);  
  duration = pulseIn(pingPin,HIGH);
  delay(80);
  return (microsecondsToCentimeters(duration));
}
 
long microsecondsToCentimeters (long microseconds) {
  return microseconds  / 29 / 2;
}

Dadurch ist der Code auch deutlich aufgeräumter und übersichtlicher geworden.

Die Logik im Homeserver um die Webseite regelmäßig zu laden ist sehr einfach.

Logik für regelmäßigen Aufruf der Internetseite vom Gira Homeserver
Logik für regelmäßígen Aufruf der Internetseite

Ich nutze einfach den Telegrammgenerator um alle 60 Sekunden die Webseite abzurufen. Ich habe das generisch umgesetzt, da ich plane alle ESP8266 Sensoren auf diese Technik umzubauen.
Unterhalb des Telegrammgenerators ist die Umrechnung von der Füllhöhe auf eine Prozentanzeige zu sehen.

Wie ja schon mehrmals beschrieben wohne ich in einem Altbau. (d.h. schlecht, bis gar nicht gedämmt).

Bei den aktuellen Temperaturen sorgt das natürlich dafür, dass sich das Haus schnell aufwärmt und man vor Hitze kaum in den Schlaf kommt. Größtes Problem sind dabei wohl auch die Fenster auf Ost-, Süd- und Westseite.

Meine Wetterstation (Gira KNX Wetterstation) misst aber nicht nur Regen und Wind, sondern eben auch Licht. Sogar in genau diesen drei Ausrichtungen. Ich bekomme in der Tat 3 verschiedene Messwerte, für je eine Richtung einen.

Jetzt habe ich mir schnell eine Logik gebastelt, welche die automatischen Rollos, bei längerer Sonneneintrahlung auf einer Seite auf 50% herunter fährt. Allerdings auch nur, wenn Sie noch oben sind. D.h. ist kann manuell mit den Rollos machen was ich möchte, aber wenn Sie morgens auf 0 sind (also ganz oben), werden sie bei Bedarf automatisch halb herunter gefahren und somit ein Aufheizen der Räume reduziert.

Die Logik im Gira Experten meines Homeservers sieht so aus:

Gira Homeserver Logik für Rollosteuerung bei Sonneneinstrahlung

Natürlich berücksichtige ich auch die Raumtemperatur. Wenn diese ohnehin schon wärmer als eingestellt ist, nur dann fährt das Rollo auch runter.

Oft merkt man ja immer erst was fehlt, wenn man es braucht. So auch bei diesem, diesmal wirklich kleinen Projekt.

Denn aktuell ist das Wetter tagsüber ja wirklich schön warm, aber Abends wirds nochmal knackig kalt. Tagsüber sind also die Fenster offen – und abends werden sie dann schon mal vergessen wieder zu schließen.

Da ich aber nicht für die Luftwaffe heizen möchte, habe ich eine kleine Logik erzeugt, welche den Einwohnern eine Email schickt.

Schnell und einfach gemacht und trotzdem effektiv. So werde ich das Fenster im Bad oder Schlafzimmer nicht mehr vergessen.

Fenster-Offen-Logik des Gira Home Servers

Wichtig bei den Alarm-Emails im Homeserver ist jedoch, eine “Totzeit” einzustellen. Sonst werden wohlmöglich sehr sehr viele Emails erzeugt.

Obwohl ich mir ja dieses Jahr (auch) die automatische Bewässerung des Gartens als Ziel gesetzt habe, kommen doch immer wieder andere “kleine” Projekte dazwischen- so wie dieses hier:

Mein letztes Jahr neu gekaufter Gasgrill steht nämlich auf der Terasse ganz schön im Weg. Eine Außenküche muss her. Darum habe ich einen Teils des Gartens gepflastert und einen Grillpavillon darauf gestellt.

Leco Grill Grillpavillon

Rund um die Außenküche und das Hochbeet sind auch schon Rasenkantensteine gesetzt, damit der Mähroboter ordentlich fahren kann – das ist jedoch ein anderes Projekt…

Ich habe den Pavillon sowohl im Boden, als auch an der Wand befestigt – steht also Wind- und Wetterfest, das Ding. Schon beim pflastern war klar das ich dort auch Licht und Steckdosen brauche, so dass ich direkt auch ein Leerrohr mit einem 7x 1.5 Kabel gelegt habe. Hinten links auf dem Foto sieht man den Kasten, wo das Kabel endet.

So sieht es im Kasten aus. Rechts oben ist des Leerrohr zu sehen, das senkrecht aus dem Boden kommt. Ich habe schon mal vorsorglich diverse Verschraubungen gesetzt, damit ich das nicht an dem montierten Kasten fummeln muss. Da ich zum ausstanzen der Löcher für die Verschraubungen leider nicht das passenden Werkzeug habe (warum eigentlich nicht…?) habe ich es mit einem Holzbohrer gemacht. Etwas sauerei – funktioniert aber wunderbar.

Holzbohrer für Verschraubungen
Holzbohrer für die Verschraubungen

Nachdem ich dann einige Male gegrillt hatte stellte ich fest, dass es gerade jetzt im Frühjahr in den frühen Abendstunden doch sehr schnell dunkel wird und ich auf jeden Fall ordentliche Beleuchtung zum grillen brauche. Natürlich gibt es die magnetischen und mit Batterie betriebenen Grilllampen – ich kann mich jedoch mit den Dingern nicht so recht anfreunden.

Beleuchtung und Strom hatte ich ja ohnehin vorgesehen, so habe ich mich für zwei LED Spots entschieden, die ich jeweils vorne links und rechts oben in der Ecke des Pavillons montiere. Ich kann beim grillen dann nicht beiden Lampen “im Weg stehen” und kann die Lampen an der Halterung dann auch noch passend ausrichten.

Grill Lampe von Sebson
Grill Lampe von Sebson

Diese Lampen für den Außenbereich von Sebson sind es geworden.

Außerdem habe ich auch direkt etwas Gummikabel mitbestellt. Damit schließe ich die Lampen an die Unterverteilung an und das Kabel befestige ich einfach möglichst verdeckt mit Kabelbindern am Gestänge des Pavillons.

Gummikabel
Gummikabel

Das kurze Anschlusskabel der Lampen haben ich dann mit dem Gummikabel verlängert. Natürlich ordentlich verlötet und mit viel Schrumpfschlauch gesichert und isoliert.

Verlötetes Kabel

Die Lampe selbst befestige ich mit Rohrschellen direkt an den Pfosten des Pavillons. Einfach mit einer kurzen M8 Schraube und einer Mutter und ich kann die Lampe auch noch ordentlich auf den Grill ausrichten.

Das ist richtig helles, weißes Licht und super zum grillen.

Aber auch wenn ich nicht grille möchte ich den Pavillon mit etwas Stimmungslicht erhellen. Ich denke, das wird dann das nächste “kleine” Projekt.