Compare commits

...
7 Commits
Author SHA1 Message Date
Nigel 922e1fc2ae Preparing release 0.29 2021-04-18 12:48:25 +02:00
Nigel e607b62fa2 Merge pull request #71 from lowdef/fix_ProfileGenericObject_for_telegram_iterator
add value and unit properties to ProfileGenericObject to make sure they do not break
2021-03-04 21:49:03 +01:00
Nigel 247860be16 Merge pull request #76 from frenck/frenck-2021-0772
Remove deprecated asyncio coroutine decorator
2021-03-04 21:48:04 +01:00
Nigel c590109a1d Update README.rst
Fixed small typo
2021-03-04 21:47:12 +01:00
Franck Nijhof adaa2dcad5 Remove deprecated asyncio coroutine decorator 2021-03-03 11:48:49 +01:00
Hans Erik van Elburg 8c861ee308 resolved comment 2021-02-14 22:08:35 +01:00
Hans Erik van Elburg 804747c370 add value and unit properties to ProfileGenericObject to make sure that code like iterators that rely on that do not break 2021-01-03 19:58:19 +01:00
7 changed files with 22 additions and 10 deletions
+4
View File
@@ -1,6 +1,10 @@
Change Log
----------
**0.29** (2021-04-18)
- Add value and unit properties to ProfileGenericObject to make sure that code like iterators that rely on that do not break (`pull request #71 <https://github.com/ndokter/dsmr_parser/pull/71>`_).
- Remove deprecated asyncio coroutine decorator (`pull request #76 <https://github.com/ndokter/dsmr_parser/pull/76>`_).
**0.28** (2021-02-21)
- Optional keep alive monitoring for TCP/IP connections (`pull request #73 <https://github.com/ndokter/dsmr_parser/pull/73>`_).
- Catch parse errors in TelegramParser, ignore lines that can not be parsed (`pull request #74 <https://github.com/ndokter/dsmr_parser/pull/74>`_).
+1 -1
View File
@@ -14,7 +14,7 @@ also includes client implementation to directly read and parse smart meter data.
Features
--------
DSMR Parser supports DSMR versions 2, 3, 4 and 5. It has been tested with Python 3.4, 3.5 and 3.6.
DSMR Parser supports DSMR versions 2, 3, 4 and 5. It has been tested with Python 3.5, 3.6, 3.7, 3.8 and 3.9.
Client module usage
+2 -3
View File
@@ -136,7 +136,6 @@ class DSMRProtocol(asyncio.Protocol):
else:
self.telegram_callback(parsed_telegram)
@asyncio.coroutine
def wait_closed(self):
async def wait_closed(self):
"""Wait until connection is closed."""
yield from self._closed.wait()
await self._closed.wait()
+3 -4
View File
@@ -68,8 +68,7 @@ class AsyncSerialReader(SerialReader):
PORT_KEY = 'url'
@asyncio.coroutine
def read(self, queue):
async def read(self, queue):
"""
Read complete DSMR telegram's from the serial interface and parse it
into CosemObject's and MbusObject's.
@@ -81,12 +80,12 @@ class AsyncSerialReader(SerialReader):
"""
# create Serial StreamReader
conn = serial_asyncio.open_serial_connection(**self.serial_settings)
reader, _ = yield from conn
reader, _ = await conn
while True:
# Read line if available or give control back to loop until new
# data has arrived.
data = yield from reader.readline()
data = await reader.readline()
self.telegram_buffer.append(data.decode('ascii'))
for telegram in self.telegram_buffer.get_all():
+10
View File
@@ -155,6 +155,16 @@ class ProfileGenericObject(DSMRObject):
super().__init__(values)
self._buffer_list = None
@property
def value(self):
# value is added to make sure the telegram iterator does not break
return self.values
@property
def unit(self):
# value is added to make sure all items have a unit so code that relies on that does not break
return None
@property
def buffer_length(self):
return self.values[0]['value']
+1 -1
View File
@@ -6,7 +6,7 @@ setup(
author='Nigel Dokter and many others',
author_email='nigel@nldr.net',
url='https://github.com/ndokter/dsmr_parser',
version='0.28',
version='0.29',
packages=find_packages(exclude=('test', 'test.*')),
install_requires=[
'pyserial>=3,<4',
+1 -1
View File
@@ -1,5 +1,5 @@
[tox]
envlist = py35,py36,py37,py38
envlist = py35,py36,py37,py38,py39
[testenv]
deps=