-
Notifications
You must be signed in to change notification settings - Fork 2
Fix units and registers #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
86bf025
d5381b8
2a1926c
754da57
66a16f8
42f1b6d
faadfe3
6873a3c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,38 +16,133 @@ | |
|
|
||
| # Decimals of each variable in the GetRegister command request/response (CID=0x10) | ||
| REGISTERS: Final[Mapping[int, str]] = { | ||
| 0x003C: "Heat Energy (E1)", | ||
| 0x0044: "Volume", | ||
| 0x004A: "Flow", | ||
| 0x0050: "Current Power", | ||
| 0x0056: "Temp1", | ||
| 0x0057: "Temp2", | ||
| 0x0059: "Tempdiff", | ||
| 0x0061: "Temp1xm3", | ||
| 0x006E: "Temp2xm3", | ||
| 0x0071: "Infoevent", | ||
| 0x007B: "MaxFlowDate_Y", | ||
| 0x007C: "MaxFlow_Y", | ||
| 0x007D: "MinFlowDate_Y", | ||
| 0x007E: "MinFlow_Y", | ||
| 0x007F: "MaxPowerDate_Y", | ||
| 0x0080: "MaxPower_Y", | ||
| 0x0081: "MinPowerDate_Y", | ||
| 0x0082: "MinPower_Y", | ||
| 0x008A: "MaxFlowDate_M", | ||
| 0x008B: "MaxFlow_M", | ||
| 0x008C: "MinFlowDate_M", | ||
| 0x008D: "MinFlow_M", | ||
| 0x008E: "MaxPowerDate_M", | ||
| 0x008F: "MaxPower_M", | ||
| 0x0090: "MinPowerDate_M", | ||
| 0x0091: "MinPower_M", | ||
| 0x0092: "AvgTemp1_Y", | ||
| 0x0093: "AvgTemp2_Y", | ||
| 0x0095: "AvgTemp1_M", | ||
| 0x0096: "AvgTemp2_M", | ||
| 0x010A: "E1HighRes", | ||
| 0x03EC: "HourCounter", | ||
| 60: "Heat Energy (E1)", | ||
| 61: "Inlet Energy E4", | ||
| 62: "Outlet Energy E5", | ||
| 63: "Cooling Energy E3", | ||
| 64: "Tariff TA2", | ||
| 65: "Tariff TA3", | ||
| 66: "Tariff limit 2", | ||
| 67: "Tariff limit 3", | ||
| 68: "Volume V1", | ||
| 69: "Volume V2", | ||
| 72: "Mass M1", | ||
| 73: "Mass M2", | ||
| 74: "Flow V1", | ||
| 75: "Flow V2", | ||
| 80: "Current Power", | ||
| 84: "Pulse input A1", | ||
| 85: "Pulse input B1", | ||
| 86: "Temp1", | ||
| 87: "Temp2", | ||
| 88: "Temp3", | ||
| 89: "Tempdiff", | ||
| 91: "Pressure P1", | ||
| 92: "Pressure P1", | ||
| 94: "Heat Energy E2", | ||
| 95: "Tap water energy E6", | ||
| 96: "Tap water energy E7", | ||
| 97: "Temp1xm3 E8", # V1 * t1 (inlet) | ||
| 98: "Target Date", | ||
| 99: "InfoCode", | ||
| 104: "Meter number for VB", | ||
| 110: "Temp2xm3 E9", # V2 * t2 (outlet) | ||
| 112: "Customer Number 2", # 8 most-significant digits | ||
| 113: "Infoevent", | ||
| 114: "Meter number for VA", | ||
| 122: "Temp4", | ||
| 123: "MaxFlowDate_Y", | ||
| 124: "MaxFlow_Y", | ||
| 125: "MinFlowDate_Y", | ||
| 126: "MinFlow_Y", | ||
| 127: "MaxPowerDate_Y", | ||
| 128: "MaxPower_Y", | ||
| 129: "MinPowerDate_Y", | ||
| 130: "MinPower_Y", | ||
| 138: "MaxFlowDate_M", | ||
| 139: "MaxFlow_M", | ||
| 140: "MinFlowDate_M", | ||
| 141: "MinFlow_M", | ||
| 142: "MaxPowerDate_M", | ||
| 143: "MaxPower_M", | ||
| 144: "MinPowerDate_M", | ||
| 145: "MinPower_M", | ||
| 146: "AvgTemp1_Y", | ||
| 147: "AvgTemp2_Y", | ||
| 149: "AvgTemp1_M", | ||
| 150: "AvgTemp2_M", | ||
| 152: "Program number", # not seen on my meters: ABCCCCCC | ||
| 153: "Config number 1", # config no. DDDEE | ||
| 154: "Software Checksum 1", | ||
| 168: "Config number 2", # config no. FFGGMN | ||
| 175: "Error hour counter", | ||
| 178: "Differential energy dE", | ||
| 179: "Control energy cE", | ||
| 180: "Differential volume dV", | ||
| 181: "Control volume cV", | ||
| # 183: looks like a meter S/N on our Multical 603 | ||
| 184: "MbusPriAdrMod1", | ||
| 185: "MbusSekAdrMod1", | ||
| 218: "MbusPriAdrMod2", | ||
| 219: "MbusSekAdrMod2", | ||
| 222: "ConfigChangedEventCount", | ||
| 224: "Pulse input A2", | ||
| 225: "Pulse input B2", | ||
| 229: "T1_average_autoint", | ||
| 230: "T2_average_autoint", | ||
| 234: "l/imp. for VA", | ||
| 235: "l/imp for VB", | ||
| 239: "Volume V1 hires", | ||
| # Undocumented, but it matches the info given by our Multical 603 in the diagnostics display | ||
| 259: "Nominal Q\N{LATIN SUBSCRIPT SMALL LETTER P}", | ||
| 266: "E1HighRes", | ||
| 267: "Cooling energy E3 hires", | ||
| 346: "Module SW rev", | ||
| 347: "Customer Number", | ||
| 348: "Date and Time", # FIXME unkown unit 79, 28591984415535 | ||
| 355: "COP Year", | ||
| 362: "Tariff TA4", | ||
| 364: "Heat energy A1", # Heat energy with discount A1, t2 < t5 limit | ||
| 365: "Heat energy A2", # Heat energy with surcharge A2, t2 > t5 limit | ||
| 366: "T5 limit", | ||
| 367: "COP Month", | ||
| 369: "Info bits", | ||
| 371: "COP", | ||
| 372: "Power Input B1", | ||
| 379: "T1 time average day", | ||
| 380: "T2 time average day", | ||
| 381: "T1 time average hour", | ||
| 382: "T2 time average hour", | ||
| 383: "Flow V1 max year date", | ||
| # 384: something similar? | ||
| 385: "Power max year date", | ||
| # 386: something similar? | ||
| 387: "Flow V1 max month date", | ||
| # 388: something similar? | ||
| 389: "Power max month date", | ||
| # 390: something similar? | ||
| 398: "T1 actual (one decimal)", | ||
| 399: "T2 actual (one decimal)", | ||
| # Undocumented, but on Multical 603 it works that way | ||
| 400: "T1-T2 (one decimal)", | ||
| 404: "Meter Type", | ||
| 473: "Energy E10", | ||
| 474: "Energy E11", | ||
| 477: "T3 time average day", | ||
| 478: "T3 time average hour", | ||
| 505: "P1 average day", | ||
| 506: "P2 average day", | ||
| 507: "P1 average hour", | ||
| 508: "P2 average hour", | ||
| # Undocumented, but it matches the actual interval on Multical 303 | ||
| 675: "WM-Bus transmission interval", | ||
| 1001: "Fabrication No", | ||
| 1002: "Time", | ||
| 1003: "Date", | ||
| 1004: "HourCounter", | ||
| 1005: "Software edition", | ||
| 1010: "Customer number 1", # 8 least-significant digits | ||
| 1032: "Operation Mode", | ||
| } | ||
|
|
||
|
|
||
|
|
@@ -73,11 +168,11 @@ | |
| 0x12: "kVAh", | ||
| 0x13: "MVAh", | ||
| 0x14: "GVAh", | ||
| 0x15: "kW", | ||
| 0x15: "W", | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree that it's a lot more likely W is the correct unit. It was a funny one to track down the cause/source for the error. I found in my notes I copied it from a blog which in turn got it from the PyKamstrup repo and there it was provided by some other person over 14 years ago. 😅 (same for the other commit fixing the kvar->var.) |
||
| 0x16: "kW", | ||
| 0x17: "MW", | ||
| 0x18: "GW", | ||
| 0x19: "kvar", | ||
| 0x19: "var", | ||
| 0x1A: "kvar", | ||
| 0x1B: "Mvar", | ||
| 0x1C: "Gvar", | ||
|
|
@@ -90,7 +185,7 @@ | |
| 0x23: "kV", | ||
| 0x24: "kA", | ||
| 0x25: "°C", | ||
| 0x26: "°K", | ||
| 0x26: "K", | ||
| 0x27: "l", | ||
| 0x28: "m³", | ||
| 0x29: "l/h", | ||
|
|
@@ -117,6 +212,12 @@ | |
| 0x3E: "days", | ||
| 0x3F: "RTC-Q", | ||
| 0x40: "Datetime", | ||
| 0x55: "%RH", | ||
| 0x56: "%O\N{SUBSCRIPT TWO}", | ||
| 0x57: "m/s", | ||
| 0x58: "kJ/kg", | ||
| 0x59: "pH", | ||
| 0x5A: "g/kg", | ||
| } | ||
|
|
||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are you sure it's
P1repeated and notP2for example?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, register number 92 is indeed "Pressure P2", or the analog input P2. Not P1. Thanks for catching this.
I'll take a look at your PR by tomorrow.