Added more medium definitions according to DIN EN 13757-7:2018-06 (#162)

This commit is contained in:
Fabian Pflug 2020-06-05 13:12:44 +02:00 committed by GitHub
parent 643022388d
commit 23d8ee4844
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 139 additions and 6 deletions

View File

@ -1686,12 +1686,40 @@ mbus_data_fixed_unit(int medium_unit_byte)
// Heat / Cooling load meter ♣ 0000 1101 OD
// Bus / System 0000 1110 0E
// Unknown Medium 0000 1111 0F
// Reserved .......... 10 to 15
// Irrigation Water (Non Drinkable) 0001 0000 10
// Water data logger 0001 0001 11
// Gas data logger 0001 0010 12
// Gas converter 0001 0011 13
// Heat Value 0001 0100 14
// Hot Water (>=90°C) (Non Drinkable) 0001 0101 15
// Cold Water 0001 0110 16
// Dual Water 0001 0111 17
// Pressure 0001 1000 18
// A/D Converter 0001 1001 19
// Reserved .......... 20 to FF
// Smoke detector 0001 1010 1A
// Room sensor (e.g. Temperature or Humidity) 0001 1011 1B
// Gas detector 0001 1100 1C
// Reserved for Sensors .......... 1D to 1F
// Breaker (Electricity) 0010 0000 20
// Valve (Gas or Water) 0010 0001 21
// Reserved for Switching Units .......... 22 to 24
// Customer Unit (Display) 0010 0101 25
// Reserved for End User Units .......... 26 to 27
// Waste Water (Non Drinkable) 0010 1000 28
// Waste 0010 1001 29
// Reserved for CO2 0010 1010 2A
// Reserved for environmental meter .......... 2B to 2F
// Service tool 0011 0000 30
// Gateway 0011 0001 31
// Unidirectional Repeater 0011 0010 32
// Bidirectional Repeater 0011 0011 33
// Reserved for System Units .......... 34 to 35
// Radio Control Unit (System Side) 0011 0110 36
// Radio Control Unit (Meter Side) 0011 0111 37
// Bus Control Unit (Meter Side) 0011 1000 38
// Reserved for System Units .......... 38 to 3F
// Reserved .......... 40 to FE
// Placeholder 1111 1111 FF
//------------------------------------------------------------------------------
///
@ -1729,7 +1757,7 @@ mbus_data_variable_medium_lookup(unsigned char medium)
break;
case MBUS_VARIABLE_DATA_MEDIUM_HOT_WATER:
snprintf(buff, sizeof(buff), "Hot water");
snprintf(buff, sizeof(buff), "Warm water (30-90°C)");
break;
case MBUS_VARIABLE_DATA_MEDIUM_WATER:
@ -1768,6 +1796,30 @@ mbus_data_variable_medium_lookup(unsigned char medium)
snprintf(buff, sizeof(buff), "Unknown Medium");
break;
case MBUS_VARIABLE_DATA_MEDIUM_IRRIGATION:
snprintf(buff, sizeof(buff), "Irrigation Water");
break;
case MBUS_VARIABLE_DATA_MEDIUM_WATER_LOGGER:
snprintf(buff, sizeof(buff), "Water Logger");
break;
case MBUS_VARIABLE_DATA_MEDIUM_GAS_LOGGER:
snprintf(buff, sizeof(buff), "Gas Logger");
break;
case MBUS_VARIABLE_DATA_MEDIUM_GAS_CONV:
snprintf(buff, sizeof(buff), "Gas Converter");
break;
case MBUS_VARIABLE_DATA_MEDIUM_COLORIFIC:
snprintf(buff, sizeof(buff), "Calorific value");
break;
case MBUS_VARIABLE_DATA_MEDIUM_BOIL_WATER:
snprintf(buff, sizeof(buff), "Hot water (>90°C)");
break;
case MBUS_VARIABLE_DATA_MEDIUM_COLD_WATER:
snprintf(buff, sizeof(buff), "Cold water");
break;
@ -1784,8 +1836,73 @@ mbus_data_variable_medium_lookup(unsigned char medium)
snprintf(buff, sizeof(buff), "A/D Converter");
break;
case 0x10: // - 0x15
case 0x20: // - 0xFF
case MBUS_VARIABLE_DATA_MEDIUM_SMOKE:
snprintf(buff, sizeof(buff), "Smoke Detector");
break;
case MBUS_VARIABLE_DATA_MEDIUM_ROOM_SENSOR:
snprintf(buff, sizeof(buff), "Ambient Sensor");
break;
case MBUS_VARIABLE_DATA_MEDIUM_GAS_DETECTOR:
snprintf(buff, sizeof(buff), "Gas Detector");
break;
case MBUS_VARIABLE_DATA_MEDIUM_BREAKER_E:
snprintf(buff, sizeof(buff), "Breaker: Electricity");
break;
case MBUS_VARIABLE_DATA_MEDIUM_VALVE:
snprintf(buff, sizeof(buff), "Valve: Gas or Water");
break;
case MBUS_VARIABLE_DATA_MEDIUM_CUSTOMER_UNIT:
snprintf(buff, sizeof(buff), "Customer Unit: Display Device");
break;
case MBUS_VARIABLE_DATA_MEDIUM_WASTE_WATER:
snprintf(buff, sizeof(buff), "Waste Water");
break;
case MBUS_VARIABLE_DATA_MEDIUM_GARBAGE:
snprintf(buff, sizeof(buff), "Garbage");
break;
case MBUS_VARIABLE_DATA_MEDIUM_SERVICE_UNIT:
snprintf(buff, sizeof(buff), "Service Unit");
break;
case MBUS_VARIABLE_DATA_MEDIUM_RC_SYSTEM:
snprintf(buff, sizeof(buff), "Radio Converter: System");
break;
case MBUS_VARIABLE_DATA_MEDIUM_RC_METER:
snprintf(buff, sizeof(buff), "Radio Converter: Meter");
break;
case 0x22:
case 0x23:
case 0x24:
case 0x26:
case 0x27:
case 0x2A:
case 0x2B:
case 0x2C:
case 0x2D:
case 0x2E:
case 0x2F:
case 0x31:
case 0x32:
case 0x33:
case 0x34:
case 0x38:
case 0x39:
case 0x3A:
case 0x3B:
case 0x3C:
case 0x3D:
case 0x3E:
case 0x3F:
snprintf(buff, sizeof(buff), "Reserved");
break;

View File

@ -487,10 +487,27 @@ typedef struct _mbus_data_secondary_address {
#define MBUS_VARIABLE_DATA_MEDIUM_HEAT_COOL 0x0D
#define MBUS_VARIABLE_DATA_MEDIUM_BUS 0x0E
#define MBUS_VARIABLE_DATA_MEDIUM_UNKNOWN 0x0F
#define MBUS_VARIABLE_DATA_MEDIUM_IRRIGATION 0x10
#define MBUS_VARIABLE_DATA_MEDIUM_WATER_LOGGER 0x11
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_LOGGER 0x12
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_CONV 0x13
#define MBUS_VARIABLE_DATA_MEDIUM_COLORIFIC 0x14
#define MBUS_VARIABLE_DATA_MEDIUM_BOIL_WATER 0x15
#define MBUS_VARIABLE_DATA_MEDIUM_COLD_WATER 0x16
#define MBUS_VARIABLE_DATA_MEDIUM_DUAL_WATER 0x17
#define MBUS_VARIABLE_DATA_MEDIUM_PRESSURE 0x18
#define MBUS_VARIABLE_DATA_MEDIUM_ADC 0x19
#define MBUS_VARIABLE_DATA_MEDIUM_SMOKE 0x1A
#define MBUS_VARIABLE_DATA_MEDIUM_ROOM_SENSOR 0x1B
#define MBUS_VARIABLE_DATA_MEDIUM_GAS_DETECTOR 0x1C
#define MBUS_VARIABLE_DATA_MEDIUM_BREAKER_E 0x20
#define MBUS_VARIABLE_DATA_MEDIUM_VALVE 0x21
#define MBUS_VARIABLE_DATA_MEDIUM_CUSTOMER_UNIT 0x25
#define MBUS_VARIABLE_DATA_MEDIUM_WASTE_WATER 0x28
#define MBUS_VARIABLE_DATA_MEDIUM_GARBAGE 0x29
#define MBUS_VARIABLE_DATA_MEDIUM_SERVICE_UNIT 0x30
#define MBUS_VARIABLE_DATA_MEDIUM_RC_SYSTEM 0x36
#define MBUS_VARIABLE_DATA_MEDIUM_RC_METER 0x37
//
// Returns the manufacturer ID or zero if the given
@ -645,4 +662,3 @@ int mbus_is_secondary_address(const char * value);
#endif
#endif /* _MBUS_PROTOCOL_H_ */