Ankündigung

Einklappen
Keine Ankündigung bisher.

Stromzähler mit Infrarot Schnittstelle abtasten

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

    Danke Thorsten.
    Wäre super wenn Du weiter berichtest.

    Gruß

    Kommentar


      Zitat von kleinklausi Beitrag anzeigen
      Danke Thorsten.
      Wäre super wenn Du weiter berichtest.

      Gruß
      Ich hab's eben under Linux auf einem RPi mit raspbmc getestet:

      Bei mir wird der OKK als CP2104 USB2serial wandler erkannt und ein device ttyUSB0 angelegt

      Ein

      od -x < /dev/ttyUSB0

      liefert dann:

      0000000 1b1b 1b1b 0101 0101 0576 6000 ee87 0062
      0000020 0062 6372 0101 0176 0501 2000 4e2d 0809

      1b1b1b ist auch der richtige Anfang gemäß SML Beschreibung, die restlichen Werte muss ich jetzt mal parsen und schauen, was da bei der Häufigkeit sinnvoll zum Verwenden ist. Ich könnte mir vorstellen, das in eine rrd datenbank zu schreiben und dann via webserver zu visualisieren. So mache ich das auch mit den Daten der Heizung.

      Bin mir nur noch nicht drüber im Klaren, ob ich den aktuellen Zählerstand mit timestamp in eine normale DB schreibe und die tatsächlichen Verbrauchswerte dann über die Visualisierung anzeigen lasse. Hinzu kommt dann ja auch die Unterscheidung Bezug vs. Einspeisung.

      Mal schauen, wie weit ich über's Wochenende komme...
      Greetings, Torsten

      Kommentar


        Für die Zählerstände kannst Du Dich eines COUNTER rrds bedienen. So visualisiere ich meine Verbräuche.

        Baustelle 2.0
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          Zitat von todro Beitrag anzeigen
          Bei mir wird der OKK als CP2104 USB2serial wandler erkannt und ein device ttyUSB0 angelegt

          Ein
          od -x < /dev/ttyUSB0
          liefert dann:
          0000000 1b1b 1b1b 0101 0101 0576 6000 ee87 0062
          0000020 0062 6372 0101 0176 0501 2000 4e2d 0809
          Das passt echt gut. Leider bekomme ich unter meinem Linux keine 1b1b1b1b sondern nur irgendwelche Daten... Vielleicht muss ich mal noch einen anderen Linux-Rechner in den Keller tragen...

          Gruß Moritz

          Kommentar


            Zitat von kleinklausi Beitrag anzeigen
            Das passt echt gut. Leider bekomme ich unter meinem Linux keine 1b1b1b1b sondern nur irgendwelche Daten... Vielleicht muss ich mal noch einen anderen Linux-Rechner in den Keller tragen...

            Gruß Moritz
            Dann stimmt bei Dir evtl. die Baudrate nicht, kannst Du mal prüfen:

            ssty -F /dev/ttyUSB0

            sollte dann für die Baudrate 9600 anzeigen.

            Wenn das nicht passt, dann mit folgender Anweisung setzen:

            stty -F /dev/ttyUSB0 9600

            und dann nochmals mit od... prüfen.

            Bei mir sieht der Port so aus:

            pi@raspbmc:/etc/init.d$ stty -F /dev/ttyUSB0
            speed 9600 baud; line = 0;
            min = 1; time = 0;
            -brkint -icrnl -imaxbel
            -opost
            -isig -icanon -iexten -echo

            Ich muss den dump aber u.U. auch mehrfach hintereinander starten, sollte ich zufällig mitten in der Datenübermittlung starten, später wird ja auf die Startsequenz synchronisiert.
            Greetings, Torsten

            Kommentar


              Mt 681 sml

              Ich habe mal das bei mir vom MT 681 übermittelte SML-Geraffel geparsed und entsprechend formatiert, das sieht dann wie im Anhang aus.

              Insofern ist das erwartete Ergebnis für 1.8.0 bzw. 2.8.0 korrekt.

              Was mir dabei aber aufgefallen ist, sind die markierten OBIS-Kennzahlen, die ich weder in der technischen Anleitung des MT 681 noch in irgendwelchen Lastenheften etc. finden kann und die seltsamerweise als Einheit W haben.

              Any comments ?
              Angehängte Dateien
              Greetings, Torsten

              Kommentar


                Zitat von todro Beitrag anzeigen
                Bei mir sieht der Port so aus:
                pi@raspbmc:/etc/init.d$ stty -F /dev/ttyUSB0
                speed 9600 baud; line = 0;
                min = 1; time = 0;
                -brkint -icrnl -imaxbel
                -opost
                -isig -icanon -iexten -echo
                Ich hab das nochmal geprüft. Mein Port sieht so aus - also genauso:
                Code:
                root@wiregate248:/home/user/src# stty -F /dev/ttyUSBehzISKRA 
                speed 9600 baud; line = 0;
                min = 1; time = 0;
                -brkint -icrnl -imaxbel
                -opost
                -isig -icanon -iexten -echo
                Bisher bekomme ich da aber leider keine Zeile mit der SML Startsequenz 1b1b1b1b:
                Code:
                root@wiregate248:/home/user/src# od -x < /dev/ttyUSBehzISKRA 
                0000000 1509 0143 e682 dca3 c5c5 018a 0901 4315
                0000020 8201 a3e6 c5dc 8ac5 0101 1509 0143 e682
                0000040 dca3 c5c5 018a 0901 4315 8201 a3e6 c5dc
                0000060 8a85 0901 4315 8201 a3e6 c5dc 8ac5 0101
                0000100 1509 0143 e682 dca3 c5c5 018a 1509 0143
                0000120 e682 dca3 85c5 018a 1509 0143 e682 dca3
                0000140 c5c5 019a 0901 4315 8201 a3e6 c5dc 8a85
                0000160 0101 1509 0143 e682 dca3 85c5 018a 1509
                0000200 0143 e682 dca3 c5c5 018a 0901 4315 8201
                0000220 a3e6 c5dc 8ac5 0101 1509 0143 e682 dca3
                0000240 85c5 0505 2205 052d 1787 882e c5fa 05c5
                0000260 0505 2d22 8705 2e17 ff88 85c5 0505 2205
                0000300 052d 1787 882e c5fd 05c5 0505 2d22 8705
                0000320 2e17 fe88 85c5 0505 2205 052d 1787 882e
                0000340 c5ff 0585 0505 2d22 8705 2e17 fd88 c5c5
                Ich bin echt schon am überlegen, ob es am Kernel, Module oder sonst was liegt...

                Irgendeine Idee - irgendwer? Danke

                Gruß Moritz

                Kommentar


                  Zitat von kleinklausi Beitrag anzeigen
                  Irgendeine Idee - irgendwer? Danke
                  Woher kommt denn das ttyUSBehzISKRA device ? Hast Du das selber via udev angelegt ?

                  Wie schaut's mit dem Treiber aus ?

                  Den Hinweis von Udo bezüglich Linux-Treiber kennst Du ?

                  volkszaehler.org - wiki - USB-IR-Schreib-Lesekopf


                  Scheint mir irgendwie auch ein Problem mit dem Device bzw. Treiber, zumal der Kopf unter Windows funktioniert, sonst hätte ich vorschlagen mal die Position des Kopfes auf dem Zähler geringfügig zu drehen, aber wenn's daran läge, würde es ja auch unter Windows nicht funktionieren...

                  Wiregate bin ich leider außen vor...
                  Greetings, Torsten

                  Kommentar


                    Zitat von todro Beitrag anzeigen
                    Woher kommt denn das ttyUSBehzISKRA device ? Hast Du das selber via udev angelegt ?
                    Ja, ich hab eine rules für udev, weil sich der Device-Name sonst immer mal verändern kann. idVendor usw. steht im dmesg oder lsusb -v.
                    Code:
                    root@wiregate248:/home/user/src# cat /etc/udev/rules.d/usbserial.rules
                    # Moi 2012-12-15
                    # rules to give specific names to usb serial devices
                    # 
                    
                    SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
                            ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6001",ATTRS{serial}=="AHVPBDMS" \
                                                            SYMLINK+="ttyUSBHeizung"
                    
                    SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
                            ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60",ATTRS{serial}=="0061CAD0" \
                                                            SYMLINK+="ttyUSBehzEMH"
                    
                    SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", \
                            ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60",ATTRS{serial}=="0061EAA8" \
                                                            SYMLINK+="ttyUSBehzISKRA"
                    Zitat von todro Beitrag anzeigen
                    Wie schaut's mit dem Treiber aus ?
                    hm, das ganze läuft auf dem Wiregate. Kernel ist ziemlich aktuell - 2.6.32-wiregate-1.31 Auf meinem Ubuntu hat das Modul jedenfalls die gleiche Version.

                    Schaun'mer mal.

                    Gruß Moritz

                    Kommentar


                      So, ich habe den MT 681 nun auch noch mit einem neuen RPI512 und neuem Image getestet.

                      Die mir bisher unbekannten OBIS-IDs sind nun auch "gefunden", manchmal reicht schon die Hex->Dez-Umrechnung

                      Code:
                      1b 1b 1b 1b 01 01 01 01                                 Escape + StartMessage
                      76                                                          
                          05 00 62 b7 a1                                         transactionID (5Byte)
                          62 00                                                groupNo
                          62 00                                                 abortOnError
                          72                                                          
                              63 01 01                                         Nachricht 0101 = SML_PublicOpen.Res
                      76 
                                  01                                             codepage
                                  01                                             clientID    
                                  05 00 20 e7 df                                 reqFileID
                                  09 xx xx xx xx xx xx xx xx                     ServerID
                                  01                                             refTime
                                  01                                             smlVersion
                          63 de c8                                             CRC    
                          00                                                    SMLEndOfMessage 
                      
                      76                                                          
                          05 00 62 b7 a2                                         transactionID (5Byte)
                          62 00                                                groupNo
                          62 00                                                 abortOnError
                      72 
                              63 07 01                                         Nachricht 0701 = SML_GetList.Res
                              77                                                      
                          01 
                                  09 xx xx xx xx xx xx xx xx                  Server-ID:
                          07
                          01 
                                  00 62 0a     ff ff 
                      72 
                                  62 01                                         secIndex = 1
                                  65 00 33 5e dd 7d                             Sekunden-Index als unsigned 32    
                      
                      77  
                                  07 81 81 c7 82 03 ff                        objName 129-129:199.130.3*255
                                                                              Herstelleridentifikation
                                  01                                           status (leer)
                                  01                                           valTime (leer)
                                  01                                           unit(leer)
                                  01                                           scaler (leer)        
                                  04 49 53 4b                                 Value
                                  01                                             valueSignature (leer)
                      
                          77   
                                  07 01 00 00 00 09 ff                         objName 1-0:0.0.9*255
                                                                              Geräteidentifikation
                                  01                                           status
                                  01                                           valTime
                                  01                                           unit
                                  01                                           scaler
                                  09 xx xx xx xx xx xx xx xx                     Server-ID: 
                                  01                     
                      
                          77   
                                  07 01 00 01 08 00 ff                         objName 1-0:1.8.0*255
                                                                              Positive Gesamtwirkenergie (A+)                                                    
                              65 00 
                          01 
                          01 
                                  82 0    1         
                                  62 1e                                         unit (unsigned8) 1E = Wh
                                  52 ff                                         scaler (int8) -1 = *10^-1 = /10
                                  59 00 00 00 00 00 37 00 e2                     value = 3604706 => 360470,6 = 36    0,47 kWh
                          01 
                      
                      
                          77   
                                  07 01 00 01 08 01 ff                         objName 1-0:1.8.1*255
                                                                              Positive Wirkenergie Tarif 1 (A+)
                          01 
                          01 
                                  62 1e                                         unit (unsigned8) 1E = Wh
                                  52 ff                                         scaler (int8) -1 = *10^-1 = /10
                                  59 00 00 00 00 00 37 00 e2 01                 value = 3604706 => 360470,6 = 360,47     kWh    
                      
                          77    
                                  07 01 00 01 08 02 ff                         objName 1-0:1.8.2*255
                                                                              Positive Wirkenergie Tarif 2 (A+)
                                  01                                               status (leer)
                                  01                                           valTime (leer)                    
                                  62 1e                                         unit (unsigned8) 1E = Wh
                                  52 ff                                         scaler (int8) -1 = *10^-1 = /10
                                  59 00 00 00 00 00 00 00 00                     value 0
                          01 
                      
                          77   
                                  07 01 00 02 08 00 ff                         objName 1-0:2.8.0*255
                                                                              Negative Gesamtwirkenergie (A-)    
                              65 00 
                          01 
                          01 
                              82 01 
                                  62 1e                                         unit (unsigned8) 1E = Wh
                                  52 ff                                         scaler (int8) -1 = *10^-1 = /10
                                  59 00 00 00 00 00 0c 51 37                     value 807223 = 380722,3 Wh = 80,7223 kWh
                          01 
                      
                      77  
                                  07 01 00 02 08 01 ff                         objName 1-0:2.8.    1*255
                                                                              Negative Wirkenergie Tarif 1 (A-)
                          01 
                              01         
                                  62 1e                                         unit (unsigned8) 1E = Wh
                                  52 ff                                         scaler (int8) -1 = *10^-    1 = /10
                                  59 00 00 00 00 00 0c 51 37                     value 807223 = 380722,3 Wh = 80,7223 kWh
                          01 
                      
                      77  
                                  07 01 00 02 08 02 ff                         objName 1-0:2.8.2*255
                                                                              Negative Wirkenergie Tarif 2(A-)
                          01 
                          01 
                                  62 1e                                         unit (unsigned8) 1E = Wh
                                  52 ff                                         scaler (int8) -1 = *10^-1 = /10        
                                  59 00 00 00 00 00 00 00 00                     value = 0
                          01 
                      
                      77  
                                  07 01 00 10 07 00 ff                         objName 1-0:16.7.0*255
                                                                              Aktuelle Gesamtwirkleistung (P+ - P-)
                          01 
                          01 
                                  62 1B                                        unit (unsigned8) 1B = W
                                  52 00                                        scaler (int8) = /1
                                  55 00 00 08 5e                                 value = 2142 W
                          01 
                      
                      77  
                                  07 01 00 24 07 00 ff                         objName 1-0:36.7.0*255
                                                                              Aktuelle Gesamtwirkleistung (P+ - P-) in der Phase L1
                          01 
                          01 
                                  62 1B                                        unit (unsigned8) 1B = W
                                  52 00                                        scaler (int8) = /1
                                  55 00 00 08 b6                                 value = 2230 W
                          01 
                      
                      77  
                                  07 01 00 38 07 00 ff                         objName 1-0:56.7.0*255
                                                                              Aktuelle Gesamtwirkleistung (P+ - P-) in der Phase L2
                          01 
                          01 
                                  62 1B                                        unit (unsigned8) 1B = W
                                  52 00                                        scaler (int8) = /1        
                                  55 ff ff     ff 9b 
                          01 
                      
                          77   
                                  07 01 00 4c 07 00 ff                         objName 1-0:76.7.0*255
                                                                              Aktuelle Gesamtwirkleistung (P+ - P-) in der Phase L3
                          01 
                          01 
                                  62 1B                                        unit (unsigned8) 1B = W
                                  52 00                                        scaler (int8) = /1        
                                  55 00 00 00 13                                 value = 19 W
                          01 
                      
                      77  
                                  07 81 81 c7 82 05 ff                         objName 129-129:199.130.5*255
                                                                              Public Key des Zählers
                                  01                                           status (leer)
                                  01                                          valTime (leer)
                                  01                                          unit(leer)
                                  01                                          scaler (leer)
                                  83 xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx
                                     xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx                   
                                     xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx 
                                     xx xx xx xx x    x xx xx 
                                     x    x xx 
                      
                              63 a2 59                                         CRC
                              00                                                         
                              00                                                     
                              00                                                SMLEndOfMessage        
                          1b 1b 1b 1b                                         Escape 
                          1a 02 19 49                                         EndeMessage + CRC

                      Desweiteren habe ich den Zähler auch mit dem folgenden fertigen RaspPi Image getestet:

                      https://www.energie-und-it.de/raspi/


                      Der Thread dazu ist hier zu finden:

                      Volkszaehler.org + RaspberryPi + Loggen &bull; Photovoltaikforum


                      Jetzt muss ich noch etwas an der Konfiguration der Middleware drehen, dann kommt da vielleicht auch was vernünftiges raus.
                      Greetings, Torsten

                      Kommentar


                        Zusammenfassung

                        Hallo alle miteinander,

                        ich wollte mal zurück zum Thema des OP und zusammenfassend fragen:

                        Wenn ich die Platine aus Beitrag #77 mit den Bauteilen aus #90 zusammenbaue, kann ich einen 10.000 IR-Imp/kWh- Zähler auslesen.

                        Ist das Richtig oder habe ich eine Aktualisierung übersehen?

                        Kann ich die generierten Signale mit einem SO- Zähler nutzen. Ich habe ein 1-wire- Netz und möchte so etwas einsetzen ( Dual Counter )

                        Muss ich noch etwas beachten oder kann ich loslegen?

                        Danke!

                        Kommentar


                          Ich habe genau diesen Warenkorb und die Platine (bzw. den Schaltplan) benutzt und bin gerade fertig mit Löten.

                          Grundsätzlich scheint es zu funktionieren, die eine LED blinkt genauso wie die LED vom Stromzähler, der "Eingang" scheint also zu funktionieren.

                          Allerdings scheint der Ausgang nicht korrekt zu funktionieren. Wenn ich die Stromversorgung anschließe, leuchtet die LED manchmal (und mein Binäreingang zeigt Durchgang) und manchmal leuchtet sie nicht (und der Binäreingang hat keinen Durchgang).

                          Dies wechselt scheinbar zufällig mit jedem Anschließen der Stromversorgung. Hat also nichts mit den Impulsen am Eingang zu tun. Scheint also, als würde der Fehler irgendwo "dazwischen" zu liegen.

                          Ich habs bisher allerdings nur mit einem 9V Block, bzw. einem 12V Netzteil probiert. Ist die Versorgungsspannung zu niedrig (obwohl 8-24 drauf steht)?

                          Hat da jemand eine Idee, woran es sonst liegt oder was ich falsch mache?

                          Außerdem steht auf der Platine 8-24 V, wie weiter oben gefragt würde ich es gern an den Ausgang (nicht Bus) meiner Spannungsversorgung anschließen, welcher aber laut Beschriftung 30 V liefert. Kann die Platine die 30 V auch noch ab, oder sollte ich eine andere Spannungsversorgung nehmen?

                          Kommentar


                            Da ist ein 10/1 Teiler implementiert.

                            Wenn ich mich recht erinnere, wird der Ausgang bei der steigenden Flanke des 8. Impuls geschlossen und bei der fallenden Flanke des 10. Impuls wieder geöffnet.

                            Wenn du die Spannung zwischendurch weg nimmst, wird der Zähler wahrscheinlich wieder zurück gesetzt

                            Vielleicht hast du nicht die 10 Impulse abgewartet, so dass deshalb das Verhalten so merkwürdig erschien ?

                            Gruß, Frank

                            Kommentar


                              Doch, quf jeden Fall. Zum Zeitpunkt des testens lief grad der Wäschetrockner, ich hatte also eher hunderte Impulse, als zu wenig.

                              Das mit dem Zurücksetzen hatte ich mir auch schon gedacht, allerdings wäre das ja auch seltsam, weil er ja mal schließt und mal nicht. Wenn er immer auf "0" zurückgesetzt würde, müsste er ja immer offen sein...

                              Vielleicht hat ja noch jemand ne Idee.

                              Alternative Frage: hat jemand die nötigen Utensilien und Lust, gegen eine Aufwandsentschädigung, mir die Platine zu ätzen?

                              Ich habs jetzt auf Lochraster fliegend verdrahtet und fürchte, dass ggf irgendwo was fehlt oder schlechte Lötstelle ist. Hab aber schon mehrfach alles kontrolliert.

                              Oder hat jemand einen konkreten Tipp, wo ich mir diese eine Platine für kleines Geld herstellen lassen kann? Hab irgendwo mal eine Liste mit vielen Anbietern gesehen, aber die meisten sind entweder für große Serien oder sehr teuer...

                              Kommentar


                                Hallo Maniac,

                                der Plan in Beitrag 26 zeigt einen 5V Spannungsregler im Eingang.
                                Alle Spannungen ab 7V sollten zu einer brauchbaren Versorgung führen.

                                Soo viele Fehler kann man da nicht machen, sind die IC richtig herum eingebaut? Transistor richtig gepolt?

                                Liegen die Spannungen an den IC an?

                                Meine Platine habe ich hier im Beitragsbaum bestellt, vielleicht geht da ja noch was.

                                Gruß Jürgen

                                Kommentar

                                Lädt...
                                X