BastelprojekteESP8266ioBroker

ESP8266 Medienkoppler für ioBroker

Im folgenden Artikel zeige ich Dir, wie Du einen einfachen Medienkoppler für Tür- und Fensterkontakte oder andere Schalter und Taster für ioBroker aufbauen und programmieren kannst.

Über eine Anfrage eines Besuchers meiner Webseite bekam ich die Idee für ioBroker eine Art Medienkoppler für Tür- und Fensterkontakte oder sonstige Schalter und Taster zu entwickeln. In der Anfrage ging es um die Einbindung von ca. 30 Tür- und Fensterkontakten (Reed-Kontakte) in ioBroker. Alle Kontakte laufen zentral an einer Alarmanlage zusammen, und sollen hier auch an den Medienkoppler übergeben werden. In ioBroker können die einzelnen Status dann ausgewertet oder über Blockly auf Veränderungen reagiert werden. Im Artikel zeige ich Dir die Entwicklung und Umsetzung des Medienkopplers. Der Schwierigkeitsgrad des Projektes ist „mittel“, da hier doch einige Lötarbeiten durchgeführt werden müssen.

Inhaltsverzeichnis

Einleitung
Eingesetzte Produkte und Bauteile
Funktionsweise
Vorbereitungen in ioBroker
Aufbau der Schaltung
Programmierung des ESP8266 Mikrocontrollers
Inbetriebname
Fazit

Einleitung

Wie schon oben kurz erwähnt, sollen mit dem Medienkoppler ca. 30 Tür- und Fensterkontakte in ioBroker integriert werden. An den jeweiligen Türen oder Fenstern wurden dazu Reed-Kontakte verbaut, welche zentral an einem Ort zusammenlaufen. Reed-Kontakte können über einen ESP8266-Mikrocontroller relativ einfach abgefragt und somit auch z.B. über MQTT in ioBroker integriert werden. Im hier verlinkten Artikel habe ich bereits den Aufbau und die Programmierung dokumentiert. Die Problematik bei diesem Projekt war die Anzahl von ca. 30 oder mehr Reed-Kontakten in Verbindung mit dem ESP8266 Mikrocontroller. Um mit dem Mikrocontroller diese Anzahl von Reed-Kontakte verarbeiten zu können, setze ich hier sogenannte Port-Expander Mikrocontroller ein. Im hier gezeigten Projekt können wir damit mit 3 MCP23017 Port-Expandern bis zu 48 Tür- und Fensterkontakte integrieren.

Eingesetzte Produkte und Bauteile

Verwende Projekte für den Test- und Versuchsaufbau

Beispiel-Kontakt z.B. für Fenster, Türen oder Tore

Funktionsweise

Der Status (Offen / Geschlossen) der einzelnen Tür- und Fensterkontakte werden über Reed-Kontakte erfasst. Der beiden Kontakte des Reed-Kontakts werden bei einem geschlossenen Fenster über einen im Fenster integrierten Magneten geschlossen. Wenn die Tür oder das Fenster geöffnet wurde, wird der Kontakt unterbrochen. In unserem Projekt werden wir den Status über den Mikrocontroller abfragen und bei einer Veränderung per MQTT-Protokoll an ioBroker übermitteln. Das Projekt ist somit wirklich relativ einfach umzusetzen.

Vorbereitungen in ioBroker

Für die spätere Anbindung des Medienkopplers an ioBroker müssen wir in ioBroker den MQTT-Broker Adapter installieren und einrichten. Die Installation und Konfiguration habe ich bereits in einem anderen Artikel beschrieben, daher werde ich hier nicht weitere auf das Thema eingehen.

Aufbau der Schaltung

Im folgenden Schema siehst Du den Aufbau der Schaltung. Ich habe hier die drei MCP23017 Komponenten nebeneinander platziert. Um den Aufbau zu vereinfachen, habe ich die 16 Reed-Kontakte nur an dem ersten Port-Expander eingezeichnet. Diese können dann an den restlichen Port-Expandern genauso angeschlossen werden. Die Read-Kontakte ziehen im geschlossenen Zustand die Pins GPA0 bis GPA7 sowie GPB0 bis GPB7 auf LOW (GND). Wenn der Kontakt geöffnet ist, liegt durch den internen PullUp-Widerstand wieder HIGH an. Die MCP23017 Expander werden gemeinsam verbunden an den Pins D2 und D1 für den I2C-Bus angeschlossen. Zudem erhalten die MCP23017 Expander eine 3,3V und GND-Verbindung über den Wemos (ESP8266 Mikrcontroller). Der Reset-Pin wird grundsätzlich auf HIGH (3V) gezogen und über die Pins A0 bis A2 wird für jeden MC23017 eine eindeutige Hardware-Adresse generiert.

Den Prototyp habe ich dann wie folgt aufgebaut. Für die einzelnen Pins habe ich unten zwei Reihen von Kontakten aufgelötet, welche dann mit den Reed-Kontakten oder anderen Kontakt-Sensoren (z.B. Schalter oder Taster) verbunden werden können.

Programmierung des ESP8266 Mikrocontrollers

Für die Verwendung der Adafruit MCP23017 Bibliothek müssen wir diese zunächst über den Bibliotheksverwalter installieren.

Die Programmierung des ESP8266 Mikrocontrollers wurde mit der ArduinoIDE durchgeführt. Im Download findest Du den Sketch, welchen Du noch im folgenden Bereich anpassen musst.

ioBroker Medienkoppler Sketch (956 Downloads)

Solltest Du mehrere Medienkoppler einsetzen, muss die clientId für jeden Medienkoppler eindeutig definiert sein. Als ssid und password wählst Du Deine WIFI-Zugangsdaten. In der Variable mqtt_server trägst Du die IP-Adresse von ioBroker oder alternativ einen andere MQTT-Broker Adresse ein. Als Port habe ich hier den Standard-Port 1883 verwendet. Weitere Anpassungen sind im Sketch nicht erforderlich.

Im Sketch wird über die setup Funktion zunächst eine WIFI-Verbindung hergestellt. Nach dem Herstellen der WIFI-Verbindung werden dann die Port-Expander initialisiert. Dazu wird die Begin Funktion mit der jeweiligen Adresse aufgerufen (5,6 und 7). Im nächsten Schritt wird dann über die Funktion connectToMQTT eine Verbindung zum MQTT-Broker hergestellt. Abschließend werden nun die einzelnen Ports der 3 Port-Expander auf den PortMode INPUT gesetzt und zudem an jedem Port ein virtueller PullUp-Widerstand aktiviert.

In der Loop Funktion wird im ersten Schritt die Verbindung zum MQTT-Broker geprüft und gegeben falls ein Reconnect durchgeführt. Im nächsten Schritt werden dann die Ports auf Änderungen geprüft und dann per MQTT-Publish die Werte zum Broker übermittelt.

Nach der Anpassungen an der Konfiguration können wir den Sketch dann über folgende Konfiguration auf den WEMOS Flashen. Hier kann natürlich auch ein anderes ESP8266 Modul verwendet werden.

Inbetriebnahme

Nach dem Flashen und Starten des Medienkopplers werden nun nach wenigen Sekunden die folgenden Datenpunkte in den ioBroker MQTT Objekten zu finden sein. In den Ordnern m1, m2 und m3 findest Du die Kontakte p00 bis 015 (16 Kontakte je Modul). Wenn die Kontakte geöffnet sind, steht der Wert „false“ im Datenpunkt. Wird der Datenpunkt geschlossen, sprich werden die Kontakt-Pins verbunden, wird der Wert „true“ in den Datenpunkt geschrieben.

Fazit

Der Prototyp läuft bei mir jetzt seit mehreren Tagen problemlos. Der Kontaktstatus wird zuverlässig an ioBroker übertragen und quasi in Echtzeit dargestellt. Ich bin mit dem gesamten Projekt soweit zufrieden und hab es daher in Form eines Bauberichts veröffentlicht. Der einzige Nachteil sind die umfangreichen Löt- und Verkabelungsarbeiten für die einzelnen Pins der Port-Expander. Hier bin ich aber aktuell schon dabei eine kleine Platine zu entwerfen, mit dem dann nur noch Lötarbeiten durchgeführt werden müssen.

Ich hoffe Dir gefällt der Artikel. Über Kommentare, Anregungen oder Ideen freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

10 Gedanken zu „ESP8266 Medienkoppler für ioBroker

  • Andreas

    Hallo Matthias,
    mein besonderer Dank für die Umsetzung dieses Projekt. Ich freue mich, dass ich dein Interesse dafür wecken konnte. Es bringt mir (und sicherlich auch vielen anderen Nutzern mit festverdrahteten Alarmanlagen) einen enormen Komfortgewinn. Durch die Einbindung einer Vielzahl simpler Reed-Kontakte in das Smart-Home-System wird die sichere Zustandskontrolle von Türen und Fenstern ein Kinderspiel. Das zur Verfügung stellen der Zustandsvariablen via MQTT in ioBroker (via WLAN) bietet sehr viele Möglichkeiten und spart zudem eine enorme Menge Geld, da keine neuen batteriebetriebenen Funksender an Türen und Fenstern installiert werden müssen. Vielen Dank.

    Ich freue mich auf weitere interessante Projekte hier in deinem Blog.

    Beste Grüße
    Andreas

    Antwort
    • Matthias Korte

      Moin Andreas,

      sehr gerne, vielen Dank für die Idee und Anregung von Dir. Ich freue mich zudem über Deine Rückmeldung 🙂

      LG Matthias

      Antwort
  • Patrick Salm

    Hi Matthias,

    Cooles Projekt und wirklich gut beschrieben. Bei einem Textstück bin ich aber ein wenig verwirrt, du schreibst „Der Reset-Pin wird grundsätzlich auf Masse gezogen“, auf dem Schaltplan darunter ist am betreffenden Pin aber überall Plus angeschlossen, was stimmt denn jetzt? Text oder Schaltplan?

    Viele Grüsse
    Patrick

    Antwort
    • Matthias Korte

      Moin Patrick,

      danke für den Hinweis, der Schaltplan ist korrekt, im Text ist ein Fehler. Der Reset-Pin muss auf HIGH (3V) gezogen werden.

      LG Matthias

      Antwort
  • Bohlscheid Andreas

    Hallo Matthias,

    sehr schönes Projekt! Eine Frage: spielt die Kabellänge/der Leitungswiderstand zu den reed Kontakten eine wesentliche Rolle? Wie lang ist deine „längste Leitung“ ?

    viele Grüße und schönes Fest..

    Andreas

    Antwort
  • Norbert Lemmen

    Hallo Matthias,
    dein Projekt gefällt mir sehr gut, ich habe selber versucht Lösungsmöglichkeiten für dieses „Problem“ zu finden. Leider erfolglos. Nun habe ich folgendes Problem und weiß nicht weiter, kannst Du mir da weiter helfen?

    Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: „LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 921600“

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware -hardware C:\Users\nobtu\Documents\ArduinoData\packages -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\tools-builder -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware\tools\avr -tools C:\Users\nobtu\Documents\ArduinoData\packages -built-in-libraries C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\libraries -libraries C:\Users\nobtu\Documents\Arduino\libraries -fqbn=esp8266:esp8266:d1_mini:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=921600 -vid-pid=1A86_7523 -ide-version=10819 -build-path C:\Users\nobtu\AppData\Local\Temp\arduino_build_831875 -warnings=none -build-cache C:\Users\nobtu\AppData\Local\Temp\arduino_cache_615484 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.xtensa-lx106-elf-gcc-3.0.4-gcc10.3-1757bed.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mkspiffs.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mkspiffs-3.0.4-gcc10.3-1757bed.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.python3.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\python3\3.7.2-post1 -prefs=runtime.tools.python3-3.7.2-post1.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\python3\3.7.2-post1 -prefs=runtime.tools.mklittlefs.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mklittlefs-3.0.4-gcc10.3-1757bed.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -verbose C:\Users\nobtu\Downloads\medienkoppler_release\medienkoppler_release.ino

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\arduino-builder -compile -logger=machine -hardware C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware -hardware C:\Users\nobtu\Documents\ArduinoData\packages -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\tools-builder -tools C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\hardware\tools\avr -tools C:\Users\nobtu\Documents\ArduinoData\packages -built-in-libraries C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.57.0_x86__mdqgnx93n4wtt\libraries -libraries C:\Users\nobtu\Documents\Arduino\libraries -fqbn=esp8266:esp8266:d1_mini:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=921600 -vid-pid=1A86_7523 -ide-version=10819 -build-path C:\Users\nobtu\AppData\Local\Temp\arduino_build_831875 -warnings=none -build-cache C:\Users\nobtu\AppData\Local\Temp\arduino_cache_615484 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.xtensa-lx106-elf-gcc-3.0.4-gcc10.3-1757bed.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mkspiffs.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mkspiffs-3.0.4-gcc10.3-1757bed.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mkspiffs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.python3.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\python3\3.7.2-post1 -prefs=runtime.tools.python3-3.7.2-post1.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\python3\3.7.2-post1 -prefs=runtime.tools.mklittlefs.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -prefs=runtime.tools.mklittlefs-3.0.4-gcc10.3-1757bed.path=C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\tools\mklittlefs\3.0.4-gcc10.3-1757bed -verbose C:\Users\nobtu\Downloads\medienkoppler_release\medienkoppler_release.ino

    Using board ‚d1_mini‘ from platform in folder: C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2

    Using core ‚esp8266‘ from platform in folder: C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2

    Detecting libraries used…

    „C:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++“ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/lwip2/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include“ „-IC:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875/core“ -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10819 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 „-DARDUINO_BOARD=\“ESP8266_WEMOS_D1MINI\““ -DFLASHMODE_DIO -DESP8266 „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\d1_mini“ „C:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875\\sketch\\medienkoppler_release.ino.cpp“ -o nul

    Alternatives for Adafruit_MCP23X08.h: [Adafruit_MCP23017@2.1.0]

    ResolveLibrary(Adafruit_MCP23X08.h)

    -> candidates: [Adafruit_MCP23017@2.1.0]

    „C:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++“ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/lwip2/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include“ „-IC:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875/core“ -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10819 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 „-DARDUINO_BOARD=\“ESP8266_WEMOS_D1MINI\““ -DFLASHMODE_DIO -DESP8266 „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\d1_mini“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_MCP23017\\src“ „C:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875\\sketch\\medienkoppler_release.ino.cpp“ -o nul

    Alternatives for Adafruit_BusIO_Register.h: [Adafruit_BusIO@1.11.3]

    ResolveLibrary(Adafruit_BusIO_Register.h)

    -> candidates: [Adafruit_BusIO@1.11.3]

    „C:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++“ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/lwip2/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include“ „-IC:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875/core“ -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10819 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 „-DARDUINO_BOARD=\“ESP8266_WEMOS_D1MINI\““ -DFLASHMODE_DIO -DESP8266 „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\d1_mini“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_MCP23017\\src“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_BusIO“ „C:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875\\sketch\\medienkoppler_release.ino.cpp“ -o nul

    Alternatives for Wire.h: [Wire@1.0]

    ResolveLibrary(Wire.h)

    -> candidates: [Wire@1.0]

    „C:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++“ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/lwip2/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include“ „-IC:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875/core“ -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10819 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 „-DARDUINO_BOARD=\“ESP8266_WEMOS_D1MINI\““ -DFLASHMODE_DIO -DESP8266 „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\d1_mini“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_MCP23017\\src“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_BusIO“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\Wire“ „C:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875\\sketch\\medienkoppler_release.ino.cpp“ -o nul

    Alternatives for SPI.h: [SPI@1.0]

    ResolveLibrary(SPI.h)

    -> candidates: [SPI@1.0]

    „C:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++“ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/lwip2/include“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2/tools/sdk/libc/xtensa-lx106-elf/include“ „-IC:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875/core“ -c -w -Werror=return-type -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10819 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 „-DARDUINO_BOARD=\“ESP8266_WEMOS_D1MINI\““ -DFLASHMODE_DIO -DESP8266 „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\d1_mini“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_MCP23017\\src“ „-IC:\\Users\\nobtu\\Documents\\Arduino\\libraries\\Adafruit_BusIO“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\Wire“ „-IC:\\Users\\nobtu\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\SPI“ „C:\\Users\\nobtu\\AppData\\Local\\Temp\\arduino_build_831875\\sketch\\medienkoppler_release.ino.cpp“ -o nul

    Alternatives for Adafruit_MCP23017.h: []

    ResolveLibrary(Adafruit_MCP23017.h)

    medienkoppler_release:14:10: fatal error: Adafruit_MCP23017.h: No such file or directory -> candidates: []

    14 | #include „Adafruit_MCP23017.h“

    | ^~~~~~~~~~~~~~~~~~~~~

    compilation terminated.

    Bibliothek Adafruit_MCP23017 in Version 2.1.0 im Ordner: C:\Users\nobtu\Documents\Arduino\libraries\Adafruit_MCP23017 wird verwendet

    Bibliothek Adafruit_BusIO in Version 1.11.3 im Ordner: C:\Users\nobtu\Documents\Arduino\libraries\Adafruit_BusIO wird verwendet

    Bibliothek Wire in Version 1.0 im Ordner: C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\libraries\Wire wird verwendet

    Bibliothek SPI in Version 1.0 im Ordner: C:\Users\nobtu\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\libraries\SPI wird verwendet

    exit status 1

    Adafruit_MCP23017.h: No such file or directory

    Antwort
    • Matthias Korte

      Moin, danke für Dein Feedback.
      Hier stimmt mit der Bibliothek „Adafruit_MCP23017“ etwas nicht.

      Adafruit_MCP23017.h: No such file or directory

      Ist die .h Datei vorhanden? Checke das bitte mal im Libraries-Verzeichnis.

      LG Matthias

      Antwort
      • Norbert Lemmen

        Hallo Matthias,
        die „Adafruit_MCP23017.h“ ist in
        c: Programme(x86)/Arduino/libraries/Adafruit_MCP23017_Arduino_Library/src

        Ich habe die Library über den Menüpunkt Bibliotheken einbinden in Arduino installiert.

        Gestern habe ich es mal mit der Arduino Online Anwendung probiert, aber leider gleiches Ergebnis wie bisher.
        Ich habe die Hoffnung noch nicht aufgegeben und hoffe dieses super Projekt mit ein wenig Hilfe von Dir noch umsetzen zu können.
        Viele Grüße
        Norbert

        Antwort
  • Hallo Matthias,

    sehr cooles Projekt!
    Genau nach so einer Anleitung habe ich gesucht, ich bin nur unsicher welches Kabel ich für die Leitungen zu den Reed-Kontakten nehmen soll.
    Was für Kabel hast du verwendet und wie Lang ist deine längste Leitung?
    Ich habe an eine klassischen Klingeldraht gedacht mit den ich im Prinzip die ganze Etage abdecken könnte.

    Viele Grüße
    Felix

    Antwort
  • Gordon Finke

    Hallo,
    danke für das tolle Projekt kann auch ich sagen.

    Ich möchte das Projekt doch gerne über einen „D1 Mini Wemos“ umsetzen und mittels Tasmota/ioBroker abfragen.

    Hast du hier auch Erfahrungen oder kannst mir Tipps geben.

    Grüße Gordon

    Antwort

Schreibe einen Kommentar zu Felix Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.