<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Eigenbau &#8211; bubuxblog</title>
	<atom:link href="https://www.bubuxblog.de/category/eigenbau/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bubuxblog.de</link>
	<description></description>
	<lastBuildDate>Wed, 13 May 2026 17:31:46 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Smart Home Steuerung am alten Wählscheibentelefon</title>
		<link>https://www.bubuxblog.de/smart-home-steuerung-am-alten-waehlscheibentelefon/</link>
					<comments>https://www.bubuxblog.de/smart-home-steuerung-am-alten-waehlscheibentelefon/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Wed, 13 May 2026 17:28:13 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<category><![CDATA[Smarthome]]></category>
		<guid isPermaLink="false">https://www.bubuxblog.de/?p=2371</guid>

					<description><![CDATA[Die Make (Ausgabe 2/2026) enthielt einen Vorschlag für die Nutzung eines alten Wählscheibentelefons mit einem Raspberry Pi und einem LLM inklusive Sprachausgabe. Insgesamt ein witziges Projekt, aber irgendwie war es mir ein bisschen zu viel „KI“. Ich hatte jedoch noch so ein altes Schätzchen: Einen Fernsprechtischapparat FeTAp 611 in Grün. Es ist das Telefon meiner [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Die <strong>Make</strong> (Ausgabe 2/2026) enthielt einen Vorschlag für die Nutzung eines alten Wählscheibentelefons mit einem Raspberry Pi und einem LLM inklusive Sprachausgabe. Insgesamt ein witziges Projekt, aber irgendwie war es mir ein bisschen zu viel „KI“.</p>



<p>Ich hatte jedoch noch so ein altes Schätzchen: Einen <strong>Fernsprechtischapparat FeTAp 611</strong> in Grün. Es ist das Telefon meiner Schwiegereltern (und ja, die hatten damals tatsächlich eine dreistellige Telefonnummer!). Ich selbst habe es während meines Studiums in der Studentenbude genutzt. Da ich mich nur schwer von solchen Dingen trennen kann, fristete es seitdem sein Dasein irgendwo im Keller.</p>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-scaled.jpg"><img fetchpriority="high" decoding="async" width="1024" height="768" src="https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-1024x768.jpg" alt="" class="wp-image-2378" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/05/telefon-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Der Make-Artikel inspirierte mich schließlich dazu, dem alten Teil wieder Leben einzuhauchen. Fast alle Geräte in unserem Haus werden mittlerweile über <strong>Home Assistant</strong> gesteuert – meist vollautomatisch über Sensoren oder Zeitpläne. Gelegentlich nutze ich aber auch das Tablet im Flur, auf dem noch eine alte FTUI von FHEM läuft (weil ich das Dashboard mit HA einfach nicht so schick hinbekomme), oder eben die Home Assistant App auf dem Handy.</p>



<h3 class="wp-block-heading">Die Umsetzung</h3>



<p>Mittels eines <strong>ESP32 WROOM</strong> wurde die notwendige Technik eingepflanzt. Das Schöne dabei: Das Innenleben blieb weitestgehend original, ich habe nichts ausgebaut.</p>



<ul class="wp-block-list">
<li><strong>Hörergabel:</strong> Den Schalter habe ich direkt auf der Rückseite der Platine angelötet.</li>



<li><strong>Wählscheibe:</strong> Die Impulse werden einfach am ursprünglichen Stecker abgegriffen (Pin 1 &amp; 2).</li>



<li><strong>Audio:</strong> Für die Tonausgabe sorgt ein <strong>MAX98357</strong>. Lediglich für den Anschluss des alten Lautsprechers habe ich zwei Kabel durchgeschnitten und per Lüsterklemme verbunden (ja, es musste am Ende schnell gehen).</li>
</ul>



<p></p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-scaled.jpg"><img decoding="async" width="1024" height="768" data-id="2382" src="https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-1024x768.jpg" alt="" class="wp-image-2382" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/05/hoerer-1-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Anschluss Schalter Hörergabel</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-scaled.jpg"><img decoding="async" width="1024" height="768" data-id="2381" src="https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-1024x768.jpg" alt="" class="wp-image-2381" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/05/innenleben-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">ESP32 und MAX98357</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="2379" src="https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-1024x768.jpg" alt="" class="wp-image-2379" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/05/lautsprecher-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Anschluss Lautsprecher</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="2380" src="https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-1024x768.jpg" alt="" class="wp-image-2380" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/05/waehlscheibe-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Anschluss der Wählscheibe</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/05/schaltplan.png"><img loading="lazy" decoding="async" width="559" height="392" data-id="2389" src="https://www.bubuxblog.de/wp-content/uploads/2026/05/schaltplan.png" alt="" class="wp-image-2389" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/05/schaltplan.png 559w, https://www.bubuxblog.de/wp-content/uploads/2026/05/schaltplan-300x210.png 300w" sizes="auto, (max-width: 559px) 100vw, 559px" /></a></figure>
</figure>



<p></p>



<h3 class="wp-block-heading">Das Telefon kann nun</h3>



<ol class="wp-block-list">
<li>Sich ins <strong>WLAN</strong> einbinden</li>



<li>Verbindung zu meinem <strong>MQTT-Server</strong> aufbauen</li>



<li>WLAN und/oder MQTT-Status per <strong>LED anzeigen</strong></li>



<li>Den klassischen <strong>425-Hz-Wählton</strong> ausgeben, sobald der Hörer abgehoben wird.</li>



<li>Die <strong>gewählte Nummer</strong> an den MQTT-Server übermitteln</li>
</ol>



<span id="more-2371"></span>



<h3 class="wp-block-heading">Anschlussbelegung</h3>



<figure class="wp-block-table is-style-stripes"><table class="has-fixed-layout"><tbody><tr><td><strong>Bauteil</strong></td><td><strong>Pin</strong></td></tr><tr><td>LED</td><td>26</td></tr><tr><td>Wählscheibe</td><td>14</td></tr><tr><td>Hörer</td><td>27</td></tr><tr><td>I2S_BCLK (MAX98357)</td><td>18</td></tr><tr><td>I2S_LRC (MAX98357)</td><td>19</td></tr><tr><td>I2S_DOUT (MAX98357)</td><td>23</td></tr></tbody></table></figure>



<h3 class="wp-block-heading has-medium-font-size">Der Code</h3>



<p>Was bisher implementiert ist: Der ESP32 übernimmt das Management der WLAN-Verbindung, die MQTT-Kommunikation und die Dekodierung der Wählscheiben-Impulse. Über den MAX98357 wird der klassische Wählton via I2S direkt im Code generiert und mit einem leichten Rauschen unterlegt, um den alten analogen Charakter des Hörers beizubehalten.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;WiFi.h>
#include &lt;PubSubClient.h>
#include &lt;driver/i2s.h>

// ================== WLAN ==================
const char* ssid = "hier_die_ssid";
const char* password = "hier_das_wlan_passwort";

// ================== MQTT ==================
const char* mqtt_server = "192.168.xxx.xxx";
int mqtt_fail_count = 0;
const int mqtt_max_retries = 5;
bool mqtt_blocked = false;

// ================== LED ===================
const int ledPin = 26;

enum LedState {
  LED_WIFI_CONNECTING,
  LED_WIFI_CONNECTED,
  LED_MQTT_CONNECTING,
  LED_MQTT_CONNECTED
};

LedState currentState = LED_WIFI_CONNECTING;

// ================== Wifi ==================
WiFiClient espClient;
PubSubClient client(espClient);

// ================== Fetap ==================
const int dialPin = 14;
const int hookPin = 27;

// ================== I2S AUDIO ==================
#define I2S_BCLK 18
#define I2S_LRC  19
#define I2S_DOUT 23

bool toneActive = false;
uint32_t toneIndex = 0;

// ================== Waehlen ==================
volatile int pulses = 0;
volatile unsigned long lastPulseMicros = 0;
unsigned long lastActivity = 0;

bool lastHookState = false;

// ================== Interrupt ==================
void IRAM_ATTR onPulse() {
  unsigned long now = micros();
  if (now - lastPulseMicros &lt; 80000) return;
  pulses++;
  lastPulseMicros = now;
  lastActivity = millis();
}

// ================== SETUP ==================
void setup() {
  Serial.begin(115200);

  pinMode(dialPin, INPUT_PULLUP);
  attachInterrupt(dialPin, onPulse, FALLING);

  pinMode(hookPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);

  // ================== I2S INIT ==================
  i2s_config_t i2s_config = {
    .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX),
    .sample_rate = 8000,
    .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
    .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
    .communication_format = I2S_COMM_FORMAT_I2S,
    .intr_alloc_flags = 0,
    .dma_buf_count = 8,
    .dma_buf_len = 64,
    .use_apll = false
  };

  i2s_pin_config_t pin_config = {
    .bck_io_num = I2S_BCLK,
    .ws_io_num = I2S_LRC,
    .data_out_num = I2S_DOUT,
    .data_in_num = I2S_PIN_NO_CHANGE
  };

  i2s_driver_install(I2S_NUM_0, &amp;i2s_config, 0, NULL);
  i2s_set_pin(I2S_NUM_0, &amp;pin_config);

  // ================== WLAN ==================
  currentState = LED_WIFI_CONNECTING;
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    updateLED();
    delay(300);
  }

  currentState = LED_WIFI_CONNECTED;
  client.setServer(mqtt_server, 1883);

  Serial.println("Telefon bereit");
}

// ================== LOOP ==================
void loop() {
  if (!client.connected()) reconnect();
  client.loop();

  updateLED();

  bool hookReading = (digitalRead(hookPin) == LOW);

  // ================== HOOK CHANGE ==================
  if (hookReading != lastHookState) {
    delay(40);

    if (hookReading == (digitalRead(hookPin) == LOW)) {
      lastHookState = hookReading;

      if (hookReading) {
        Serial.println("Hörer ABGENOMMEN");
        pulses = 0;
        sendStatus(true);

        toneActive = true;
        toneIndex = 0;
      } else {
        Serial.println("Hörer AUFGELEGT");
        sendStatus(false);

        toneActive = false;
        i2s_zero_dma_buffer(I2S_NUM_0);
        i2s_stop(I2S_NUM_0);
        i2s_start(I2S_NUM_0);
      }
    }
  }

  // ================== Wählscheibe ==================
  unsigned long now = millis();

  if (lastHookState) {
    if (pulses > 0 &amp;&amp; (now - lastActivity) > 900) {
      int number = pulses;
      if (number == 10) number = 0;

      Serial.print("Gewählt: ");
      Serial.println(number);

      sendMQTT(number);
      pulses = 0;
    }
  }

  // ================== 425 Hz Ton ==================
  if (toneActive) {
    size_t written;

    float freq = 425.0;
    float t = (float)toneIndex / 8000.0;

    int16_t sample =
      (int16_t)(2000 * sin(2 * PI * freq * t));

    sample += random(-300, 300);

    i2s_write(I2S_NUM_0, &amp;sample, sizeof(sample), &amp;written, portMAX_DELAY);

    toneIndex++;
    if (toneIndex > 8000) toneIndex = 0;
  }
}

// ================== MQTT ==================
void sendMQTT(int number) {
  if (!client.connected()) return;

  client.publish("fetap_611/nummer", String(number).c_str());
}

// ================== STATUS ==================
void sendStatus(bool onHook) {
  if (!client.connected()) return;

  client.publish("fetap_611/hoerer", onHook ? "ON" : "OFF");
  client.publish("fetap_611/nummer", "-1");
}

// ================== MQTT reconnect ==================
void reconnect() {
  if (mqtt_blocked) return;

  while (!client.connected()) {
    currentState = LED_MQTT_CONNECTING;

    if (client.connect("fetap_phone")) {
      mqtt_fail_count = 0;
      currentState = LED_MQTT_CONNECTED;
    } else {
      mqtt_fail_count++;
      if (mqtt_fail_count >= mqtt_max_retries) {
        mqtt_blocked = true;
        return;
      }
      delay(1500);
    }
  }
}

// ================== LED ==================
void updateLED() {
  static unsigned long lastBlink = 0;
  static bool state = false;

  unsigned long now = millis();

  switch (currentState) {

    case LED_WIFI_CONNECTING:
      if (now - lastBlink > 200) {
        state = !state;
        digitalWrite(ledPin, state);
        lastBlink = now;
      }
      break;

    case LED_WIFI_CONNECTED:
      if (now - lastBlink > 800) {
        state = !state;
        digitalWrite(ledPin, state);
        lastBlink = now;
      }
      break;

    case LED_MQTT_CONNECTING:
      if (now - lastBlink > 150) {
        state = !state;
        digitalWrite(ledPin, state);
        lastBlink = now;
      }
      break;

    case LED_MQTT_CONNECTED:
      digitalWrite(ledPin, HIGH);
      break;
  }
}</pre>



<h3 class="wp-block-heading">Die Herausforderung: Timing und Entprellung</h3>



<p>Die Abfrage eines so alten mechanischen Geräts bringt ein paar Besonderheiten mit sich, die man im Code berücksichtigen muss. Hier sind zwei Punkte, bei denen man eventuell individuell nachjustieren muss:</p>



<ul class="wp-block-list">
<li><strong>Entprellen der Wählscheibe:</strong> Im Interrupt nutze ich eine Sperrzeit von <code>80ms</code>. Das ist notwendig, da die mechanischen Kontakte beim Öffnen und Schließen kurz &#8222;prellen&#8220;. Wenn eure Wählscheibe falsche Ziffern erkennt, ist dieser Wert der erste Hebel, an dem ihr ansetzen solltet.</li>



<li><strong>Der Hörerschalter (Gabel):</strong> Auch dieser Schalter ist mechanisch und neigt zum Prellen. Ich habe hier ein <code>delay(40)</code> eingebaut, um sicherzugehen, dass der Zustand stabil ist, bevor die MQTT-Meldung &#8222;Hörer abgenommen&#8220; rausgeht.</li>



<li></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Warum das Ganze?</h3>



<p>Im Gegensatz zu moderner Digitaltechnik gibt die Wählscheibe einfach nur mechanische Impulse (Unterbrechungen) aus, etwa 10 Impulse pro Sekunde (10Hz). Eine gewählte &#8222;3&#8220; sind drei kurze Unterbrechungen der Leitung. Da der ESP32 im Vergleich zur Wählscheibe sehr schnell ist, würde er ohne diese künstlichen &#8222;Gedenksekunden&#8220; (Delays und Sperrzeiten) jedes mechanische Zittern als extra Impuls interpretieren.</p>



<p>Die aktuell im Code gewählten Zeiten und Mechanismen funktionieren bei meinem Telefon sehr zuverlässig.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Automatisierung in HA</h3>



<p>Auf die Änderungen des entsprechenden MQTT-Topics reagiere ich mit einer Automatisierung im Home Assistant. Im folgenden Beispiel werden zwei Lampen bei Wahl der 1 oder der 2 getoggelt</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">alias: FeTap Steuerung
description: Schaltet Aktoren basierend auf Sensorwert 1-9
triggers:
  - entity_id: sensor.fetap_nummer
    trigger: state
conditions:
  - condition: template
    value_template: "{{ trigger.to_state.state in ['1','2','3','4','5','6','7','8','9'] }}"
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: sensor.fetap_nummer
            state: "1"
        sequence:
          - action: light.toggle
            target:
              entity_id:
                - light.lampe_fensterbank
      - conditions:
          - condition: state
            entity_id: sensor.fetap_nummer
            state: "2"
        sequence:
          - action: light.toggle
            target:
              entity_id:
                - light.lampe_couch
    default: []
mode: restart</pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Ausblick</h3>



<p>Das war ein erster PoC was man mit dem alten Telefon alles machen kann. Der Quellcode ist nicht wirklich aufgeräumt und die WLAN Credentials noch direkt im Code enthalten. Ich glaube die alten Telefone haben auch mit dem 425Hz-Ton aufgehört sobald man gewählt hat. </p>



<p>Ideen für die nächsten Schritte:</p>



<ul class="wp-block-list">
<li>WLAN-Credentials komfortabel über eine Webseite z.B. im SPIFFS/LittleFS konfigurieren.</li>



<li>Wählton deaktivieren, sobald die erste Ziffer gewählt wurde (originalgetreuer).</li>



<li>Ein kurzes akustisches Signal ausgeben, wenn das MQTT-Telegramm erfolgreich gesendet wurde.</li>



<li>Mittels Step-Up-Wandler die alte mechanische Klingel des Telefons für Benachrichtigungen integrieren.</li>



<li>Das Mikrofon in Betrieb nehmen (eventuell durch eine moderne Elektret-Kapsel ersetzen).</li>



<li>Ziffernfolgen implementieren (aktuell funktioniert das nur mit einzelnen Ziffern)</li>
</ul>



<p>Viel Spaß beim Bauen und erweitern!</p>



<p>Gruß<br>Chris</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/smart-home-steuerung-am-alten-waehlscheibentelefon/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gasverbrauch mit ESP8266 messen &#8211; neue Version 1008</title>
		<link>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen-neue-version-1008/</link>
					<comments>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen-neue-version-1008/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sat, 24 Jan 2026 14:06:39 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<guid isPermaLink="false">https://www.bubuxblog.de/?p=2361</guid>

					<description><![CDATA[Die Messung unseres Gasverbrauches per Reedkontakt und NodeMCU mit seinem ESP8266 funktioniert schon seit langen sehr gut und zuverlässig. Eigentlich bestand keine Notwendigkeit daran etwas zu ändern. Kleine Probleme Einzig meine gewohnte Freiluftverdrahtung mit einem Gummi der den Reedkontakt am Zähler festhält (der die Klebeband-Halterung ablöste) wurde regelmäßig porös und der Reedkontakt fiel runter. Meistens [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Die Messung unseres Gasverbrauches per Reedkontakt und NodeMCU mit seinem ESP8266 funktioniert schon seit langen sehr gut und zuverlässig. Eigentlich bestand keine Notwendigkeit daran etwas zu ändern.</p>



<p class="has-medium-font-size">Kleine Probleme</p>



<p>Einzig meine gewohnte Freiluftverdrahtung mit einem Gummi der den Reedkontakt am Zähler festhält (der die Klebeband-Halterung ablöste) wurde regelmäßig porös und der Reedkontakt fiel runter. Meistens merkte ich das erst Tage später. Da ich mir Ende letzten Jahres einen 3D-Drucker angeschafft habe, wollte ich bei diesem Projekt mein erstes ordentliches Gehäuse für meine Sensoren erstellen wo mal nichts irgendwo einfach nur herum baumelt.</p>



<figure class="wp-block-image size-large is-style-default"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-1024x768.jpg" alt="Gehäuse für den Wemos und den Reed" class="wp-image-2362" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/01/halter-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Bei Makerworld, Printables &amp; Co gibt es sehr viele fertige Modelle für entsprechende Halterungen. Danke an die kreativen Designer! Manche sind für den NodeMCU inklusive Reedkontakt, manche für einen Wemos D1 inklusive Reedkontakt und manche nur für verschiedene Reedkontakte alleine. Ich habe ein Gehäuse für beides gesucht. Nachdem ich ein passendes Model gefunden und ausgedruckt hatte, ging es an die Montage. Die meisten dieser fertig designten Gehäuse nutzen einen axialen Reedkontakt. Diese haben meistens nur einen simplen Glaskörper. Hier war schon mein erstes Problem das diese Glasreeds echt empfindlich sind wenn man mal an den Beinchen biegt. Ich bin wahrscheinlich zu grobmotorisch aber sie sind ja billig&#8230;</p>



<p>Das größere Problem war aber, dass diese Reedkontakte nicht oder <strong>unzuverlässig</strong> anziehen wenn der Magnet des Zählers vorbei kommt da dieser recht schwach ist (Stichwort Anzugsempfindlichkeit). Auch hundertmaliges Ausrichten in der Öffnung des Zählers, Ausrichten des Reedkontaktes parallel zum Magneten, testen verschiedene andere Reedkontakte (aus zylinderförmig eingegossene Exemplare) etc. war nicht zielführend und raubte mir den letzten Nerv weil alles ja schon mal gut funktionierte. <strong>Nur mein alter Meder MK471 funktionierte zuverlässig</strong>. </p>



<figure class="wp-block-image size-full"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01.png"><img loading="lazy" decoding="async" width="377" height="218" src="https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01.png" alt="Meder MK471" class="wp-image-2364" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01.png 377w, https://www.bubuxblog.de/wp-content/uploads/2026/01/Bildschirmfoto-vom-2026-01-24-14-46-01-300x173.png 300w" sizes="auto, (max-width: 377px) 100vw, 377px" /></a></figure>



<span id="more-2361"></span>



<p class="has-medium-font-size">Das neue Gehäuse</p>



<p>Der MK471 passt aber in fast alle fertigen Gehäusedesigns <strong>nicht</strong> rein. Und die wenigen Gehäuse die den MK471 beherbergen können, passten nicht an meinen Gaszähler. Also hab ich mir ein schönes Gehäuse für den Wemos D1 Mini als Basis gesucht und mit FreeCad (ich komme mit dem 3D-Drucker eh nicht drumherum das zu lernen) entsprechende Anpassungen gemacht damit anstatt einem axialen Reedkontakt der MK471 rein passt. Das war nicht wirklich schwer und sehr viel Mühe hab ich auch nicht rein gesteckt. Die STL-Datei muss in Freecad einen Festkörper gewandelt werden und danach einfach die Aufnahme für den axialen Reedkontakt mittels &#8222;Pocket&#8220; mit einem passenden Rechteck aus dem Sketch &#8222;durchbohrt&#8220;. Da klemmt sich der MK471 jetzt ohne Probleme fest.</p>



<figure class="wp-block-image size-large"><a href="https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad.png"><img loading="lazy" decoding="async" width="1024" height="645" src="https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-1024x645.png" alt="Resultat des Gehäuse in Freecad" class="wp-image-2363" srcset="https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-1024x645.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-300x189.png 300w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-768x484.png 768w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad-1536x968.png 1536w, https://www.bubuxblog.de/wp-content/uploads/2026/01/freecad.png 1562w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="has-medium-font-size">Neue Softwareversion</p>



<p>Neben dem Gehäuse hab ich dann doch noch ein bisschen den Quellcode erneuert. Ich musste ja noch die LED die im Gehäuse vorgesehen ist einprogrammieren. Bisher blinke nur die interne LED des Mikrocontrollers. Aber die sieht man ja im Gehäuse nicht mehr. Dazu gab es noch ein paar andere kleine Korrekturen und Verbesserungen. <strong>Die LED muss mit Vorwiderstand an D3, der Reedkontakt bleibt wie gehabt an D4 wo jetzt per Software auch der interne Pullup aktiviert wird.</strong> Einen Plan für die Verdrahtung hab ich dafür hier nicht gemacht.</p>



<p>Aber <strong>wirklich schlecht</strong> <strong>implementiert</strong> hatte ich das Senden der Impulse an den MQTT-Server. Hier hatte ich bei jedem Impuls eine neue Verbindung zum Server geöffnet und dann das Publish gesendet. Das dauerte gefühlt immer ewig und war auch der Grund warum in der Vergangenheit der ein oder andere Impuls in Richtung MQTT verschluckt wurde.</p>



<p>Der neue Ansatz baut nun einmal bei Start die Verbindung zum MQTT auf, prüft im Loop ob diese Verbindung noch besteht und macht ggf. ein Reconnect. Bei einem Impuls durch den Reedkontakt wird dann nur noch der Impuls per Publish an den MQTT-Server gesendet. Viel besser <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Den aktuellen Quellcode für die Version 1008 inkl. vorkompiliertem Binary gibt es wie immer auf Github:</p>



<p><a href="https://github.com/diefenbecker/opengasmeter">https://github.com/diefenbecker/opengasmeter</a></p>



<p>Viel Spaß damit<br>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen-neue-version-1008/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PV-Überschuss zu Warmwasser</title>
		<link>https://www.bubuxblog.de/pv-ueberschuss-zu-warmwasser/</link>
					<comments>https://www.bubuxblog.de/pv-ueberschuss-zu-warmwasser/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Fri, 27 Dec 2024 13:56:51 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Heizstab]]></category>
		<category><![CDATA[Powerfox]]></category>
		<category><![CDATA[PV-Überschuss]]></category>
		<category><![CDATA[Shelly]]></category>
		<category><![CDATA[Warmwasser]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2314</guid>

					<description><![CDATA[Meine Eltern haben eine PV-Anlage ohne Batteriespeicher. Durch Selbstaufbau mit Freunden auf einem Schuppendach war das eine sehr kostengünstige Anlage, die an sonnigen Tagen tagsüber den vom Haus benötigten Strom komplett liefert. Seit Inbetriebnahme wird Wäsche nur gewaschen, wenn auch die Sonne scheint 😉 Insgesamt wird aber im Sommer meistens zu viel Strom produziert und [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Meine Eltern haben eine PV-Anlage ohne Batteriespeicher. Durch Selbstaufbau mit Freunden auf einem Schuppendach war das eine sehr kostengünstige Anlage, die an sonnigen Tagen tagsüber den vom Haus benötigten Strom komplett liefert. Seit Inbetriebnahme wird Wäsche nur gewaschen, wenn auch die Sonne scheint <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Insgesamt wird aber im Sommer meistens zu viel Strom produziert und für 8 Cent eingespeist.</p>



<p>Auf der Suche nach einer Möglichkeit den Eigenverbrauch zu erhöhen, fiel ein Batteriespeicher aufgrund der hohen Anschaffungskosten raus. Was tun?</p>



<p>Vor einigen Jahren wurde der Kachelofen mit Wassertasche vom Schornsteinfeger wegen Umweltauflagen still gelegt (sehr schade drum). Dadurch ist aber noch der Warmwasserspeicher im Heizungsraum vorhanden. Diese hatte nach der Stilllegung des Kachelofen keine weitere Wärmequelle als die Ölheizung. Solarthermie ist leider nicht vorhanden und auch für eine Neu-Installation zu aufwändig.</p>



<p>Wir dachten dann über einen Heizstab nach. Der Wasserspeicher hat die Möglichkeit einen Heizstab von oben einzuschrauben. Leider ist es aber sehr schwierig, Heizstäbe mit entsprechend langer heiz-freier Zone zu bekommen, da das Wasser im Wasserspeicher ja nicht randvoll gefüllt ist. Bei anderen Herstellern von Warmwasserspeichern kann man den Heizstab seitlich einschrauben. Und der Heizstab vom Hersteller des Wasserspeichers ist leider raus, da er zu lang ist und wir den Warmwasserspeicher hätten kippen müssen. Es musste also eine andere Lösung her.</p>



<span id="more-2314"></span>



<h2 class="wp-block-heading">Wärmekreislauf im Selbstbau</h2>



<p>Ein guter Freund meines Vaters ist Heizungsbauer und hat eine Vorrichtung gebaut, die analog der Wassertasche des alten Kachelofen das Wasser mittels Umwälzpumpe, an einem Heizstab vorbei, in den Warmwasserspeicher pumpt. Die Pumpe war noch vom Kachelofen vorhanden und der Heizstab ist ein günstiger ~ 2KW Heizstab mit 1 1/2 Zoll Gewinde. Dieser steckt nun in einem Eisenrohr/T-Stück mit entsprechendem Gewinde und ist über Kupferleitungen an den Warmwasserspeicher angeschlossen. Zudem wurde dieser Kreislauf noch an das Ausdehnungsgefäß des normalen Heizkreislauf angeschlossen, damit wir uns ein zweites Ausdehnungsgefäß sparen konnten.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/threema-20240830-184619200.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/threema-20240830-184619200.jpg" alt="" class="wp-image-2315" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/threema-20240830-184619200.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/threema-20240830-184619200-225x300.jpg 225w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<p>Im Bild erkennt man den Heizstab, der senkrecht in dem Eisenrohr steckt, die grüne Umwälzpumpe und die entsprechende Verrohrung. Später wurde die Konstruktion noch isoliert.</p>



<p>Jetzt soll der Heizstab aber nur eingeschaltet werden, wenn auch PV-Überschuss vorhanden ist. Kauflösungen wie z.B. &#8222;intelligente&#8220; Heizstäbe von ELWA kosten > 500 €. Soviel wollten wir aber nicht ausgeben, da die Ausbeute und der Wirkungsgrad um Wasser mit elektrischer Energie mittels Heizstab zu erhitzen nicht sehr effizient ist und sich schlecht amortisiert. Eine kleine Wärmepumpe schied übrigens vorerst aus Kostengründen auch aus.</p>



<h2 class="wp-block-heading">Die Daten&#8230;woher bekommen?</h2>



<p>So, wie kommt man nun an die Daten wann die Anlage Überschuss produziert? Der SMA-Wechselrichter ist ohne &#8222;Sunny Boy&#8220; nicht wirklich auskunftsfreudig (es war ja ein Low-Budget-Selbstbau-Anlage). Aber welche Daten werden denn benötigt?</p>



<ul class="wp-block-list">
<li>den <strong>Eigenverbrauch </strong>des Hauses und</li>



<li>die <strong>aktuelle Leistung</strong>, die durch die Solaranlage geliefert wird</li>
</ul>



<p>Die Werte für den Eigenverbrauch hatten wir schon relativ schnell nach Inbetriebnahme der Solaranlage durch Einbau eines <a href="https://shop.powerfox.energy/" data-type="link" data-id="https://shop.powerfox.energy/" target="_blank" rel="noreferrer noopener">Powerfox </a>am digitalen Stromzähler erledigt. Dieser misst am Energiezähler die aktuell benötigte Leistung, sowie die elektrische Energie des Verbrauchs und der Einspeisung. Den Powerfox kann jeder einfach anbringen, da er nur mittels Magnet an der entsprechenden Stelle am Zähler befestigt wird. Hier sind keine Arbeiten im Stromkasten notwendig. Der Powerfox ist mit den meisten digitalen Stromzählern kompatibel. Ggf. in die Modell-Liste von Powerfox schauen. Ich selber nutze hier eine Selbstbaulösung, aber der Powerfox ist &#8222;adminfreundlicher&#8220;.</p>



<p>Die Messung der Leistung der Solaranlage kam dann etwas später durch den Einbau eines <a href="https://www.shelly.com/de/products/shelly-3em" target="_blank" rel="noreferrer noopener">Shelly 3EM</a> mit drei Stromzangen im Stromkasten dazu. Die Stromzangen werden einfach um die drei Phasen gelegt, die vom Wechselrichter kommen. Der 3EM kommt auf die Hutschiene im Stromkasten und benötigt noch Versorgungsspannung. Für den Einbau ggf. besser einen Elektriker zu Rate ziehen!</p>



<p>Damit hatte mein Vater schon vor der Idee mit dem Heizstab alle wichtigen Informationen der Solaranlage und des Hausverbrauches zur Verfügung. Allerdings über zwei unterschiedliche Apps und ohne zentrale Einheit wie ein Smart-Home-Server.</p>



<p>Zurück zum Heizstab. Alle Infos, um den Heizstab bei PV-Überschuss anzuschalten waren also schon vorhanden. Um nun aus diesen Infos den eigentlich Überschuss zu berechnen und den Heizstab zu schalten, kam ich nicht mehr drumherum, einen kleinen Server mit entsprechender Software aufzusetzen.</p>



<h2 class="wp-block-heading">Die Steuerung</h2>



<p>Das Erste was mir als Software in den Sinn kam war <a href="https://openwb.de/main/" target="_blank" rel="noreferrer noopener">openWB</a>. Ich habe eine openWB-Wallbox und nutze sie schon zum Überschussladen des E-Autos und hatte mich auch schon mal in das von mir nicht genutzte SmartHome-Menü der openWB verirrt. Die Software selber kann auch ohne Wallbox-Funktionalitäten auf einem RaspberryPI betrieben werden. Ich hatte noch einen Pi 3 hier liegen und die Software war schnell installiert. Der Powerfox und der Shelly 2EM (sowie andere Produkte von Shelly) werden bereits von openWB unterstützt. Die Integration funktioniert einfach mit Eingabe der Shelly-IP bzw. der Powerfox-Cloud-Daten über die Weboberfläche der OpenWB.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1.jpg"><img loading="lazy" decoding="async" width="538" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-538x1024.jpg" alt="" class="wp-image-2318" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-538x1024.jpg 538w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-158x300.jpg 158w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-768x1463.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-806x1536.jpg 806w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1-1075x2048.jpg 1075w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133900_Chrome-1.jpg 1080w" sizes="auto, (max-width: 538px) 100vw, 538px" /></a></figure>



<p>Danach zeigt die Startseite der openWB die gemessenen Werte an. Im Screenshot aktuell sehr wenig Sonne und relativ viel Hausverbrauch.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome.jpg"><img loading="lazy" decoding="async" width="535" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-535x1024.jpg" alt="" class="wp-image-2319" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-535x1024.jpg 535w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-157x300.jpg 157w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-768x1471.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-802x1536.jpg 802w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome-1069x2048.jpg 1069w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133811_Chrome.jpg 1080w" sizes="auto, (max-width: 535px) 100vw, 535px" /></a></figure>



<p>Verschiedene Smart-Home-Geräte (unter die auch der zukünftige Heizstab fällt) können nun in der openWB konfiguriert werden und mit Aktionen hinterlegt werden. Der Heizstab selber ist natürlich nicht &#8222;Smart&#8220;. Ein- und ausgeschaltet werden soll er über einen <a href="https://www.shelly.com/de/products/shelly-plug-s-gen3" target="_blank" rel="noreferrer noopener">Shelly Plug S</a>. Den Shelly sieht man auch auf dem ersten Bild oben links. Daran angeschlossen ist der Heizstab und die Umwälzpumpe. Auch dieser Shelly wird von openWB als Smart-Home-Gerät unterstützt. </p>



<p>Was jetzt noch bleibt, sind verschiedene Einstellung am Smart-Home-Gerät:</p>



<ul class="wp-block-list">
<li>Schwellenwerte (in Watt) zum Ein- und Ausschalten, </li>



<li>Nachlaufzeiten (in Sekunden) damit der Stab nicht ständig an- und ausgeht wenn Wolken aufziehen, </li>



<li>Zeiträume und Gesamtdauer pro Tag in denen überhaupt geschaltet wird (zur Sicherheit falls die openWB den Shelly Plug aus irgendwelchen Gründen nicht ausschaltet) </li>



<li>und einige andere Einstellungen. </li>
</ul>



<p>Das ist natürlich abhängig vom Heizstab, dem Warmwasserspeicher und der gesamten PV-Anlage. Hier muss ein bisschen ausprobiert werden welche Werte für die jeweilige Anlage am besten passen.</p>



<p>Zur Sicherheit wird der Shelly Plug an Pumpe und Heizstab auch noch täglich mit Sonnenuntergang durch die Shelly-App ausgeschaltet und der Heizstab besitzt noch ein eigenes Thermostat, wodurch er sich selber ab einer einstellbaren Temperatur ausschaltet. Mit diesen Mitteln und den Einstellungen in der openWB sollte ein überhitzen bzw. zu langes laufen des Heizstabes ausgeschlossen sein.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome.jpg"><img loading="lazy" decoding="async" width="562" height="1024" src="http://blog.bubux.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-562x1024.jpg" alt="" class="wp-image-2320" srcset="https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-562x1024.jpg 562w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-165x300.jpg 165w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-768x1400.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome-842x1536.jpg 842w, https://www.bubuxblog.de/wp-content/uploads/2024/12/Screenshot_20241227-133932_Chrome.jpg 1080w" sizes="auto, (max-width: 562px) 100vw, 562px" /></a></figure>



<p>Die Apparatur läuft seit dem Herbst 2024. Die Tage, an denen Sonne war und der Schwellwert für den PV-Überschuss in der openWB erreicht wurde, schaltete den Heizstab und die Umwälzpumpe über den Shell Plug einwandfrei ein und aus. Den Status des Heizstabes (An/Aus) sowie die aktuell benötigte Leistung und die pro Tag in den Heizstab geflossene Energie zeigt die openWB auch auf der Startseite an.</p>



<p>Grundsätzlich funktioniert das also. Wirklich viel PV-Überschuss gab es aber leider nicht, so das wir das nächste Frühjahr abwarten müssen.</p>



<p>Wunder wird der kleine Heizstab im Warmwasserspeicher nicht vollbringen, aber auch im Sommer wird warmes Wasser benötigt und es sollte dann Wärme produziert werden, die mehr als 8 Cent wert ist. Die Ausgaben hielten sich auch sehr in Grenzen. Eigentlich war es nur der Heizstab für &lt; 100 € und der Shelly Plug für 23 €. Der Rest war schon vorhanden (Powerfox und Shelly 3EM) bzw. lag irgendwo herum (Raspi, Umwälzpumpe). Das Installations-Material kostete ein Feierabendbier.</p>



<p>Ich werde mal berichten wie das Ganze im Sommer funktioniert.</p>



<p>Gruß<br>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/pv-ueberschuss-zu-warmwasser/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Now Spinning &#8211; Now Playing</title>
		<link>https://www.bubuxblog.de/now-spinning-now-playing/</link>
					<comments>https://www.bubuxblog.de/now-spinning-now-playing/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 29 Oct 2023 17:28:18 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Now PLaying]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[Schallplatten]]></category>
		<category><![CDATA[Vinyl]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2106</guid>

					<description><![CDATA[Wohin mit der Hülle der Vinylplatte während diese auf dem Plattenspieler dreht? Bisher lag die Hülle neben dem Plattenspieler. An sich ein guter Platz und kein Problem, aber es gibt ja auch schicke Halter im Internet. Diese zeigen meistens den Schriftzug "Now playing" oder "Now spinning" und halten die Platte mittels eines entsprechend geformten Holz-, Acryl- oder Metall-Konstruktes an der Wand, auf dem Sideboard oder wo auch immer. Das fand ich langweilig und daher musste eine andere Lösung her.]]></description>
										<content:encoded><![CDATA[
<p>Bei Hipstern und Männern zwischen 45 und 54 sind Vinyl-Schallplatten ja schon länger wieder voll angesagt. Als alter CD-Sammler (und vorher auch schon Schallplatten) bin auch irgendwann wieder dazu gekommen. Aber eher zufällig (oder weil ich zur zweiten Gruppe gehöre?). Über Kleinanzeigen hatte ich ein altes Röhrenradio gekauft (Blaupunkt &#8222;Wunschklang&#8220;) und der Verkäufer hatte noch einen Technics-Plattenspieler in der Ecke stehen den ich dort nicht stehen lassen konnte. Der war technisch etwas lädiert aber nach Reinigung der verharzten Mechanik, dem Einbau eines neuen Tonabnehmers und der Einstellung des Tonarms funktioniert er wieder einwandfrei.</p>



<p><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Aber nun die drängende Frage: </mark>Wohin mit der Hülle der Vinylplatte während diese auf dem Plattenspieler dreht? Bisher lag die Hülle neben dem Plattenspieler. An sich ein guter Platz und kein Problem, aber es gibt ja auch schicke Halter im Internet. Diese zeigen meistens den Schriftzug &#8222;Now playing&#8220; oder &#8222;Now spinning&#8220; und halten die Platte mittels eines entsprechend geformten Holz-, Acryl- oder Metall-Konstruktes an der Wand, auf dem Sideboard oder wo auch immer. Das fand ich langweilig und daher musste eine andere Lösung her.</p>



<p>Wenn schon so ein Halter da rum steht, kann der auch was tun während keine Schallplattenhülle drin steht. Was liegt da näher als mal wieder einen Mikrocontroller mit einem Display zu bemühen. Heraus gekommen ist ein erster Prototyp meines &#8222;Now Spinning&#8220;-Plattenhalters.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/10/20231028_171031-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2023/10/20231028_171031-1024x768.jpg" alt="" class="wp-image-2109" style="object-fit:cover" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-768x576.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-1536x1152.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231028_171031-2048x1536.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Genutzt habe ich wieder einen NodeMCU mit ESP8266 und acht MAX7219 LED 8&#215;8 Matrix-Module. Mittels Taster, der von der eingestellten Schallplattenhülle gedrückt bleibt, wird die Anzeige auf einen dauerhaften Text (bei mir &#8222;NOW SPINNING&#8220;) gesetzt. Das folgende kurze Video zeigt die Funktion des Tasters (Entschuldigung für die Focus-Probleme&#8230;ich werde in diesem Leben kein You-Tuber mehr&#8230;):</p>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_2.mp4"></video></figure>



<p>Wird der Taster nicht betätigt (also die Platte wieder woanders verstaut), werden auf dem Display verschiedene Informationen angezeigt deren Anzeige im 5-Sekunden-Takt wechselt. Das wäre einmal die Innentemperatur die mittels BME280-Sensor erfasst wird und dann noch verschiedene weitere Daten die nicht lokal gemessen werden, sondern durch den Aufruf eines HTTP-Endpunktes des NodeMCUs an diesen &#8222;von aussen&#8220; übergeben werden.</p>



<p>Dieser HTTP-Post erfolgt durch ein einfaches PHP-Script welches per Cron auf einem Raspberry Pi aufgerufen wird. Die anzuzeigenden Daten werden von diesen Script aus meinem FHEM (ja, ich nutze immer noch FHEM und bin weiterhin sehr zufrieden damit) ausgelesen und die URL des NodeMCUs mit den zu übergebenen Daten aufgerufen. Aktuell werden fünf übergebene Argumente verarbeitet:</p>



<ul class="wp-block-list has-vivid-cyan-blue-color has-text-color">
<li style="font-style:italic;font-weight:200">Aussentemperatur</li>



<li style="font-style:italic;font-weight:200">Akkustand der PV-Anlage</li>



<li style="font-style:italic;font-weight:200">Aktuelle Leistung der PV-Anlage</li>



<li style="font-style:italic;font-weight:200">Temperatur des Wasserpuffers oben</li>



<li style="font-style:italic;font-weight:200">Temperatur des Wasserpuffers unten</li>
</ul>



<p>Der Aufruf der URL und die Übergabe der Daten an den NodeMCU schaut beispielhaft wie folgt aus:</p>



<pre class="wp-block-code alignwide"><code>&lt;ip_des_nodemcu&gt;/receivedata?aussentemperatur=17.3&amp;akkustand=67&amp;pv=1.5&amp;pufferoben=70&amp;pufferunten=56</code></pre>



<p>Das folgende Video zeigt den Wechsel der Daten:</p>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_1-2.mp4"></video></figure>



<p class="has-text-align-left has-white-color has-vivid-cyan-blue-background-color has-text-color has-background"><strong>PHP-Script zum übermitteln der Messwerte</strong></p>



<p>Im PHP-Script (<em>nowspinning.php</em>) werden die Reading-Daten aus FHEM per <em>CURL </em>abgefragt, dann die URL mit den Messwerten zusammen gebaut und anschliesend wiederum per <em>CURL </em>vom NodeMCU aufgerufen. Warum PHP: Weil´s für mich am schnellsten ging. Wenn ich mal Muße habe ändere ich es nach Python. Es funktioniert jedenfalls bisher völlig unproblematisch.</p>



<pre class="wp-block-code alignwide has-black-color has-text-color has-background" style="background-color:#fafafa"><code><code data-enlighter-language="php" class="EnlighterJSRAW">&lt;?php
function getFhemReading($readingName, $fhemUrl) {
    $fhemCmd = "list $readingName";
    $cmd = "curl -s \"$fhemUrl/fhem?cmd=".urlencode($fhemCmd)."&amp;XHR=1\"";    
    $output = shell_exec($cmd);
    $value = null;
    $match=explode(" ", $output);
    $match=array_filter($match);
    return str_replace(array("\r","\n"),'',end($match));
}

$fhemUrl = "http://&lt;url_zum_fhem&gt;:&lt;fhem_port&gt;";

$aussentemperatur = round(getFhemReading("Aussenthermometer temperature", $fhemUrl),1);
$akkustand = round(getFhemReading("MQTT2_openWB_Client SOC",$fhemUrl),1);
$pvleistung = round(getFhemReading("MQTT2_openWB_Client SolarPower",$fhemUrl)/1000,1);
$pufferoben = round(getFhemReading("HeizungPufferOben state",$fhemUrl),1);
$pufferunten = round(getFhemReading("HeizungPufferUnten state",$fhemUrl),1);

$cmd = "curl -s \"http://&lt;ip_nodemcu&gt;/receivedata?aussentemperatur=".$aussentemperatur."&amp;akkustand=".$akkustand."&amp;pvleistung=".$pvleistung."&amp;pufferoben=".$pufferoben."&amp;pufferunten=".$pufferunten."\"";

shell_exec($cmd);
?&gt;</code></code></pre>



<p>Hier der Aufruf des Scriptes in der Crontab alle 3 Minuten:</p>



<pre class="wp-block-code alignwide"><code>*/3 * * * * php /usr/local/bin/nowspinning.php</code></pre>



<p class="has-white-color has-vivid-cyan-blue-background-color has-text-color has-background"><strong>Code für den NodeMCU</strong></p>



<p>Der Code für den NodeMCU ist bisher relativ schnörkelfrei. Die WLAN-Zugangsdaten müssen aktuell noch fest im Code vergeben werden. Für das MAX7219 nutze ich die <em>Parola</em>-Bibliothek . Für den BME280 die Bibliothek von <em>Adafruit</em>. Der Schalter hängt an D0 und GND.</p>



<pre class="wp-block-code alignwide has-black-color has-text-color has-background" style="background-color:#fafafa"><code><code data-enlighter-language="cpp" class="EnlighterJSRAW">#include &lt;MD_Parola.h&gt;
#include &lt;MD_MAX72xx.h&gt;
#include &lt;SPI.h&gt;
#include &lt;Wire.h&gt;
#include &lt;Adafruit_Sensor.h&gt;
#include &lt;Adafruit_BME280.h&gt;
#include &lt;ESP8266WebServer.h&gt;

//WLAN
const char* ssid = "&lt;wlan_ssid&gt;";
const char* pass = "&lt;wlan_passwort&gt;";
ESP8266WebServer server(80);

// Hardwaretyp des MAX7219
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

// PINs und Anzahl der MAX-Elemente
#define MAX_DEVICES 8
#define CS_PIN 15

MD_Parola display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

// BME280
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C

//Schalter um Platte zu erkennen
int pinNowSpinning = D0; 

//Warteschleifen
unsigned long startMillisTemp;
unsigned long currentMillisTemp;
unsigned long startMillisWechsel;
unsigned long currentMillisWechsel;

//Externe Daten deklarieren
String aussentemperatur = "keine Daten";
String akkustand = "keine Daten";
String puffer = "keine Daten";
String pvleistung = "keine Daten";

//Sonstiges
int anzeigennummer=0;

void setup() {

  Serial.begin(115200); 

  display.begin();
  display.setIntensity(0);
  display.displayClear();
  display.setTextAlignment(PA_CENTER);
  
  pinMode(pinNowSpinning, INPUT); 

  bool status;
  status = bme.begin(0x76);  
  if (!status) {
    Serial.println("Kann BME Sensor nicht finden. Verkabelung prüfen!");
    while (1);
  }

  startMillisTemp = millis();
  startMillisWechsel = millis();

  //WLAN
  Serial.print("Verbinde zu: ");
  Serial.println(ssid);
  display.print("Verbinde Wifi");
  WiFi.begin(ssid, pass);
   
  while(WiFi.status() != WL_CONNECTED){
    delay(500); 
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi verbunden");
  Serial.print("IP-Adresse des ESP8266: ");  
  Serial.println(WiFi.localIP());
  display.displayClear();
  display.print(WiFi.localIP());
  delay(3000);

  //Webendpunkte
  server.on("/",handleRoot);
  server.on("/receivedata", receiveData);

  server.begin();
}

void loop() {
  //Client-Anfragen abfragen
  server.handleClient(); 

  if (digitalRead(pinNowSpinning) == HIGH) {
    //Text wenn eine Platte abgestellt ist    
    display.print("NOW SPINNING");
    Serial.println("Now Spinning");  
  } else {
    currentMillisWechsel = millis();    
    if (currentMillisWechsel - startMillisWechsel &gt;= 5000) {
      startMillisWechsel = currentMillisWechsel;
      anzeigennummer++;
      Serial.print("Anzeigenummer: ");
      Serial.println(anzeigennummer);
      switch (anzeigennummer) {
        case 1:
          //Temperatur alle 30 Sekunden abfragen
          currentMillisTemp = millis();        
          if (currentMillisTemp - startMillisTemp &gt;= 10000) {
            startMillisTemp = currentMillisTemp;
            String temperatur = String(bme.readTemperature());
            display.print("&gt; "+temperatur.substring(0,temperatur.length()-1)+" \"C");

            Serial.print("Temperatur: ");
            Serial.print(bme.readTemperature());
            Serial.println(" °C");

            Serial.print("Luftfeuchte: ");
            Serial.print(bme.readHumidity());
            Serial.println(" %");
          }
          break;
        case 2:
          display.print(aussentemperatur);
          Serial.println(aussentemperatur);          
          break;
        case 3:
          display.print(akkustand);
          Serial.println(akkustand);          
          break;
        case 4:
          display.print(pvleistung);
          Serial.println(pvleistung);          
          break;
        case 5:
          display.print(puffer);
          Serial.println(puffer);          
          break;
        default:
          // statements
          break;
      }
      if (anzeigennummer&gt;=5) { 
        anzeigennummer=0; 
        Serial.println("Anzeigenummer reset");
      }
    }  
  }
}

void handleRoot() {
  String message="&lt;h1&gt;Now Spinning&lt;/h1&gt;";
  message += "Das ist die lieblose Webseite des 'Now Spinning'-Anzeigers&lt;/br&gt;&lt;/br&gt;";
  message += "Temperatur: ";
  message += bme.readTemperature();
  message += " °C&lt;br&gt;";
  message += "Luftfeuchte: ";
  message += bme.readHumidity();
  message += " rel%&lt;br&gt;";
  server.send(200, "text/html", message);
}

void receiveData() {
  String message="&lt;h1&gt;Empfange Daten&lt;/h1&gt;";
  message += "Daten werden empfangen...&lt;/br&gt;&lt;/br&gt;";
  server.send(200, "text/html", message);

  Serial.println("Daten empfangen...");
 
  //Aussentemperatur
  Serial.print(server.argName(0));
  Serial.print(F(": "));
  Serial.println(server.arg(0));
  aussentemperatur="&lt; " + server.arg(0) + " \"C";

  //Akkustand
  Serial.print(server.argName(1));
  Serial.print(F(": "));
  Serial.println(server.arg(1));
  akkustand="Akku "+ server.arg(1) + "%";

  //PV Leistung
  Serial.print(server.argName(2));
  Serial.print(F(": "));
  Serial.println(server.arg(2));
  pvleistung="PV "+ server.arg(2) + "KW";

  //Puffer oben u. unten
  Serial.print(server.argName(3));
  Serial.print(F(": "));
  Serial.println(server.arg(3));
  Serial.print(server.argName(4));
  Serial.print(F(": "));
  Serial.println(server.arg(4));
  puffer = "- " + server.arg(3) + "  _ " + server.arg(4); 
}</code></code></pre>



<p>Schaltungsplan von <em>Fritzing </em>kommt noch und wenn ich mal Zeit finde, packe ich den Code auch noch nach Github.</p>



<p class="has-white-color has-vivid-cyan-blue-background-color has-text-color has-background"><strong>Holzarbeiten</strong></p>



<p></p>



<p>Hier hat mir dankenswerterweise Arnim (der immer mit meinen Kritzeleien zurecht kommen muss) sehr geholfen und hat mir einen ersten Prototyp aus Fichte gebaut.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_170436-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="368" src="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_170436-1024x368.jpg" alt="" class="wp-image-2143" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-1024x368.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-300x108.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-768x276.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-1536x552.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_170436-2048x735.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die Nut um die Platte zu halten, wurde mit leicht schräg gestelltem Sägeblatt der Tischkreissäge angefertigt und ist etwa 1 cm breit. Der vordere Ausschnitt um den NodeMCU und das Display unter zu bringen ist mit der Oberfräse gefräst. </p>



<p>Den Taster hab ich von unten in ein zweistufig gebohrtes Loch mit Heißkleber befestigt. Im Bild unten ist der Taster als kleines schwarzes Ding zu erkennen. Die Kabel des Schalters sind dann schräg nach vorne in die Ausfräsung verlegt.</p>



<p>Das Anschlusskabel verläuft duch eine Bohrung unter der Nut für die Platte und dann auch schräg nach oben in die Ausfräsung. Hier hab ich ein normales Micro-USB-Kabel genutzt, kurzerhand durchgeschnitten und wieder zusammengelötet.</p>



<p>Für die Unterbringung des Temperatursensors brauche ich noch eine gute Lösung. Dieser liegt aktuell einfach mit in der Ausfräsung in der Ecke. Ich kann mir aber vorstellen, dass dort durch das Display und den NodeMCU die Messung verfälscht wird.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_150153-scaled.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="http://blog.bubux.de/wp-content/uploads/2023/10/20231029_150153-768x1024.jpg" alt="" class="wp-image-2123" style="aspect-ratio:0.75;object-fit:cover" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-768x1024.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-225x300.jpg 225w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-1152x1536.jpg 1152w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-1536x2048.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2023/10/20231029_150153-scaled.jpg 1920w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<p class="has-white-color has-vivid-cyan-blue-background-color has-text-color has-background has-medium-font-size"><strong>Todo´s</strong></p>



<p>Es ist ja der erste Prototyp des &#8222;Now spinning&#8220;-Plattenhüllenhalters und an der Software als auch an der Hardware (für den Mikorcontroller und den Halter selber) ist noch ein bisschen was zu tun. Spontan fällt mir da noch folgendes ein:</p>



<ul class="wp-block-list">
<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Acrylfront (dunkelrot oder milchig&#8230;muss ich mal testen) und Frage der Befestigung</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Helligkeitssensor mittels simplem LDR (wenn dunkel, dann dunkler. wenn Heller, dann heller)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Uhrzeit (entweder per POST mit den anderen Messwerten übergeben oder Echtzeituhr-Modul)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Übergabe der Messwerte etwas flexibler gestalten (ohne das bei neuen Werten der Code des NodeMCU geändert werden muss sondern nur beim Aufruf der URL)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Maximalzeit nach der &#8222;Now Spinning&#8220; wieder zu der Anzeige der anderen Daten wechselt</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">&#8222;Now spinning&#8220; abwechselnd mit einen Spektrum Analyzer (FFT) per Mikrofon aufgenommen</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Einen besseren Platz für den internen Temperatur-Sensor</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Den Halter aus Eiche anstatt Fichte (Grüße an die Fräser)</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Die Luftfeuchte vom BME280 anzeigen</mark></li>



<li style="font-style:italic;font-weight:200"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Befestigung des Temperatursensors</mark></li>
</ul>



<p>Das war´s erstmal. Falls ihr Den Plattenhalter nachbauen wollt, würde ich mich über Erfahrungen, Verbesserungen, weitere Ideen und Bilder freuen. Bis dahin</p>



<p>Gruß Chris</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/now-spinning-now-playing/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		<enclosure url="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_2.mp4" length="22293629" type="video/mp4" />
<enclosure url="https://www.bubuxblog.de/wp-content/uploads/2023/10/now_playing_1-2.mp4" length="58765390" type="video/mp4" />

			</item>
		<item>
		<title>Zisternenfüllstandsmessung mit Time Of Flight-Sensor (die Zweite mit Version 1029)</title>
		<link>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor-die-zweite-mit-version-1029/</link>
					<comments>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor-die-zweite-mit-version-1029/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 16 Jan 2022 12:32:08 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Cistern]]></category>
		<category><![CDATA[Hausautomatisierung]]></category>
		<category><![CDATA[Homeautomation]]></category>
		<category><![CDATA[Time of Flight]]></category>
		<category><![CDATA[ToF]]></category>
		<category><![CDATA[VL53L0X]]></category>
		<category><![CDATA[VL53L1X]]></category>
		<category><![CDATA[Zisterne]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2022</guid>

					<description><![CDATA[Es ist leider mal wieder lange nix passiert hier im Blog. Das letzte Jahr war nicht so prickelnd und ich hab meine Arbeit an meinen Bastelprojekten quasi eingestellt. Offensichtlich waren aber die dunklen Wintermonate bei einigen Leuten Ansporn, um ihre Heimautomatisierung und Sensorik zu überarbeiten. Es gab viele Einträge im Blog und ich bekam viele [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Es ist leider mal wieder lange nix passiert hier im Blog. Das letzte Jahr war nicht so prickelnd und ich hab meine Arbeit an meinen Bastelprojekten quasi eingestellt.</p>



<p>Offensichtlich waren aber die dunklen Wintermonate bei einigen Leuten Ansporn, um ihre Heimautomatisierung und Sensorik zu überarbeiten. Es gab viele Einträge im Blog und ich bekam viele Anfragen per Mail bzgl. des Time Of Flight-Sensor <em>VL53L0X </em> als möglicher Ersatz des Ultraschallsensors <em>HC-SR04</em>. Ich hatte ja auch bei der Version <a rel="noreferrer noopener" href="http://blog.bubux.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/" data-type="post" data-id="1993" target="_blank">1028 </a>nach fleißigen Testern und Rückmeldungen gefragt. Vielen Dank euch dafür! Das hat mich auch motiviert mal wieder was an dieser Front zu tun.</p>



<p>Auch wenn mein Ultraschallsensor für seine 2,50€ seit 3 Jahren tadellos seine Arbeit in der Zisterne verrichtet und ich bisher keine Notwendigkeit sehe diesen zu ersetzen, habe ich mir einen weiteren Sensor zu Testzwecken beschafft und in die Software implementiert. Ergebnis ist die Version 1029 der Software.</p>



<p>Neben dem ToF <em>VL53L0X </em> kann nun auch der <em>VL53L1X  </em>angeschlossen und genutzt werden. Zu den Unterschieden der beiden Sensoren findet man einiges im Internet. Welcher Sensor nun im jeweiligen Anwendungsfall die bessere Wahl ist, muss jeder selber herausfinden bzw. freue ich mich auch wieder auf Rückmeldungen im Blog oder per Mail bzgl. eurer Erfahrungen.</p>



<span id="more-2022"></span>



<p>Zu den beiden ToF-Sensoren nur ganz kurz folgende Zeichnung bzgl. der Öffnungskegel in Abhängigkeit zum Messabstand. Dazu aber noch weiter unten ein bisschen mehr Details da es anscheinend bei den möglichen Abständen etc. nicht verallgemeinert werden kann, welcher Sensor die bessere Wahl ist. Ich habe dazu auch (bisher) keine Tests gemacht!</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/01/abstands-kegel.jpeg"><img loading="lazy" decoding="async" width="842" height="391" src="http://blog.bubux.de/wp-content/uploads/2022/01/abstands-kegel.jpeg" alt="" class="wp-image-2033" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/01/abstands-kegel.jpeg 842w, https://www.bubuxblog.de/wp-content/uploads/2022/01/abstands-kegel-300x139.jpeg 300w, https://www.bubuxblog.de/wp-content/uploads/2022/01/abstands-kegel-768x357.jpeg 768w" sizes="auto, (max-width: 842px) 100vw, 842px" /></a></figure></div>



<p>Der Anschluss des <em>VL53L1X </em>erfolgt analog des <em>VL53L0X</em>. Die notwendigen PINs zum Anschluss sind u.a. in der Applikation angegeben. Hier aber nochmal schnell das Anschlussschema für die beiden ToF-Sensoren.</p>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><a href="http://blog.bubux.de/wp-content/uploads/2022/01/anschluss_vl53l0x.png"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2022/01/anschluss_vl53l0x.png" alt="" class="wp-image-2030" width="448" height="451" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/01/anschluss_vl53l0x.png 896w, https://www.bubuxblog.de/wp-content/uploads/2022/01/anschluss_vl53l0x-298x300.png 298w, https://www.bubuxblog.de/wp-content/uploads/2022/01/anschluss_vl53l0x-150x150.png 150w, https://www.bubuxblog.de/wp-content/uploads/2022/01/anschluss_vl53l0x-768x773.png 768w" sizes="auto, (max-width: 448px) 100vw, 448px" /></a><figcaption>Anschlussschema für VL53L0X und VL53L1X</figcaption></figure></div>



<p>Die Version 1029 unterstützt weiterhin den Ultraschallsensor sowie die Displays und den Temperatursensor. Für das komplette Anschluss-Schema schaut bitte in den älteren Blog-Eintrag <a rel="noreferrer noopener" href="http://blog.bubux.de/update-fuellstandsanzeige-zisterne-v1026/" data-type="post" data-id="1964" target="_blank">hier</a>.</p>



<p>Die beiden ToF-Sensoren unterstützen seitens der API noch verschiedene Einstellungen die ich in der ersten Version 1028 nicht implementiert hatte und für den VL53L0X nur die Nutzung der Default-Einstellungen möglich war. In der neuen Version habe ich im ersten Anlauf zumindest ein paar wenige Einstellungsmöglichkeiten implementiert.</p>



<p>Dazu gehört für beide ToF-Sensoren die Möglichkeit den Abstandsmodus anzupassen. Hier holt man auch aus dem <em>VL53L0X </em>noch mehr heraus als im Datenblatt angegeben ist und muss bei größeren Abständen nicht zwingend auf den VL53L1X wechseln. Zudem habe ich beim <em>VL53LoX </em>noch die mögliche Anpassung des Timings implementiert. Hier kann zwischen dem Default-Wert auch noch High-Accuracy (hohe Genauigkeit) und High-Speed gewählt werden. Auch hier gibt es anscheinend kein Patentrezept um gute Messwerte zu erreichen und ausprobieren scheint die Devise.</p>



<p>Da ich diese Werte im &#8222;Setup&#8220; setze, ist nach Änderung in der WebUI ein Neustart des Sensors notwendig damit die neu eingstellten Werte greifen. Beim <em>VL53L1X </em>muss man den ESP auch ggf. mal vom Strom trennen. Der scheint da etwas zickig was ich auch schon erfahren musste als es nur seltsame Werte bei der Messung gab.</p>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><a href="http://blog.bubux.de/wp-content/uploads/2022/01/zisterne_sensoren.png"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2022/01/zisterne_sensoren.png" alt="" class="wp-image-2026" width="714" height="186" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/01/zisterne_sensoren.png 714w, https://www.bubuxblog.de/wp-content/uploads/2022/01/zisterne_sensoren-300x78.png 300w" sizes="auto, (max-width: 714px) 100vw, 714px" /></a><figcaption>Auswahl der Sensoren in der WebUI</figcaption></figure></div>



<p>Die weiteren Einstellmöglichkeiten des VL53L1X muss ich mir noch genauer anschauen und implementiere sie dann ggf. in einem nächsten Update. Hier gibt es z.B. noch die Möglichkeit zur Anpassung des Timings (ähnlich dem VL53L0X was ich dort bereits implementiert habe), die Anpassung der Größe des Empfangs-Arrays (SPAD) sowie der Anpassung der Region of Interest (ROI) und Definition eines Offsets. Mit diesen Parametern kann man u.a. &#8222;spielen&#8220;, falls der Sensor hinter eine Glasscheibe verbannt werden soll.</p>



<p></p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2022/01/20220116_122004-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2022/01/20220116_122004-1024x576.jpg" alt="" class="wp-image-2029" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/01/20220116_122004-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2022/01/20220116_122004-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2022/01/20220116_122004-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2022/01/20220116_122004-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2022/01/20220116_122004-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>Aktueller Zoo an möglichen Senoren</figcaption></figure>



<p></p>



<p><strong>Den Download der neuesten Version gibt es hier:</strong></p>



<p><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></p>



<p></p>



<p></p>



<p>Gruß Chris</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor-die-zweite-mit-version-1029/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Zisternenfüllstandsmessung mit Time Of Flight-Sensor</title>
		<link>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/</link>
					<comments>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sat, 17 Apr 2021 07:50:44 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Füllstandssensor]]></category>
		<category><![CDATA[Time of Flight]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1993</guid>

					<description><![CDATA[Mit Version 1028 der Software zur Messung des Zisternenfüllstandes, kommt neben dem HC-SR04 Ultraschallsensor noch ein zweiter alternativer zu nutzender Sensor dazu. Diesmal ein Time Of Flight (ToF) Laser-Entfernungsmesser vom Typ VL53L0XV2. Die erste Version der Software ist allerdings noch Beta und ich würde mich auf Rückmeldungen zu dem neuen Sensor freuen! In der Webseite [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mit Version 1028 der Software zur Messung des Zisternenfüllstandes, kommt neben dem HC-SR04 Ultraschallsensor noch ein zweiter alternativer zu nutzender Sensor dazu. Diesmal ein Time Of Flight (ToF) Laser-Entfernungsmesser vom Typ VL53L0XV2. Die erste Version der Software ist allerdings noch Beta und ich würde mich auf Rückmeldungen zu dem neuen Sensor freuen!</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/04/20210410_184256-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2021/04/20210410_184256-1024x576.jpg" alt="" class="wp-image-1994" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210410_184256-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>In der Webseite der Software kann in den Einstellungen zwischen den beiden Sensoren gewählt werden. Neu ist zudem noch der frei wählbare Name für den Sensor welcher auf der Sensor-Webseite oben links angezeigt wird. Hiermit kann man nun beim Einsatz mehrerer Sensoren in verschiedenen Zisternen unterscheiden oder auch einen Öltank-Füllstandssensor korrekt benennen.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/04/screenshot_sensorart.png"><img loading="lazy" decoding="async" width="782" height="105" src="http://blog.bubux.de/wp-content/uploads/2021/04/screenshot_sensorart.png" alt="" class="wp-image-1995" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/04/screenshot_sensorart.png 782w, https://www.bubuxblog.de/wp-content/uploads/2021/04/screenshot_sensorart-300x40.png 300w, https://www.bubuxblog.de/wp-content/uploads/2021/04/screenshot_sensorart-768x103.png 768w" sizes="auto, (max-width: 782px) 100vw, 782px" /></a></figure>



<p>Der ToF-Sensor besitzt eine I2C-Schnittstelle und wird an die gleichen PINs wie der Ultraschallsensor angeschlossen. <span class="has-inline-color has-luminous-vivid-orange-color">Es geht aber nicht mit beiden Sensoren parallel, sondern nur der eine oder der andere!</span></p>



<p>Der ToF-Sensor wird wie folgt angeschlossen:</p>



<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>D1</td><td>SCL</td></tr><tr><td>D2</td><td>SDA</td></tr><tr><td>3,3-5V</td><td>VCC</td></tr><tr><td>Masse</td><td>GND</td></tr></tbody></table></figure>



<p>Die beiden übrigen Anschlüsse bleiben frei.</p>



<p><strong>Hier gibt es die neue Version zum Download:</strong><br><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_1028.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_1028.bin</a></p>



<p>Hier findet ihr die vorherigen Artikel zur <a href="http://blog.bubux.de/tag/zisterne/" data-type="post_tag" data-id="119">Zisterne</a> mit den grundlegenden Anleitungen und Anschlussschema.<br></p>



<p></p>



<p>Gruß<br>Chris<br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/zisternenfuellstandsmessung-mit-time-of-flight-sensor/feed/</wfw:commentRss>
			<slash:comments>39</slash:comments>
		
		
			</item>
		<item>
		<title>Gartengerät-Tiere</title>
		<link>https://www.bubuxblog.de/gartengeraet-tiere/</link>
					<comments>https://www.bubuxblog.de/gartengeraet-tiere/#respond</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Fri, 02 Apr 2021 09:13:27 +0000</pubDate>
				<category><![CDATA[Dekoration]]></category>
		<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[Deko]]></category>
		<category><![CDATA[Garten]]></category>
		<category><![CDATA[Gartengeräte]]></category>
		<category><![CDATA[holz]]></category>
		<category><![CDATA[Tiere]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1971</guid>

					<description><![CDATA[Heute nochmal ein analoger Artikel ohne Programmierung, ESP &#38; Co. Meine Eltern haben ein neues Hobby: die Gartengerät-Tiere. Dabei ist meistens der Körper aus mindestens einem Stück eines alten Eichenbalkens und das Geweih, Schnabel, Flügel oder welche Anbeiteile auch immer passen, sind aus Teilen alter Gartengeräte die auch gerne schon verrostet sein dürfen und Moniereisen [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Heute nochmal ein analoger Artikel ohne Programmierung, ESP &amp; Co. Meine Eltern haben ein neues Hobby: die Gartengerät-Tiere. Dabei ist meistens der Körper aus mindestens einem Stück eines alten Eichenbalkens und das Geweih, Schnabel, Flügel oder welche Anbeiteile auch immer passen, sind aus Teilen alter Gartengeräte die auch gerne schon verrostet sein dürfen und Moniereisen u.a. für die Beine. Dabei entstehen sehr dekorative Gesellen*innen die zum Beispiel den Garten bereichern.</p>



<p>Da wäre z.B. &#8222;Der Zwölfender&#8220; mit seinem imposantem (aber verbogenem) Geweih:</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/20210324_163617-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2021/03/20210324_163617-1024x576.jpg" alt="" class="wp-image-1972" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163617-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163617-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163617-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163617-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163617-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/20210328_155205-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2021/03/20210328_155205-1024x576.jpg" alt="" class="wp-image-1981" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/20210328_155205-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210328_155205-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210328_155205-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210328_155205-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210328_155205-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Oder die beiden&#8230;mmmh&#8230; Ziegen, Rehe? Wie auch immer &#8211; ein sehr gut gelungenes Duo!</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/20210324_163659-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2021/03/20210324_163659-1024x576.jpg" alt="" class="wp-image-1976" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163659-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163659-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163659-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163659-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163659-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/20210324_163718-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="576" src="http://blog.bubux.de/wp-content/uploads/2021/03/20210324_163718-1024x576.jpg" alt="" class="wp-image-1974" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163718-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163718-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163718-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163718-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210324_163718-2048x1152.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/03/20210326_162857-scaled.jpg"><img loading="lazy" decoding="async" width="576" height="1024" src="http://blog.bubux.de/wp-content/uploads/2021/03/20210326_162857-576x1024.jpg" alt="" class="wp-image-1978" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/03/20210326_162857-576x1024.jpg 576w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210326_162857-169x300.jpg 169w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210326_162857-768x1365.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210326_162857-864x1536.jpg 864w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210326_162857-1152x2048.jpg 1152w, https://www.bubuxblog.de/wp-content/uploads/2021/03/20210326_162857-scaled.jpg 1440w" sizes="auto, (max-width: 576px) 100vw, 576px" /></a></figure>



<p>Dann noch der Sichel-Tukan mit der auffälligen, namensgebenden Sichel als Schnabel, dem kleinen Fächerbesen als Schwanz und den etwas globigen Holzfüssen damit er auch sicher steht. Heimisch im Taunus!</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2021/04/20210328_155303-scaled.jpg"><img loading="lazy" decoding="async" width="576" height="1024" src="http://blog.bubux.de/wp-content/uploads/2021/04/20210328_155303-576x1024.jpg" alt="" class="wp-image-1990" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/04/20210328_155303-576x1024.jpg 576w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210328_155303-169x300.jpg 169w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210328_155303-768x1365.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210328_155303-864x1536.jpg 864w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210328_155303-1152x2048.jpg 1152w, https://www.bubuxblog.de/wp-content/uploads/2021/04/20210328_155303-scaled.jpg 1440w" sizes="auto, (max-width: 576px) 100vw, 576px" /></a></figure>



<p>Kleines Update: Hier noch der Scherenkopf-Pelikan</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2021/08/threema-20210730-192837074.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="http://blog.bubux.de/wp-content/uploads/2021/08/threema-20210730-192837074.jpg" alt="" class="wp-image-2016" srcset="https://www.bubuxblog.de/wp-content/uploads/2021/08/threema-20210730-192837074.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2021/08/threema-20210730-192837074-225x300.jpg 225w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<p>Dann noch ein schönes Osterwochenende.</p>



<p>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/gartengeraet-tiere/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Update Füllstandsanzeige Zisterne v1024</title>
		<link>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1024/</link>
					<comments>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1024/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Thu, 31 Dec 2020 12:55:33 +0000</pubDate>
				<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Füllstandssensor]]></category>
		<category><![CDATA[Zisterne]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1937</guid>

					<description><![CDATA[Kurz vor Ende des alten Jahres nochmal ein Update für die Software zum Auslesen des Zisternenfüllstandes mittels ESP8266. Die Neuerungen in dieser Version sind folgende: Eine weitere Zisternenbauform (liegender Zylinder) Temperatur- und Luftfeuchterfassung mittels DHT22 Literanzahl, Temperatur und Luftfeuchte mit in die MQTT-Topics aufgenommen Falls ein Temperatursensor angeschlossen und aktiviert ist, werden dessen Messwerte auf [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Kurz vor Ende des alten Jahres nochmal ein Update für die Software zum Auslesen des Zisternenfüllstandes mittels ESP8266. Die Neuerungen in dieser Version sind folgende:</p>



<ul class="wp-block-list"><li><span class="has-inline-color has-luminous-vivid-orange-color">Eine weitere Zisternenbauform (liegender Zylinder)</span></li><li><span class="has-inline-color has-luminous-vivid-orange-color">Temperatur- und Luftfeuchterfassung mittels DHT22</span></li><li><span class="has-inline-color has-luminous-vivid-orange-color">Literanzahl, Temperatur und Luftfeuchte mit in die MQTT-Topics aufgenommen</span></li></ul>



<p>Falls ein Temperatursensor angeschlossen und aktiviert ist, werden dessen Messwerte auf der Startseite angezeigt. Die Anzeige der Temperaturdaten wird alle 60 Sekunden abgefragt und zeigt daher im ersten Moment nach Neustart keine Werte an.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/startseite_1024.png"><img loading="lazy" decoding="async" width="801" height="626" src="http://blog.bubux.de/wp-content/uploads/2020/12/startseite_1024.png" alt="" class="wp-image-1938" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/startseite_1024.png 801w, https://www.bubuxblog.de/wp-content/uploads/2020/12/startseite_1024-300x234.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/startseite_1024-768x600.png 768w" sizes="auto, (max-width: 801px) 100vw, 801px" /></a></figure>



<p>Aktuell kann als Temperatursensor ein DHT22 genutzt werden (weitere Sensoren sind in Arbeit). Aktiviert wird der Sensor in der Konfiguration.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/temp_1024.png"><img loading="lazy" decoding="async" width="1024" height="85" src="http://blog.bubux.de/wp-content/uploads/2020/12/temp_1024-1024x85.png" alt="" class="wp-image-1939" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024-1024x85.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024-300x25.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024-768x64.png 768w, https://www.bubuxblog.de/wp-content/uploads/2020/12/temp_1024.png 1120w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die neuen MQTT-Topics können ebenfalls in der Konfiguration hinterlegt werden.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/mqtt_1024.png"><img loading="lazy" decoding="async" width="962" height="314" src="http://blog.bubux.de/wp-content/uploads/2020/12/mqtt_1024.png" alt="" class="wp-image-1940" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/mqtt_1024.png 962w, https://www.bubuxblog.de/wp-content/uploads/2020/12/mqtt_1024-300x98.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/mqtt_1024-768x251.png 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></a></figure>



<p>Die neue Zisternenbauform ist auch in der Konfiguration zu finden. Die Berechnung funktioniert bei einer runden liegenden Zisterne. Eine ovale Form wird aktuell nicht unterstützt.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2020/12/sensordaten_1024.png"><img loading="lazy" decoding="async" width="1024" height="252" src="http://blog.bubux.de/wp-content/uploads/2020/12/sensordaten_1024-1024x252.png" alt="" class="wp-image-1941" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024-1024x252.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024-300x74.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024-768x189.png 768w, https://www.bubuxblog.de/wp-content/uploads/2020/12/sensordaten_1024.png 1126w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><span class="has-inline-color has-vivid-red-color"><strong>Hier gibt es die aktuelle Version zum Download:</strong><br><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></span></p>



<p>Für den genauen Aufbau (Anschluss Sensor, Anschluss Diplay etc.) bitte die <a href="http://blog.bubux.de/neue-version-der-fuellstandsanzeige-zisterne/" data-type="post" data-id="1868" target="_blank" rel="noreferrer noopener">vorherigen Artikel</a> beachten.</p>



<p>Dann euch noch einen guten Rutsch ins neue Jahr!</p>



<p>Gruß</p>



<p>Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/update-fuellstandsanzeige-zisterne-v1024/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Neue Version der Füllstandsanzeige Zisterne</title>
		<link>https://www.bubuxblog.de/neue-version-der-fuellstandsanzeige-zisterne/</link>
					<comments>https://www.bubuxblog.de/neue-version-der-fuellstandsanzeige-zisterne/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 14 Jun 2020 16:30:05 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[Füllstandssensor]]></category>
		<category><![CDATA[Zisterne]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1868</guid>

					<description><![CDATA[Mal wieder lange nichts passiert hier im Blog&#8230;. jetzt fange ich einen Artikel schon wieder so an&#8230; Ich hatte das Glück auch zu Beginn der Corona-Zeit relativ normal Arbeiten gehen zu können was bis heute so geblieben ist. Das mit dem &#8222;Glück&#8220; ist absolut ernst gemeint wenn ich da so einige gute Bekannte sehe die [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mal wieder lange nichts passiert hier im Blog&#8230;. jetzt fange ich einen Artikel schon wieder so an&#8230;</p>



<p>Ich hatte das Glück auch zu Beginn der Corona-Zeit relativ normal Arbeiten gehen zu können was bis heute so geblieben ist. Das mit dem &#8222;Glück&#8220; ist absolut ernst gemeint wenn ich da so einige gute Bekannte sehe die ganz schön zu knabbern hatten und immer noch haben.</p>



<p>Auffallend war aber, dass es in den letzten Monaten sehr viel mehr Anfragen bzgl. der Füllstandmessung der Zisterne mit dem ESP gab. Daher heute nochmal eine neue Version mit vielen größeren und kleineren Neuerungen.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="798" height="514" src="http://blog.bubux.de/wp-content/uploads/2020/06/zisterne_balken-2.png" alt="Screenshot Hauptseite" class="wp-image-1881" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/zisterne_balken-2.png 798w, https://www.bubuxblog.de/wp-content/uploads/2020/06/zisterne_balken-2-300x193.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/zisterne_balken-2-768x495.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></figure>



<h2 class="wp-block-heading">Neuerungen in dieser Version (1022)</h2>



<ul class="wp-block-list"><li>Länge des WLAN-Passwortes auf 63 Zeichen verlängert (max. bei WPA2)</li><li>Unterstützung unterschiedlicher Zisternenformen</li><li>Integration von Displays</li><li>Optionale tägliche Info per Pushover</li><li>Weiterer Topic (Abstand) für MQTT hinzugefügt</li><li>viele Kleinigkeiten&#8230;</li></ul>



<span id="more-1868"></span>



<p><span class="has-inline-color has-vivid-red-color">Achtung! Aufgrund der Anpassung der maximalen Länge des Passwortes werden bei <span style="text-decoration: underline;">einem Update</span> einer alten Version bereits vorhandene Konfigurationsdaten (z.B. Sensorabstände) im Speicher des ESP nach hinten geschoben und gehen dadurch verloren. Daher die Werte vorher merken!</span></p>



<p>Die Anleitung zur Installation der Software auf dem ESP und der grundsätzlichen Funktionen sind in einem älteren Artikel, der <a rel="noreferrer noopener" href="http://blog.bubux.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/" target="_blank">hier zu finden ist</a> beschrieben.</p>



<p>Danach gab es noch zwei Artikel mit weiteren Hinweisen zu <a rel="noreferrer noopener" href="http://blog.bubux.de/fuellstandsmessung-der-zisterne-mittels-eps8266-update/" target="_blank">JSON </a>und <a rel="noreferrer noopener" href="http://blog.bubux.de/die-zisterne-lernt-mqtt/" target="_blank">MQTT</a>. Das neue MQTT-Topic für den Abstand in dieser Version funktioniert analog zu dem bisherigen für den Füllstand.</p>



<hr class="wp-block-separator"/>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p style="background-color:#eeeeee;padding:15px;"><b>Hier gibt es die aktuelle Version zum Download:</b><br>
<a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></p>
</div></div>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">Externe Displays</h2>



<p>Diesmal habe ich bei der Entwicklung anstatt der bisherigen &#8222;One-Man-Show&#8220; nette Unterstützung gehabt. Vor allem bei der Integration der Displays. <span class="has-inline-color has-luminous-vivid-orange-color">Vielen Dank an Patrick für Deine Arbeit und Hilfe!</span></p>



<p>Aktuell stehen drei Displays zur Auswahl, die an den ESP angeschlossen werden können:</p>



<ul class="wp-block-list"><li>1602 LCD mit I2C mit 2&#215;16 Zeichen</li><li>1604 LCD mit I2C mit 4&#215;16 Zeichen</li><li>SSD 1106 oder 1306 OLED mit 128&#215;64 Pixel</li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="131" src="https://i1.wp.com/blog.bubux.de/wp-content/uploads/2020/06/display_konfig.png?fit=768%2C84" alt="Auswahl der Displays in der Konfiguration" class="wp-image-1884" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/display_konfig.png 1200w, https://www.bubuxblog.de/wp-content/uploads/2020/06/display_konfig-300x33.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/display_konfig-1024x112.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/06/display_konfig-768x84.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<p>Die Displays zeigen neben Informationen zum Füllstand auch Informationen zur Verbindung mit dem voreingestelltem WLAN während des Boot-Vorganges. Ersteres Display ist die preisgünstigste Alternative und reicht für alle wichtigen Infos.</p>



 [<a href="https://www.bubuxblog.de/neue-version-der-fuellstandsanzeige-zisterne/">See image gallery at www.bubuxblog.de</a>] 



<p>In den Bildern von Patrick ist auch zu sehen wie ein Aufbau der Elektronik aussehen kann. Sehr schön gemacht! </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2560" height="1440" src="https://i0.wp.com/blog.bubux.de/wp-content/uploads/2020/06/IMG_20200529_170420-scaled.jpg?fit=768%2C432" alt="Display in Gehäuse" class="wp-image-1899" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG_20200529_170420-scaled.jpg 2560w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG_20200529_170420-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG_20200529_170420-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG_20200529_170420-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG_20200529_170420-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG_20200529_170420-2048x1152.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></figure>



<p>Bei mir schaut das seit der Inbetriebnahme wie folgt aus und ist im Holzschuppen untergebracht:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2560" height="1440" src="https://i2.wp.com/blog.bubux.de/wp-content/uploads/2020/06/20200614_153818-scaled.jpg?fit=768%2C432" alt="Installation in Holzraum" class="wp-image-1903" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/20200614_153818-scaled.jpg 2560w, https://www.bubuxblog.de/wp-content/uploads/2020/06/20200614_153818-300x169.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/20200614_153818-1024x576.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/06/20200614_153818-768x432.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2020/06/20200614_153818-1536x864.jpg 1536w, https://www.bubuxblog.de/wp-content/uploads/2020/06/20200614_153818-2048x1152.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></figure>



<p>Hier das Anschluss-Schema inkl. optionalem Display. Der ebenso optionale Taster dient zum Aktivieren der Hintergrundbeleuchtung des Displays. Der Widerstand am Taster sollte mit 10kΩ gewählt werden.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1482" height="1254" src="https://i2.wp.com/blog.bubux.de/wp-content/uploads/2020/06/IMG-20200604-WA0001.jpg?fit=768%2C650" alt="Anschlussschema für Sensor, Display und Taster" class="wp-image-1879" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG-20200604-WA0001.jpg 1482w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG-20200604-WA0001-300x254.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG-20200604-WA0001-1024x866.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/06/IMG-20200604-WA0001-768x650.jpg 768w" sizes="auto, (max-width: 1482px) 100vw, 1482px" /></figure>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">Zisternenformen</h2>



<p>Neben der bisher zylindrischen Zisternenform werden nun auch Zisternen mit anderen Grundflächen unterstützt. Die Berechnung des Füllstandes kann zudem basierend auf dem Maximalvolumen erfolgen. Voraussetzung für alle Berechnungen ist aber eine Form mit senkrechten Wänden.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="942" height="262" src="http://blog.bubux.de/wp-content/uploads/2020/06/zisternenformen.png" alt="Konfiguration der Zisternenformen" class="wp-image-1883" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/zisternenformen.png 942w, https://www.bubuxblog.de/wp-content/uploads/2020/06/zisternenformen-300x83.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/zisternenformen-768x214.png 768w" sizes="auto, (max-width: 942px) 100vw, 942px" /></figure>



<hr class="wp-block-separator"/>



<h2 class="wp-block-heading">Pushover Notifications</h2>



<p>Auch wenn Pushover nicht kostenlos ist (die App selber, Versand der Nachrichten bis zu einer gewissen Menge (7400) schon), bietet es eine einfache und schnelle Möglichkeit Infos auf ein Handy zu senden die ich u.a auch schon im <a rel="noreferrer noopener" href="http://blog.bubux.de/raspberry-pi-heimautomatisierung-mit-coc-und-fhem/" target="_blank">Homematic-Umfeld</a> einsetze. Daher fand es auch Einzug in die Software zur Füllstandsanzeige.</p>



<p>Um Pushnachrichten senden zu können müssen die beiden Token die man in der App oder nach Login auf der Pushover-Webseite findet in der Konfiguration eingetragen werden.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="139" src="http://blog.bubux.de/wp-content/uploads/2020/06/Bildschirmfoto-zu-2020-06-14-16-20-24-1024x139.png" alt="Konfiguration von Pushover" class="wp-image-1905" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/Bildschirmfoto-zu-2020-06-14-16-20-24-1024x139.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Bildschirmfoto-zu-2020-06-14-16-20-24-300x41.png 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Bildschirmfoto-zu-2020-06-14-16-20-24-768x105.png 768w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Bildschirmfoto-zu-2020-06-14-16-20-24-1536x209.png 1536w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Bildschirmfoto-zu-2020-06-14-16-20-24.png 1734w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="395" src="http://blog.bubux.de/wp-content/uploads/2020/06/Screenshot_Pushover-e1592147224690-1024x395.jpg" alt="Screenshot Beispiel Pushover Nachricht" class="wp-image-1908" srcset="https://www.bubuxblog.de/wp-content/uploads/2020/06/Screenshot_Pushover-e1592147224690-1024x395.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Screenshot_Pushover-e1592147224690-300x116.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Screenshot_Pushover-e1592147224690-768x297.jpg 768w, https://www.bubuxblog.de/wp-content/uploads/2020/06/Screenshot_Pushover-e1592147224690.jpg 1080w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator"/>



<p>Viel Spaß mit der neuen Version und nochmal Danke an Patrick!</p>



<p>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/neue-version-der-fuellstandsanzeige-zisterne/feed/</wfw:commentRss>
			<slash:comments>95</slash:comments>
		
		
			</item>
		<item>
		<title>Füllstandsmessung der Zisterne mittels ESP8266 (NodeMCU) und Ultraschallsensor</title>
		<link>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/</link>
					<comments>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Fri, 28 Dec 2018 13:55:13 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Füllstand]]></category>
		<category><![CDATA[Messung]]></category>
		<category><![CDATA[NodeMCU]]></category>
		<category><![CDATA[SR04]]></category>
		<category><![CDATA[Ultraschall]]></category>
		<category><![CDATA[Zisterne]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1699</guid>

					<description><![CDATA[Update vom 14.06.2020 hier Heute nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt. Zu den alten Artikeln geht es hier und hier. Im folgenden werden alle notwendigen Schritte beschrieben [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><span class="has-inline-color has-luminous-vivid-orange-color">Update vom 14.06.2020 <a href="http://blog.bubux.de/neue-version-der-fuellstandsanzeige-zisterne/">hier</a></span></p>



<p>Heute nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt.</p>



<p>Zu den alten Artikeln geht es <a rel="noreferrer noopener" aria-label="hier  (opens in a new tab)" href="http://blog.bubux.de/homematik-zisterne/" target="_blank">hier </a>und <a rel="noreferrer noopener" aria-label="hier (opens in a new tab)" href="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/" target="_blank">hier</a>.</p>



<p>Im folgenden werden alle notwendigen Schritte beschrieben um die Firmware auf den ESP8266 zu flashen und den Sensor in Betrieb zu nehmen.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Benötigte Hardware</h2>



<p>Die benötigte Hardware besteht aus einem NodeMCU mit ESP8266 und einem HC-SR04 Ultraschallsensor. Die Beschaltung folgt weiter unten.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/20181228_125117-2-1024x643.jpg" alt="NodeMCU" class="wp-image-1755" width="256" height="161"/></figure></div>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/20181228_125052-1-1024x733.jpg" alt="HC-SR04 Ultraschallsensor" class="wp-image-1753" width="256" height="183"/></figure>



<p>Dann noch ein mindestens vieradriges Kabel und ein Gehäuse zur Unterbringung des Ultraschallsensors in der Zisterne z.B. eine kleine Aufputzdose aus dem Baumarkt.</p>



<span id="more-1699"></span>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Firmware installieren</h2>



<p>Zur Installation der Firmware auf dem ESP8266 muss zuerst die Arduino Software auf einem PC installiert werden. Diese ist für Linux, Windows und MAC unter <a href="https://www.arduino.cc/en/main/software">https://www.arduino.cc/en/main/software</a> verfügbar.</p>



<hr class="wp-block-separator"/>



<p>Um in der Arduino IDE den ESP8266 nutzen zu können, muss in den Einstellungen (Datei -&gt; Voreinstellungen) in das Feld „Zusätzliche Boardverwalter URLs“ folgende URL eingetragen werden: <em>http://arduino.esp8266.com/stable/package_esp8266com_index.json</em><br></p>



<hr class="wp-block-separator"/>



<p>Dann unter  „Werkzeuge -&gt; Board … -&gt; Boardverwalter&#8230;“ nach „esp8266“ suchen und „esp8266 by ESP8266 Community“ installieren. Hiermit werden u.a. die Tools zum flashen der Firmware auf den ESP8266 installiert.</p>



<hr class="wp-block-separator"/>



<p>Herunterladen der aktuellsten Firmware für die Füllstandmessung der Zisterne <a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a>.</p>



<hr class="wp-block-separator"/>



<p>Den NodeMCU mit dem Rechner verbinden. In der Arduino IDE unter  „<em>Werkzeuge -&gt; Port&#8220;</em> den COM-Port des NodeMCU ermitteln. Das Flashen der Firmware funktioniert leider nicht direkt aus der Arduino IDE heraus. Hierfür muss die Kommandozeile bemüht werden:</p>



<p><strong>Flashen des ESP8266 unter Windows</strong></p>



<p>Unter Windows dazu die Kommandozeile öffnen (cmd.exe) und dort den folgenden Befehl eingeben:</p>



<p> %USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.8\esptool.exe  -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp <em>COMXY</em> -cf <em>Pfad_zur_Firmwaredatei</em></p>



<p>Wichtig: Die Versionsnummer des <em>esptool </em>kann ggf. abweichen, das Device hinter <em>-cp</em> (<em>COMxy</em>) muss entsprechend angepasst werden sowie der Pfad zur Firmwaredatei muss entsprechend angepasst werden.</p>



<p><strong>Flashen des ESP8266 unter Linux</strong></p>



<p>Auf der Kommandozeile folgenden Befehl ausführen:</p>



<p>~/.arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp <em>/dev/ttyxxxx</em> -cf&nbsp;<em>Pfad_zur_Firmwaredatei</em></p>



<p>Wichtig: Die Versionsnummer des esptool kann ggf. abweichen, das Device hinter <em>-cp</em> muss entsprechend angepasst werden sowie der Pfad zur Firmwaredatei muss entsprechend  angepasst  werden.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Anschluss des Sensors</h2>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_nodemcu.jpg" alt="" class="wp-image-1659" width="241" height="186" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu.jpg 963w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-300x232.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-768x593.jpg 768w" sizes="auto, (max-width: 241px) 100vw, 241px" /></figure></div>



<p>Von HC-SR04 an NodeMCU:</p>



<p>Vcc an VU<br>Gnd an GND<br>Trig an D2<br>Echo an D1</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Inbetriebnahme</h2>



<p>Ist die Firmware auf den NodeMCU geflasht und der SR04-Ultraschallsensor angeschlossen, kann die Inbetriebnahme erfolgen. Dazu den Sensor mit Strom versorgen.</p>



<hr class="wp-block-separator"/>



<p>Der Sensor versucht sich mit einem konfigurierten WLAN zu verbinden. Funktioniert dies nicht (was bei der ersten Inbetriebnahme der Fall ist), erstellt der Sensor einen WLAN Accesspoint mit dem Namen  „<em>WLAN-Zisterne</em>&#8220; der z.B. im Smartphone gefunden werden sollte. Mit diesem WLAN verbinden.</p>



<hr class="wp-block-separator"/>



<p>Nun im Browser des verbundenen Gerätes die Adresse <em>http://192.168.4.1</em> aufrufen. Diese Adresse wird in der Regel auch in den Verbindungseinstellungen des verbundenen WLAN angezeigt und verlinkt. Es öffnet sich nun die Konfigurationsseite des Sensors.</p>



<hr class="wp-block-separator"/>



<p>Dort die SSID und das Passwort des Heim-WLAN eingeben und auf &#8222;Konfiguration speichern&#8220; klicken. Die weiteren Einstellungen können später erfolgen.</p>



<hr class="wp-block-separator"/>



<p>Der Sensor startet daraufhin neu und versucht sich mit dem Heim-WLAN zu verbinden. War dies erfolgreich ist der Accesspoint nicht mehr erreichbar und des Sensor sollte eine IP-Adresse im Netzwerk zugewiesen bekommen haben. Diese kann im Router nachgeschaut werden )in der Friztbox z.B. unter &#8222;<em>Heimnetz -&gt; Netzwerk</em>&#8222;).</p>



<hr class="wp-block-separator"/>



<p>Ist der Accespoint „<em>WLAN-Zisterne</em>&#8220; weiterhin sichbar, war die Verbindung mit den Heim-WLAN nicht erfolgreich. Dann die obigen Schritte erneut ausführen.<br></p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Betrieb</h2>



<p>Die Oberfläche des Sensor ist nun im Browser nach Eingabe der IP-Adresse verfügbar. Für den weiteren Betrieb müssen zuerst weitere Einstellungen vorgenommen werden. Dazu den Bereich &#8222;<em>Sonstiges</em>&#8220; aufklappen und auf &#8222;<em>Konfiguration&#8220;&nbsp;</em>klicken.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_sensor_all.png" alt="" class="wp-image-1703" width="260" height="443" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor_all.png 519w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor_all-176x300.png 176w" sizes="auto, (max-width: 260px) 100vw, 260px" /></figure></div>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/konfig_sensor.png" alt="" class="wp-image-1705" width="260" height="443" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/konfig_sensor.png 519w, https://www.bubuxblog.de/wp-content/uploads/2018/12/konfig_sensor-176x300.png 176w" sizes="auto, (max-width: 260px) 100vw, 260px" /></figure>



<p><strong>Einstellungen des Sensors</strong></p>



<p>Unter <em>&#8222;Abstand Sensor/Boden&#8220;</em> muss der Abstand in Zentimeter zwischen Sensor und Boden der Zisterne angegeben werden. Unter <em>&#8222;Abstand Sensor/Max. Höhe&#8220;</em> muss der Abstand zwischen Sensor und Wasseroberfläche bei maximalen Wasserstand angebenen werden. Ist die Zisterne nicht voll, kann der Wert auch jederzeit korrigiert werden</p>



<hr class="wp-block-separator"/>



<p><strong>Daten an eigene API übergeben</strong></p>



<p>Die Daten des Sensors können an eine eigene Schnittstelle übergeben werden. Hierzu kann ein Server, Port und der Pfad angegeben werden. Die Sensordaten werden als Argumente in der URL angehangen. So kann z.B. ein PHP-Script auf dem Server aufgerufen werden welches die angehangenen Argumente empfängt und weiter verarbeitet (z.B. an FHEM übergibt oder in eine Datenbank schreibt.</p>



<p>Update 20.07.2019</p>



<p>Die URL für die eigene API kann mit zwei Variablen frei definiert werden. Dazu die Variablen &#8222;_abstand&#8220; und &#8222;_fuellstand&#8220; in einer beliebigen URL nutzen. Im NodeMCU werden die beiden Platzhalter durch die echten Werte ersetzt.</p>



<p>Zum Beispiel wird aus der konfigurierten URL:<br><em>/umwelt/zisterne_neu.php?abstand=_abstand&amp;fuellstand=_fuellstand</em><br>beim Aufruf der eigenen API dann:<br><em>/umwelt/zisterne_neu.php?abstand=29&amp;fuellstand=100.00&amp;vcc=2.75 </em></p>



<p>Hier ein Beispielscript welches das Schreiben der Werte in eine Textdatei und in eine MySQL-Datenbank vornimmt sowie die Übergabe der Werte an eine FHEM-Installation:</p>



<pre class="wp-block-code"><code>&lt;?php

$fuellstand=$_GET&#91;"fuellstand"];
$abstand=$_GET&#91;"abstand"];
$vcc=$_GET&#91;"vcc"];

//*************************
// Werte in Datei schreiben
//*************************
$datum = date("d.m.Y H:i");
$handle = fopen ('zisterne.txt', 'a');
fwrite ($handle, $datum.",".$fuellstand.",".$abstand."\n");
fclose ($handle);

//****************************
//Werte in Datenbank schreiben
//****************************
$servername = "localhost";
$username = "benutzer";
$password = "passwort";
$dbname = "dbname";

$connection = new mysqli($servername, $username, $password, $dbname);
if ($connection->connect_error) {
        die("Connection failed: " . $connection->connect_error);
}
$sql = "INSERT INTO zisterne (timestamp,fuellstand,spannung) VALUES (CURRENT_TIMESTAMP,$fuellstand,$vcc)";
if ($connection->query($sql) === TRUE) {
        //echo "INSERT war erfolgreich";
} else {
        echo "Error: " . $sql . "&lt;br>" . $connection->error;
}

//***********************
//Werte an FHEM übergeben
//***********************
$fhemhost = "192.168.178.1";
$fhemport = 7072;
$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneFuellstand ".$fuellstand."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);

$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneSpannung ".$vcc."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);
?></code></pre>



<hr class="wp-block-separator"/>



<p><strong>Daten an bubux.de übergeben</strong></p>



<p>Steht kein eigener Server zur Historisierung der Daten zur Verfügung, können die gemessenen Werte an bubux.de gesendet werden. Dort ist (aktuell) eine Auswertung des letzten 30 Tage verfügbar und wird graphisch dargestellt. Nach der Aktivierung mittels der Checkbox ist ein entsprechender Link auf der Startseite des Sensors verfügbar.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378.png" alt="" class="wp-image-1704" width="389" height="422" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378.png 518w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378-277x300.png 277w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<p>Es werden der prozentuale Füllstand, die MAC-Adresse zur Zuordnung der Daten, die lokale IP des Sensors zur Verlinkung von der Webseite auf bubux.de zur Webseite des Sensors und die Version der Firmware übergeben.</p>



<hr class="wp-block-separator"/>



<p><strong>Startseite des Sensors</strong></p>



<p>Sind alle Einstellungen vorgenommen kann der Sensor genutzt werden. Auf der Startseite werden der prozentuale Füllstand und der aktuelle Abstand zwischen Sensor und Wasseroberfläche angezeigt.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286.png" alt="" class="wp-image-1702" width="389" height="463" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286.png 518w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286-252x300.png 252w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Einbau</h2>



<p>Da der Einbau je nach Zisterne individuell ist, will ich nicht viel Worte darüber verlieren. Nur soviel, das ich den Sensor in ein Baumarkt-Aufputzdose gepackt habe und mit Heißkleber &#8222;vergossen&#8220; haben. Harz wäre wahrscheinlich besser gewesen, aber der Sensor funktioniert bisher einwandfrei. Der Sensor hängt nach unten an einem Brett in der Zisterne. Der NodeMCU ist an ein etwa 6m langes Kabel angeschlossen und ist in einem Lagerräumchen untergebracht.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg" alt="" data-id="1653" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103325/" class="wp-image-1653" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg" alt="" data-id="1652" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103233/" class="wp-image-1652" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg" alt="" data-id="1651" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103143/" class="wp-image-1651" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>Ich würde mich über Rückmeldungen (Fehler, Verbesserungswünsche, &#8230;) bzgl. der neuen Firmwareversion freuen. Todo wäre noch die Daten per JSON abrufbar zu machen und z.B. ein Plugin für FHEM zu bauen.</p>



<p>Viel Spaß beim basteln!</p>



<p>Chris<br></p>



<p><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/feed/</wfw:commentRss>
			<slash:comments>118</slash:comments>
		
		
			</item>
	</channel>
</rss>
