Ankündigung

Einklappen
Keine Ankündigung bisher.

Anbindung Smartmeter per Arduino und IR Auge

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Hallo Zusammen
    ich ergänze mal diesen Thread um ein Adruino-script für einen ISKRA MT175 - und ein script für 2x ISKRA 175 (ich habe Wärmepumpe und Normalstrom über getrennte Zähler).
    Die Zähler habe ich vor ca. 1,5 Jahren bekommen... und jetzt endlich habe ich es zum laufen gebracht (Corona sei dank...)
    Die Scripte sprechen "Binäres" SML so wie hier beschrieben.
    Ich empfehle auch diesen Blog-Eintrag zu lesen: Schattenseite.de

    Die Scripte kann man leicht auf andere Zähler anpassen - man muss nur die richtigen Stellen im SML Telegram finden.

    Der MT175 kann "Server-ID" (aka Seriennummer), Gesammtzähler, Zähler Tarif 1, Zähler Tarif 2, Gesamtwirkleistung, Leisting L1, L2 und L3.
    Ich habe aber nur dem Gesamtzähler und die Gesamtwirkleistung ausgegeben. Der Code für die restlichen Werte ist aber auch vorhanden.

    Wenn Ihr den Code auf andere Zähler anpassen wollt müsst ihr:
    • die Gesamtlänge eines Telegramms ermitteln - da ich alle telegramme mit anderer Länge einfach verwerfe: if (nextBufferPosition != 384) {
    • die Stelle der Werte im Buffer anpassen (am besten einmal einen buffer herausschreiben, abzählen, ...)
    • anpassen wie oft ihr die aktuelle Leistung übermitteln wollt (wird aber nur übermittelt wenn sich der Wert "signifikant" ändert
    Derzeit wird alle 10 sekunden geprüft:
    #define KNX_SEND_INTERVAL_LEISTUNG 10000 // alle 10 sekunden die Leistung prüfen/ausgeben bei veränderung
    und neu bei einem Wert der 100 Watt höher oder niedriger als der vorherige Wert war:
    if (Leistungresult > altLeistungresult+100 || Leistungresult+100 < altLeistungresult) {
    (anpassen sollte selbsterklärend sein).
    • der Zählerstand wird übermittelt wenn der Timer abgelaufen ist (30 minuten) oder der Zählerstand um einen "0,1" schritt hochgegangen ist:
    if (Zaehlerstand > (altZaehlerstand+1000) || millis() - sendTimeZaehlerstand1 > KNX_SEND_INTERVAL_MS_ZAEHLER ) {
    Wer nur ganze Zählerstände übermitteln will muss +1000 durch +10000 ersetzen.

    Mehr fällt mir erstmal nicht ein.
    Vielleicht starten wir hier eine Sammlung der "An welcher Stelle ist welcher Wert im SML telegram" für andere Reader?

    Der Code ist nicht schön - aber funktioniert. Danke auch an Lapheus (da habe ich mir ein bisschen Code geklaut).
    Ich bin für Feedback immer offen :-)

    Gruß
    Thorsten
    Angehängte Dateien

    Kommentar


      #17
      Hallo Thorsten,

      da habe ich aber mal wieder Glück wie es scheint. Ich habe auch einen ISKRA MT175 Zähler.

      Nachdem ich durch manuelles Ablesen festgestellt habe, dass die Diskrepanz der Werte meines Wechselrichters ordentlich zu denen des Zählers vom Energieversorger abweichen, möchte ich nun doch auch noch den Zähler auslesen um dies besser im Blick zu haben und vergleichen zu können. Ob eine um 6 % höhere Einspeiseleistung sowie eine um 10 % geringerer Netzbezug der Wechselrichterwerte im Vergleich zum Stromzähler OK sind und hingenommen werden müssen, versuche ich parallel mit dem Installateur bzw. Hersteller des Wechselrichters zu klären. Immerhin handelt es sich damit um einen absoluten Fehler von 16 %, was mir doch sehr viel erscheint.

      Zwar habe ich openHAB laufen, wofür es ein Binding zum Auslesen der Smart Meter Informationen gibt, allerdings mache ich mir sorgen ob das mit einem gut 10 m langen USB Kabel noch zuverlässig funktionieren würde. Von daher finde ich den Weg über KNX sehr interessant.

      Tatsächlich habe ich auch noch einen "Arduino Pro Micro 5 V ATMEGA32U4" auf einer Adapterplatine für den Siemens Busankoppler from DIY-Füllstandsmesser aus folgendem Thread übrig:
      https://knx-user-forum.de/forum/%C3%...rstandsmessung

      20200618_160427.jpg

      Würde das Skript auf diesem Arduino auch laufen? Und liege ich richtig, dass ich dort nur noch den Sensor an die Pins anschließen müsste?

      Sieht das Skript auch bereits das Auslesen des Zählerwerts für die Netzeinspeisung vor? Bei mir wird das im Display mit der Nummer 2.8.0 angezeigt, der Bezug mit 1.8.0. Ich vermute mal dies ist wieder was anderes wie die oben genannten Werte für die verschiedenen Tarife, oder?

      Viele Grüße,
      Tobias
      Angehängte Dateien

      Kommentar


        #18
        Hallo zusammen,

        in der Zwischenzeit habe ich mich Stück für Stück durchgekämpft und das Ganze zum Laufen gebracht .

        Da mein ISKRA MT175 als Zweirichtungszähler konfiguriert und genutzt wird, ist bei mir das Protokoll länger und anders wie ich heraus gefunden habe. Dank der von Thomas verlinkten Homepage war dies dann allerdings auch mehr eine Fleißarbeit als sonderlich kompliziert.

        Danke noch ins besonders an Thomas für die Bereitstellung des Codes. Ohne diese Vorlage hätte ich das Ganze nicht zum Laufen gebracht.

        Anbei teile ich natürlich gern meinen adaptierten Sketch für Zweirichtungszähler. Es wird derzeit der Bezug, die Einspeisung sowie die aktuelle Leistung ausgegeben. Beides wäre auch noch für je zwei Tarife möglich, dies habe ich jedoch Mangels an Bedarf nicht integriert.

        Viele Grüße,
        Tobias
        Angehängte Dateien

        Kommentar


          #19
          Hallo zusammen!

          Ein wenig off topic, ich hoffe trotzdem eine kleine Zwischenfrage einschieben zu dürfen.

          Ich hatte vor einiger Zeit auch mal den Versuch unternommen, meinen Zähler auszulesen und mir den Lesekopf von volkszaehler.org angeschafft. Allerdings bin ich auf das Problem gestoßen, dass die IR Diode am Zähler zugeklebt, also verplombt war:

          IMG_0474.jpeg

          Ich habe mich dann nicht getraut, den Aufkleber zu entfernen und erst mal Kontakt mit meinem EVU aufgenommen. Für die war das Problem ganz neu, dass ein Kunde den Aufkleber entfernen möchte, und waren ein wenig ratlos. Man hat mir dann doch erlaubt, diesen zu entfernen mit der Auflage, dass der Lesekopf so befestigt werden muss, dass er verplombt werden kann. Das war mit dem gelben Lesekopf jedoch kaum möglich. Als man mir unabhängig davon einen Zählertausch angekündigt hat, habe ich das Projekt erst mal verworfen.

          Frage an Euch: War bei Euch die IR Diode auch zugeklebt? Wenn ja, wie seid ihr damit umgegangen?

          Danke und Grüße,
          Uli

          Kommentar


            #20
            Hier eine Möglichkeit mit "richtigen" libSML (von https://github.com/volkszaehler/libsml ) an Arduino die SML Dateien von "modernen Messeinrichtungen" zu parsen: https://forum.arduino.cc/t/libsml-pa...otocol/1149684
            Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“

            Kommentar


              #21
              Hallo zusammen. Bin auf der Suche nach einer Möglichkeit wie ich unseren Stromzähler Optisch auslesen kann. Will den ESP8266 verwenden und dann darüber den Betrieb des Warmwasser-Boilers mit überschüssiger PV-Energie steuern. Hier habe ich bisher die Besten Hinweise gefunden. Hat jemand Erfahrung mit dem ESP8266? ich verstehe nur nicht ganz wie ich das Hardwaremässig anschliesse da ja der USB am Seriellen Port angeschlossen ist.
              Danke für Tipps
              Thomas​

              Kommentar


                #22
                Du kannst einen Lesekopf mit seriellem Ausgang an einem UART Eingang des ESP8266 anschließen. Da die Zähler mit nur 9600 baud Ihre Daten schicken, reicht hier sogar ein Software-UART. Fürs lesen, reicht nur den TX Pin des Lesekopfes an RX des ESP UARTs anzuschließen, den Rückweg benötigt man nicht.
                Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“

                Kommentar


                  #23
                  vielen dank für die spontane Antwort. Du meinst aber nicht den Rx-Eingang (GPIO3) der parallel zum USB ist über den geflasht wird? Obwohl das müsste ja auch funktionieren wenn ich nach dem flashen dann jedes mal das Kabel abziehe? Ich könnte z.B. GPIO4 oder 5 als Rx verwenden? ich werde mich heute Mittag mal dran setzen bei dem Wetter kann man eh nichts anderes machen. Als Lesekopf habe ich den Hichi IR ttl

                  Kommentar


                    #24
                    Mit SoftSerial kannst Du jeden digitalen Eingangspin für 9600 Baud nutzen: https://www.arduino.cc/reference/en/...oftwareserial/
                    Winston Churchill hat mal gesagt: "Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine Chance.“

                    Kommentar


                      #25
                      Warum nimmst Du nicht Tasmota? Da ist die Zähleranbindung schon fertig vorhanden. Es gibt auch fertige Leseköpfe mit dem ESP schon eingebaut, die muss man nur noch mit 5V versorgen.

                      Kommentar


                        #26
                        Zitat von MarcusF Beitrag anzeigen
                        Warum nimmst Du nicht Tasmota? Da ist die Zähleranbindung schon fertig vorhanden. Es gibt auch fertige Leseköpfe mit dem ESP schon eingebaut, die muss man nur noch mit 5V versorgen.
                        +1 für Tasmota. Ist meiner Meinung nach am einfachsten und kann in die gängigsten Zentralen eingebunden werden!

                        Kommentar

                        Lädt...
                        X