Schaltzustände am ESP8266 per MQTT senden

Hallo,

ich habe vor bei einem ESP8266 (Wemos D1 Mini), verschiedene Eingänge per MQTT an den ioBroker zu senden. Ich habe mir da bisschen was zusammengesucht und zusammengebaut. Der Code an sich erzeugt keine Fehler, nur ich denke es fehlt was bzw. mir um das entsprechend um zu setzen.

Ich Poste hier erstmal den aktuellen Code:

// Benötige Lib's
// **************
#include <ESP8266WiFi.h>
#include <ArduinoOTA.h>
#include <PubSubClient.h>
#include <time.h>
WiFiClient espClient; 
PubSubClient client(espClient); 


// Variablen und Konstanten
// ************************
const char* ssid = "SSID";
const char* password = "Wifi Password";

IPAddress staticIP(192, 168, 178, 205);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(8, 8, 8, 8);

const char* otaHostname = "Kellerlicht";               // OTA Hostname
const char* otaPassword = "Password";               // OTA Zugangscode

char* clientId = "ESP_Kellerlicht";

const char* mqtt_server = "IP vom MQTT Server";
const int mqtt_port = 8883;
const char* mqtt_user = "MQTT User";
const char* mqtt_password = "MQTT Password";

char* msg1;
char* msg2;

// Setup Teil
//***********
void setup() {
  pinMode(D1, INPUT);
  pinMode(D2, INPUT);
  // WiFi Starten und Konfigurieren
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  WiFi.config(staticIP, gateway, subnet, dns);
  ota_setup();  
  delay(500);
  connectToMQTT();
}



// Loop Teil
// *********
void loop() {
  ArduinoOTA.handle();
  snprintf (msg1, 1, " %ld", digitalRead(D1));
  client.publish("ESP_Kellerlicht/Keller", msg1);
  snprintf (msg2, 1, " %ld", digitalRead(D2));
  client.publish("ESP_Kellerlicht/Tuer", msg2);
}

void connectToMQTT() {
 client.setServer(mqtt_server, mqtt_port);//MQTT Server, - Port
  
  if (client.connect(clientId , mqtt_user, mqtt_password)) {
    Serial.println("connected");
  }
}


// OTA Funktion
// ************
void ota_setup() {
  ArduinoOTA.setHostname(otaHostname);
  ArduinoOTA.setPassword(otaPassword);
  ArduinoOTA.begin();
}

Das ganze soll 2 Kellerlichter überwachen, ob diese ein oder aus geschalten sind und entsprechend die Werte mittels MQTT versenden.

Vielleicht kann man mir da mal etwas helfen, wie man zu einem brauchbaren Ergebnis kommt?

Michael

Hallo,

naja, baue doch einfach erstmal die fehlenden Sachen zu WiFi, PubSubClient und OTA ein, die sind in den jeweiligen Beispielen ja eigentlich gut zu finden.
Was hast Du denn schon getestet? Gehen kann so ja eigentlich noch garnichts.
Mach es schrittweise, erstmal WiFi, dann OTA usw.
Laß Dur seriell die IP ausgeben wenn er ins WLAN kommt, ist doch in den Beispieln alles drin.

Gruß aus Berlin
Michael

Normalerweise sollte eigentlich OTA und WiFi schon klappen. Aber ich werde es nochmal genauer angucken. Kann ggf. aber ein paar Tage dauern. Unter der Woche komme ich im Moment zu recht wenig irgendwie.

Aber ich werde einfach mal ein leeres Script nehmen und dann wie erwähnt hast, dieses nach und nach füllen mit Funktionen und Fähigkeiten.

Michael

Moin Leute,

endlich bin ich dazu gekommen, erste Versuche am Wochenende zu starten und nunja, sagen wir mal es wird langsam etwas. Noch umfasst das Script nicht viel, aber eins kommt nach dem anderen.

Aktuell kann das Script OTA, Wifi mit Statische IP Adresse und ein paar LEDs als Statusanzeige schalten. Als nächstes wäre nun MQTT dran. Eine Frage vorweg, gibt es eine alternative zum Tool mqtt.fx? Den es scheint, dass da ein Eigentümerwechsel stattgefunden hat und nun das Gratistool nicht mehr Gratis ist? Es geht mir eigentlich lediglich um ein Tool um den mqtt Verkehr sichtbar zu machen. Also ob der Absender was absendet. Klar kann ich es direkt im ioBroker "Abonieren", nur manchmal steckt der Teufel im Detail und man sucht den Fehler.

Aber mein Aktuelles Werk möchte ich natürlich keinem Vorenthalten:

// Benötige Lib's
// **************
#include <ESP8266WiFi.h>
#include <ArduinoOTA.h>
#include <OneWire.h>
#include <DallasTemperature.h>


// Variablen und Konstanten
// ************************
const char* ssid = "SSID";
const char* password = "WiFiPasswd";

const char* otaHostname = "OTATest";               // OTA Hostname
const char* otaPassword = "OTAPassword";               // OTA Zugangscode

IPAddress staticIP(192, 168, 178, 205);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(8, 8, 8, 8);

float temperature;
// Ausgänge und Eingänge deklarieren
// *********************************
#define LED_Wifiokay D7
#define LED_Error D6
#define LED_mqtt D5

#define ONE_WIRE_BUS D4

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);


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

  // Ausgänge und Eingänge Setzen
  pinMode(LED_Wifiokay, OUTPUT);
  pinMode(LED_Error, OUTPUT);
  pinMode(LED_mqtt, OUTPUT);
  
  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  /* Explicitly set the ESP8266 to be a WiFi-client, otherwise, it by default,
     would try to act as both a client and an access-point and could cause
     network-issues with your other WiFi-devices on your WiFi-network. */
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  WiFi.config(staticIP, gateway, subnet, dns);

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

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  ota_setup();

  DS18B20.begin();



}

void loop() {
  ArduinoOTA.handle();
  if (WiFi.status() == WL_CONNECTED) {
    digitalWrite(LED_Wifiokay, HIGH);
    digitalWrite(LED_Error, LOW);
  }
  else {
    digitalWrite(LED_Wifiokay, LOW);
    digitalWrite(LED_Error, HIGH);
  }

  DS18B20.requestTemperatures();
  temperature = DS18B20.getTempCByIndex(0);

  Serial.println(String(temperature) + " °C");

  // 5 Sekunden warten
  delay(5000);

}

// OTA Funktion
// ************
void ota_setup() {
  ArduinoOTA.setHostname(otaHostname);
  ArduinoOTA.setPassword(otaPassword);
  ArduinoOTA.begin();
}

Ich bin am überlegen ob ich die Status LEDs auf einen PCF8574 auslagere um wieder Freie Pins zu haben, aber das muss ich gucken, wenn das Projekt fertig ist, wie es aussieht. Die MQTT LED ist nur definiert, wird aber noch nicht angesprochen. Wollte die später nicht vergessen :wink:

Bereits erledigt, zumindest das Messen. Code habe ich ergänzt.
Darüber hinaus überlege ich auf die Steuerung ein DS28x20 zu packen, damit die Temperatur etwas überwacht wird. Diese kann man ja dann zusätzlich per MQTT übermitteln lassen.

Soweit läuft alles nun.

Guten Abend an alle,

ich habe es hinbekommen großes Jubeln.

Man kann es ggf. schöner lösen, bzw. optimaler und eleganter. Aber zumindest es läuft, wie es aussieht. Ich habe eine 10 Sekunden Pause eingeplant, also er sendet mir alle 10 Sekunden die Daten an den Server. Zu den Daten gehören folgende: Datum, Zustand Licht 1, Zustand Licht 2 und Temperatur an der Platine.

Aber nun erstmal den nun gültigen Code:

// Benötige Lib's
// **************
#include <ESP8266WiFi.h>
#include <ArduinoOTA.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <PubSubClient.h>
#include <time.h>

WiFiClient espClient; 
PubSubClient client(espClient); 

// Variablen und Konstanten
// ************************
const char* ssid = "SSID";
const char* password = "WiFi Password";

const char* mqtt_server = "192.168.178.152";
const int mqtt_port = 8883;
const char* mqtt_user = "mqtt_USER";
const char* mqtt_password = "MQTT_Password";
char* clientId = "Kellerlicht";

const char* otaHostname = "OTA User";               // OTA Hostname
const char* otaPassword = "OTA Password";               // OTA Zugangscode

IPAddress staticIP(192, 168, 178, 205);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(8, 8, 8, 8);

char tmp[50];
char time_value[20];
 
unsigned long int currentMillis = millis();
const unsigned long period = 10000;  // führe nach x nochmals ein Event aus 

float temperature;

// Ausgänge und Eingänge deklarieren
// *********************************
#define LED_Wifiokay D7
#define LED_Error D6
#define LED_mqtt D5

#define Licht_1 D0
#define Licht_2 D3

#define ONE_WIRE_BUS D4

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);



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

  // Ausgänge und Eingänge Setzen
  pinMode(LED_Wifiokay, OUTPUT);
  pinMode(LED_Error, OUTPUT);
  pinMode(LED_mqtt, OUTPUT);
  pinMode(Licht_1, INPUT);
  pinMode(Licht_2, INPUT);
  
  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  /* Explicitly set the ESP8266 to be a WiFi-client, otherwise, it by default,
     would try to act as both a client and an access-point and could cause
     network-issues with your other WiFi-devices on your WiFi-network. */
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  WiFi.config(staticIP, gateway, subnet, dns);

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

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  digitalWrite(LED_Wifiokay, HIGH);
  Zeitholen();
  
  connectToMQTT();
 
    long rssi = WiFi.RSSI();
    itoa(rssi,tmp,10);
    client.publish("Smarthome/Kellerlicht/Temp", tmp);
    client.publish("Smarthome/Kellerlicht/Licht1", "on");
    client.publish("Smarthome/Kellerlicht/Licht2", "off");
    client.publish("Smarthome/Kellerlicht/time", time_value);

    Serial.println("temp:");
    Serial.println(tmp);
    Serial.println("Zeit");
    Serial.println(time_value); 

  ota_setup();

  DS18B20.begin();

}

void loop() {
  Zeitholen();
  ArduinoOTA.handle();
  if (WiFi.status() == WL_CONNECTED) {
    digitalWrite(LED_Wifiokay, HIGH);
    digitalWrite(LED_Error, LOW);
  }
  else {
    digitalWrite(LED_Wifiokay, LOW);
    digitalWrite(LED_Error, HIGH);
  }
  if (!client.connected()) {
    digitalWrite(LED_Error, HIGH);
    digitalWrite(LED_mqtt, LOW);
    connectToMQTT();
  }
  else {
    digitalWrite(LED_mqtt, HIGH);
    digitalWrite(LED_Error, LOW);
  }

  DS18B20.requestTemperatures();
  temperature = DS18B20.getTempCByIndex(0);

  Serial.println(String(temperature) + " °C");

  client.publish("Smarthome/Kellerlicht/Temp", String(temperature).c_str());

// Schaltzustände übermitteln
  
  if(digitalRead(Licht_1)){
    client.publish("Smarthome/Kellerlicht/Licht1", "on");
  }
  else {
    client.publish("Smarthome/Kellerlicht/Licht1", "off");
  }
  if(digitalRead(Licht_2)){
    client.publish("Smarthome/Kellerlicht/Licht2", "on");
  }
  else {
    client.publish("Smarthome/Kellerlicht/Licht2", "off");
  }

// Uhrzeit übermitteln
  
  client.publish("Smarthome/Kellerlicht/time", time_value);
  // 10 Sekunden warten
  delay(10000);

}

// MQTT Funktion
// *************
void connectToMQTT() {
 client.setServer(mqtt_server, mqtt_port);//MQTT Server, - Port
  
  if (client.connect(clientId , mqtt_user, mqtt_password)) {
    Serial.println("connected");
  }
  else {
 
      Serial.print("failed with state ");
      Serial.print(client.state());
      delay(2000);
 
  }
}

// NTP Zeit holen
void Zeitholen() {
  configTime(2 * 3600, 0, "0.de.pool.ntp.org", "ptbtime1.ptb.de");

  delay(1000);
 
  time_t now = time(nullptr);
  String time = String(ctime(&now));
  time.trim();
  time.substring(0,19).toCharArray(time_value, 20);
}


// OTA Funktion
// ************
void ota_setup() {
  ArduinoOTA.setHostname(otaHostname);
  ArduinoOTA.setPassword(otaPassword);
  ArduinoOTA.begin();
}

Die ganzen Dinge zu Serial Print muss ich noch entfernen oder zumindest auskommentieren. Den so sagt mir die Arduino IDE, OTA geht nicht bzw. kann kein Serial.print und co.

Das was ich auf jeden Fall festgestellt habe ist, ich muss auf jedem Fall zumindest die Status LEDs auslagern in einen PFC8574 (i2c Porterweiterungsbaustein), da ich aktuell mit 2 Lichter, welche überwacht werden, 3 Status LEDs und 1 Temp. Sensor, nur noch 2 Freie Datenpins habe.

Für das Projekt okay, aber ich überlege wenn ich daraus beim Chinesen eine Platine mir fertigen lasse, eine "Multifunktionsplatine" zu entwickeln. Also wo mehrere Projekte die gleiche Platine haben, nur die Bestückung abweicht. Den man bekommt ja immer nur mindestens 5 Platinen und wenn man nur eine braucht ist das etwas viel.

Aber das ist noch Zukunftsmusik einen Testcode für ein einbinden dieses Bausteins habe ich auch schon mal getestet und den Code habe ich zum Testen genutzt:

#include <ESP8266WiFi.h>
#include "PCF8574.h"
#include <Wire.h> 

PCF8574 m1(0x20);

void setup() {
  m1.begin();
  m1.pinMode(P1,OUTPUT);
}

void loop() {
  m1.digitalWrite(P1,LOW);
  delay(2000);
  m1.digitalWrite(P1,HIGH);
  delay(2000);
}

Ich dachte, den Code zeige ich auch mal. Auch wenn es nur ein einfaches Blinken ist.

Falls mir jemand noch ein paar Tipps zum ersten Code geben möchte, würde ich mich freuen. Das was ich etwas unelegant finde, ist der unterschiedliche Topic beim Abfragen der Eingänge. Habe es aber nicht anders hin bekommen.

Und danke für Eure Hilfe bis hier hin.

Michael

Hallo,

Das kannst Du auch alles drinlassen. OTA ist ja nur sinnvoll wenn der ESP8266 nicht am PC und der seriellen steckt. Dann gehen die seriellen Ausgaben des ESP8266 eben ins Leere.
Wenn Du in der IDE OTA zum Programmieren auswählst geht der serielle Monitor der IDE natürlich nicht, wozu auch?

Gruß aus Berlin
Michael

Moin,

der Gedanke, wozu OTA gut ist, ist mir mittlerweile auch klar geworden. Der Wemos Chip, welche in dem Projekt Verwendung findet, wird im Keller in einer Abzweigdose landen. Daher ist in dem Fall der Gedanke über OTA nicht verkehrt. Man möchte ja nicht bei Änderungen jedes mal mit Lappi in Keller, Dose aufschrauben, usw..

Aber nunja es funktioniert endlich. Bin irgendwie etwas stolz das mit euren Schupsern in die Richtung hin bekommen zu haben. Ggf. werde ich das ein oder andere nochmal etwas umstricken, aber das ist eher Kosmetik.

Der Gedanke ist, ob ich ein i2c Port einplane für ein Display. Also wenn es doch mal zu problemen kommt, kann ich mir einfach ein 20x4 LC Display nehmen, dran stöpseln und er macht mir meine Serielle ausgabe da hin über die wichtigen Informationen. Aber ich denke, dass ist eher "Spielerei", die Status LEDs sollten eigentlich Ihren Teil tun.

Aber gibt es den für mqtt ein Ein und Ausgabeclient ähnlich mqtt.fx? Oder hat noch keiner direkt was dazu gefunden?

Michael

PS: Ich gebe es zu, unterm Strich kann man eigentlich das ganze gebastel als "Spielerei" bezeichnen. Aber es macht ja Spaß, auch wenn manche Fehler Nerven kosten.

Aber genau diese Fehler erzeugen dann am Ende den grössten Lerneffekt.

Ich kann ja wenn Interesse besteht und sobald ich das ganze in eine Platine bekommen habe, mal hier Posten. zumindest ein 3D Objekt der Platine. Die Platine selbst dauert aus China ja etwas länger.

Nur ob ich da den PCF8574 einsetze oder nicht, bin ich noch nicht ganz schlüssig drüber. Aktuell habe ich so nämlich nach Abzug aller verwendeten Pins noch 2 (zufällig die für i2c vorgesehen) über.

Michael

Hey, Ich wollte mal in die Runde Fragen.

Würdet ihr bei dem Ding ein PCF8574 einsetzen oder wäre das etwas "zuviel" des Guten? Ich spiele mit dem Gedanken, die Platine für unterschiedliche Aufgaben zu konstruieren. Da die JLCPCB und Co. immer 5 Platinen ausspucken. Und auf Dauer sammelt sich so natürlich einiges an.

Geplante Aufgaben, welche im Board zusammen gefasst werden sollen wären folgende:

  • Überwachung des Schaltzustands von 2 Lichtkreisen (Mit Einsatz des PCF8574 würden natürlich auch mehr Kanäle gehen)
  • Gas und Stromzähler mit Tracken (Da reichten bekanntlich 1-2 Datenleitungen, je nach Art und Weise des Vorgehens)
  • Wenn es irgendwie Sinnvoll möglich ist, die Wasser Uhr, falls da ebenfalls mit bis zu 2 Datenleitungen geht.

Dann wären so nur noch 2 in Reserve und nicht mehr 4 Platinen. Einfach unterschiedliche Firmware drauf und Universalgerät ist "fertig".

Aktuelle Version mit "nur" 2 Kanalüberwachung

3D Ansicht:

Schaltplan:

Michael

PS: Einfache Platine für den aktuellen Aufbau kommt gleich noch.

Echt? also ich habe die jeweils innert 5 - spätestens 7 Tage nach der Übermitlung der Daten nach China , bei mir zuhause auf dem Tisch. und das bei einem Preis, zu dem ich beim Europäischen hersteller in DE di ePlatine nocht nicht einmal in 7 Tagen gefertigt (kürzeste, günstigste Fertigung 8 Tage), geschweige denn , noch geliefert bekommen habe. Kommt dan noch dazu, dass ich in CN dann gleich 5 Platinen zu dem Preis habe(fertigung 1-2Tage), sollte also mir ein Missgeschick passieren, oder ich etwas ein 2. Mal benötigen, ist das PCB / Ersatz bereits vorhanden.
Ich lebe in der Schweiz, und die PCBs werden von DHL oft über Deutschland transportiert, bevor sie in der Schweiz landen, also sollte es in DE auch nicht länger dauern.

Ja, kommt auf die Versandgeschwindigkeit / Versandkosten an. Ich finde es meist eher etwas naja sagen wir "unpassend", wenn ich für die Ware 2€ bezahle und für den Versand z.B. 20€ bezahle nur um es schnell zu haben. Aber das ist ja unterm Strich Geschmackssache.

Und da warte ich lieber ggf. auch mal ein paar Tage mehr.

Michael

PS: Aber zur letzten Idee, wäre ich gerne an eurer Meinung interessiert. :wink:

Ja, und solltest Du mal mehr als 5 benötigen, ist der Aufpreis auf z.b 10 auch in Grenzen. Du kannst übrigens auch ein projekt später wieder nachbestellen, wenn Du ein Kundenkonto anlegst.

Naja es geht mir darum, eher weniger "überflüssige" Platinen zuhause rum liegen zu haben, als noch mehr :wink:

Deswegen der Gedanke einer Art "Universalplatine". Und darüber hinaus bzw. daraus ergibt sich, dass man ggf. Ein und Ausgänge auf den PCF8574 "auslagert" was die Zustands LEDs und Kanäle angeht.

Michael

Ja natürlich, und ich finde Die Idee der Universal-Platine sehr gut. Ich bezog das mit der Nachbestellung auch besonders auf diese Universal-Platine, falls dann eben die Einsatzmöglichkeiten so universell sind, dass du feststells, das Du sie viel öfter oder in grösseren Mengen einsetzen kannst, als zuerst gedacht.

Ich würde den USB-Anschluss des D1 Minis am Rand heraus führen. Somit ist ein Zugriff darauf einfacher.

@Plumps Danke für den Tipp, korrigiere ich gleich mal. Bin gerade an der Version mit PCF8574 dran. So kann ich dann mehr Pins nach außen führen Zwecks andere Einsätze.

@Deltaflyer Ja genau der Gedanke war irgendwie bei mir. Ich habe im Moment mindestens 10 Verschiedene Platinenstapel hier liegen. Also mit unterschiedlichen Schaltungen. Zum Teil sind noch 4 Stück übrig.

Aber wenn die ich später mit der Überarbeiteten Version durch bin Poste das noch hier. Schaltplan als PDF und 3D Modell als Grafik. Wenn der Plan umfangreicher wird, wird es sonst meist etwas enger und weniger übersichtlich.

Michael

ich würde noch vorsehen

  • Optional ein Spannungsregler
  • jeden verwendbaren Pin rausführen (ich setz gern 3polige für VCC/GND/Pin)
  • zusätzlich einen 3 poligen Stecker für den (oder weitere) DS18B20
  • Platz außenrunderhum für Stecker nutzen
  • Befestigungsschrauben (!)
  • wenn du einen PCF8574 drauf geben willst, dann würde ich auch ein einen Contrast-Poti und eine Backlight Transe für ein LCD vorsehen, vieleicht auch gleich einen 16 poligen Stecker
  • freien Platz für weitere I2C Anschlüsse vorbereiten (SDA/SCL/VCC/GND)

Klingt auf jeden Fall nach einem Plan. Ich bin gerade noch was am googlen zu Wasseruhren auslesen in Smart und bin da auf die Idee mit Kapazitive Näherungsschalter zu arbeiten. Zu diesem Zweck plane ich gerade einen Eingang über ein Optokoppler (MB104/4A) ein. Da mein Näherungsschalter mit einer Spannung von 6V anfängt zu arbeiten.

Falls der Optokoppler weniger bekannt ist, den habe ich bei Pollin vor einer Ewigkeit mal gekauft, einfach mal zum Testen und siehe Datenblatt -> Made in DDR :smiley:

Gleich mal auf einem Breadboard testen ob der Sensor und meine Wasseruhr damit arbeiten können und naja Tada, nächste Möglichkeit implementiert. Muss dann nur überlegen ob ich das Board wirklich über ein Regler und entsprechend höhere Spannung versorge oder einfach ein Stepup Modul für den Sensor drauf packe in Huckepack. Den eigentlich ware als Eingangsspannung 5V geplant.

Aber deine Gedanken werde ich mir nochmal genauer bedenken und das implementieren wo ich denke, dass brauche ich auf jeden Fall. Der DS18B20 der im Moment drin ist, soll eher als "Überwachung" des Gehäuses dienen. Also wenn mal etwas wärmer wird in the Box :wink:

Michael

PS: Link zum Optokoppler: Optokoppler MB104/4Dgünstig online kaufen | pollin.de


Ergänzung, nach ein paar Tests habe ich gemerkt, der Sensor arbeitet bereits bei 5V schon vernünftig. Also kann ich mir zumindest stepup Wandler und so "kneifen".

Ich wollte mal einen Zwischenstand geben. Also der Schaltplan geht langsam gut voran. Gleich geht es an die Platine, was sicher noch Interessant werden könnte. Aber es wird schon. Muss nur auf Dauer mal gucken, was für ein Gehäuse ich nehme. Nicht das ich am Ende eine Platine habe, die nirgendwo rein passt :smiley:

Ich habe mal den Schaltplan nach aktuellem Stand angehängt.

Stromzähler fehlt noch. Aber da weiß ich auch noch nicht, ob ich diese da einsetzen werde oder doch eine andere. Aber ggf. ergibt sich noch was, bis ich an die richtige Platine gehe. Also das bestellen.

Schaltplan Wemos D1 mit PCF8574 V1.0.pdf (122.7 KB)