WeMos D1 mini als WLAN-Sensor/-Aktor

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

Moderator: Co-Administratoren

MathiasZ

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

Beitrag von MathiasZ » 24.06.2020, 06:02

dondaik hat geschrieben:
20.06.2020, 10:43
ich kann mich nur nicht entscheide welchen der drei lösungen ich mal teste ...
Wie wär's mit allen dreien?

dondaik
Beiträge: 12928
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

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

Beitrag von dondaik » 24.06.2020, 06:10

:-) :-)
-------
!!! 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.

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

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

Beitrag von klassisch » 24.06.2020, 07:07

Für einen S0 Pulse-Counter (Stromverbrauch Heizung) habe ich ESPEasy aufgesetzt. War schnell und easy. Aber die bzw. deren Forumsteilnehmer nehmen den Mund auch voll und betonen, man könne damit auch die Totalisierung machen. Die ist aber nicht persistent und damit nutzenreduziert. Also nicht ohne externe Unterstützung zu verwenden. Ich unterstütze zum einen durch meine USV-gepufferte 42V-Hausleitung und zum anderen durch ein Javascript auf ioBroker welches neben der Umrechnung auch noch die Erkennung und Behandlung eines Neuaufsetzens des Totalisieres gewährleistet. Geht gut zusammen und die Werte passen auch noch nach Monaten.
Datenaustausch zum ioBroker leider nur über MQTT, was aber funktioniert.

ESPEasy und Tasmota verfolgen ähnliche Ansätze: Eierlegendes Wollmilchsauprogramm welches alle Fähigkeiten mitbringt und zur Laufzeit entsprechend konfiguriert wird. Kombiniert mit einem ordentlichen Webserver und ansprechendem Design.

ESPHome ist ganz anders. Hier muß man zuerst einen Entwickungsumgebung installieren und offline den ESP in einer Meta-Beschreibungssprache konfigurieren. Dann wird auf dem PC das Programm für den ESP automatisert zusammengebaut und auf den ESP transferiert. Also zuerst mal höherer Initialaufwand, dann aber wahrscheinlich mehr Möglichkeiten.
Ich habe das für den CO2 Sensor verwendet weil es die erste "Fertiglösung" war, die ich fand, bei welcher man den eingebauten "automatischen Kalibriermodus" ausschalten kann. Und weil ich mir ESPHome auch mal anschauen wollte.
Datenübertragung via MQTT, was funktioniert. Leider nicht kompatibel zur ioBroker simpeAPI. Aber wahrscheinlich könnte man das mit dieser Metabeschreibungssprache erreichen.

Und ich werde jetzt NICHT alle meine selbstgestrickten Lösungen ersetzen. Die laufen stabil und machen das was ich woll oder zumindest damals wollte.
Für einen Neuaufbau mit neuen Funktionen sind diese Fertigsysteme schon ein schneller und bequemer Weg.

dondaik
Beiträge: 12928
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

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

Beitrag von dondaik » 24.06.2020, 08:09

danke für die ausführliche info!
-------
!!! 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.

ChrisTan
Beiträge: 1
Registriert: 24.06.2020, 14:48
System: CCU

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

Beitrag von ChrisTan » 24.06.2020, 14:57

Hallo zusammen,

ich habe schon 2 mal erfolgreich das im ersten Posting beschriebene Script für den Temp/Feuchte Sensor auf 2 wemos installiert und zum laufen gebracht.
Jetzt würde ich mit dem gleichen Script, aber mit einem 1 wire Sensor, die Wassertemperatur messen wollen.
Dafür habe ich mir einen DS18B20 bestellt.

Frage: Kann mir jemand helfen das Script so anzupassen, dass der wemos mit dem o.g. Sensor funktioniert?

Gruß
Chris

dondaik
Beiträge: 12928
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

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

Beitrag von dondaik » 24.06.2020, 17:50

das ist beinahe copy und past ...
alte messroutine usw raus und die demo zum wired sensor aus den beispielen rein ... also Lib / Variablen use , setup() und messdaten...

mag sogar sein das zu beginn des themas auch ein ds1820 prg ist .... fsommer hat da auch mal was gemacht...
oder einfach hier anfangen:

viewtopic.php?f=31&t=31114
-------
!!! 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.


jp112sdl
Beiträge: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

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

Beitrag von jp112sdl » 24.07.2020, 11:34

dondaik hat geschrieben:
15.11.2019, 14:02
wer hat mit dem sensor schon erfahrungen gesammlte usw usw..

AC Strom sensor Split Core Transformator SCT-013-030/015 / in der bucht 322676034608
Hab ich grad am Wickel. Die Dinger sind unerwartet präzise! Nur wenige mA (<10) Abweichung vom Multimeter.
Bin erstaunt, damit hab ich nicht gerechnet

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

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

Beitrag von klassisch » 24.07.2020, 12:18

Dann könnte vielleicht auch der Restposten Pollin 180070 was sein. Vacuumschmelze, 15A 0.7% Fehler.
Diese Techik wird in "allen Größen" in Wechselstommeßgeräten der Energieversorgung und Industrie eingesetzt. Bei reinem Wechselstrom geht das gut.
Schwieriger und teurer wird es sobald Gleichstrom ins Spiel kommt - und davon auch noch wenig. Habe in den 90ern mal eine Tektronix-Stromzange beschafft. Das waren etliche tausend DM - Stromzange - Auswerteeinheit + Gehäuse.

S.Krey
Beiträge: 7
Registriert: 01.10.2020, 13:42
System: CCU
Hat sich bedankt: 1 Mal

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

Beitrag von S.Krey » 31.10.2020, 19:57

Guten Abend,

ich bin im Thema Homematic quasi noch taufrisch und wollte mich gleich mal an meinem Garagenöffner probieren. Also habe ich diesen hier sehr umfangreichen aber auch sehr undurchsichtigen Channel größtenteils überflogen. Dabei bin ich auf das unten angehängte Script gestoßen. Dieses habe ich genutzt, um zu prüfen, ob ich den Reedsensor und das Relais richtig verkabelt habe und ob mein Code, in welchem ich den HTTP Webserver weggelassen habe, funktioniert. Wenn ich das unten angehängte Script nutze und die Bibliotheken auf den ESP32 ändere, funktioniert alles soweit. Jetzt möchte ich aber, dass der Reedsensor per Cuxd als Tür-/Fenstersensor gemeldet wird. Also habe ich einen (16) HMS100 TFK angelegt und möchte diesen über String url = "/WeMos.exe?state=dom.GetObject('CUxD." + CUX1600001:1 + ".SET_STATE').State('" + currentDoorState + "')"; ansprechen, leider ohne Erfolg. Vielleicht kann ja jemand mal über den Code schauen, danke im Voraus.
klassisch hat geschrieben:
25.07.2018, 17:20
Hilft das weiter http://www.dragonfly.at/WeMos/Schaltaktor.html ?

Code: Alles auswählen

/*
Tutorial page: https://arduinogetstarted.com/tutorials/arduino-door-sensor
 v2 Wifi Added
 v3 Kommunikation Homematic hinzugefügt, Funktion als Schalter getestet
 */

#include <HTTPClient.h>
#include <WiFiClient.h>
#include <WiFi.h>
// ******* Netzwerkeinstellungen, bitte anpassen! *******
const char* ssid     = "XXX"; // SSID des vorhandenen WLANs
const char* password = "YYY"; // Passwort für das vorhandene WLAN
const char* host = "192.168.178.38"; // IP-Adresse der CCU  
IPAddress gateway(192, 168, 178, 1); // IP-Adresse des WLAN-Gateways
IPAddress subnet(255, 255, 255, 0); // Subnetzmaske

const int DOOR_SENSOR_PIN = 16;  // Arduino pin connected to door sensor's pin

bool currentDoorState; // current state of door sensor
bool lastDoorState;    // previous state of door sensor

// ******* Einstellungen für CUxD, bitte anpassen! *******
//String transmit_state_R1 = "ja"; // ja/nein
String CUxD_Geraet = "CUX2801002:3"; // SN:Kanal
String CUxD_Geraet2 = "CUX1600001:1"; // SN:Kanal
WiFiServer server2(8181);


void setup() {
  Serial.begin(115200);                     // initialize serial
  pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode
  currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read state
  StartWiFi();
  server2.begin();
}

void loop() {
reed();
}

void reed(){
  lastDoorState = currentDoorState;              // save the last state
  currentDoorState  = digitalRead(DOOR_SENSOR_PIN); // read new state
 
  if (lastDoorState == LOW && currentDoorState == HIGH) { // state change: LOW -> HIGH
    Serial.println("Garage ist offen");
    Serial.println(lastDoorState);
    melde_CCU();
  }
  else
  if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW
    Serial.println("Garage ist zu");
    Serial.println(lastDoorState);
    // TODO: turn off alarm, light or send notification ...
    melde_CCU();
  }
}
void StartWiFi() {
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }
  Serial.println("Connected to the WiFi network");
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void melde_CCU() { // Werte an die CCU melden
  WiFiClient client;
  const int httpPort = 8181;
  if (!client.connect(host, httpPort)) {
    return;
  }

  String url = "/WeMos.exe?state=dom.GetObject('CUxD." + CUxD_Geraet2 + ".SET_STATE').State('" + currentDoorState + "')";

  // Serial.print("Requesting URL: ");
  // Serial.println(url);
  // This will send the request to the server
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n");
  delay(100);

  // Read all the lines of the reply from server and print them to Serial
  while (client.available()) {
    String line = client.readStringUntil('\r');
  }

}

Antworten

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