WeMos D1 mini als WLAN-Sensor/-Aktor

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von PaulM » 22.12.2020, 21:37

Ich habe zwar einige Sketche im Einsatz, die Informationen vom WeMos an die CCU senden, aber mit dem umgekehrten Weg habe ich keinen Erfahrung.

Ich möchte via curl oder wget mit http-Befehl von der CCU via Wlan einen Befehl an WeMos D1 mini senden, der dort die Ausführung eines Programms auslöst.

Gibt es dazu Projekte/Sketche ?

Danke
Paul
Mit Mut und Entschlossenheit gegen Intoleranz

fsommer1968
Beiträge: 230
Registriert: 16.02.2008, 17:05
Danksagung erhalten: 9 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von fsommer1968 » 07.01.2021, 16:46

Hallo Paul,

was willst Du genau machen und wie sieht ein beispielhafte CURL-URL aus?

Im Prinzip kannst Du sowas mit einem (ESP8266) Webserver machen.

Gruß

Frank

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von PaulM » 07.01.2021, 18:16

Hallo Frank,

ich möchte, dass in Abhängigkeit von besonderen Bedingungen (z.B. Fenster ist seit x Minuten geöffnet; Haustür seit y Minuten offen) mit einem von der CCU gesendeten Curl Befehl der WeMos D1 mini auf einem angeschlossenem MP3 Player Modul (KeeYees Mini MP3 Player DFPlayer Modul Lautsprecher 2W 8Ohm kompatibel mit Arduino) akustische Signale ausgibt (z.B. x oder y Pieptöne) oder evtl. bestimmte MP3-Dateien abgespielt werden.

Bevor ich mich in die nötigen Arduino-Sketche dazu vertiefe, möchte ich wissen, wie der dazu nötige Verbindungsaufbau auf der WeMos-Seite geht.

Gruß
Paul
Mit Mut und Entschlossenheit gegen Intoleranz

fsommer1968
Beiträge: 230
Registriert: 16.02.2008, 17:05
Danksagung erhalten: 9 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von fsommer1968 » 07.01.2021, 20:10

Hallo Paul,

schau Dir mal dieses Beispiel eines Webserver an: https://github.com/esp8266/Arduino/blob ... Server.ino

Die Zeile

Code: Alles auswählen

server.on("/test.svg", drawGraph);
ruft bspw. die Function drawGraph auf, wenn die URL http://<IP-Adresse>/test.svg abgefragt wird. Bezogen auf dieses Bsp. könntest Du in drawGraph jetzt alles das unterbringen, was der 8266 oder jeder andere uP, tun muss um deine HW anzusprechen (Port schalten o.ä.). Am Ende musst Du halt nur darauf achten einen vernünftigen HTTP Content zurückzugeben, am einfachsten wie im Bsp an anderer Stelle:

Code: Alles auswählen

server.send(200, "text/plain", "this works as well");
damit Dein curl oder der Webbrowser keinen Fehler anzeigt.

Da sind auch noch andere Beispiele bspw. für Parameterübergabe.

- Frank

Edit:
Hier ist noch ein eine Erweiterung des Beispiels für Parameterübergabe:
Idee: Per curl oder Webserver soll ein bestimmter Port des 8266 geschaltet werden:

http://<IP-Adresse>/ein?gpio=5 schaltet GPIO-Pin 5 ein
http://<IP-Adresse>/aus?gpio=6 schaltet GPIO-Pin 6 aus

Das Bsp aus Github muss dzu nur um die folgenden Teile ergänzt werden:

Code: Alles auswählen

void gpiopin_an() {
  String tmp_key ((char *)0);
  byte pinnumber;
   
  tmp_key += server.arg(F("gpio"));
  if (!(tmp_key.length() >0)) {
    server.send(200, F("text/plain"),F("NOK Pin fehlt"));
    return;
  }
  pinnumber = tmp_key.toInt();
  digitalWrite(pinnumber, HIGH);
  server.send(200, F("text/plain"), String(pinnumber) +F(" eingeschaltet"));
}

void gpiopin_aus() {
  String tmp_key ((char *)0);
  byte pinnumber;
   
  tmp_key += server.arg(F("gpio"));
  if (!(tmp_key.length() >0)) {
    server.send(200, F("text/plain"),F("NOK Pin fehlt"));
    return;
  }
  pinnumber = tmp_key.toInt();
  digitalWrite(pinnumber, LOW);
  server.send(200, F("text/plain"), String(pinnumber) +F(" ausgeschaltet"));
}
Und speziell in der Setup-Routine wo der Webserver initialisiert wird, müssen die folgenen Zeilen ergänzt werden:

Code: Alles auswählen

server.on(F("/ein"), gpiopin_an);
server.on(F("/aus"), gpiopin_aus);
Zuletzt geändert von fsommer1968 am 07.01.2021, 21:15, insgesamt 1-mal geändert.

dondaik
Beiträge: 12886
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1584 Mal
Danksagung erhalten: 221 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von dondaik » 07.01.2021, 20:20

dann warten wir mal auf das fertige projekt !
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von PaulM » 07.01.2021, 20:22

dann werde ich mich mal darangeben

Danke
Paul
Mit Mut und Entschlossenheit gegen Intoleranz

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von PaulM » 21.01.2021, 22:59

Ich möchte via curl oder wget mit http-Befehl von der CCU via Wlan einen Befehl an WeMos D1 mini senden, der dort die Ausführung eines Programms auslöst ... und ... bestimmte MP3-Dateien abspielt
So, es ist geschafft.

Zutaten:
  • Mini MP3 Player DFPlayer Modul mit Lautsprecher 2W 8 Ohm kompatibel mit Arduino
  • Micro-SD Karte (Vorsicht: bei mir hat nur eine alte 2GB-Karte funktioniert, eine neu formatierte 16GB High Endurance Karte wurde nicht erkannt)
  • WeMos D1 mini mit Kabel und Ladegerät
  • Breadboard + Steckkabel
  • Kästchen mit Schallöffnung ums Ganze

Audio-Dateien nach Bedarf (mp3 oder wav)


Man nehme:
  • Verkabelung gem. Schema des Player-Moduls (VCC GND TX RX zu Wemos z.B. D1 und D2, SPK1 an Lautsprecher +, SPK2 an Lautsprecher -);
    Testen auch nur mit Anschluss von 3.3/5 V und GND
  • Bibliothek DFRobotDFPlayerMini des Hersteller Dfrobot in Arduino installieren
  • 2 Sketche zusammenfassen:
  • Sketch "GetStarted" (Beispieldatei des Dfrobot) integrieren
  • Die beiden Befehle "LED an" und "LED aus" werden ersetzt und erweitert um je einen Befehl für jede zu spielende Audio-Datei, lauter, leiser und Stop
  • pro Audiodatei ein virtueller Schalter (oder CUxD Fernbedienung) mit http-Aufruf über curl

alternativ: Befehl direkt im Browser eingeben, (z.B. http://WemosIP/spiel_1 für Audio-Datei 0001.mp3

Bei Bedarf Sketch über PN.

Gruss
Paul

P.S. Mal sehen, welchen Bedarf meine Enkel für ihrer Modellbahn noch anmelden :-)
Mit Mut und Entschlossenheit gegen Intoleranz

homekol
Beiträge: 50
Registriert: 13.05.2012, 10:37
Hat sich bedankt: 4 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von homekol » 16.05.2021, 14:25

Hallo zusammen,
ich habe mir aus einem Wemos D1 Mini und einen DHT11 einen schicken Temperatur-/Feuchtigkeitssensor gebastelt. Der Wemos lässt zeigt nun per Eingabe der IP die Daten an (https://draeger-it.blog/wemos-d1-wlan-t ... 11-sensor/). Nun möchte ich ich die Daten in meine CCU2 übertragen. Hierfür habe ich ein CuxD Gerät angelegt (Experimental 30 Wetter...). Nun kommt der schwierige Teil. Wie sage ich der CCU das z.B. stündlich die Temperatur/Feuchtigkeit von der IP 192.168.x.x ausgelesen wird? Reicht dafür ein Script in der CCU oder muss der Wemos die Daten Aktiv an die CCU übermitteln? Über ein paar Tips würde ich mich freuen! :D

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von PaulM » 16.05.2021, 16:45

geht beides

ich vermute, dass eine turnusmäßige Abfrage der CCU einfacher ist. Die Antwort wird von der CCU ausgewertet und an dein CUxD Gerät übermittelt.

Ausgangspunkt ist dann die http-Abfrage (die der Client doch wohl jetzt auch schickt?).

Probier es im Browser aus. Wenn dort über http die Daten lesbar sind, ist der Rest mit wget oder curl ein Kinderspiel (wenngleich es noch ein paar Fallstricke für den Dauerbetrieb gibt).
Mit Mut und Entschlossenheit gegen Intoleranz

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von Xel66 » 16.05.2021, 18:31

Es wäre vielleicht empfehlenswerter, externen Sensoren das Abliefern der Daten bei einer CCU beizubringen als andersrum. Die CCU-Firmware ist im Grund nicht dazu geeignet, externe Server zu kontaktieren, da hier jegliche Fehlerbehandlung fehlt. Daten können relativ einfach per URL bei der CCU abgeliefert werden. Hat der Sensor Stabilitätsprobleme kommen nur keine Daten mehr an. Im Gegenzug kann eine Abfrage durch die CCU bei einem instabilen Sensor die CCU selbst schon destabilisieren.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“