Beiträge von 2000ede

Hallo Community, die Fehler der letzten Tage wurden hoffentlich behoben. Entschuldigt den Umstand! Viel Spaß weiterhin. Lg

    Hallo ottelo ,
    kannst du die Frage beantworten?

    2000ede
    28. Februar 2026 um 16:18


    Danke!

    mea culpa, mein Fehler war woanders und hatte die KI reingebracht und mich anschließend noch weiter in die Hölle geschickt

    Fehler waren die Leerzeichen in der Formel: v_p1_calc = v_v1 * v_i1 * cos(v_phi1)

    Anschließend musste die Formel noch inhaltlich angepasst werden:

    somit richtig:
    v_p1_calc = v_v1*v_i1*cos(v_phi1*3.1415926/180)

    Hallo!

    Stromzähler-IR-Lesekopf und Tasmota Script: Berechnung der Leistung pro Phase - um das zu können benötige ich die cos()-Funktion.

    Leider zeigt er mir nur falsche Daten an.

    Ich hab die Bin schon erweitert um:

    #define USE_ANGLE_FUNC
    #define SUPPORT_MATH
    .... hat nichts gebracht


    füge ich nun:

    #define USE_EXPRESSION
    hinzu, werden stumpf sensorwerte nicht mehr angezeigt. Warum auch immer.

    Mache ich einen Fehler, geht es nicht, oder brauche ich andere BIN-defines?


    >D 124
    g:v_watt=0

    v_bez=0
    v_eins=0

    v_v1=0
    v_v2=0
    v_v3=0

    v_i1=0
    v_i2=0
    v_i3=0

    v_phi1=0
    v_phi2=0
    v_phi3=0

    v_p1_calc=0
    v_p2_calc=0
    v_p3_calc=0

    v_p_sum=0

    v_p1_real=0
    v_p2_real=0
    v_p3_real=0

    v_frq=0

    >B
    dp(1 3)


    >M 1
    +1,3,s,0,9600,SML
    1,77070100010800ff@1000,Total consumption,kWh,Total_in,4
    1,77070100020800ff@1000,Total Feed,kWh,Total_out,4
    1,77070100100700ff@1,Current consumption,W,Power_curr,2
    1,77070100200700ff@1,Voltage L1,V,Volt_p1,1
    1,77070100340700ff@1,Voltage L2,V,Volt_p2,1
    1,77070100480700ff@1,Voltage L3,V,Volt_p3,1
    1,770701001f0700ff@1,Amperage L1,A,Amperage_p1,1
    1,77070100330700ff@1,Amperage L2,A,Amperage_p2,1
    1,77070100470700ff@1,Amperage L3,A,Amperage_p3,1
    1,77070100510704ff@1,Phaseangle I-L1/U-L1,deg,phase_angle_p1,1
    1,7707010051070fff@1,Phaseangle I-L27I-L2,deg,phase_angle_p2,1
    1,7707010051071aff@1,Phaseangle I-L3/I-L3,deg,phase_angle_p3,1
    1,770701000e0700ff@1,Frequency,Hz,frequency,0
    #

    >S
    if (upsecs%3==0) {
    ; Zuweisung ueber verifizierte Indizes
    v_bez = sml[1]
    v_eins= sml[2]
    v_watt = sml[3]
    v_v1 = sml[4]
    v_v2 = sml[5]
    v_v3 = sml[6]
    v_i1 = sml[7]
    v_i2 = sml[8]
    v_i3 = sml[9]
    v_phi1 = sml[10]
    v_phi2 = sml[11]
    v_phi3 = sml[12]
    v_frq = sml[13]

    v_p1_calc = v_v1 * v_i1 * cosd(v_phi1)
    v_p2_calc = v_v2 * v_i2 * cosd(v_phi2)
    v_p3_calc = v_v3 * v_i3 * cosd(v_phi3)

    v_p_sum = v_p1_calc + v_p2_calc + v_p3_calc

    if (abs(v_p_sum) > 0.1) {
    v_p1_real = v_watt * v_p1_calc / v_p_sum
    v_p2_real = v_watt * v_p2_calc / v_p_sum
    v_p3_real = v_watt * v_p3_calc / v_p_sum
    } else {
    v_p1_real = 0
    v_p2_real = 0
    v_p3_real = 0
    }
    }


    >W

    Gesamt: %v_watt% W


    -- Rechnerisch --

    L1_calc: %v_p1_calc% W

    L2_calc: %v_p2_calc% W

    L3_calc: %v_p3_calc% W


    -- Verteilt --

    L1_real: %v_p1_real% W

    L2_real: %v_p2_real% W

    L3_real: %v_p3_real% W


    Bezug {m} v_bez {m} %v_bez%
    Einsp {m} v_eins {m} %v_eins%
    Leist {m} v_watt {m} %v_watt%

    V1 {m} v_v1 {m} %v_v1%
    V2 {m} v_v2 {m} %v_v2%
    V3 {m} v_v3 {m} %v_v3%

    Amp1 {m} v_i1 {m} %v_i1%
    Amp2 {m} v_i2 {m} %v_i2%
    Amp3 {m} v_i3 {m} %v_i3%

    phi1 {m} v_phi1 {m} %v_phi1%
    phi2 {m} v_phi2 {m} %v_phi2%
    phi3 {m} v_phi3 {m} %v_phi3%

    P_kalk1 {m} v_p1_calc {m} %v_p1_calc%
    P_kalk2 {m} v_p2_calc {m} %v_p2_calc%
    P_kalk3 {m} v_p3_calc {m} %v_p3_calc%

    watt_G {m} v_p_sum {m} %v_p_sum%

    P_real1 {m} v_p1_real {m} %v_p1_real%
    P_real2 {m} v_p2_real {m} %v_p2_real%
    P_real3 {m} v_p3_real {m} %v_p3_real%

    Hallo gemu2015 ,

    welche besonderen Define benötige ich für eine eigene BIN-Datei um einen Ecotracker oder Shelly zu emulieren?
    Das Script habe ich hier schon gefunden.

    Sind es diese? oder fehlt noch etwas?

    • #ifndef USE_SCRIPT / #define USE_SCRIPT (Aktiviert die Script-Engine)
    • #define USE_SML_METER (Ermöglicht das Auslesen des Smart Meters via IR-Kopf)
    • #define SCRIPT_FOR_SML_METER (Verknüpft SML-Daten direkt mit dem Scripting)
    • #define USE_DISCOVERY (Grundvoraussetzung für mDNS/Discovery)
    • #define USE_MDNS (Aktiviert den mDNS-Responder)


      Danke für die Antwort!

    Leider funktioniert das Forum bei mir weiterhin nicht mehr ordnungsgemäß.

    Kommt noch eine Heilung?


    Ein Fehler ist aufgetreten

    Interner Fehlercode: 4b928d86da2b70f970934164b1055613b8613ff2

    Was ist passiert?

    Leider ist es bei der Verarbeitung zu einem Fehler gekommen und die Ausführung wurde abgebrochen. Falls möglich, leiten Sie bitte den oben stehenden Fehlercode an den Administrator weiter.


    Administratoren können die vollständige Fehlermeldung mit Hilfe dieses Codes in der Administrationsoberfläche unter „Protokoll » Fehler“ einsehen. Zusätzlich wurden die Informationen in die Protokolldatei */log/2026-02-16.txt geschrieben und können beispielsweise mit Hilfe eines FTP-Programms abgerufen werden.


    Hinweis: Der Fehlercode wird zufällig generiert, erlaubt keinen Rückschluss auf die Ursache und ist daher für Dritte nutzlos.

    System Information

    Error

    • Error Message:

      Call to a member function toHtml() on null

    • Error Type:

      Error

      */templates/compiled/0_wcf_1_trophyBadge.php:17

    Stack Trace

    • #0 include()
    • */lib/system/template/TemplateEngine.class.php:458
    • #1 wcf\system\template\TemplateEngine->display('trophyBadge', 'wcf', false)
    • */lib/system/template/TemplateEngine.class.php:711
    • #2 wcf\system\template\TemplateEngine->fetch('trophyBadge', 'wcf', [ size => , trophy => , showTooltip => ], true)
    • */lib/data/trophy/Trophy.class.php:108
    • #3 wcf\data\trophy\Trophy->renderTrophy(32, true)
    • */templates/compiled/0_wcf_1_conversation.php:2044
    • #4 include('*/templates/compiled/0_wcf_1_conversation.php')
    • */lib/system/template/TemplateEngine.class.php:458
    • #5 wcf\system\template\TemplateEngine->display('conversation', 'wcf')
    • */lib/page/AbstractPage.class.php:372
    • #6 wcf\page\AbstractPage->show()
    • */lib/page/AbstractPage.class.php:124
    • #7 wcf\page\AbstractPage->__run()
    • */lib/system/request/Request.class.php:50
    • #9 wcf\http\Pipeline->process(Laminas\Diactoros\ServerRequest, wcf\http\RequestHandlerMiddleware)
    • */lib/system/request/RequestHandler.class.php:161
    • #10 wcf\system\request\RequestHandler->handle('wcf')
    • */index.php:10

    Omega13

    Sofern ich dein Problem richtig verstanden habe ist es doch total simpel:

    An dieser Stelle musst du statt cpwr=sml[4] doch einfach nur cpwr=sml[1]-sml[4] eintragen um den Saldo der aktuellen Leistung (Bezug - Leistung) zu erhalten.

    >S
    if year<2000 {
    break
    }
    ; adapt this to your meter
    ; update every 3 seconds
    if upsecs%3==0 {
    cpwr=sml[4]
    c1p=sml[4]
    c2p=sml[5]
    c3p=sml[6]
    }


    Oder habe ich das Problem nicht richtig verstanden?

    ich habe aktuell keine tasmota Steckdosen im Einsatz, bin aber allgemein bei script schon einigermaßen Fit.

    Wenn du schreibst, was du haben möchtest (Inhalt) helfe ich dir gerne.

    Das Script oben sollte allerdings schon korrekt sein (ohne es geprüft zu haben).
    Wichtig ist die korrekte Zusammenstellung der bin Datei

    Bitte auch schreiben, welchen ESP du im Einsatz hast.
    ESP32, ESP32 S3, ESP32 .... oder ESP8266

    falls dich Nullen nicht stören könntest du die Variable z.b. 5,2 dekarieren. -> 5 Stellen vor dem Komma, 2 danach

    %5,2temp%

    rechtsbündig in Tasmota Standard kenne ich nicht.

    Was aber geht und noch zig andere Vorteile mit sich bringt. Statt ausgabe in >W in einer Unterseite
    >W1 Test

    hier kannst du nun frei html code verwenden.... da steht dir Tür und Tor offen.... inkl. großer hilfe mit chatgpt usw.

    schön, dass es dir gefällt.

    Ja, das waren Tippfehler. Ich hatte es "aus dem Kopf" ohne ESP schnell getippt.

    "Im Abschnitt >" klappt es in der Zeile Phasen mit "{m}" zwischen dem 2. und 3. Wert nicht wirklich. Der zweite Wert rutscht ganz nach rechts und der 3. Wert ist ganz verschwunden bzw. man wischt weiter nach rechts."

    -> jein - da war meine Vorgabe schon richtig. die breiteste Zeile gibt nur die Größe vor. Die Diagramme werden dann wohl die erste Spalte breit machen.

    Aber so wie du es nun angepasst hast ist doch alles ok.

    Dies ist aber nur die rudimentäre Umsetung. Die Grenzen sind fast offen, z.B. auslagern auf auf dem ESP gelegten Webseiten oder an google sheets. Aber auch da gibt es Licht und Schatten.

    Bitte einmal probieren (ungetestet):

    >D

    v_wl=0.0
    v_bz=0.0
    v_ez=0.0
    v_w1=0.0
    v_w2=0.0
    v_w3=0.0

    ;xxxxxxxx Boot xxxxxxxx
    >B
    =>sensor53 r
    =>websensor53 0

    ;xxxxxxxx Zähler xxxxxxxx
    >M 1
    +1,5,s,16,9600
    1,77070100100700ff@1,Leistung,W,Wirkleistung,0
    1,77070100010800ff@100000000,Bezugsenergie,kWh,Bezug_kWh,3
    1,77070100020800ff@100000000,Exportenergie,kWh,Export_kWh,3
    1,77070100240700ff@1,Leistung L1,W,Wirkleistung_L1,0
    1,77070100380700ff@1,Leistung L2,W,Wirkleistung_L2,0
    1,770701004C0700ff@1,Leistung L3,W,Wirkleistung_L3,0

    ;xxxxxxxx jede Sekunde xxxxxxxx
    >S
    if year<2025 {
    break
    }


    v_wl=0.0 = sml[1]
    v_bz=0.0 = sml[2]
    v_ez=0.0 = sml[3]
    v_w1=0.0 = sml[4]
    v_w2=0.0 = sml[5]
    v_w3=0.0 = sml[6]


    ;xxxxxxxx Webausgabe xxxxxxxx
    >W

    Leistung {m} %0v_wl% W
    BezugZ {m} %0v_bz% kWh
    Einsp.Z {m} %0v_ez% kWh
    Phasen {m} %0v_w1% kWh {m} %0v_w2% kWh {m} %0v_w3% kWh

    xxxxxxxx {m} xxxxxxxxxxxx {m} xxxxxxxxxxxx {m} xxxxxxxxxxxx {m} xxxxxxxxxxxx

    Ist das (wirklich) für Shelly oder für den ecotracker?


    Und die von dir angehängte Datei: ist das einfach nur das Skript Modul oder etwas besonderes für diese Aufgabenstellung?

    Wenn man deinen Fork nimmt, braucht man die Datei nicht, korrekt?

    Oder wie genau würde man die Datei einbinden?
    Danke für die Hilfestellungen!

    lt. Chatgpt:

    Gute und sehr technische Frage! Systeme wie NOAH Solarspeicher oder andere Smart-Home-Systeme erkennen den everHome EcoTracker IR typischerweise nicht per zufälligem Hostnamen wie ecotracker.local, sondern über eine der folgenden Mechanismen:


    ✅ 1. UPnP, SSDP oder mDNS (Bonjour)

    Viele moderne Geräte mit ESP32/ESP8266 (wie der EcoTracker) könnten mittels Multicast DNS (mDNS) oder SSDP (Simple Service Discovery Protocol) im lokalen Netzwerk „sichtbar“ werden.

    Aber:
    Laut bisheriger Dokumentation scheint der EcoTracker IR von everHome kein mDNS oder SSDP zu senden – das heißt: NOAH muss aktiv nach ihm scannen oder ihn durch Benutzerhilfe finden.

    ✅ 2. Netzwerkscan durch die App (Layer 2 Broadcast / Ping Sweep)

    Wenn du in der NOAH App oder bei der Konfiguration „EcoTracker suchen“ auswählst, passiert meist Folgendes:

    SchrittBeschreibung
    1.Die NOAH App scannt dein lokales Netzwerk (z. B. Subnetz 192.168.178.0/24)
    2.Dabei sendet sie HTTP-Anfragen an bekannte Ports/IPs, z. B. http://192.168.x.x/v1/json
    3.Die Antwort enthält typische JSON-Daten vom EcoTracker (z. B. aktuelle Zählerstände)
    4.Anhand dieser Antwort erkennt NOAH den EcoTracker

    ➡️ Also: Es wird gezielt nach der EcoTracker-REST-API gesucht.


    ✅ 3. MAC-Adress-Präfix-Erkennung

    NOAH könnte auch anhand der MAC-Adresse oder des Herstellers (OUI) den EcoTracker identifizieren. Typisch wäre:

    • MAC-Präfix 84:0D:8E → Espressif Inc. (ESP32-basiert)

      ✅ Fazit

    • NOAH erkennt den EcoTracker nicht über einen festen Hostnamen, sondern durch:
    • Netzwerkscan nach der REST-API
    • Analyse der JSON-Antwort
    • Ggf. MAC-Adresse / Port-Signaturen
    • Wenn du möchtest, kann ich dir ein Skript schreiben, um im eigenen Netz nach dem EcoTracker zu suchen oder ihn manuell einzubinden.