Beiträge von sunburstc

    Hallo zusammen.

    Ich weiß nicht genau, ob mein folgendes Problem bereits besprochen wurde. Eine Suche ergab auf jeden Fall nichts. Ich hoffe ihr könnt mir weiterhelfen.

    Bei uns ist der Stromzähler Easymeter Q3A installiert. Nun möchte ich die Verbrauchsdaten etc. per IR Schnittstelle (vorne am Zähler) auslesen. Als Hardware dient mir der IR-Lesekopf von Hichi. Mit dem folgenden Skript erhalte ich zunächst nur die Summe des Vebrauchs ohne Nachkommastelle:

    Nachdem ich den PIN von dem Messstellenbetreiber erhalten und eingegeben habe. Hat alles funktioniert. Leider aber nur kurzzeitig. Nämlich genau 120 Sekunden bis der PIN Schutz wieder automatisch aktiviert wurde. Diesen PIN-Schutz kann ich leider nicht ausstellen, da das entsprechende Menü gar nicht bei meinem Zähler vorhanden ist. Hat jemand eine Idee? Das wäre super. Danke schon einmal

    Hab das gleiche Problem. Hab mir eine helle LED vor das "PinEingabeloch" gehängt, die alle 10 Sekunden für eine Sekunde aufleuchtet. Du musst also erst den PIN Eingeben und danach die LED davor kleben. Solange durch das blinken das Menü immer umgeschaltet wird, bleibt der Zähler im erweiterten Modus.

    Das Blinken habe ich via Script realisiert. Setze einen GPIO High/Low der wiederum einen MOSFET steuert. Dieser dient als "Schalter" Für die Spannungsversorgung der LED.

    jaschkopf

    Probiere es so.

    Ist es denn wirklich sicher, dass es sich um einen OBIS Zähler handelt? Weil das sieht ja schon fast eher nach SML aus.

    Normalerweise ist nach einem Stromausfall der Wert auch nicht weg. Zumindest bei mir nicht.

    Bzgl. deiner Eingabe via URL: Hast du denn versucht ob du irgendwelche anderen Werte via "URL" an die Konsole senden kannst? Vielleicht baust du die Sache eins nach dem anderen auf.

    Zappdidappdi So vielleicht?


    Von welchem Komma reden Sie?

    Ah sorry, hatte was verwechselt! PN

    Danke dir. Manchmal liegt es eigentlich auf der Hand.

    Noch eine Frage, kann man die Rohdaten auch per Wlan abholen lassen? Es gibt ja im ioBroker den Smart-Meter Adapter, der die Rohdaten verarbeiten kann. Bei ESP-Easy geht das über ser2net. Sowas müsste es doch auch für Tasmota geben?

    Beziehungsweise bekomme ich es irgendwie nicht hin, dass ich den GAS Zähler zum Beispiel auf 5480,24 setzen kann und dann mit 0,01 Schritten gezählt wird.

    Das ist auch alles sehr gut in der offiziellen Tasmota Doku beschrieben. Und findet sich vmtl. auch in dem Howto welches von mir hier schon einige male gepostet wurde. Es lohnt sich danach zu suchen.

    Empfangen lässt sich der Kram via Sonoff Adapter in iobroker. Dort in den Einstellungen des Adapters ein Häkchen bei allen 3 unteren Optionen machen.

    In deinem Tasmota -Gerät MQTT einstellen. Server Adresse deines iobroker devices, Namen vergeben.. etc.

    Dann sollten die Werte zu jeder Teleperiode (default 300s) übertragen werden.

    Die Teleperiode kann via Konsolen Befehl: teleperiod ZAHLENWERT

    eingestellt werden. Der kleinste Wert ist 10s.

    Bzgl. der Werte des jeweiligen Zählers. Auch hierzu gibt es infos in den beiden oben genannten Quellen.

    Es lohnt sich mit den beiden rot markierten Stellen zu spielen und auch mal den Wert ohne Komma vordefinieren.

    1,1-0:1.8.0*255(@10000,Wasserzähler,cbm,Count,4  


    Hier ist ausprobieren gefragt. Ich selbst gebe keine Kommastelle ein und nutze das 1000er Trennzeichen als Komma-angabe.

    Das grünmarkierte Wort stellt den via MQTT übertragenen Datenpunkt dar. Das heißt du wirst mit deiner aktuellen Einstellung zwei Werte mit dem Namen "Count" in iobroker erhalten. Das ergibt keinen Sinn. Also benenne sie entsprechend um. Bitte keine Leerzeichen verwenden. Auch diese Info findet man in den Dokus.

    Grüße.

    Bräuchte auch einmal Hilfe beim Scripten ;)

    Folgendermaßen sieht mein Scriptteil momentan für den Gas- und Wasserzähler aus:

    Code
    +1,1,c,0,10,H20  
    +2,13,c,0,50,GAS  
     
    1,1-0:1.8.0*255(@10000,Wasserzähler,cbm,Count,4  
    2,=h==================  
    2,1-0:1.8.0*255(@100,Gaszähler,cbm,Count,3

    Nun würde ich aber gerne jeweils für den Gas- und den Wasserzähler eine Variable haben ( sollte beim Neustart und Spannungslosigkeit erhalten bleiben ), die ich mittels Konsole vorbesetzen kann. Sprich man den aktuellen Stand einträgt und der Counter dann weiter zählt. Könnte mir hier jemand dabei helfen und es mir erklären?

    Es ist bereits eine Variable.

    Via Konsole folgenden Befehl nutzen:

    sensor53 c1 ZAHLENWERT

    c1 steht für erster Counter. Be idir ist das H2O

    Hallo an alle,

    erstmal danke an @sunburstc für die Anleitung! Diese hat mir sehr geholfen und alles vertsändlich gemacht :)

    Mein ESP8266 Liest auch Bezug und Einspeisung ohne Probleme aus aber kein Momentanverbrauch :( Der war am interessanten für mich, da mit dem Wert die Automatisierung läuft. Das Problem ist scheinbar, das mein Zähler (Landis & Gyr E320) kein SML Daten mit der Momentanleistung sendet.

    Deswegen wollte ich über einen 2 Input Pin die S0 schnittstelle abfragen (10000 Impulse/kWh). Ist das so einfach möglich? Kann mir wer beim Script helfen?

    Das Nächste problem ist, meine ausgelesenen Daten kommen per mqtt an aber kann sie in home assistant nicht als Entitität benutzen. Bin da ein wenig Ratlos und hilfe wäre echt nett! Danke euch :)

    Vielen Dank.

    Den Monatsverbrauch kannst du dir direkt im Tasmota errechnen.

    Einfach im Script den Wert am 01. des Monats in eine permanente Variable abspeichern und beim nächsten 01. dann die Differenz zum alten Ergebnis abspeichern.

    In der Tasmota Doku gibt es einige Beispiele für Scripte.

    Bzgl. HASSIO kenne ich mich nicht aus. Nutze iobroker.

    Ich verstehe nicht ganz.

    Im Dump hast du doch alles was der Zähler dir liefert. Du brauchst doch nur die ersten Ziffern kopieren und auf der Website suchen.

    Beispiel aus deinem Dump:

    Code
    77 07 01 00 01 08 00 ff 65 00 1c 01 04 01 62 1e 52 03 63 03 d0 01
    
    also hinteren Teil vor den FF's kopieren und auf der Website suchen.
    
    01 08 00 ff

    Ist Laut Website: Wirkenergie.

    Dein Descriptor muss nun diesen Teil enthalten, damit der Treiber genau diesen Wert wiederfindet.

    Beispielsweise:

    Code
    1,77070100010800ff@1000,Total consumption,KWh,Total_in,4


    Anbei der Link zu einem HowTo, welches ich mal erstellt habe. Es ist nicht mehr ganz aktuell aber dennoch hilfreich.

    https://docs.google.com/document/d/1ol…dit?usp=sharing


    Danke für die Infos und den link. Wie schalte ich den dump wieder aus? Der liefert mir:


    Ich kann da nur erkennen, dass sich die eine Zeile wiederholt. Ich werde es bei Gelegenheit mal analysieren, stelle mir das aber schwer vor, wenn man keine Ahnung hat welcher Block für was steht. Und ich hab keine Ahnung, wie sich daraus dann das Skript für Tasmota ergibt.

    Weiß jemand, wie ich das Skript für den MT691 anpassen muss?

    Der kommuniziert über SML, steht hier.

    Ich habe bisher das Skript von hier genutzt, das zeigt allerdings nur Gesamtverbrauch und gesamte Einspeisung an, nicht aktuellen Verbraucht (der wird mit 0 angezeigt, im Display des Zählers sehe ich aber den korrekten Wert).

    Besten Dank für Unterstützung!

    schau doch erstmal via "sensor53 d1" was dein Zähler dir so alles zurückgibt.

    Die Hex - Strings aus dem Descriptor müssen identisch sein zu denen die dir gesendet werden. Wenn dir die entsprechende Kombination nicht gesendet wird, hat es wenig Sinn.

    Ich hoffe du hast das Kommentar aus dem Beispielscript entfernt. Das könnte natürtlich auch zu deinem Fehler führen.

    Weiter unten findest du die meisten SML Strings

    https://www.stefan-weigert.de/php_loader/sml.php

    Hallo Stefan. Dein Skript ist korrekt. Bei mir habe ich auch folgende Zeile:

    1,77070100020800ff@1000,GesEinspeisungTarifL,KWh,Total_out_TL,4

    StefanH

    Ja, ist bei unserem genauso.

    Nach der Code Eingabe, lässt sich durch einfaches "Blinken" an der Code - Eingabeschnittstelle das Display durchschalten.

    Ich schalte eine LED über einen Transistor via GPIO vom ESP8266.

    Im Skript habe ich ein Stück code, dass die LED alle 10 Sek. Blinken lässt. So bleibt er in dem "Erweiterten"- Modus und geht nicht wieder in den Datenschutzmodus.

    Kannst ja mal ausprobieren ob das bei dir auch klappt.

    Bubbleman

    Schön zu hören, dass es gut funktioniert!

    Normalerweise werden die Werte nur zum Zeitpunkt der Teleperiode gesendet. In der Webconsole kannst du diese überprüfen indem du: "teleperiod" hineinschreibst. (ohne Anführungszeichen)

    Der kleinste Wert für die Teleperiod ist 10 Sekunden. Dementsprechend dürften deine Werte maximal alle 10s gesendet werden. Mit dem Befehl "teleperiod 300" wird jede 300s eine Nachricht versendet.

    Falls du allerdings in deinem Descriptor den letzten Wert (Anzahl Dezimalstellen) jeder Zeile mit 16 addiert hast, wird bei jeder Änderung eine MQTT Nachricht versendet.

    Beispielsweise:

    Sendet zu jeder Teleperiode

    Code
    1,77070100100700ff@1,Ges.Leistung,W,Power_curr,1 

    Sendet bei jeder Werteänderung:

    Code
    1,77070100100700ff@1,Ges.Leistung,W,Power_curr,17

    Vielleicht hilft dir diese Information schon weiter.

    Falls wirklich nur Wertveränderungen >10 gesendet werden sollen, muss etwas mehr gescriptet werden.