Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Tutorial] PZEM-004T 3 Phasen Überwachung

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    278

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

[Tutorial] PZEM-004T 3 Phasen Überwachung

[Tutorial] PZEM-004T 3 Phasen Überwachung

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
pzem-004t-v30monitoringüberwachungmessunghow-totutorial
283 Posts 37 Posters 78.9k Views 41 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H HelmutLinner

    @marcuskl meinst du den Widerstand im PZEM zwischen optocopler und vcc?

    Für was sind die Dioden?
    Ich hab es mit einem PZEM 004t und einem esp8266 probiert, ich hab die dioden in alle möglichen Richtungen eingebaut in RX oder TX und auch mit der separaten Versorgung über den Widerstand auf RX. Das hat aber alles nicht funktioniert.

    Ich hab dann den esp über 5v und ground Versorgung und den Pzem über die selbe Versorgung und RX auf TX, TX auf RX und es funktioniert, jetzt hab ich einen 2 ten PZEM mit Adresse 2 parallel dazu angeschlossen. Jetzt bekomme ich von beiden die Werte.

    Ich habe auch in der Tasmota Software auf PZEM016 RX gestellt obwohl ich einen PZEM04t habe, aber nur so funktioniert’s bei mir.

    Habt ihr in IObroker einzelne datenpunkte für Spannung Leistung Amper usw? Ich weiß gerade nicht wie ich den einen großen datenpunkt auseinander bekomme dass ich ihn in Grafana verwenden kann. Muss ich da was in tasmota machen damit schon mehrere datenpunkte erzeugt werden?

    {"Time":"2021-12-25T14:57:13","ENERGY":{"TotalStartTime":"2021-12-24T22:40:20","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":[ 0, 0],"Power":[ 0, 0],"ApparentPower":[ 0, 0],"ReactivePower":[ 0, 0],"Factor":[0.00,0.00],"Frequency":[50,50],"Voltage":[228,228],"Current":[0.000,0.000]}}

    M Offline
    M Offline
    manrum1
    wrote on last edited by
    #190

    @helmutlinner Hallo, aller Anfang ist schwer, war bei mir auch so:

    Zuerst richtest Du Dir im iobroker Datenpunkte ein, am besten unter dem Objektbaum 0_userdata.0... Dazu nimmst Du folgendes Script und lässt es einmal laufen, danach solltest Du die Datenpunkte sehen:

    /* /* Strommessung
    
    
    */
    var pfad = '0_userdata.0.Strom.hb.Status.',
        name_geraet = 'Pzem_hb', // zB Waschmaschine (Achtung keine Umlaute)
        beschreibung = 'Strommessung Home Base'; // zB 
    
    // Energie
    createState(pfad + name_geraet + '.Zaehler.Energy_TotalStartTime', 0, {
        name: 'Energie Total StartTime',
        desc: 'xx',
        type: 'string',
        unit: '',
        role: '',
        read: true,
        write: true
     });
     
    createState(pfad + name_geraet + '.Zaehler.Energy_Total', 0, {
        name: 'Energie total',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
     createState(pfad + name_geraet + '.Zaehler.Energy_Yesterday', 0, {
        name: 'Energie gestern',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Energy_Today', 0, {
        name: 'Energie heute',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
     createState(pfad + name_geraet + '.Zaehler.Period', 0, {
        name: 'Periode',
        desc: 'xx',
        type: 'number',
        unit: '',
        role: '',
        read: true,
        write: true
     });
    
    // Leistung
    createState(pfad + name_geraet + '.Zaehler.Power_Ph1', 0, {
        name: 'Leistung Phase 1',
        desc: 'xx',
        type: 'number',
        unit: 'W',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Power_Ph2', 0, {
        name: 'Leistung Phase 2',
        desc: 'xx',
        type: 'number',
        unit: 'W',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Power_Ph3', 0, {
        name: 'Leistung Phase 3',
        desc: 'xx',
        type: 'number',
        unit: 'W',
        role: 'value.power',
        read: true,
        write: true
     });
    
    // Scheinleistung
     createState(pfad + name_geraet + '.Zaehler.ApparentPower_Ph1', 0, {
        name: 'Scheinleistung Phase 1',
        desc: 'xx',
        type: 'number',
        unit: 'VA',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.ApparentPower_Ph2', 0, {
        name: 'Scheinleistung Phase 2',
        desc: 'xx',
        type: 'number',
        unit: 'VA',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.ApparentPower_Ph3', 0, {
        name: 'Scheinleistung Phase 3',
        desc: 'xx',
        type: 'number',
        unit: 'VA',
        role: 'value.power',
        read: true,
        write: true
     });
    
     // Blindleistung
     createState(pfad + name_geraet + '.Zaehler.ReactivePower_Ph1', 0, {
        name: 'Blindleistung Phase 1',
        desc: 'xx',
        type: 'number',
        unit: 'VAr',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.ReactivePower_Ph2', 0, {
        name: 'Blindleistung Phase 2',
        desc: 'xx',
        type: 'number',
        unit: 'VAr',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.ReactivePower_Ph3', 0, {
        name: 'Blindleistung Phase 3',
        desc: 'xx',
        type: 'number',
        unit: 'VAr',
        role: 'value.power',
        read: true,
        write: true
     });
    
     // Leistungsfaktor
     createState(pfad + name_geraet + '.Zaehler.Factor_Ph1', 0, {
        name: 'Leistungsfaktor Phase 1',
        desc: 'xx',
        type: 'number',
        unit: '',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Factor_Ph2', 0, {
        name: 'Leistungsfaktor Phase 2',
        desc: 'xx',
        type: 'number',
        unit: '',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Factor_Ph3', 0, {
        name: 'Leistungsfaktor Phase 3',
        desc: 'xx',
        type: 'number',
        unit: '',
        role: '',
        read: true,
        write: true
     });
    
      // Frequenz
     createState(pfad + name_geraet + '.Zaehler.Frequency_Ph1', 0, {
        name: 'Frequenz Phase 1',
        desc: 'xx',
        type: 'number',
        unit: 'Hz',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Frequency_Ph2', 0, {
        name: 'Frequenz Phase 2',
        desc: 'xx',
        type: 'number',
        unit: 'Hz',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Frequency_Ph3', 0, {
        name: 'Frequenz Phase 3',
        desc: 'xx',
        type: 'number',
        unit: 'Hz',
        role: '',
        read: true,
        write: true
     });
    
      // Volt
     createState(pfad + name_geraet + '.Zaehler.Voltage_Ph1', 0, {
        name: 'Spannung Phase 1',
        desc: 'xx',
        type: 'number',
        unit: 'V',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Voltage_Ph2', 0, {
        name: 'Spannung Phase 2',
        desc: 'xx',
        type: 'number',
        unit: 'V',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Voltage_Ph3', 0, {
        name: 'Spannung Phase 3',
        desc: 'xx',
        type: 'number',
        unit: 'V',
        role: '',
        read: true,
        write: true
     });
    
     // Strom
     createState(pfad + name_geraet + '.Zaehler.Current_Ph1', 0, {
        name: 'Strom Phase 1',
        desc: 'xx',
        type: 'number',
        unit: 'A',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Current_Ph2', 0, {
        name: 'Strom Phase 2',
        desc: 'xx',
        type: 'number',
        unit: 'A',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Current_Ph3', 0, {
        name: 'Strom Phase 3',
        desc: 'xx',
        type: 'number',
        unit: 'A',
        role: '',
        read: true,
        write: true
     });
    
      // Berechnete
    
    createState(pfad + name_geraet + '.Zaehler.Current', 0, {
        name: 'Strom gesamt',
        desc: 'xx',
        type: 'number',
        unit: 'A',
        role: 'value.power',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Power', 0, {
        name: 'Leistung gesamt',
        desc: 'xx',
        type: 'number',
        unit: 'W',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.ApparentPower', 0, {
        name: 'Scheinleistung gesamt',
        desc: 'xx',
        type: 'number',
        unit: 'VA',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
     createState(pfad + name_geraet + '.Zaehler.ReactivePower', 0, {
        name: 'Blindleistung gesamt',
        desc: 'xx',
        type: 'number',
        unit: 'VAr',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
    
     // Zähler
    
    createState(pfad + name_geraet + '.Zaehler.Zaehler_actual', 0, {
        name: 'Zählerstand aktuell',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: 'value.power.consumption',
        read: true,
        write: true
     });
    
     createState(pfad + name_geraet + '.Zaehler.Zaehler_Korrektur', 0, {
        name: 'Zähler Korrektur (setzen)',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: '',
        read: true,
        write: true
     });
    
     createState(pfad + name_geraet + '.Zaehler.Zaehler_HT', 0, {
        name: 'Zählerstand Basiswert HT (setzen)',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Zaehler_NT', 0, {
        name: 'Zählerstand Basiswert NT (setzen)',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: '',
        read: true,
        write: true
     });
    
    
    createState(pfad + name_geraet + '.Zaehler.Zaehler_Basiswert', 0, {
        name: 'Zählerstand Basiswert (setzen oder Summe HT/NT)',
        desc: 'xx',
        type: 'number',
        unit: 'kWh',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Zaehler_Basiswert_Datum', 0, {
        name: 'Zählerstand Basiswert Datum/Uhrzeit (setzen)',
        desc: 'xx',
        type: 'string',
        unit: '',
        role: '',
        read: true,
        write: true
     });
    
    createState(pfad + name_geraet + '.Zaehler.Zaehler_Pzem_Lastchanged', 0, {
        name: 'Datum/Uhrzeit',
        desc: 'xx',
        type: 'string',
        unit: '',
        role: '',
        read: true,
        write: true
     });
    
    
    

    Als nächstes brauchst Du ein Script, dass den MQTT-String parst (durchsucht) und die Daten auf einzlene Datenpunkte mapped, die wir vorher erzeugt haben.

    on('mqtt.0.tele.stromhb.SENSOR', function(dp) {
        let tstrom = JSON.parse(dp.state.val);
        if(tstrom['Time']) {
            let val = tstrom['Time'];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_Pzem_Lastchanged', val, true);
        }
        let strom = JSON.parse(dp.state.val).ENERGY;
        if(strom['TotalStartTime']) {
            let val = strom['TotalStartTime'];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Energy_TotalStartTime', val, true);
        } if(strom['Total']) {
            let val = strom['Total'];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Energy_Total', val, true);
        } if(strom['Yesterday']) {
            let val = strom['Yesterday'];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Energy_Yesterday', val, true);
        } if(strom['Today']) {
            let val = strom['Today'];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Energy_Today', val, true);
        } if(strom['Period']) {
            let val = strom['Period'];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Period', val, true);
        } if(strom['Power']) {
            let val = strom['Power'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power_Ph1', val, true);
        } if(strom['Power']) {
            let val = strom['Power'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power_Ph2', val, true);
        } if(strom['Power']) {
            let val = strom['Power'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power_Ph3', val, true);
        } if(strom['ApparentPower']) {
            let val = strom['ApparentPower'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower_Ph1', val, true);
        } if(strom['ApparentPower']) {
            let val = strom['ApparentPower'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower_Ph2', val, true);
        } if(strom['ApparentPower']) {
            let val = strom['ApparentPower'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower_Ph3', val, true);
        } if(strom['ReactivePower']) {
            let val = strom['ReactivePower'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower_Ph1', val, true);
        } if(strom['ReactivePower']) {
            let val = strom['ReactivePower'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower_Ph2', val, true);
        } if(strom['ReactivePower']) {
            let val = strom['ReactivePower'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower_Ph3', val, true);
        } if(strom['Factor']) {
            let val = strom['Factor'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Factor_Ph1', val, true);
        } if(strom['Factor']) {
            let val = strom['Factor'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Factor_Ph2', val, true);
        } if(strom['Factor']) {
            let val = strom['Factor'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Factor_Ph3', val, true);
        } if(strom['Frequency']) {
            let val = strom['Frequency'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Frequency_Ph1', val, true);
        } if(strom['Frequency']) {
            let val = strom['Frequency'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Frequency_Ph2', val, true);
        } if(strom['Frequency']) {
            let val = strom['Frequency'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Frequency_Ph3', val, true);
        } if(strom['Voltage']) {
            let val = strom['Voltage'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Voltage_Ph1', val, true);
        } if(strom['Voltage']) {
            let val = strom['Voltage'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Voltage_Ph2', val, true);
        } if(strom['Voltage']) {
            let val = strom['Voltage'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Voltage_Ph3', val, true);
        } if(strom['Current']) {
            let val = strom['Current'][0];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current_Ph1', val, true);
        } if(strom['Current']) {
            let val = strom['Current'][1];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current_Ph2', val, true);
        } if(strom['Current']) {
            let val = strom['Current'][2];
            setState('0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current_Ph3', val, true);
        }
        
         setTimeout(function() {
        // Code, der erst nach 5 Sekunden ausgeführt wird
    
        setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_Basiswert", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_HT").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_NT").val), true);
        setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current_Ph1").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current_Ph2").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Current_Ph3").val), true);
        setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power_Ph1").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power_Ph2").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Power_Ph3").val), true);
        setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower_Ph1").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower_Ph2").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ReactivePower_Ph3").val), true);
        setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower_Ph1").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower_Ph2").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.ApparentPower_Ph3").val), true);
        // setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_actual", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_Basiswert").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_Korrektur").val), true);
        setState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_actual", (getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_Basiswert").val + getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Energy_Total").val - getState("0_userdata.0.Strom.hb.Status.Pzem_hb.Zaehler.Zaehler_Korrektur").val), true);
        }, 5000);
    
      });
    
    

    Bei mir heißt der Knoten im MQTT-Adapter stromhb, das musst Du natürlich anpassen. Das Script muss dann dauernd laufen.
    Am Ende werdne noch einige Berechnungen vorgenommen, ignoriere das erst mal.

    Viel Erfolg

    1 Reply Last reply
    1
    • B Offline
      B Offline
      Berti69
      wrote on last edited by
      #191

      Hallo
      Kann mir mal jemand helfen. Irgendwie stecke ich fest. Habe alle drei Module laut Plan verdrahtet. Kann auch jedes Modul einzel auslesen. Leider gehen 3 zusammen nicht. Habe versucht über Tasmota die Adresse der Module zuschreiben. Ohne Erfolg. Die Software für Windows bekomme ich nicht zum laufen. Egal ob mit win 7 oder 10. Kommt immer ein Fehler wenn ich die run über Admin Starte. Gibt es noch ne andere Software für das schreiben der Adresse oder mach ich irgendwo einen Fehler. Danke
      Gruß Bernd

      OpenSourceNomadO ice77I 2 Replies Last reply
      0
      • B Berti69

        Hallo
        Kann mir mal jemand helfen. Irgendwie stecke ich fest. Habe alle drei Module laut Plan verdrahtet. Kann auch jedes Modul einzel auslesen. Leider gehen 3 zusammen nicht. Habe versucht über Tasmota die Adresse der Module zuschreiben. Ohne Erfolg. Die Software für Windows bekomme ich nicht zum laufen. Egal ob mit win 7 oder 10. Kommt immer ein Fehler wenn ich die run über Admin Starte. Gibt es noch ne andere Software für das schreiben der Adresse oder mach ich irgendwo einen Fehler. Danke
        Gruß Bernd

        OpenSourceNomadO Offline
        OpenSourceNomadO Offline
        OpenSourceNomad
        Most Active
        wrote on last edited by OpenSourceNomad
        #192

        @berti69 said in [Tutorial] PZEM-004T 3 Phasen Überwachung:

        Gibt es noch ne andere Software für das schreiben der Adresse

        Esphome 😉 Das passende snippet dafür steht in der Dokumentation der pzemac (für v3) Komponente.
        Vielleicht hilft dir dann im Anschluss auch gleich (das meist sehr aussagekräftig) logging weiter um eventuelle Probleme mit dem pzem004t zu identifizieren 💡

        „Das Widerlegen von Schwachsinn erfordert eine Größenordnung mehr Energie als dessen Produktion.“ - Alberto Brandolini (Bullshit-Asymmetrie-Prinzip)

        1 Reply Last reply
        0
        • B Berti69

          Hallo
          Kann mir mal jemand helfen. Irgendwie stecke ich fest. Habe alle drei Module laut Plan verdrahtet. Kann auch jedes Modul einzel auslesen. Leider gehen 3 zusammen nicht. Habe versucht über Tasmota die Adresse der Module zuschreiben. Ohne Erfolg. Die Software für Windows bekomme ich nicht zum laufen. Egal ob mit win 7 oder 10. Kommt immer ein Fehler wenn ich die run über Admin Starte. Gibt es noch ne andere Software für das schreiben der Adresse oder mach ich irgendwo einen Fehler. Danke
          Gruß Bernd

          ice77I Offline
          ice77I Offline
          ice77
          wrote on last edited by ice77
          #193

          @berti69

          Hallo Bernd

          Ich kann Dir gerne sagen wie ich es ohne Kopfschmerzen gelöst habe:

          Verkable immer nur ein einzelnes PZEM an den esp8266 und setze die ID. Gib jedem Gerät eine unterschiedliche ID. Ich habe dazu ESPeasy genutzt, welches ich hier auch anhängen kann, wenn ich das binary noch finde.

          Wenn die unterschiedlichen IDs gesetzt wurden, kannst Du alle PZEMs an den ESP hängen und entsprechend konfigurieren.

          Das funktioniert 100%. Die einzige Stolperstelle ist, dass immer nur ein einzelner PZEM angehängt sein darf, wenn die ID geschrieben wird.

          Falls es nicht klappt... sag bescheid und ich helf dir gern.

          LG

          PS: ID setzten unter PZEM mode -> program adress

          Hier das Binary welches sicher funktioniert:
          ESP_Easy_mega_20210114_energy_ESP8266_4M1M.zip

          PZEM.png

          Hier kannst Du die ID setzen:
          ProgramAdress.png

          1 Reply Last reply
          0
          • B Offline
            B Offline
            Berti69
            wrote on last edited by
            #194

            Danke Euch beiden für die Hilfe. Habe es hinbekommen. Entweder habe ich das irgendwo überlesen oder es ist für Andere selbstverständlich. Ich mußte die isAnalogLibrary.ocx in die Windows Registry eintragen und installieren. Jetzt geht die Messung.
            Danke

            E 1 Reply Last reply
            0
            • B Berti69

              Danke Euch beiden für die Hilfe. Habe es hinbekommen. Entweder habe ich das irgendwo überlesen oder es ist für Andere selbstverständlich. Ich mußte die isAnalogLibrary.ocx in die Windows Registry eintragen und installieren. Jetzt geht die Messung.
              Danke

              E Offline
              E Offline
              Elektroschlumpf5
              wrote on last edited by
              #195

              @berti69 said in [Tutorial] PZEM-004T 3 Phasen Überwachung:

              isAnalogLibrary.ocx in die Windows Registry eintragen und installieren

              Hallo...
              Hab so meine probleme hiermit. was meinst du damit in die registry eintragen und installieren. bekomme es nicht zum laufen...

              1 Reply Last reply
              0
              • guxtduG Offline
                guxtduG Offline
                guxtdu
                wrote on last edited by
                #196

                Super Projekt

                hat jemand eine Idee warum mein PZEM mir 250V anzeigt und nicht 230V

                Danke

                B 1 Reply Last reply
                0
                • guxtduG guxtdu

                  Super Projekt

                  hat jemand eine Idee warum mein PZEM mir 250V anzeigt und nicht 230V

                  Danke

                  B Offline
                  B Offline
                  Beowolf
                  wrote on last edited by
                  #197

                  @guxtdu

                  Foto von Anschluß? Mal mit einem Multimeter gemessen? Hast Du nur den einen? Defekt?

                  So ist eine Aussage etwas schwierig.

                  Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                  1 Reply Last reply
                  0
                  • Basti97B Offline
                    Basti97B Offline
                    Basti97
                    Most Active
                    wrote on last edited by
                    #198

                    Ich habe nochmal eine Frage hier zu welche Diode habt ihr genommen. Ich hoffe das ich das hier nicht überlesen habe .)

                    Iobroker läuft als VM auf Proxmoxserver x folgende Hersteller im Einsatz Sonoff, Gosund, Siemens x Aofo über Tasmota x Zigbee x das Smarthome wächst und wächst

                    1 Reply Last reply
                    0
                    • E Offline
                      E Offline
                      edition
                      wrote on last edited by
                      #199

                      Guten Tag

                      Hat jemand eine Idee, warum mir nur die Spannung und die Frequenz angezeit wird? Die Werte für Strom, Leistung usw. bleiben bei Null, obwohl ein Heizlüfter mit 2000 Watt angeschlossen ist!

                      Ich habe 2 PZEM-004T V3. Einen mit Gehäuse, der andere ohne. Dazu einen geschlossenen und einen geteilten Stromwandler. Ich habe es mit einem Arduino Uno, einem Arduino Nano, mit einem Wemos D1 mini und Tasmota und auch esp easy versucht. Beim Wemus mit und ohne Pegelwandler. Das Ergebniss ist immer gleich. Strom bleibt auf 0,00 A!
                      Es können doch nicht beide PZEM defekt sein!

                      edition

                      B 1 Reply Last reply
                      0
                      • E edition

                        Guten Tag

                        Hat jemand eine Idee, warum mir nur die Spannung und die Frequenz angezeit wird? Die Werte für Strom, Leistung usw. bleiben bei Null, obwohl ein Heizlüfter mit 2000 Watt angeschlossen ist!

                        Ich habe 2 PZEM-004T V3. Einen mit Gehäuse, der andere ohne. Dazu einen geschlossenen und einen geteilten Stromwandler. Ich habe es mit einem Arduino Uno, einem Arduino Nano, mit einem Wemos D1 mini und Tasmota und auch esp easy versucht. Beim Wemus mit und ohne Pegelwandler. Das Ergebniss ist immer gleich. Strom bleibt auf 0,00 A!
                        Es können doch nicht beide PZEM defekt sein!

                        edition

                        B Offline
                        B Offline
                        Beowolf
                        wrote on last edited by
                        #200

                        @edition
                        Ohne Anschlußplan oder ein Bild vom Anschluß ist das etwas schwer zu sagen.

                        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                        1 Reply Last reply
                        0
                        • E Offline
                          E Offline
                          edition
                          wrote on last edited by
                          #201

                          Im Moment hängt der PZEM am Arduino Nano. +5V ist an 5V, Masse an GND, RX und TX an D12 bzw. D13. Der geteilte Stromwandler hängt am Netzkabel des Heizlüfters, Netzkabel des PZEM ist Phasenrichtig an der gleichen Steckdose eingesteckt. Alle 30 sec blinken die RX/TX LED´s des PZEM kurz auf. Dann wird im Seriellen Monitor der Arduino IDE ein neuer Wertesatz angezeigt.

                          09:45:07.865 -> Custom Address:1
                          09:45:07.985 -> Voltage: 234.30V
                          09:45:07.985 -> Current: 0.00A
                          09:45:07.985 -> Power: 0.00W
                          09:45:07.985 -> Energy: 0.001kWh
                          09:45:07.985 -> Frequency: 50.0Hz
                          09:45:07.985 -> PF: 0.00
                          
                          

                          Der Heizlüfter ist gerade aus. Wenn ich ihn einschalte, ändert sich an den Werten nichts!

                          B 1 Reply Last reply
                          0
                          • E edition

                            Im Moment hängt der PZEM am Arduino Nano. +5V ist an 5V, Masse an GND, RX und TX an D12 bzw. D13. Der geteilte Stromwandler hängt am Netzkabel des Heizlüfters, Netzkabel des PZEM ist Phasenrichtig an der gleichen Steckdose eingesteckt. Alle 30 sec blinken die RX/TX LED´s des PZEM kurz auf. Dann wird im Seriellen Monitor der Arduino IDE ein neuer Wertesatz angezeigt.

                            09:45:07.865 -> Custom Address:1
                            09:45:07.985 -> Voltage: 234.30V
                            09:45:07.985 -> Current: 0.00A
                            09:45:07.985 -> Power: 0.00W
                            09:45:07.985 -> Energy: 0.001kWh
                            09:45:07.985 -> Frequency: 50.0Hz
                            09:45:07.985 -> PF: 0.00
                            
                            

                            Der Heizlüfter ist gerade aus. Wenn ich ihn einschalte, ändert sich an den Werten nichts!

                            B Offline
                            B Offline
                            Beowolf
                            wrote on last edited by
                            #202

                            @edition sagte in [Tutorial] PZEM-004T 3 Phasen Überwachung:

                            Der geteilte Stromwandler hängt am Netzkabel des Heizlüfters

                            Sitzt der Stromwandler um die komplette Leitung oder nur um eine Ader?

                            Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                            1 Reply Last reply
                            0
                            • E Offline
                              E Offline
                              edition
                              wrote on last edited by
                              #203

                              Der Stromwandler umschließt die ganze Leitung.

                              B 1 Reply Last reply
                              0
                              • E edition

                                Der Stromwandler umschließt die ganze Leitung.

                                B Offline
                                B Offline
                                Beowolf
                                wrote on last edited by Beowolf
                                #204

                                @edition
                                Dann kann es nicht funktionieren.

                                Du kannst Dir das so vorstellen, als ob der Stromwandler gleichzeitig das misst was "rein und wieder raus geht". Das ist eben "Null".

                                Zur Veranschaulichung ist es einfacher sich das mit Gleichstrom vorzustellen. Dort fliesst ja auch der Strom vom Pluspol durch z.B. einer LED wieder zurück zum Minuspol. Wenn ich jetzt bei Leitungen gleichzeitig durch einen Stromwandler lege heben sich die Ströme auf.

                                Die Erklärung ist jetzt sehr, sehr einfach gehalten.

                                Der Stromwandler darf nur eine der beiden Adern die in der Leitung zum Heizlüfter geht messen, dann sollte es auch gehen. Natürlich nicht den Schutzleiter nehmen. Meistens sind die Farben "braun, blau und gelb/grün". Entweder den braunen oder den blauen nehmen.


                                Wenn ich das so lese, wäre es glaube ich besser, wenn Du die Finger von 230 Volt Leitungen lassen würdest.

                                Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                1 Reply Last reply
                                0
                                • E Offline
                                  E Offline
                                  edition
                                  wrote on last edited by
                                  #205

                                  Hmm, das erschließt sich sogar mir als Schlosser! Dann werde ich mir mal ein "Zwischenkabel" basteln, um nur die Phase zu messen.

                                  Danke für den Tip!

                                  edition

                                  B 1 Reply Last reply
                                  0
                                  • E edition

                                    Hmm, das erschließt sich sogar mir als Schlosser! Dann werde ich mir mal ein "Zwischenkabel" basteln, um nur die Phase zu messen.

                                    Danke für den Tip!

                                    edition

                                    B Offline
                                    B Offline
                                    Beowolf
                                    wrote on last edited by
                                    #206

                                    @edition
                                    Bitte sei aber vorsichtig. Bei 230 Volt ist "basteln" nicht wirklich sinnvoll.

                                    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                    1 Reply Last reply
                                    0
                                    • E Offline
                                      E Offline
                                      edition
                                      wrote on last edited by
                                      #207

                                      Ist schon klar! Basteln ist vielleicht der falsche Ausdruck. Das 230 Volt lebensgefährlich sein können, weiß ich schon. Ich drehe nicht das Haus, wenn ich eine Glühlampe wechseln will!

                                      B 1 Reply Last reply
                                      0
                                      • E edition

                                        Ist schon klar! Basteln ist vielleicht der falsche Ausdruck. Das 230 Volt lebensgefährlich sein können, weiß ich schon. Ich drehe nicht das Haus, wenn ich eine Glühlampe wechseln will!

                                        B Offline
                                        B Offline
                                        Beowolf
                                        wrote on last edited by
                                        #208

                                        @edition
                                        Und? War das der Fehler?

                                        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                        E 1 Reply Last reply
                                        0
                                        • B Beowolf

                                          @edition
                                          Und? War das der Fehler?

                                          E Offline
                                          E Offline
                                          edition
                                          wrote on last edited by
                                          #209

                                          @beowolf Natürlich war das der Fehler! Es hat schon bei der Frage, ob ich den Stromwandler um die ganze Leitung, oder nur um die Phase gelegt habe geklingelt. Da hätte ich auch als nicht Elektriker drauf kommen können!

                                          Ich habe jetzt eine "Zwischenstecker Lösung". Kurze Verlängerung (50cm), Kupplung demontiert, Mantelleitung abisoliert (20cm), Blau und Grün/Gelb mit Schrumpsfschlauch versehen, Braun mit Schrumpfschlauch versehen, Stromwandler über den braunen, den Mantel gekürzt und wieder auf die Adern geschoben, Kupplung wieder montiert.

                                          Das wird meine "portable Messstation". Den zweiten PZEM will ich im Zählerschrank fest einbauen um das Aquarium permanent zu messen. Kann ich den PZEM auch mit TTL zu USB Adapter direkt am Raspberry mit iobroker betreiben? Welcen Adapter nehme ich da?

                                          edition

                                          B 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          208

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe