ESPeasy

In der Tat, es sind nur wenige Zeilen und ganz simpel. Das meiste davon sind div. Recovery und Errorhandler.
Kann dir ja mal am Abend meine Version posten, Google sollte die Basis aber auch finden. Weiß im Moment nur net wo ich das nun her habe.

gruß
bb

Sehr gerne :slight_smile:

Gruß
Peter

Hallo bb,
das würde mich auch interessieren - ich werde aus dem Serial-Server von ESP-Easy nicht ganz schlau und Google habe ich vermutlich mit den falschen Suchbegriffen attackiert.

Wäre schön wenn Du uns Deine Version zeigst.

Viele Grüße
Boris

Here it comes.

Funktioniert hier seit Monaten astrein.
Die Basis hab ich irgendwo im Netz gefunden, dann noch ein bisl umgebastelt.

WLN_SSID & PW & Port(ganz unten) müßt ihr natürlich anpassen.
Dann einfach die ArduinoIDE auf ESP8266 einstellen und hinbeamen.

viel Spass
bb


#include <ESP8266WiFi.h>
ADC_MODE(ADC_VCC);
const char* ssid     = "xxxxxx";
const char* password = "xxxxxxx";

const char* host = "10.0.0.1";
IPAddress ip(10,0,0,52);
IPAddress gateway(10,0,0,138);
IPAddress subnet(255,255,255,0);

/*const char* streamId   = "....................";
const char* privateKey = "....................";
*/
unsigned char reconnectCount = 0;

WiFiClient client;

void setup() {
  Serial.begin(115200);
  delay(10);
// We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    if (reconnectCount >= 60) {
      ESP.restart();
    }
    Serial.print(".");
    reconnectCount++;
  }
  reconnectCount = 0;

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

  connectToServer();
  client.println("ESP8266 Connected");
}


void loop() {
 
  if (Serial.available()) {
     size_t len = Serial.available();
    uint8_t * sbuf = (uint8_t *)malloc(len);
    Serial.readBytes(sbuf, len);
    if (client.connected()) {
      client.write((uint8_t *)sbuf, len);
       yield();
    } else {
      delay(500);
      if (reconnectCount >= 60) {
        ESP.restart();
      }
      Serial.println("Connection lost!");
      Serial.println("Try to reconnect...");
      connectToServer();
      reconnectCount++;
    }
    free(sbuf);
  }

  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
}
void connectToServer() {
  Serial.print("connecting to ");
  Serial.println(host);
  const int httpPort = 1106;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
}

Perfekt - vielen Dank. Probiere ich am Wochenende mal aus.

Gruß
Peter

Hab’s gleich ausprobiert - vielen Dank nochmal für den Denkanstoss…

Leider hab’ ich ein „connection failed“ bekommen. So wie ich es verstanden habe, brauch ich doch nur eine Serverinstanz welche auf den Port hört.

Ich werde es am Wochenende nochmal in aller Ruhe versuchen.

Gruß
Boris

Gesendet von meinem JAZZ mit Tapatalk

Hallo bbernhard,
hab Dein Programm ausprobiert und funktioniert prima. Hier noch eine ergänzte Version. Ich verwende dabei zusätzlich den WifiManager (als Bibliothek einzubinden, siehe GitHub - tzapu/WiFiManager: ESP8266 WiFi Connection manager with web captive portal). Damit macht das ESP-Modul dann zunächst einen AP auf, über den man die SSID/Passwort setzen kann. Außerdem kann man in dem Code eine statische IP vergeben (wobei ich noch überlege, ob das bei einem TCP-Client überhapt sein muss).

Gruß
Peter


#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>
#include <WiFiManager.h>         // aus der zusätzlichen Library https://github.com/tzapu/WiFiManager

// Server-Adresse, mit dem das ESP-Modul kommuniziert:
const char* host   = "192.168.1.70";
const int httpPort = 4242;
  
// Statische IP-Adresse für das ESP-Modul:
char static_ip[16] = "192.168.1.145";
char static_gw[16] = "192.168.1.10";
char static_sn[16] = "255.255.255.0";

unsigned char reconnectCount = 0;

WiFiClient client;


void setup() {

  Serial.begin(9600);
  delay(10);

  WiFiManager wifiManager;

  // Falls die Settings für SSID/PASSW im EEPROM zurückgesetzt werden sollen,
  // folgende Zeile aktivieren:
  // wifiManager.resetSettings();

  IPAddress _ip,_gw,_sn;
  _ip.fromString(static_ip);
  _gw.fromString(static_gw);
  _sn.fromString(static_sn);

  wifiManager.setSTAStaticIPConfig(_ip, _gw, _sn);
    
  // Falls das Modul in der initalen Phase anstelle der 192.168.4.1 eine andere
  //  Adresse erhalten soll, folgende Zeile aktivieren:
  //wifiManager.setAPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));

  // Der WIfiManager versucht nun, SSID und Passwort aus dem EEPROM zu lesen und damit mit
  // einem AccessPoint zu verbinden. Wenn das nicht funktioniert, macht er einen eigenen AP
  // und Webserver zur manuellen Konfiguration auf:
    
  // SSID und Passwort der Standard-Konfig, wenn nichts anderes gespeichert ist
  // oder der AP nicht mehr erreichbar ist:
  wifiManager.autoConnect("RFID_Reader","topsecret");
    
  // Wenn das Programm bis hier durchläuft, ist alles ok.
  Serial.println("connected...   :)");

  // und nun noch mit dem Zielserver verbinden:
  connectToServer();
  client.println("ESP8266 Connected");
}

void loop()
{
  if (Serial.available())
  {
     size_t len = Serial.available();
     uint8_t * sbuf = (uint8_t *)malloc(len);
     Serial.readBytes(sbuf, len);
     if (client.connected())
     {
        client.write((uint8_t *)sbuf, len);
        yield();
     } else {
        delay(500);
        if (reconnectCount >= 60)
        {
           ESP.restart();
        }
        Serial.println("Connection lost!");
        Serial.println("Try to reconnect...");
        connectToServer();
        reconnectCount++;
     }
     free(sbuf);
  }

  if (client.available())
  {
     char c = client.read();
     Serial.print(c);
  }
}

void connectToServer()
{
  Serial.print("connecting to ");
  Serial.println(host);
  
  if (!client.connect(host, httpPort))
  {
    Serial.println("connection failed");
    return;
  }
}  

Hilfe gesucht,

ich habe Schwierigkeiten, ESP Easy zu installieren.

Ich habe mit mehreren 8266 probiert, NodeMCU, ESP8266-01, Wemos D1 mini,
ich kriege es nicht zum laufen. Weder mit Firmware R120 noch mit R147.
Weder über die Arduino IDE, noch über das flash.cmd.

Netzwerk ESP_0 baut sich auf, ich kann 192.168.4.1/Setup aufrufen, meine
WLAN-Daten eingeben, dann wird runtergezählt, dann erscheint die Seite mit
dem Hinweis auf die neue IP.

Im Router meldet sich ein „newdevice“ mit einer IP-Adresse an.

Ich kriege die Seite mit dem Menü nur unmittelbar nach einem Reset
aufgerufen.

Parallel verfolge ich, was auf der Seriellen erscheint, sobald dieses
WD : Uptime erscheint, ist die Verbindung weg.

Diese IP kann ich dann weder aufrufen noch anpingen.

ESP_0 ist dann verschwunden.

Im seriellen Monitor der IDE erscheint nach einem Reset des Moduls:

(die 1. Zeile mit dem Wirr-Warr habe ich nicht kopiert gekriegt)

INIT : Booting Build nr:147
WIFI : Connecting… 1
WIFI : Connected!
INIT : I2C
INIT : SPI not enabled
INIT : Boot OK
INIT : Normal boot
WD : Uptime 0 ConnectFailures 0 FreeMem 27496
WD : Uptime 1 ConnectFailures 0 FreeMem 27464
WD : Uptime 1 ConnectFailures 0 FreeMem 27432
WD : Uptime 2 ConnectFailures 0 FreeMem 27400
WD : Uptime 2 ConnectFailures 0 FreeMem 27384
WD : Uptime 3 ConnectFailures 0 FreeMem 27368

Die Zeilen mit WD : Uptime… werden mit der Zeit immer mehr.

Das Wemos wurde mir als 4MB-Modul verkauft, also die 4096.bin geflasht,
danach versuchshalber die 1024.bin, dann die 512.bin reingeflasht, genau
das selbe.
Bin absolut ratlos.

Was mache ich verkehrt ???

Es wäre schön, wenn mir jemand helfen könnte.
Danke im voraus.

Grüße Ingo

Hallo Ingo,

Versuche mal deinen Esp vorkonfiguriert zu programmieren.
Du kannst in der Arduino IDE die IP Adresse, SSID und das Passwort im Vorfeld vergeben.
Ich verstehe im Moment dein Problem so, das du nach der IP- Vergabe keine Verbindung mehr hast, ist das richtig?

Sind Pins wie z.B Reset oder der Programmierpin auf entsprechendem definiertem Pegel?

Ich benutze einen ESP-8266-12F. Der läuft mit beiden Firmwares problemlos.

Gruß Martin

Hi,

Anhand der Daten der seriellen Schnittstelle kannst Du sehen dass sich das Modul in Dein WLAN eingeloggt hat, siehe 2. Zeile Connected.

Jetzt könnte man im Router nachsehen welche IP Adresse der DHCP Server vergeben hat und dann im Browser diese Seite aufrufen.

Alternativ besteht die Möglichheit auf der seriellen Schnittstelle das

Kommando „Settings“ einzutippen

und schon käme als Antwort ebenfalls die IP Adresse.

Das ganze Gefummel mit dem AccessPoint ESP_0 lässt sich ebenfalls über die serielle umgehen.

Die Kommandos „wifissid xxxx“ und
„Wifikey xxxx“ setzen übrigens diese Daten,
abschließend „save“ nicht vergessen und damit die Kiste neu startet und sich mit diesen Daten einloggt: „reboot“

Kurze Erfahrungen der letzten Monate:

ESPeasy hat, seitdem zu viele Module integriert sind, Langzeitprobleme mit der Stabilität.
Das äußert sich darin dass irgend wann mal die WLAN Kommunikation flöten geht;
er sendet nichts mehr, nimmt auch nicht per WLAN etwas entgegen.
Intern ackert er aber fleissig weiter; sehr schön zu sehen wenn ein Display dran hängt und dieses die Uptime anzeigt.

Wesentlich besser ist anscheinend ESPEasyMega,
hab hier seit dem Erscheinungsdatum 4 Module am Laufen und nicht einen Aussetzer,
geschweige einen Reboot von sich aus.

Da ich noch einige ESP-07 mit 1MB am Laufen habe dachte ich mir:
Streich doch mal die überflüssigen Programmbestandteile, Compilier neu und schon sollten die Probleme gelöst sein.

Leider nicht:
beim 1MB wird nach dem Neueinspielen statt 360K immer noch 430K angezeigt, scheint noch ein Bug zu sein.
Ist auch so bockig wie vorher, wird taub und stumm.
IPS sendet dann immer ne Pushmitteilung wenn die minütliche Uptime nicht mehr eintrudelt.
Der ESP-12E mit 4 MB hingegen wurde stabiler, gönnte sich aber nach 4 Tagen einen reboot.

Im übrigen bist Du nicht allein mit den Problemen beim ersten Aufrufen des ESP_0 AccessPoints.
Er scheint im zweiten Step dann sich mit dem WLAN als Client zu verbinden,
parallel baut er aber weiterhin den AccesPoint auf
und fatalerweise wird im Client ein Redirect auf die IP Adresse des AccessPoints gesetzt.
Ich persönlich nutze unterschiedliche Subbereiche, da kann mit 255.255.255.0 nix laufen.

Ich umgeh das immer, siehe oben;
und wenn er immer noch bockig sein sollte; ein Hardwarereset hilft meistens.

mfg

BerndJ

Wie sieht die Schaltung für ESP2866 (Nodemcu) + hc sr04 aus?
Bin aus den Hinweisen im Thread bisher noch nicht so ganz schlau geworden.

Hallo,

ich habe den Sensor zwar hier liegen, aber nicht in Betrieb genommen.

Wie hier beschrieben:
DistanceSensor - Let’s Control It
arbeitet der Sensor mit 5 V, und der NodeMCU mit 3.3V. Aus diesem Grund muss da ein Pegelkonverter zwischen, zB so etwas (ich habe einfach einen Link bei Ebay genommen, kenne weder den Verkäufer, noch das Produkt im Detail):

Pegelwandler 5V = 3,3V 4Kanal 4CH Level Shifter Converter I2C SPI Arduino *I01

Ich habe mal schnell eine kleine Zeichnen gemacht, habe sie aber nicht getestet.

Gruß
Christian

Wenn ich ein String über IE zum OLED ESPEasy übertrage funktionieren auch Leerzeichen.

z.B http://192.168.1.240/control?cmd=oled,4,5,1 4 : 4 5
unter IPS wird ab dem ersten Leerzeichen nicht weiter übertragen.

da funktioniert nur ein Text ohne Leerzeichen
z.B file_get_contents(„http://192.168.1.240/control?cmd=oled,3,3,Test_123“);

mit einer WWW Reader Instanz gleiches Verhalten.

Ist das ein Bug oder muss ich aus IPS heraus die Leerzeichen anders übertragen ?

Hi,

nimm statt des Leerzeichens ein %20

mfg

BerndJ

Oder einfach PHP es konvertieren lassen.
PHP: urlencode - Manual
Michael

Hallo Leute,

ich habe nun mit der ESPEasy Firmware meine Toshiba Inverter Split Klimaanlage per Infrarot angesteuert und was soll ich sagen, es Funktioniert super!

Wie, ich habe einfach das Zusatzmodul zum ESPEasy MEGA quellcode aus dem Playground ESPEasyPluginPlayground/_P115_HeatpumpIR.ino at master · letscontrolit/ESPEasyPluginPlayground · GitHub mit der Arduino IDE für meinen ESP (mind. 1MB) Kompiliert, und dann per Web Interface den Pin Definiert wo eine IR Sende Platine die es um wenige EUR gibt (Google) und nun kann ich per MQTT oder http die Klima schalten was in meinem Fall so aussieht:
<code>
http://<ip des esp>/control?cmd=heatpumpir,toshiba,1,3,0,22,5,0
</code>

Details seht ihr in der Doku am Anfang des Moduls!

Nach dem Reinfall mit dem Doorbird ist das nun mal was echt Geniales!

Ich habe ein Wemos Mini D1 mit Espeasy firmware „ESPEasy_v2.0.0-dev9_normal_4096.bin“ geflasht.
Läuft ohne Probleme.
Jetzt habe ich den Baustein „Batterie Shield“ hinzugefügt und nutze dies als USV.
Laden und Puffern funktioniert auch ohne Probleme, abgesehen von der Unterspannungsproblematik mit dem LiPo, wenn der nicht geschützt ist.

Dazu möchte ich die Batteriespannung über den Eingang A0(ADC) messen und habe einen 100 K Widerstand von der Batteriespannung zu A0 gelötet. Der Wert wird in Devices angezeigt.

Jetzt kommt mein Problem: Wie kriege ich diesen Wert in IPS?
Eine Abfrage wie bei den GPIOs (http://192.168.1.170/control?cmd=Status,Gpio,15) habe ich nicht gefunden.

Meine Suche hat mir bisher nix gebracht.

Wer kann mir da helfen ?

Hi Rainer,

HIER ist die Abfrage des Analogports aufgeführt.

Ich nutze für das Übertragen der Daten als Controler immer „DOMOTICS HTTP“

Controler.png

und dann brauchst Du in IPS nur noch einen Server Socket zu erstellen bei welchem die Daten dann im eingestelltem Intervall eintrudeln. Weiter an eine Registervariable, welche dann den Zuweisungsscript aufruft.

Für ADC nutze ich einen 270 K und einen 10 K gegen Gnd, so kommt in etwa ein Messbereich bis 30 Volt heraus.

Den Wert in der Formel kann man wunderbar anhand der eigenen Messungen berechnen. So kommt dann sofort der hoffentlich richtig errechnete Wert an und kein Rohwert mit 10 Bit. Übrigens bitte beachten, der Eingang mag nur knapp über 1 Volt.

TIP: schöner flutscht es mit einem INA 219.

Da gibt es U, I und P in einem Rutsch. Leider ist momentan noch ein Bug drin:
erkennt zwar 4 unterschiedliche Adressen, es wird aber aktiv nur EINE verarbeitet.

Im WebFront sieht es für den Akku dann so aus wenn ab und zu mal eine 3 Watt LED dran gebaumelt wird:

Es handelt sich um ein 12V 20WhP Solarmodul mit billigem PWM Laderegler und einem 12V 7Ah Bleiakku.
Total überdimensioniert für den ESP Dauerbetrieb,
jammert immer danach noch mal ein paar schöne WS2812 LED Streifen zu bekommen.
Als nächstes kommt erst mal etwas PIRI.

Ich füge mal ein Auswertescript bei, es dient Sonoff Pows, welche ESPEasy über gebügelt bekamen.
ACHTUNG!! NICHT die Datei aus dem Playground verwenden, es gibt noch einen offenen Pull Request, diesen nutzen da er bei einem Neustart die kalibrierten Werte wieder verwendet und nicht die „Werksseitigen“.
Nicht auf vernünftigen Programmierstil ausgelegt, quick and dirty zusammen geballert; aber es flutscht.
In diesem Falle sogar mit z. Zt. 13 Stück über einen Port.
Die Energiewerte werden nicht geliefert, daher erfolgt die Erfassung diesbezüglich innerhalb von IPS.

<?

//IPS_LogMessage("Sender ", $_IPS['SENDER']);

// von den ESP´s werden die Daten alle 10 Sekunden gesendet
$Intervall = 10;
// bei den einzelnen Einheiten werden dann der Zählerstand erst gelesen, berechnet und zurück geschrieben

if ($_IPS['SENDER'] == 'RegisterVariable'){
$data = $_IPS['VALUE'];

$Prefix1 = "&idx=";                                    // damit fängt der Datensatz an
$Suffix1 = "&";
$Prefix2 = "&svalue=";                                    // damit fängt der Datensatz an
$Suffix2 = "HTTP/1.1";
$Separator2 = ";";
$Prefix3 = "&switchcmd=";                                    // damit fängt der Datensatz an
$Suffix3 = "HTTP/1.1";

//$Ende1nachZeichen = 2;                                       // und ist xx Zeichen lang
$AnfangID = strlen($Prefix1)+(strpos($_IPS['VALUE'], $Prefix1));
$EndeID = strpos($_IPS['VALUE'], $Suffix1, $AnfangID+1);
$ID = substr($_IPS['VALUE'], $AnfangID, $EndeID-$AnfangID);

$AnfangValue = strlen($Prefix2)+(strpos($_IPS['VALUE'], $Prefix2));
$EndeValue = strpos($_IPS['VALUE'], $Suffix2, $AnfangValue);
$Value = substr($_IPS['VALUE'], $AnfangValue, $EndeValue-$AnfangValue-1);
$AnfangSubValue2 = strpos($Value, $Separator2);
$AnfangSubValue3 = strpos($Value, $Separator2, $AnfangSubValue2+1);
$AnfangSubValue4 = strpos($Value, $Separator2, $AnfangSubValue3+1);
$Value1 = substr($Value, 0,$AnfangSubValue2);
$Value2 = substr($Value, $AnfangSubValue2+1, $AnfangSubValue3-$AnfangSubValue2-1);
$Value3 = substr($Value, $AnfangSubValue3+1, $AnfangSubValue4-$AnfangSubValue3-1);
$Value4 = substr($Value, $AnfangSubValue4+1);

$AnfangSw = strlen($Prefix3)+(strpos($_IPS['VALUE'], $Prefix3));
$EndeSw = strpos($_IPS['VALUE'], $Suffix3, $AnfangSw);
$Switch = substr($_IPS['VALUE'], $AnfangSw, $EndeSw-$AnfangSw-1);
//IPS_LogMessage("Switch roh: ", $Switch);

	if($Switch == "On"){
      $Switch = true;
      }else{
      $Switch = false;
      }

switch ($ID) {
			case "11":
	         SetValue(31926 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Spannung]*/, $Value1);
	         SetValue(48649 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Strom]*/, $Value2);
	         SetValue(56466 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Leistung]*/, $Value3);
			 $IDZähler = 12378 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Energie]*/;
			 $alterStand = GetValueFloat($IDZähler);
			 $neuerStand = $alterStand + ($Value3/3600*$Intervall/1000);
			 SetValueFloat($IDZähler, $neuerStand);
	         SetValue(45856 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Power Factor]*/, $Value4);
         break;
		    case "12":
	         SetValueBoolean(59057 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Taster]*/, $Switch);
         break;
		    case "13":
	         SetValueBoolean(38624 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Steckdose]*/, $Switch);
         break;
		    case "14":
	         SetValueBoolean(18717 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\blaue LED]*/, $Switch);
         break;
		    case "19":
	         SetValueInteger(36159 /*[Technik\Energieerfassung\Sonoff\Pow-1 Waschmaschine Hauswirtschaftsraum\Uptime]*/, $Value);
         break;
			case "51":
	         SetValue(47857 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Spannung]*/, $Value1);
	         SetValue(52150 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Strom]*/, $Value2);
			 
			 // nur Leistungswerte erfassen wenn das Relais auch eingeschaltet ist
			 if (GetValueBoolean(57819 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\TV]*/) == true) {
	         SetValue(16754 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Leistung]*/, $Value3);
			 $IDZähler = 34786 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Energie]*/;
			 $alterStand = GetValueFloat($IDZähler);
			 $neuerStand = $alterStand + ($Value3/3600*$Intervall/1000);
			 SetValueFloat($IDZähler, $neuerStand);}
			 
	         SetValue(41064 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Power Factor]*/, $Value4);
         break;
		    case "52":
	         SetValueBoolean(51530 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Taster]*/, $Switch);
         break;
		    case "53":
	         SetValueBoolean(57819 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\TV]*/, $Switch);
         break;
		    case "54":
	         SetValueBoolean(59098 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\blaue LED]*/, $Switch);
         break;
		    case "59":
	         SetValueInteger(56525 /*[Technik\Energieerfassung\Sonoff\Pow-5 TV unten\Uptime]*/, $Value);
         break;

	}
}

?>

Achja: die Werte in den Case Anweisungen sind die IDX Werte welche in den Devices von eiinem selbst vergeben werden.

Hier direkt im Device zu finden unter IDX

Es können mittlerweile bis zu 3 Controler erstellt werden.

Falls jemand Bock und freie Zeit über hat: Ein Modul dazu wäre geil.
die letzten 10 Pows gab´s im EK unter 10 USD; so billig war bisher kein Energiemessgerät.

5-fach Verteilersteckdose:
Kabel zum Stecker mittig trennen,
alle 6 Adern abisolieren und Aderendhülsen drauf,
runter klemmen, Deckel druff und schon kann das Kalibrieren erfolgen!

mfg

BerndJ

Danke Bernd,
ich hatte ja heimlich gehofft, von dir eine Antwort zu erhalten. Das sie aber so ausführlich ist, besten dank dafür.

Das werde ich mir mal reinziehen und umsetzen.

So, jetzt funktioniert es nach deiner Anleitung über einen Server Socket. Nochmals besten Dank dafür.
Das hatte ich vorher nicht verstanden. Aber jetzt !
Die Messung erfolgt über das Wemos-Batterie Shield. Da ich einen SMD-Widerstand verwendet habe, ist dies auch rämlich sehr kompakt.
Bild folgt, wenn ich die Anordnung wieder auseinander baue.