Beiträge von Kalli01

    Ja das kann man sich selbst ausrechnen.

    Es gibt einige Seiten, die das SML Protokoll erklären. Z.B. Diese hier


    Ich selbst muss muss mich da immer wieder neu rein denken.


    Bei mir war es damals für den Bezug


    01-00:01.08.00*FF Zählerstand für Wirkenergie Bezug +A

    77 07 01 00 01 08 00 ff 64 1c 59 04 72 62 01 62 00 62 1e 52 ff 63 89 a7 01


    hex 89a7

    dez 35239 = 3,5239kwh



    Einspeisung

    01-00: 02.08.00*FF Zählerstand für Wirkenergie Lieferung -A

    77 07 01 00 02 08 00 ff 01 72 62 01 62 00 62 1e 52 ff 64 0b f8 12 01


    hex 0bf812

    dez 784402 = 78,4402kwh

    Hallo


    Also das schon mal etwas in der Console angezeigt wird ist gut :-)


    In der Anleitung von deinem Zähler steht die Werte unter

    1.8.0 Wirkenergie +A (Import), gesamt
    2.8.0 Wirkenergie -A (Export), gesamt


    Das Sind diese OBIS Codes.


    in deinem Format sind es 77 07 01 00 01 08 00 ff und 77 07 01 00 02 08 00 ff. Also wenn ich jetzt nichts übersehe, dann sollte es eigentlich was anzeigen. Du solltest die Anzeige über die Konsole wieder ausschalten, wenn du sie nicht mehr brauchst. vielleicht hilft das schon.


    Bei mir steht das Sonoff Modul auf "Generic Modul"


    Die Zählen vor den @ müssen mit den Zahlen in der Konsole überein stimmen.


    Deine Fotos kann ich mir nicht anschauen aber ich versuche es mal.



    In ca Zeile 70 muss #define DWS74_BUG stehen. Also ohne die Zwei // damit er den Fehler für diesen Zählertyp korrigiert.

    Ab Zeile 154 werden die Name der Zählereinträge definiert und in Zeile 172 wird dann ein Zähler ausgewählt.


    Also entweder passt einer der vorhanden Einträge für dich oder du erstellst dort einen neuen.

    Bei mir z.B. so. (Die zwei neuen Einträge stehen unten)



    Wie so eine Zählerdefinition aussehen muss wird in den Kommentaren erklärt. Möchtest du mehrere Zähler an einen ESP anschließen oder bekommt bei dir jeder Zähler seinen eigenen Controller?

    Das wird dann im Eintrag über "#define METERS_USED 1" eingestellt.

    Danach wird eingestellt was es für Zählertypen sind und an welchen Pins sie angeschlossen sind. "struct METER_DESC const meter_desc[METERS_USED]={}"


    Hier in dem Beispiel sind 3 Zähler definiert. Damit die Software weiß an welcher Stelle im Protokoll sie suchen muss, werden dann für jeden Zähler die Strings definiert. ("const uint8_t meter[]=")

    Erkennen kann man das immer an der ersten Zahl nach dem ". Also 1 für den 1. Zählereintrag und 2 für den 2. und 3 für den 3.


    Also wichtig wäre erst einmal zu wissen, welche Zähler du hast und ob du sie alle an einen Controller anschließen magst.



    Zu deinem Reedkontakt. Dieser reagiert wenn du einen Magnet an ihn hältst. Um die Funktion zu überprüfen würde ich mit einem Multimeter über die zwei Pins den Widerstand messen. Wenn du jetzt mit einem Magneten in die Nähe kommst sollte sich der Widerstand auf fast 0 Ohm ändern.


    Wenn das klappt kannst du den Reedkontakt mit angeschlossenem Multimeter an deinen Gaszähler halten. Hier gibt es wohl auch eine Stelle an der im Inneren ein Magnet vorbei fährt. Du kannst also erst etwas messen, wenn der Magnet gerade an der richtigen Stelle steht.


    Wenn du die Stelle gefunden hast kannst du den Reedkontakt wieder über den 10k Ohm Widerstand an dein ESP anschließen.


    Ich selbst habe keinen Gaszähler.


    Aber vielleicht wusstest du das schon. Ich weis nicht, wie weit du doch mit Elektronik und Programmierung auskennst.

    Surfrobbe


    Mein letzter Stand ist die Sonoff-Tasmota-Universal3 vom ca 10 Mai 2019. Dort habe ich mir einen neuen Zählereintrag erstellt "#define DWS74 14"

    Für meinen Zähler hat gemu2015 extra sein Programm angepasst, da der Zähler komische Dinge tut. Also so wie bei dir.

    Das ganze steht in der xsns_95_sml Datei als "#define DWS74_BUG"


    Nach gemus Anpassung stimmt der aktuelle Verbrauch. Bis auf meinen Eintrag musste ich nichts umstellen.


    Unter Zählernummer wird mir auch etwas angezeigt aber die Zahlen und Buchstaben habe ich mir nicht weiter angeschaut.

    Dann ist noch eine Sache, die mir nicht zu 100% klar ist. Wenn z.B. alle 5 Minuten ein Wert per MQTT übertragen wird, dann tippe ich mal, das der Wert der Verbrauch zum Zeitpunkt der Übertragung ist. Das ist aber nach meiner Sicht dann nicht so sinnvoll. Wenn ich zwischen zwei Übertragungen ein Gerät mit hohem Verbrauch kurz einschalte, würde das beim aktuellem Verbrauch unter den Tisch fallen und nur im Gesamtverbrauch mit einfließen. Daher wäre es eventuell sinnvoll den Mittel- oder Max-Wert der Zeitspanne zwischen zwei Übertragungen zu übermitteln. Eventuell ist das auch schon so, ich bin mir da aber nicht sicher.

    Du hast Recht, dass wenn du die Werte nur alle 5 Minuten sendest, Verbraucher die z.B. nur 1 Minute laufen beim aktuellen Verbrauch vielleicht nicht erfasst werden.

    Bei mir habe ich es so eingestellt, dass der aktuelle Verbrauch und die beiden Zählerstände für Bezug und Einspeisung einmal pro Minute gesendet werden.

    In ioBroker werden diese 3 Werte in einer Datenbank gespeichert.

    Über Grafana habe ich mir Diagramme erstellt.

    Was ich eigentlich sagen wollte, anstatt den aktuellen Verbrauch kannst du die Auswertung auch über die Zählerstände erstellen. Dort erkennst du dann auch das in den 5 Minuten ein größerer Verbrauch erfasst wurde. In Grafana gibt es z.B die Einstellung Difference für den eingestellten Zeitraum.

    Hallo meierchen,


    schön das es bei dir jetzt klappt.


    Ich ärgere mich noch mit dem Lichtsensor an meinem Wasserzähler herum. Er zählt auch immer etwas zu viel. Die Zeit habe ich schon erhöht aber vielleicht muss ich auch das Signal "verbessern".



    Kannst du hier mal bitte ein Foto von deiner Metallscheibe posten? Bei mir hat die LED am Sensor nicht regiert. Würde auch lieber den Näherungsschalter benutzen.

    So ähnlich wie bei URBANsUNITED läuft es bei mir auch. Die Tasmota Zähler werden über den Adapter Sonoff Port 1884 eingefügt und andere ESPeasy /mega über den mqtt Adapter Port 1883


    Wie Gemu schreibt werden die Objekte dann automatisch angelegt und man kann sie speichern. Bei mir in einer InfluxDB.

    Das ist ein NPN. In meinem Beitrag oben ist ein Link zu Amazon.

    Ich glaube für meinen Zähler gibt es auch so etwas aber den wollte ich jetzt nicht kaufen. Weiß ja nicht welchen Zähler ich dann bekomme.


    Habe mal kurz das Datenblatt des Cyble Censors geschaut. Wie viele Anschlüsse hat er denn?

    Das Signal müsste an HF und LF liegen. Wenn ich es richtig verstehe dann ist LF langsamer. Also würde ich es mit dem versuchen.


    In Tasmota kannst du für deinen Pin ja mal den Counter einstellen. Dieser hat bei mir auch gezählt obwohl ich die Zeit in der Zähler Config nicht richtig eingestellt hatte.

    Vielleicht ist der Impuls zu kurz.


    Falls du die Möglichkeit hast, würde ich mir das Signal mit einem Oszilloskop anschauen. Vielleicht kann man dann erkennen warum es der ESP nicht erkennt.


    Ich Merke gerade, das sind alles nur Vermutungen, aber vielleicht hilft es ja etwas :-)

    Hallo


    Also es ist ein ES60-14 von Ebeling und Sohn

    Das kleine Rädchen mit dem silbernen Teil müsste sich pro 1 Liter einmal drehen.


    Also der Sensor funktioniert eigentlich gut. Ich habe eben mal 3V angeschlossen und er schaltet noch zwischen 3V und 0V hin und her. (ca 3mm Abstand mit einer Metall Pinzette). Die eingebaute LED klimmt dann aber nur noch. Das ganze aber ohne Garantie :D


    Die Widerstände dienen als Spannungsteiler, damit am Pin nur max 3.3V ankommen.


    Leider erkennt der Sensor die silberne Scheibe im Zähler nicht. Ich habe ihn hin und her bewegt aber die LED geht nicht an. Am Messing des Zählers geht sie sofort an.


    Also funktioniert der Sensor bei meinem Zähler NICHT!!



    Aktuell verwenden ich einen Lichtsensor (TRCT5000) Den kann man direkt an 3,3V anschließen. Zur Befestigung habe ich eine längere Schraube durch das Loch gesteckt und diese mit Kabelbindern am Zähler festgeklemmt.

    Den Wert in der Software habe ich im Moment auf 500ms stehen. Hier bin ich noch am probieren, mit welcher Zeit ich die wenigsten Messfehler habe.

    Mein Stand ist die Universal3 von vor ein paar Stunden.


    Ich habe das ganze noch nicht an den Zähler angeschlossen, sondern halte nur etwas Metall vor den Sensor.


    Also mit 50ms wird der Zählerstand nicht aktualisiert. Bin davon ausgegangen das 100ms zum testen erst einmal gut ist.

    Mit 0 ändert er sich sofort.:)


    Mit welchem Befehl kann ich den Zählerstand einstellen?


    Wenn ich den Counter1 für D2 einstelle, kann ich in der Konsole über Counter1 xxx den Stand einstellen. Ist das so gedacht oder geht das auch über Sensor95 c1 ???

    So nachdem der Stromzähler jetzt funktioniert, wollte ich mal den Wasserzähler versuchen.


    Dafür habe ich einen Induktiver Näherungsschalter LJ12 A3-4-Z/BX an ein Wemos D1 mini angeschlossen.


    Als Info:


    Das kompilieren der Universal3 hat auch funktioniert. Ich nutze Atom auf Linux. Wie URBANsUNITED beschrieben hat musste ich in der platformio.ini auf env_default = wemosd1-DE stellen die user_config_override.h einfügen und in der my_user_config.h aktivieren.


    Dann noch meine zwei Zählereinträge (Strom und Wasser) wieder in der xsns_95_xml.ino einfügen.



    Mit der Universal3 klappt es jetzt auch mit den Befehlen sensor95 d1 bzw. sensor95 c1. Das wollte mir der Tasmota Version 6.5.0 nicht klappen.


    Mein Eintrag für den Wasserzähler


    Der Zähler zählt pro Umdrehung 1 Liter. Also ist ja @1000 richtig. Das ganze mit 3 Nachkommastellen. Angeschlossen an 4 (GPIO4 / D2) mit 100ms


    Jetzt habe ich noch nicht verstanden, warum sich der Zählerstand nicht bei jedem Signal um 1 erhöht. Angezeigt wird jetzt zb. 0,032cbm.

    (Den Counter1 habe ich zum test dem Pin GPIO4 zugweisen. Dieser zählt pro Impuls 1 weiter)

    Dieser steht jetzt auf 56



    Ist es hier auch so wie meierchen006 beschrieben hat? Verliere ich dadurch nicht an Genauigkeit?

    Das ist ja ärgerlich, aber wie ich gelesen habe hatte ein anderer Zähler hier auch einen Fehler. (Doppelte oder falsch benannte Einträge)

    Kann man sich da Beschweren? :D


    Im Moment stimmt der Wert. Software und Zähler Display zeigen beide ca -1300W an.


    Den Teiler musste ich wieder auf 1 stellen. Vor deiner jetzigen Änderung hatte ich ihn auf 100

    "1,77070100100700ff@1," D_TPWRCURR ",W," DJ_TPWRCURR ",0|"


    Ich werde den Verbrauch dann bei Dunkelheit noch einmal vergleichen.


    Edit:

    jetzt wird mir auch ein Verbrauch von +500W angezeigt und das steht auch auf dem Display. Scheint also so zu funktionieren.

    Ich werde mal eine Grafik erstellen und es weiter beobachten.



    Danke Gerhard. Geht echt schnell bei dir.

    Ich dachte mir schon, dass es am Zähler selbst liegen muss, denn ich glaube kaum das zwei unterschiedliche Dekoder den gleichen Fehler machen. (Also deiner und SMA)


    Hier einmal Daten mit einem Verbrauch von ca -1880W


    Einen Positiven Wert zu loggen ist schwierig. Vielleicht heute Abend.


    Falls du mir das Problem oder die Stelle erklären kannst, würde ich auch die Stadtwerke oder den Hersteller anrufen. Dafür würde ich nur gern erst wissen wie ich es erklären kann :D


    So. Es wäre alles so schön aber leider macht der Zähler Abends und Nachts komische Dinge.


    Es ist ein Zweirichtungszähler. Tagsüber ist der Verbrauch <0 über die PV Anlage wird also eingespeist.


    Wenn es jetzt abends dunkel wird müsste der Verbrauch >0 werden. (Abends ca 500-700W)


    Der Zähler zeigt aber über die Schnittstelle immer mal wieder Verbrauchswerte <0 an. Die beiden Zählerstände für Bezug und Einspeisung werden aber richtig gezählt. Im Display des Zähler wird der korrekte Wert angezeigt. Soweit ich das gleichzeitig ablesen konnte.


    Ich habe versucht, das ganze mal zu Fotografieren.


    Der aktuelle Verbrauch steckt im Parameter 77 07 01 00 10 07 00 ff



    Damit ich den richtigen Wert angezeigt bekomme, habe ich über die Funktion mit dem "d" mit für beide Zählerstände einen Eintrag angelegt. (DB und DE auf den Fotos) Dieser ist aber nicht wirklich genau und träge.


    Das ganze Phänomen habe ich auch im Portal von SMA bemerkt. Die Grafiken stimmen. Sie werden wahrscheinlich über die Zählerstände erzeugt. Bei der Liveanzeige allerdings wird aktuell eine Einspeisung von 32W angezeigt. (Über Tasmota ca -35) Richtig wären aber ca 500W-700W


    Hat Jemand von euch auch so ein Problem?


    Ich frage mich jetzt, ob der Zähler über das Protokoll manchmal den Falschen Wert ausgibt oder ob die Software und dann auch das SMA Portal denParameter falsch dekodiert.


    Kann mir jemand die HEX Zahlen markieren, in denen der aktuelle Wert steckt?

    Die letzten Stunden habe ich viel gelesen und glaube das ich den Aufbau grob verstanden habe.


    Mein Zähler Eintrag sieht aktuell so aus. Wichtig sind mir erst einmal der Bezug und die Einspeisung. Leider zeigen Beide Werte 3 an. Der Verbrauch 27.


    Anhand des Logs in der Konsole kann ich mir die 2 Zählerstände auch raussuchen und berechnen.


    Ich vermute das die Software nicht die richtige stelle erwischt.






    Edit

    Habe die Bedeutung der 5 Einträge gefunden

    01-00:60. 32.01*01 Hersteller-ID

    01-00:60.01.00*FF Geräteidentifikation

    01-00:01.08.00*FF Zählerstand für Wirkenergie Bezug +A

    01-00: 02.08.00*FF Zählerstand für Wirkenergie Lieferung -A

    01-00:10.07.00*FF Momentane Wirkleistung

    So der Zähler ist jetzt ausgetauscht. Die Verbindung mit dem Sunny Portal scheint auch zu funktionieren.


    Er ist von der Firma DZG und hat die Bezeichnung DWS7412.2T


    In einem Datenblatt steht zu optischen Schnittstelle

    Kommunikationsprotokoll SML
    Parameter 9600 Bd, 8-N-1


    Welchen Typ kann ich jetzt in der Software auswählen?


    Wie funktioniert der Befehl "sensor95 d1" ? Wenn ich ihn in die Konsole eintippe, kommt nur RESULT = {"Command":"Error"}


    Edit: mit der Version von gemu2015 klappt es auch mit dem Befehl. Liegt vielleicht auch an der neuen Tasmota Version


    Edit2:


    Also das mit dem "Anzapfen" des SMA Auslesekopfes mag nicht so.

    Habe jetzt auch einen Fototransistor direkt an den Zähler geklebt und jetzt erkenne ich auch etwas. Habe mir dann auch einen Zählereintrag erstellt aber ich glaube da stimmt noch etwas nicht.

    Kann mir jemand sagen, welche Einträge richtig sind?


    77 07 01 00 01 08 00

    77 07 01 00 02 08 00


    Die zwei hatte ich versucht aber wie muss die Zeile aussehen und was bedeuten die anderen Einträge?


    Hallo gemu2015,


    erst einmal Danke für deine Arbeit.


    Mit der kleinen Anpassung klappt es jetzt auch mit der Tasmota Version 6.5.0. Hatte zwar versucht die Fehlermeldung zu verstehen aber das ist mir alles etwas viel Code :huh:


    Mir ging es nicht darum die neuste Tasmota Version zu nutzen. Nur gestern wollte so gar nichts klappen.



    Jetzt erst einmal auf den Zähler warten.


    Noch mal eine Frage zum Anschluss des Zählers.

    Der Auslesekopf hat 4 Anschlüsse. Soweit ich das richtige gefunden habe sind das GND, TX, RX und 8V. Den schließe ich so an die Box von SMA an und hoffe das es funktioniert.


    Jetzt dachte ich mir, ich kann das RX Signal über einen Levelschifter (diese kleinen Platinen) an den RX Pin des Wemos anschließen.


    Ob das funktioniert? :)

    Danke für deine Hilfe.


    Das habe ich schon versucht. Leider fehlt hier eine Datei


    lib/ILI9488-master/ILI9488.cpp:40:17: fatal error: spi.h: No such file or directory


    edit: mmh habe jetzt einfach den Ordner ILI9488 gelöscht.

    Jetzt sehe ich schon mal auf der Übersichtsseite neue Einträge


    Der neue Zähler kommt am Donnerstag. Dann muss ich ihn erst einmal an den Home Manager von SMA anschließen und schauen ob ich das Signal zusätzlich noch abgreifen kann.


    Hat das schon mal jemand gemacht?