Beiträge von Bully85

    ändere mal die rot markierte zahl ab die ist meines wissens nach für die Abfragezeit

    Guten Morgen alle zusammen.

    Ich habe mir jetzt mal die Mühe gemacht und alle 91 Seiten gelesen finde aber leider nichts zu meinem Problem. Ich hoffe ihr könnt mir helfen.

    Ausgangssituation ist:

    Elster AS1440, Ferraris Zähler 75 u/KWh, NodeMCU mit Tasmota 12.2.0 und SML, Volkszähler Lesekopf und TRCT5000 (GPIO14), MQTT Adapter IoBroker.

    Problem:

    1. Elster AS1440 Stromzähler Daten werden alle ausgelesen. Soweit so gut passendes Script eingefügt:

    So es werden fast alle Werte richtig angezeigt außer 1.7.0 gesamter momentan Verbrauch. Da zeigt er mir die Werte von 61.7.0 an. (Siehe Bild 1,Script und Log).

    Was mache ich falsch?

    2. Ich parse den MQTT string mit IoBroker in extra Datenpunkte. Jedoch habe ich das Problem, dass wenn Tasmota den Wert 0 liefert, die Datenpunkte nicht auf 0 stellt. Lediglich wenn ein Wert über 0 gesendet wird aktuallisiert der Datenpunkt.

    3. ist es möglich, das der Momentanverbrauch des Ferrariszähler in der Anzeige wieder auf 0 geht wenn er nicht mehr dreht? Jetzt ist es so, wenn ich den TRCT5000 weg nehme bleibt der zu letzt geschriebene Wert. Wäre toll wenn er erkennt das er nicht mehr dreht und den Wert 0 anzeigt. (siehe Bild 2 Haupt Momentan)

    4. wie berechne ich den wert den man nach dem @ Zeichen bei counter 1 1.7.0*255 eingibt um die momentane Leistung zu zeigen. (siehe Script)

    Bild1 AS1440

    Bild2 Ferraris

    Bild3 Datenpunkte IoBroker

    Tasmota Script

    Spoiler anzeigen

    >D

    scnt=0

    res=0

    >B

    =>sensor53 r

    >F

    ; count 100ms

    scnt+=1

    switch scnt

    ;300ms after start: set sml driver to 300 baud and send /?! as HEX to trigger the Meter

    case 3

    res=sml(1 0 300)

    res=sml(1 1 "2F3F210D0A")

    ;1700ms later: Ack and ask for switching to 9600 baud

    case 20

    res=sml(1 1 "063035300D0A")

    ;300ms later: switch sml driver to 9600 baud

    case 23

    res=sml(1 0 9600)

    ;6000ms after start: Restart sequence

    case 60

    scnt=0

    ends

    >M 2

    +1,3,o,0,9600,AS1440,1

    1,1.7.0(@0.001,Momentan,W,power_in,16

    1,61.7.0(@0.001,Momentan L3,W,power_in_L3,16

    1,41.7.0(@0.001,Momentan L2,W,power_in_L2,16

    1,21.7.0(@0.001,Momentan L1,W,power_in_L1,16

    1,1.8.0(@1,WP Gesammt,KWh,Total_in,1

    1,1.8.1(@1,WP HT,KWh,Total_in_HT,1

    1,1.8.2(@1,WP NT,KWh,Total_in_NT,1

    +2,14,c,0,-50,Haupt

    2,1-0:1.8.0*255(@75 ,Gesammt,KWh,kw_ges,2

    2,1-0:1.7.0*255(@1,Momentan,W,kw_mom,16 wie berechne ich diesen Wert?

    2,1-0:1.7.0*255(@1,time,ms,Energie_time,0

    #

    LOG sensor53 d1

    Spoiler anzeigen

    12:46:01.327 CMD: sensor53 d1
    12:46:01.334 MQT: stat/tasmota_D9CA9F/RESULT = {"Time":"2022-11-20T12:46:01","SML":{"CMD":"dump: 1"}}
    12:46:03.567 : 1.8.0*11(018671.80*k/ELS5\@V9.36 12:46:04.701 : F.F(00000000)
    12:46:04.730 : 0.0.1( 120695)
    12:46:04.752 : 0.9.1(123546)
    12:46:04.776 : 0.9.2(221120)
    12:46:04.794 : 0.1.0(58)
    12:46:04.845 : 0.1.2*10(2211010000)
    12:46:04.892 : 0.1.2*09(2210010000)
    12:46:04.998 : 0.1.2*08(2209010000)
    12:46:05.120 : 0.1.2*07(2208010000)
    12:46:05.170 : 0.1.2*06(2207010000)
    12:46:05.216 : 0.1.2*05(2206010000)
    12:46:05.263 : 0.1.2*04(2205010000)
    12:46:05.309 : 0.1.2*03(2204010000)
    12:46:05.357 : 0.1.2*02(2203010000)
    12:46:05.403 : 0.1.2*01(2202010000)
    12:46:05.451 : 0.1.2*12(2201010000)
    12:46:05.498 : 0.1.2*11(2112010000)
    12:46:05.519 : 0.3.0(500.00)
    12:46:05.541 : 0.3.3(250.00)
    12:46:05.574 : 1.7.0(0.102*kW)
    12:46:05.606 : 21.7.0(0.096*kW)
    12:46:05.637 : 41.7.0(0.000*kW)
    12:46:05.667 : 61.7.0(0.005*kW)
    12:46:05.716 : 1.8.0(022635.82*kWh)
    12:46:05.774 : 1.8.0*10(022409.41*kWh)
    12:46:05.834 : 1.8.0*09(022213.71*kWh)
    12:46:05.893 : 1.8.0*08(022073.46*kWh)
    12:46:05.953 : 1.8.0*07(021995.77*kWh)
    12:46:06.079 : 1.8.0*06(021912.33*kWh)
    12:46:06.136 : 1.8.0*05(021800.16*kWh)
    12:46:06.199 : 1.8.0*04(021607.80*kWh)
    12:46:06.258 : 1.8.0*03(021195.94*kWh)
    12:46:06.317 : 1.8.0*02(020644.79*kWh)
    12:46:06.376 : 1.8.0*01(020107.62*kWh)
    12:46:06.576 : 1.8.0*12(019367.57*kWh)
    12:46:06.578 : 1.8.0*11(018671.80*kWh)
    12:46:06.579 : 1.8.1(015529.09*kWh)
    12:46:06.581 : 1.8.1*10(015377.42*kWh)
    12:46:06.611 : 1.8.1*09(015226.33*kWh)
    12:46:06.651 : 1.8.1*08(015119.68*kWh)
    12:46:06.695 : 1.8.1*07(015059.22*kWh)
    12:46:06.739 : 1.8.1*06(014987.25*kWh)
    12:46:06.777 : 1.8.1*05(014904.10*kWh)
    12:46:06.820 : 1.8.1*04(014775.12*kWh)
    12:46:06.862 : 1.8.1*03(014506.62*kWh)
    12:46:06.901 : 1.8.1*02(014170.09*kWh)
    12:46:06.945 : 1.8.1*01(013804.91*kWh)
    12:46:07.055 : 1.8.1*12(013298.11*kWh)
    12:46:07.096 : 1.8.1*11(012823.16*kWh)
    12:46:07.132 : 1.8.2(007106.72*kWh)
    12:46:07.174 : 1.8.2*10(007031.99*kWh)
    12:46:07.214 : 1.8.2*09(006987.38*kWh)
    12:46:07.253 : 1.8.2*08(006953.78*kWh)
    12:46:07.296 : 1.8.2*07(006936.54*kWh)
    12:46:07.336 : 1.8.2*06(006925.08*kWh)
    12:46:07.374 : 1.8.2*05(006896.05*kWh)
    12:46:07.417 : 1.8.2*04(006832.68*kWh)
    12:46:07.465 : 1.8.2*03(006689.32*kWh)
    12:46:07.506 : 1.8.2*02(006474.70*kWh)
    12:46:07.550 : 1.8.2*01(006302.71*kWh)
    12:46:07.589 : 1.8.2*12(006069.46*kWh)
    12:46:07.631 : 1.8.2*11(005848.63*kWh)
    12:46:07.667 : 1.8.3(000000.00*kWh)
    12:46:07.711 : 1.8.3*10(000000.00*kWh)
    12:46:07.749 : 1.8.3*09(000000.00*kWh)
    12:46:07.791 : 1.8.3*08(000000.00*kWh)
    12:46:07.835 : 1.8.3*07(000000.00*kWh)
    12:46:07.873 : 1.8.3*06(000000.00*kWh)
    12:46:07.916 : 1.8.3*05(000000.00*kWh)
    12:46:07.957 : 1.8.3*04(000000.00*kWh)
    12:46:08.061 : 1.8.3*03(000000.00*kWh)
    12:46:08.169 : 1.8.3*02(000000.00*kWh)
    12:46:08.209 : 1.8.3*01(000000.00*kWh)
    12:46:08.248 : 1.8.3*12(000000.00*kWh)
    12:46:08.291 : 1.8.3*11(000000.00*kWh)
    12:46:08.326 : 1.8.4(000000.00*kWh)
    12:46:08.366 : 1.8.4*10(000000.00*kWh)


    Java Script Ferraris IoBroker

    Spoiler anzeigen

    on('mqtt.0.tele.tasmota_DC5563.SENSOR', function(dp) {

        let strom = JSON.parse(dp.state.val).Haupt;

        if(strom['kw_ges']) {

            let val = strom['kw_ges'];

    setState('0_userdata.0.Stromzähler.Ferraris.Gesammt', val, true);

    } if(strom['kw_mom']) {

            let val = strom['kw_mom'];

    setState('0_userdata.0.Stromzähler.Ferraris.Momentan', val, true);

    }

    });

    Java Script AS1440 IoBroker

    Spoiler anzeigen

    on('mqtt.0.tele.tasmota_zaehler.SENSOR', function(dp) {

        let strom = JSON.parse(dp.state.val).AS1440;

        if(strom['power_in']) {

            let val = strom['power_in'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_gesammt', val, true);

    } if(strom['power_in_L3']) {

            let val = strom['power_in_L3'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_L3', val, true);

    } if(strom['power_in_L2']) {

            let val = strom['power_in_L2'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_L2', val, true);

    } if(strom['power_in_L1']) {

            let val = strom['power_in_L1'];

    setState('0_userdata.0.Stromzähler.SML.Momentan_L1', val, true);

    } if(strom['Total_in']) {

            let val = strom['Total_in'];

    setState('0_userdata.0.Stromzähler.SML.Gesammt', val, true);

    } if(strom['Total_in_HT']) {

            let val = strom['Total_in_HT'];

    setState('0_userdata.0.Stromzähler.SML.HT', val, true);

    } if(strom['Total_in_NT']) {

            let val = strom['Total_in_NT'];

    setState('0_userdata.0.Stromzähler.SML.NT', val, true);

    }

    });

    Hoffentlich kann mir jemand helfen, da ich im Scripten zu wenig erfahrung habe. Wenn möglich bitte ich auch um eine erklärung warum, da ich das selber lernen will und beim nächsten mal nicht wieder bei einer ähnlichen Situation fragen möchte.