Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Mistral

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 16
    • Best 5
    • Groups 1

    Mistral

    @Mistral

    Starter

    5
    Reputation
    4
    Profile views
    16
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Mistral Follow
    Starter

    Best posts made by Mistral

    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @mistral said in S0 - Signal mit Wemos D1 Mini erzeugen?:

      @dieter_p
      Vielen Dank für Deine Antwort!
      Daher schaue ich dies so genau an, damit dies kein Risiko für den Eingang der WP sein sollte. Daher tendiere ich auch eher darauf, den Ausgangswiderstand auf 200 Ohm zu setzen (statt den oben erwähnten 100 Ohm).
      Was mir aber nicht gerade klar ist: Wieso meinst Du, dass die WP defekt geht, wenn der Vorwiderstand zu klein ist? Der Strom seitens der WP muss doch eigentlich durch den Widerstand seitens der WP genügend reduziert sein (und dort bereits auf einen Maximalstrom von 8mA reduziert sein), damit dies für die WP immer "sicher" sein sollte? Oder verstehe ich dies nicht korrekt? Spontan hätte ich jetzt eher vermutet, dass dies seitens der WP nicht korrekt funktioniert, falls der Optokoppler für die WP diese 8mA nicht liefern könnte, die WP dies jedoch benötigen würde.

      Ich quote diese Nachricht, da anschliessend diverse Meldungen waren.
      Vielen Dank bereits!

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Vielen Dank!
      Zusätzlich zu den Berechnungen habe ich jetzt noch ein kleines LTSpice Modell erstellt. Auf der Seite der WP ist dies sicher zu sehr vereinfacht; denke aber, dass dies so ausreichend sein sollte.
      Anhand den Simulationen habe ich den Eindruck, dass der Einfluss der Diode sehr gering ist; ob 1N4148, 1N4007 oder eine Schottky Diode, hat fast keinen Einfluss auf die Schalzeiten, soweit ich dies sehe. Ich werde dennoch die 1N4148 verwenden, wie von Dir empfohlen.
      Gemäss Norm muss der Strom im EIN-Zustand bei der Klasse A zwischen 10mA und 27mA sein (auch hier bereits am 1.2. gepostet) . Bei zu grossen Widerständen auf der ESP32 Seite (damit bei R2 im unteren Modell) werden jedoch auch diese minimalen 10mA nicht erreicht.
      Mit einem 200 Ohm Widerstand (bei R1 im unteren Modell) habe ich, gemäss Modell, max. ca. 16.5mA auf der Seite der WP (z.B. über R3), mit 220 Ohm (als Widerstand jeweils bei R2) ca. 15mA seitens WP, mit einem 470 Ohm gerade noch ca. 6.8mA (was zu wenig wäre, zumindest für Klasse A). Mit 180 Ohm ca. 17.7mA, 150 Ohm ca. 20mA. Ich denke, ich werde etwas zwischen 180 Ohm und 220 Ohm verwenden.
      e414ef69-a1ac-47b2-b8f2-2e917cab7184-image.png

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Ebenfalls vielen Dank! 🙂 Mir hat bei LTSpice vor allem der 4N35 etwas "Kopfzerbrechen" bereitet, wie ich den reinbekomme, da dieser nicht direkt in der library vorhanden ist; und da ich LTSpice bisher nicht verwendet habe.
      Da habe ich mich vertippt. Ein Multimeter habe ich. Ich habe mir ein günstiges Oszi (Joy-IT Mini-Handheld DSO-200) bestellt. Sowie ein Labornetzteil. Damit werde ich die 27V zuerst an die Schaltung mit dem Labornetzteil anlegen und den getakteten ESP Ausgang messen. Den Funktionsgenerator habe ich ja über den ESP dazu 🙂
      Ja, genau, mit R3 (der WP) + R1 (der S0 Schaltung) sollte dies für die WP bereits auf der ziemlich sicheren Seite sein. Zusätzlich noch die Begrenzung durch den Optokopplers (abhängig vom CTR des Optokoppler, R2 und der Spannungsquelle, z.B. 3.3V beim ESP32). Daher tendiere ich für R1 auch eher den Widerstand etwas tiefer zu nehmen (z.B. 180 Ohm, eventuell 200 Ohm), damit das Signal zuverlässig erkannt wird.
      P.S.: Jetzt noch das Design der Platine und die Bestellung davon. Ich teste mal KiCad 7 und Fritzing etwas und entscheide mich dann, was ich davon verwende.
      ... und ich habe die Angaben bei der Simulation noch aktualisiert, da ich einen Fehler dort gesehen hatte (ich hatte 24V statt 27V bei der Spannungsquelle V1).

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      Ich habe dies inzwischen noch mit einem Labornetzteil bei 27Volt und mit einem Oszi über den 1000 Ohm Widerstand getestet (R3 im LTSPice Modell). Und mit jeweils 200 Ohm Widerständen bei R1 und R2.
      Mit dem Oszi messe ich damit über R3 ca. 18.5V während des "high signals" ("Ein-Zustand"), damit ca. 18.5mA.
      Ich vermute, dass dies ziemlich gut sein dürfte (da während des "Ein-Zustands" für Klasse deutlich über den minimalen 10mA und auch unter den maximalen 27mA; und da damit auch nur ca. 10mA über R2 und damit am GPIO des ESP32).
      Ich vermute, dass dies gut sein dürfte, sonst bitte Feedback.
      Vielen Dank!
      P.S.: Gemäss meinem oberen LTSpice Modell wäre dies als Strom über R3 dort ca. 16.5mA (gemessen: 18.5mA). Ca. 10% Abweichung finde ich nachvollziehbar, insbesondere da ich denke, dass es wahrscheinlich unterschiedliche Modelle und auch etwas Toleranz insbesondere beim Optokoppler geben dürfte.

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p Ist jetzt in Funktion und läuft 🙂
      Wie gut die Regelung seitens der WP ist, kann ich noch nicht beurteilen, aber das S0 Signal wird bei mir einwandfrei übermittelt und anhand der aktuellen PV Einspeiseleistung berechnet.
      Vielen Dank!

      posted in Hardware
      M
      Mistral

    Latest posts made by Mistral

    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @Andy123Andy1 : Ich habe mir nun Dein Pdf noch etwas angeschaut. Soweit ich dies sehe, musst Du gemäss diesem der WP ja den Eigenverbrauch (und nicht den PV Überschussstrom, wie bei mir) angeben. Aber hätte auf meine Lösung keinen Einfluss, da ich nur einen kW Wert über MQTT übermittle und damit auch ein anderer Wert übermittelt werden könnte.
      Info: Falls Du nur einen Stromzähler hast, welcher "nicht smart" ist, gibt es diverse "Leseköpfe", welche entweder die Impulse zählen können oder z.B. die open source Lösung AI on the edge etc. (und ja, wäre dann etwas hin und her gerechnet, da Du Energie damit auslesen würdest und dies dann auf Leistung umrechnen müsstest; was aber einfach geht, da Du die Intervallrate Deiner Abfragen kennst).
      Oder Dein WR hat diese Infos bereits (ist z.B. bei mir so) und kannst Du dort auslesen und damit direkt verwenden.

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p

      @andy123andy1 said in S0 - Signal mit Wemos D1 Mini erzeugen?:

      @mistral Guten Morgen, ich suche gerade auch nach einer Lösung ein S0 Signal zu erzeugen. Kannst du die verwendetet Hardware und evtl. den Code der Öffentlichkeit zur Verfügung stellen? Dann brauche ich nicht alles neu Recherchieren und Testen 🙂

      Das ist die benötigte Hardware wenn ich es richtig aus den vorherigen Post lese:

      1675434481039-d6d9c7f4-3b51-4f12-9c83-7a71a0238e2c-grafik.png

      Wenn jetzt noch jemand einen Code Schnipsel hätte wäre ich glücklich 🙂

      Hab mal rumprobiert hier mein Ergebnis:

      #include <ESP8266WiFi.h>
      #include <PubSubClient.h>
      
      // WiFi configuration
      const char* ssid = "your_SSID";
      const char* password = "your_PASSWORD";
      
      // MQTT configuration
      const char* mqtt_server = "broker_address";
      const char* mqtt_topic = "energy/consumption";
      const int mqtt_port = 1883;
      
      // S0 Pin configuration
      const int s0Pin = 7; // Pin connected to the S0 output signal
      
      // Timing variables
      unsigned long pulseDuration = 100; // Duration of each pulse in milliseconds
      unsigned long pulseInterval = 720; // Interval between pulses in milliseconds (initial value)
      
      // WiFi and MQTT clients
      WiFiClient espClient;
      PubSubClient client(espClient);
      
      // Function to handle received MQTT messages
      void callback(char* topic, byte* payload, unsigned int length) {
        char message[length + 1];
        strncpy(message, (char*)payload, length);
        message[length] = '\0';
      
        float kWh = atof(message); // Convert received message to float
      
        // Assuming 1000 pulses per kWh and 3600 seconds in an hour
        pulseInterval = (3600 * 1000) / (kWh * 1000) - pulseDuration;
      }
      
      void setup() {
        // Set the S0 pin as an output
        pinMode(s0Pin, OUTPUT);
      
        // Initialize Serial for debugging
        Serial.begin(115200);
      
        // Connect to WiFi
        setup_wifi();
      
        // Set up MQTT client
        client.setServer(mqtt_server, mqtt_port);
        client.setCallback(callback);
      
        // Connect to MQTT broker
        reconnect();
      }
      
      void loop() {
        if (!client.connected()) {
          reconnect();
        }
        client.loop();
      
        // Generate a pulse
        digitalWrite(s0Pin, HIGH);  // Set the S0 pin HIGH
        delay(pulseDuration);       // Wait for the pulse duration
        digitalWrite(s0Pin, LOW);   // Set the S0 pin LOW
        delay(pulseInterval);       // Wait for the interval before the next pulse
      }
      
      void setup_wifi() {
        delay(10);
        // Connect to WiFi
        Serial.println();
        Serial.print("Connecting to ");
        Serial.println(ssid);
      
        WiFi.begin(ssid, password);
      
        while (WiFi.status() != WL_CONNECTED) {
          delay(500);
          Serial.print(".");
        }
      
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
      }
      
      void reconnect() {
        // Loop until we're reconnected
        while (!client.connected()) {
          Serial.print("Attempting MQTT connection...");
          // Attempt to connect
          if (client.connect("ESP8266Client")) {
            Serial.println("connected");
            // Subscribe to topic
            client.subscribe(mqtt_topic);
          } else {
            Serial.print("failed, rc=");
            Serial.print(client.state());
            Serial.println(" try again in 5 seconds");
            // Wait 5 seconds before retrying
            delay(5000);
          }
        }
      }
      
      

      Hab leider kein Oszilloskop um das mal zu prüfen.

      @Andy123Andy1 :
      Ich habe noch einige Wochen nach meinem letzten post hier geschaut, ob es einen reply gibt, jetzt aber leider bereits etwas länger nicht mehr.
      Ist Deine Frage an mich noch aktuell?
      Falls ja, gleich anschliessend ein paar Infos:

      • HW: Habe ich nur die S0 Schnittstelle hier besprochen. Ich habe sonst andere HW mit ESP32 verwendet. 1x ein Olimex Board mit LAN Anschluss (ist jetzt auch bei mir in Gebrauch), 1x ein ESP32 WIFI Modul (hatte auch funktioniert und war temporär in Verwendung, ich wollte dann aber noch auf einen LAN Anschluss wechseln). Welche Beschreibung benötigst Du? Die LAN Variante sieht bei mir so aus (die S0 Leitung ist bei den blauen Klemmen, bei diesem Foto nicht angeschlossen):
        235e5d94-8071-4b40-9629-5bcc6741c7a7-image.png
      • Ich habe für beide Varianten ein eigenes PCB Design erstellt (die "grüne" Platine im oberen Foto; und die Komponenten entweder direkt darauf gelötet bzw. für das ESP board Buchsenleisten auf das PCB board gelötet).
      • Software: Die Werte (kW Einspeiseleistung) müssen in meiner Software separat noch von der PV Anlage bezogen und über einen MQTT Broker an das board weitergeleitet werden. Zusätzlich ist meine source code etwas länger, da ich auch exception handlings eingebaut habe, z.B., falls die kW Leistungsinfo aus irgendeinem Grund nicht mehr aktualisiert werden würde oder dass zu tiefe W Leistungsinfos die Übermittlung von eventuell anschliessend höheren kW Werten nicht zu sehr verzögert. Hier habe ich ebenfalls separaten source code für das WIFI ESP32 board und das Olimex ESP32 LAN boad (der USB Anschluss für die Programmierung und wird bei POE bei diesem board im Betrieb nicht benötigt. Da ich jedoch einen Switch ohne POE verwende, habe ich hier den USB Anschluss auch für die Stromversorgung ebenfalls angeschlossen).
      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p Ist jetzt in Funktion und läuft 🙂
      Wie gut die Regelung seitens der WP ist, kann ich noch nicht beurteilen, aber das S0 Signal wird bei mir einwandfrei übermittelt und anhand der aktuellen PV Einspeiseleistung berechnet.
      Vielen Dank!

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Vielen Dank und ja, werde mich dann gerne wieder melden. Bis es läuft, wird es wahrscheinlich noch etwas dauern: Ich warte noch auf das PCB, welches ich dafür erstellt und bestellt habe (aktuell erst auf einem breadboard) und noch auf ein paar kleinere Komponenten.
      Betreffs Schwankung gehe ich ziemlich sicher vom Optokoppler aus: Dort ist für den 4N35 bei LTSpice keine Komponente direkt dabei und ich musste dies daher im Internet suchen. Und mein 4N35 Optokoppler hatte ich bei mir bereits "herumliegen" und weiss auch nicht, von welchem Hersteller dieser ist.

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Vielen Dank!
      Ja, korrekt, die Genauigkeit ist mit "TOL: ±1%" angegeben.
      Ich habe mir jedoch ein Set gekauft, da ich den Strom mit verschiedenen Widerständen messen wollte. Und bei vielen Sets waren z.B. 220 Ohm, aber nicht 200 Ohm Widerstände dabei. Daher habe ich dies nach den Widerstandsgrössen ausgewählt, die im Set dabei sind, und nicht nach der Genauigkeit. Dies habe ich erst jetzt nachgeschaut.

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      Ich habe dies inzwischen noch mit einem Labornetzteil bei 27Volt und mit einem Oszi über den 1000 Ohm Widerstand getestet (R3 im LTSPice Modell). Und mit jeweils 200 Ohm Widerständen bei R1 und R2.
      Mit dem Oszi messe ich damit über R3 ca. 18.5V während des "high signals" ("Ein-Zustand"), damit ca. 18.5mA.
      Ich vermute, dass dies ziemlich gut sein dürfte (da während des "Ein-Zustands" für Klasse deutlich über den minimalen 10mA und auch unter den maximalen 27mA; und da damit auch nur ca. 10mA über R2 und damit am GPIO des ESP32).
      Ich vermute, dass dies gut sein dürfte, sonst bitte Feedback.
      Vielen Dank!
      P.S.: Gemäss meinem oberen LTSpice Modell wäre dies als Strom über R3 dort ca. 16.5mA (gemessen: 18.5mA). Ca. 10% Abweichung finde ich nachvollziehbar, insbesondere da ich denke, dass es wahrscheinlich unterschiedliche Modelle und auch etwas Toleranz insbesondere beim Optokoppler geben dürfte.

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Ebenfalls vielen Dank! 🙂 Mir hat bei LTSpice vor allem der 4N35 etwas "Kopfzerbrechen" bereitet, wie ich den reinbekomme, da dieser nicht direkt in der library vorhanden ist; und da ich LTSpice bisher nicht verwendet habe.
      Da habe ich mich vertippt. Ein Multimeter habe ich. Ich habe mir ein günstiges Oszi (Joy-IT Mini-Handheld DSO-200) bestellt. Sowie ein Labornetzteil. Damit werde ich die 27V zuerst an die Schaltung mit dem Labornetzteil anlegen und den getakteten ESP Ausgang messen. Den Funktionsgenerator habe ich ja über den ESP dazu 🙂
      Ja, genau, mit R3 (der WP) + R1 (der S0 Schaltung) sollte dies für die WP bereits auf der ziemlich sicheren Seite sein. Zusätzlich noch die Begrenzung durch den Optokopplers (abhängig vom CTR des Optokoppler, R2 und der Spannungsquelle, z.B. 3.3V beim ESP32). Daher tendiere ich für R1 auch eher den Widerstand etwas tiefer zu nehmen (z.B. 180 Ohm, eventuell 200 Ohm), damit das Signal zuverlässig erkannt wird.
      P.S.: Jetzt noch das Design der Platine und die Bestellung davon. Ich teste mal KiCad 7 und Fritzing etwas und entscheide mich dann, was ich davon verwende.
      ... und ich habe die Angaben bei der Simulation noch aktualisiert, da ich einen Fehler dort gesehen hatte (ich hatte 24V statt 27V bei der Spannungsquelle V1).

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Vielen Dank!
      Zusätzlich zu den Berechnungen habe ich jetzt noch ein kleines LTSpice Modell erstellt. Auf der Seite der WP ist dies sicher zu sehr vereinfacht; denke aber, dass dies so ausreichend sein sollte.
      Anhand den Simulationen habe ich den Eindruck, dass der Einfluss der Diode sehr gering ist; ob 1N4148, 1N4007 oder eine Schottky Diode, hat fast keinen Einfluss auf die Schalzeiten, soweit ich dies sehe. Ich werde dennoch die 1N4148 verwenden, wie von Dir empfohlen.
      Gemäss Norm muss der Strom im EIN-Zustand bei der Klasse A zwischen 10mA und 27mA sein (auch hier bereits am 1.2. gepostet) . Bei zu grossen Widerständen auf der ESP32 Seite (damit bei R2 im unteren Modell) werden jedoch auch diese minimalen 10mA nicht erreicht.
      Mit einem 200 Ohm Widerstand (bei R1 im unteren Modell) habe ich, gemäss Modell, max. ca. 16.5mA auf der Seite der WP (z.B. über R3), mit 220 Ohm (als Widerstand jeweils bei R2) ca. 15mA seitens WP, mit einem 470 Ohm gerade noch ca. 6.8mA (was zu wenig wäre, zumindest für Klasse A). Mit 180 Ohm ca. 17.7mA, 150 Ohm ca. 20mA. Ich denke, ich werde etwas zwischen 180 Ohm und 220 Ohm verwenden.
      e414ef69-a1ac-47b2-b8f2-2e917cab7184-image.png

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @dieter_p
      Vielen Dank!
      Ich werde dies auch noch mit einem Labornetzteil (mit 30V) testen, bevor ich dies an die WP anschliesse und die Signale auch noch mit einem Multimeter prüfen. Beides bereits bestellt. Und bevor ich dies an die Wärmepumpe anschliesse, werde ich die Komponenten noch "verlöten" (aktuell nur auf einem breadboard) und dann nochmals prüfen. Danke für Deine zwischen "Tür und Angel" Zustimmung.

      Für mich daher vor allem noch offen, weshalb die Diode hier bisher nicht besprochen wurde, da diese aus meiner Sicht in der bisherigen Diskussion fehlt. Und ob dies eine "normale Diode" sein kann oder eine Schottky Diode sein sollte. So rasch scheinen mir die Signale auch nicht zu sein, dass dies eine Schottky Diode benötigen würde. Ich denke, ich beginne mit einer normalen Diode und wechsle auf eine Schottky Diode, sofern im Oszilloskop die Flanken zu wenig steil sind. Oder weiss jemand von Euch, was korrekt ist? Danke!

      posted in Hardware
      M
      Mistral
    • RE: S0 - Signal mit Wemos D1 Mini erzeugen?

      @mistral said in S0 - Signal mit Wemos D1 Mini erzeugen?:

      @dieter_p
      Vielen Dank für Deine Antwort!
      Daher schaue ich dies so genau an, damit dies kein Risiko für den Eingang der WP sein sollte. Daher tendiere ich auch eher darauf, den Ausgangswiderstand auf 200 Ohm zu setzen (statt den oben erwähnten 100 Ohm).
      Was mir aber nicht gerade klar ist: Wieso meinst Du, dass die WP defekt geht, wenn der Vorwiderstand zu klein ist? Der Strom seitens der WP muss doch eigentlich durch den Widerstand seitens der WP genügend reduziert sein (und dort bereits auf einen Maximalstrom von 8mA reduziert sein), damit dies für die WP immer "sicher" sein sollte? Oder verstehe ich dies nicht korrekt? Spontan hätte ich jetzt eher vermutet, dass dies seitens der WP nicht korrekt funktioniert, falls der Optokoppler für die WP diese 8mA nicht liefern könnte, die WP dies jedoch benötigen würde.

      Ich quote diese Nachricht, da anschliessend diverse Meldungen waren.
      Vielen Dank bereits!

      posted in Hardware
      M
      Mistral
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo