make serial.EVEN the default parity for DSMR v2.2
This commit is contained in:
parent
6f3c74ce7c
commit
c058feca5f
@ -1,13 +1,18 @@
|
|||||||
Change Log
|
Change Log
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
**0.4** (2016-11-21)
|
||||||
|
- DSMR v2.2 serial settings now uses parity serial.EVEN by default (`issue #4 <https://github.com/ndokter/dsmr_parser/issues/4>`_)
|
||||||
|
- improved asyncio reader and improve it's error handling (`pull request #5 <https://github.com/ndokter/dsmr_parser/pull/5>`_)
|
||||||
|
|
||||||
**0.3** (2016-11-12)
|
**0.3** (2016-11-12)
|
||||||
|
|
||||||
- Added asyncio reader for non-blocking reads. (thanks to https://github.com/aequitas)
|
- asyncio reader for non-blocking reads. (`pull request #3 <https://github.com/ndokter/dsmr_parser/pull/3>`_)
|
||||||
|
|
||||||
**0.2** (2016-11-08)
|
**0.2** (2016-11-08)
|
||||||
|
|
||||||
- Added support for DMSR version 2.2 (thanks to https://github.com/aequitas)
|
- support for DMSR version 2.2 (`pull request #2 <https://github.com/ndokter/dsmr_parser/pull/2>`_)
|
||||||
|
|
||||||
**0.1** (2016-08-22)
|
**0.1** (2016-08-22)
|
||||||
|
|
||||||
- Initial version with a serial reader and support for DSMR version 4.x
|
- initial version with a serial reader and support for DSMR version 4.x
|
||||||
|
22
README.rst
22
README.rst
@ -22,7 +22,7 @@ Using the serial reader to connect to your smart meter and parse it's telegrams:
|
|||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
from dsmr_parser import telegram_specifications
|
from dsmr_parser import telegram_specifications
|
||||||
from dsmr_parser.obis_references import P1_MESSAGE_TIMESTAMP
|
from dsmr_parser import obis_references
|
||||||
from dsmr_parser.serial import SerialReader, SERIAL_SETTINGS_V4
|
from dsmr_parser.serial import SerialReader, SERIAL_SETTINGS_V4
|
||||||
|
|
||||||
serial_reader = SerialReader(
|
serial_reader = SerialReader(
|
||||||
@ -34,25 +34,22 @@ Using the serial reader to connect to your smart meter and parse it's telegrams:
|
|||||||
for telegram in serial_reader.read():
|
for telegram in serial_reader.read():
|
||||||
|
|
||||||
# The telegram message timestamp.
|
# The telegram message timestamp.
|
||||||
message_datetime = telegram[P1_MESSAGE_TIMESTAMP]
|
message_datetime = telegram[obis_references.P1_MESSAGE_TIMESTAMP]
|
||||||
|
|
||||||
# Using the active tariff to determine the electricity being used and
|
# Using the active tariff to determine the electricity being used and
|
||||||
# delivered for the right tariff.
|
# delivered for the right tariff.
|
||||||
tariff = telegram[ELECTRICITY_ACTIVE_TARIFF]
|
tariff = telegram[obis_references.ELECTRICITY_ACTIVE_TARIFF]
|
||||||
tariff = int(tariff.value)
|
tariff = int(tariff.value)
|
||||||
|
|
||||||
electricity_used_total \
|
electricity_used_total \
|
||||||
= telegram[ELECTRICITY_USED_TARIFF_ALL[tariff - 1]]
|
= telegram[obis_references.ELECTRICITY_USED_TARIFF_ALL[tariff - 1]]
|
||||||
electricity_delivered_total = \
|
electricity_delivered_total = \
|
||||||
telegram[ELECTRICITY_DELIVERED_TARIFF_ALL[tariff - 1]]
|
telegram[obis_referencesELECTRICITY_DELIVERED_TARIFF_ALL[tariff - 1]]
|
||||||
|
|
||||||
gas_reading = telegram[HOURLY_GAS_METER_READING]
|
gas_reading = telegram[obis_references.HOURLY_GAS_METER_READING]
|
||||||
|
|
||||||
# See dsmr_reader.obis_references for all readable telegram values.
|
# See dsmr_reader.obis_references for all readable telegram values.
|
||||||
|
|
||||||
The dsmr_parser.serial module contains multiple settings that should work in
|
|
||||||
most cases. For example: if SERIAL_SETTINGS_V4 doesn't work, then try
|
|
||||||
SERIAL_SETTINGS_V4_EVEN too.
|
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
@ -63,6 +60,13 @@ To install DSMR Parser:
|
|||||||
|
|
||||||
$ pip install dsmr-parser
|
$ pip install dsmr-parser
|
||||||
|
|
||||||
|
Known issues
|
||||||
|
------------
|
||||||
|
|
||||||
|
If the serial settings SERIAL_SETTINGS_V2_2 or SERIAL_SETTINGS_V4 don't work.
|
||||||
|
Make sure to try and replace the parity settings to EVEN or NONE.
|
||||||
|
It's possible that alternative settings will be added in the future if these
|
||||||
|
settings don't work for the majority of meters.
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
----
|
----
|
||||||
|
@ -11,16 +11,6 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
SERIAL_SETTINGS_V2_2 = {
|
SERIAL_SETTINGS_V2_2 = {
|
||||||
'baudrate': 9600,
|
|
||||||
'bytesize': serial.SEVENBITS,
|
|
||||||
'parity': serial.PARITY_NONE,
|
|
||||||
'stopbits': serial.STOPBITS_ONE,
|
|
||||||
'xonxoff': 0,
|
|
||||||
'rtscts': 0,
|
|
||||||
'timeout': 20
|
|
||||||
}
|
|
||||||
|
|
||||||
SERIAL_SETTINGS_V2_2_EVEN = {
|
|
||||||
'baudrate': 9600,
|
'baudrate': 9600,
|
||||||
'bytesize': serial.SEVENBITS,
|
'bytesize': serial.SEVENBITS,
|
||||||
'parity': serial.PARITY_EVEN,
|
'parity': serial.PARITY_EVEN,
|
||||||
@ -31,16 +21,6 @@ SERIAL_SETTINGS_V2_2_EVEN = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_SETTINGS_V4 = {
|
SERIAL_SETTINGS_V4 = {
|
||||||
'baudrate': 115200,
|
|
||||||
'bytesize': serial.SEVENBITS,
|
|
||||||
'parity': serial.PARITY_NONE,
|
|
||||||
'stopbits': serial.STOPBITS_ONE,
|
|
||||||
'xonxoff': 0,
|
|
||||||
'rtscts': 0,
|
|
||||||
'timeout': 20
|
|
||||||
}
|
|
||||||
|
|
||||||
SERIAL_SETTINGS_V4_EVEN = {
|
|
||||||
'baudrate': 115200,
|
'baudrate': 115200,
|
||||||
'bytesize': serial.SEVENBITS,
|
'bytesize': serial.SEVENBITS,
|
||||||
'parity': serial.PARITY_EVEN,
|
'parity': serial.PARITY_EVEN,
|
||||||
|
Loading…
Reference in New Issue
Block a user