Merge branch 'master' of github.com:ndokter/dsmr_parser
This commit is contained in:
		
						commit
						8999b1c924
					
				| @ -48,7 +48,11 @@ EN = { | |||||||
|     obis.GAS_METER_READING: 'GAS_METER_READING', |     obis.GAS_METER_READING: 'GAS_METER_READING', | ||||||
|     obis.ACTUAL_TRESHOLD_ELECTRICITY: 'ACTUAL_TRESHOLD_ELECTRICITY', |     obis.ACTUAL_TRESHOLD_ELECTRICITY: 'ACTUAL_TRESHOLD_ELECTRICITY', | ||||||
|     obis.ACTUAL_SWITCH_POSITION: 'ACTUAL_SWITCH_POSITION', |     obis.ACTUAL_SWITCH_POSITION: 'ACTUAL_SWITCH_POSITION', | ||||||
|     obis.VALVE_POSITION_GAS: 'VALVE_POSITION_GAS' |     obis.VALVE_POSITION_GAS: 'VALVE_POSITION_GAS', | ||||||
|  |     obis.BELGIUM_HOURLY_GAS_METER_READING: 'BELGIUM_HOURLY_GAS_METER_READING', | ||||||
|  |     obis.LUXEMBOURG_EQUIPMENT_IDENTIFIER: 'LUXEMBOURG_EQUIPMENT_IDENTIFIER', | ||||||
|  |     obis.LUXEMBOURG_ELECTRICITY_USED_TARIFF_GLOBAL: 'LUXEMBOURG_ELECTRICITY_USED_TARIFF_GLOBAL', | ||||||
|  |     obis.LUXEMBOURG_ELECTRICITY_DELIVERED_TARIFF_GLOBAL: 'LUXEMBOURG_ELECTRICITY_DELIVERED_TARIFF_GLOBAL' | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| REVERSE_EN = dict([(v, k) for k, v in EN.items()]) | REVERSE_EN = dict([(v, k) for k, v in EN.items()]) | ||||||
|  | |||||||
| @ -225,6 +225,11 @@ class ProfileGenericParser(DSMRObjectParser): | |||||||
|         self.parsers_for_unidentified = parsers_for_unidentified |         self.parsers_for_unidentified = parsers_for_unidentified | ||||||
| 
 | 
 | ||||||
|     def _is_line_wellformed(self, line, values): |     def _is_line_wellformed(self, line, values): | ||||||
|  |          | ||||||
|  |         # allow empty parentheses (indicated by empty string) | ||||||
|  |         if values and (len(values) == 1) and (values[0] == ''): | ||||||
|  |             return True | ||||||
|  | 
 | ||||||
|         if values and (len(values) >= 2) and (values[0].isdigit()): |         if values and (len(values) >= 2) and (values[0].isdigit()): | ||||||
|             buffer_length = int(values[0]) |             buffer_length = int(values[0]) | ||||||
|             return (buffer_length <= 10) and (len(values) == (buffer_length * 2 + 2)) |             return (buffer_length <= 10) and (len(values) == (buffer_length * 2 + 2)) | ||||||
| @ -232,6 +237,10 @@ class ProfileGenericParser(DSMRObjectParser): | |||||||
|             return False |             return False | ||||||
| 
 | 
 | ||||||
|     def _parse_values(self, values): |     def _parse_values(self, values): | ||||||
|  |         # in case of empty parentheses return | ||||||
|  |         if values and (len(values) == 1) and (values[0] == None): | ||||||
|  |             return super()._parse_values(values) #calling parent | ||||||
|  | 
 | ||||||
|         buffer_length = int(values[0]) |         buffer_length = int(values[0]) | ||||||
|         buffer_value_obis_ID = values[1] |         buffer_value_obis_ID = values[1] | ||||||
|         if (buffer_length > 0): |         if (buffer_length > 0): | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user