Wert 16.7 ermittelt aber nicht in den Daten
Neues Plugin: Smartmeter - Stromzähler auslesen
Einklappen
X
-
Bist du sicher, das du das hier schon eingefügt/geändert hast?
Code:### Energy consumption: Power (OBIS mixture - no standard?) ($power1) = $dumpbuffer =~ /[\n|\r|:]1\.7\.0[\*255|\*00]*\(([-\d\.]+)/; ($power2) = $dumpbuffer =~ /[\n|\r|:]2\.7\.0[\*255|\*00]*\(([-\d\.]+)/; ($power3) = $dumpbuffer =~ /[\n|\r|:]15\.7\.0[\*255|\*00]*\(([-\d\.]+)/; ($power4) = $dumpbuffer =~ /[\n|\r|:]16\.7\.0[\*255|\*00]*\(([-\d\.]+)/;
Also schau bitte nochmal in die Datei sm_logger.pl ab Zeile 892 nach und kontrolliere, ob das "-" da ist.Kommentar
-
Super! Dann sind wir am Ziel.
D. h. die Änderungen in der sm_logger.pl müssen auch noch übernommen werden. Zusätzlich jetzt noch die LEN=6 Abfrage für den EMH Zähler und zusätzlich, das 16.7.0 auch negativ Werte annehmen kann. Ebenso Watt Umrechnung mit Beachtung, ob Skalierfaktor übertragen wird und die OBIS 2.8.0 ins Array.
Zuletzt geändert von blacksun; 23.08.2019, 11:54.Kommentar
-
Gast , habe jetzt einen Pullrequest auf Github erstellt. Mal sehen, ob der Autor mit den Änderungen einverstanden ist.
Wörsty , Prof.Mobilux Ich habe auf Github einen PullRequest erstellt mit meinen vorgeschlagenen Änderungen. Heute hatte ich einen Lauf. Sogar den Fehler mit der SML_TIME konnte ich lösen ;-) Können die Änderungen übernommen werden?Zuletzt geändert von blacksun; 24.08.2019, 21:08.Kommentar
-
Gast
Hallo, ich habe eine Frage zu den signed Integerwerte. Laut Spezifikation sind signed Integerwerte nur zulässig mit folgenden Längen.
52 = Länge 2, 8 Bit
53 = Länge 3, 16 Bit
55 = Länge 5, 32 Bit
59 = Länge 9 64 Bit
Hier ein Auszug eines Telegramms des EMH ED300L Zählers.
Wie kann es sein, das überwiegend signed Integerwerte übertragen werden mit Länge 6. Was soll das für eine Zahl sein? Länge 6 - 1 = Wert mit 5 Byte??? Kann ja kein Short oder Long sein?
Code:1B1B1B1B0101010176070017028D1519620062007263010176010107001701B0B1B30B0901454D48000077F2DF01016303CE00 76070017028D151A620062007263070177010B0901454D48000077F2DF070100620AFFFF7262016501B0A3BB7A 77078181C78203FF0101010104454D4801 77070100000009FF010101010B0901454D480000 77F2DF0177070100010800FF640101A201 621E 52FF 560000FD3C7F 01 77070100020800FF640101A201 // OBIS 2.8.0 621E 52FF 56000221965B // Signed Integer Länge 6 01 77070100010801FF0101 // OBIS 1.8.1 621E 52FF 560000FD3C7F // Signed Integer Länge 6 01 77070100020801FF0101 // OBIS 2.8.1 621E 52FF 56000221965B // Signed Integer Länge 6 01 77070100010802FF0101 // OBIS 1.8.2 621E 52FF 560000000000 // Signed Integer Länge 6 01 77070100020802FF0101 // OBIS 2.8.2 621E 52FF 560000000000 // Signed Integer Länge 6 01 77070100100700FF0101 621B 52FF 55FFFFAAC6 01
Hier die Spezifikation:
Was meinst du da dazu?Kommentar
-
Gast
Hallo, ich habe eine Frage zu den signed Integerwerte. Laut Spezifikation sind signed Integerwerte nur zulässig mit folgenden Längen.
52 = Länge 2, 8 Bit
53 = Länge 3, 16 Bit
55 = Länge 5, 32 Bit
59 = Länge 9 64 Bit
Hier ein Auszug eines Telegramms des EMH ED300L Zählers.
Wie kann es sein, das überwiegend signed Integerwerte übertragen werden mit Länge 6. Was soll das für eine Zahl sein? Länge 6 - 1 = Wert mit 5 Byte??? Kann ja kein Short oder Long sein?
Code:1B1B1B1B0101010176070017028D1519620062007263010176010107001701B0B1B30B0901454D48000077F2DF01016303CE00 76070017028D151A620062007263070177010B0901454D48000077F2DF070100620AFFFF7262016501B0A3BB7A 77078181C78203FF0101010104454D4801 77070100000009FF010101010B0901454D480000 77F2DF0177070100010800FF640101A201 621E 52FF 56[COLOR=#FF0000]0000FD3C7F[/COLOR] 01 77070100020800FF640101A201 // OBIS 2.8.0 621E 52FF 56[COLOR=#FF0000]000221965B[/COLOR] // Signed Integer Länge 6 01 77070100010801FF0101 // OBIS 1.8.1 621E 52FF 56[COLOR=#FF0000]0000FD3C7F[/COLOR] // Signed Integer Länge 6 01 77070100020801FF0101 // OBIS 2.8.1 621E 52FF 56[COLOR=#FF0000]000221965B[/COLOR] // Signed Integer Länge 6 01 77070100010802FF0101 // OBIS 1.8.2 621E 52FF 56[COLOR=#FF0000]0000000000 [/COLOR]// Signed Integer Länge 6 01 77070100020802FF0101 // OBIS 2.8.2 621E 52FF 56[COLOR=#FF0000]0000000000[/COLOR] // Signed Integer Länge 6 01 77070100100700FF0101 621B 52FF 55FFFFAAC6 01
Hier die Spezifikation:
Was meinst du da dazu?
emh 的报文应该是电表内部保存电量为5字节, sml传输时未做长度转换.
可用以下方法实现 c 语言
Strictly speaking, the message is wrong, the unsigned integers uint8_t, uint16_t, uint32_t, uint64. are 1, 2, 4, and 8 bytes in length.
The message of emh should be that the internal power stored in the meter is 5 bytes, and the length conversion is not performed when the sml is transmitted.
Can be achieved by the following methods c Language
Streng genommen ist die Nachricht falsch, die vorzeichenlosen Ganzzahlen uint8_t, uint16_t, uint32_t, uint64 haben eine Länge von 1, 2, 4 und 8 Byte.
Die Meldung von EMH sollte lauten, dass die im Messgerät gespeicherte interne Leistung 5 Byte beträgt und die Längenumrechnung nicht durchgeführt wird, wenn der SML übertragen wird.
Kann durch die folgenden Methoden erreicht werden c Sprache
Code:uint8_t buf[] = {0x[COLOR=#FF0000]00, 0x00, 0xFD, 0x3C, 0x7F[/COLOR]}; uint64_t x=0; for (uint8_t i = 0; i < sizeof(buf); ++i) { x <<= 8; x += buf[i]; }
Kommentar
-
blacksun Besten Dank für den Pull Request! Ich mache daraus ein neues PreRelease und melde mich hier wieder (denke ich schaffe es heute noch).🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine
LoxBerry - Beyond the Limits
Kommentar
-
Hallo zusammen,
ich habe aus den Änderungen von blacksun ein PreRelease Version 1.1 erstellt: https://github.com/mschlenstedt/LoxB...meter-V1.1.zip
LG
Michael
🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine
LoxBerry - Beyond the Limits
Kommentar
-
Servus Gast,
teste du bitte auch mal die PreRelease, da etliche Änderungen von Deinem Zähler mit eingeflossen sind. Sollte laufen. Gib uns hier dann kurz Bescheid!
Prof.Mobilux, habs installiert und getestet. Läuft.
Oli, bitte noch um Dein Dumpfile.
Gast, könntest du evtl. eine Routine schreiben für die Checksummenüberprüfung nach CRC16 Kermit?Zuletzt geändert von blacksun; 26.08.2019, 16:30.Kommentar
-
ich habe jetzt versucht den Zähler abzufragen. Allerdings bekomme ich keine richtigen Werte mehr aus dem Zähler. Keine Ahnung was lost ist....
01304DD6: Found configuration for 1
01304DD6: Manual settings.
01304DD6: Protocol: genericsml
01304DD6: Timeout: 10
01304DD6: Delay: 1
01304DD6: Device: /dev/serial/smartmeter/01304DD6
01304DD6: Baudrate:9600/9600 Databits:8 Stopbits:1 Parity:even Handshake:none
Initial Baudrate: 9600
Max Baudrate: 9600
Protocol: genericsml
Timeout: 10
Delay: 1
Setting up port /dev/serial/smartmeter/01304DD6: Baudrate:9600/9600 Databits:8 Stopbits:1 Parity:even Handshake:none
1B1B1B1B010101017605006D334E6200620072650000010176 0101074553595133430B0901455359110393BFA601016353DA 007605006D334F6200620072
[...]
Save raw buffer to /var/run/shm/smartmeter/01304DD6.dump
Parse /var/run/shm/smartmeter/01304DD6.dump as SML-Protocol.
Buffer:
Calculate average power for cons.
Last Reading: . Saved before: 435234.9928 hours. Consumption: 0.0000. Avg. Power: 0.0000,
Calculate average power for del.
Last Reading: . Saved before: 435234.9928 hours. Consumption: 0.0000. Avg. Power: 0.0000,
Save Meter data to /var/run/shm/smartmeter/01304DD6.data.
All data written to /var/run/shm/smartmeter/01304DD6.xxxx
das Dumfile wird auch auch nicht erzeugt. Das Verzeichnis bleibt leerZuletzt geändert von Prof.Mobilux; 27.08.2019, 05:53.
-
Wie kann ich ein .dump file hier hochladen? Bekomme immer eine Fehlermeldung...
Das ist der Inhalt
1B1B1B1B010101017605006D334E6200620072650000010176 0101074553595133430B0901455359110393BFA601016353DA [...]
FF630190726201650A6DD3D4621E52016500000070Zuletzt geändert von Prof.Mobilux; 27.08.2019, 05:53. Grund: Gekürzt - Download als ZIP weiter unten.Kommentar
-
Kommentar