dsmr-parser issue dependences on OrangePI
Library
https://github.com/ndokter/dsmr_parser
A library for parsing Dutch Smart Meter Requirements (DSMR) telegram data. It also includes client implementation to directly read and parse smart meter data.
Repository
I wrote reader base on examples
git clone https://github.com/pashamray/dsmr-read.git
Troble on OrangePI
pip install -r requirements.txt
And I had error, console output:
Collecting dsmr-parser==1.4.3 (from -r requirements.txt (line 1))
Using cached dsmr_parser-1.4.3-py3-none-any.whl.metadata (539 bytes)
Collecting rich==14.1.0 (from -r requirements.txt (line 2))
Using cached rich-14.1.0-py3-none-any.whl.metadata (18 kB)
Collecting pyserial<4,>=3 (from dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached pyserial-3.5-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting pyserial-asyncio-fast>=0.11 (from dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached pyserial_asyncio_fast-0.16-py3-none-any.whl.metadata (2.5 kB)
Collecting pytz (from dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting Tailer==0.4.1 (from dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached tailer-0.4.1.tar.gz (7.5 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting dlms_cosem==21.3.2 (from dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached dlms_cosem-21.3.2-py3-none-any.whl.metadata (10 kB)
Collecting markdown-it-py>=2.2.0 (from rich==14.1.0->-r requirements.txt (line 2))
Using cached markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB)
Collecting pygments<3.0.0,>=2.13.0 (from rich==14.1.0->-r requirements.txt (line 2))
Using cached pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB)
Collecting attrs>=20.3.0 (from dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached attrs-25.3.0-py3-none-any.whl.metadata (10 kB)
Collecting cryptography>=35.0.0 (from dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached cryptography-45.0.7.tar.gz (744 kB)
Installing build dependencies ... error
error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> [29 lines of output]
Collecting maturin<2,>=1.8.6
Using cached maturin-1.9.4.tar.gz (213 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Installing backend dependencies: started
Installing backend dependencies: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [4 lines of output]
Python reports SOABI: cpython-312-riscv64-linux-gnu
Computed rustc target triple: riscv64-unknown-linux-gnu
Target triple not supported by rustup: riscv64-unknown-linux-gnu
Rust not found, installing into a temporary directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Fix
install build dependences for packages
sudo apt install rustc cargo build-essential libssl-dev pkg-config python3-dev libffi-dev
and try install requirements
pip install -r requirements.txt
console output
...
Using cached cryptography-45.0.7.tar.gz (744 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting asn1crypto>=1.4.0 (from dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Downloading asn1crypto-1.5.1-py2.py3-none-any.whl.metadata (13 kB)
Collecting python-dateutil>=2.8.1 (from dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting typing-extensions>=3.10 (from dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich==14.1.0->-r requirements.txt (line 2))
Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Collecting cffi>=1.14 (from cryptography>=35.0.0->dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached cffi-2.0.0-cp312-cp312-linux_riscv64.whl
Collecting six>=1.5 (from python-dateutil>=2.8.1->dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Collecting pycparser (from cffi>=1.14->cryptography>=35.0.0->dlms_cosem==21.3.2->dsmr-parser==1.4.3->-r requirements.txt (line 1))
Using cached pycparser-2.23-py3-none-any.whl.metadata (993 bytes)
Downloading dsmr_parser-1.4.3-py3-none-any.whl (24 kB)
Downloading rich-14.1.0-py3-none-any.whl (243 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 243.4/243.4 kB 4.5 MB/s eta 0:00:00
Downloading dlms_cosem-21.3.2-py3-none-any.whl (128 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.8/128.8 kB 4.4 MB/s eta 0:00:00
Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.3/87.3 kB 3.3 MB/s eta 0:00:00
Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 5.9 MB/s eta 0:00:00
Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 3.5 MB/s eta 0:00:00
Downloading pyserial_asyncio_fast-0.16-py3-none-any.whl (9.7 kB)
Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 509.2/509.2 kB 5.6 MB/s eta 0:00:00
Downloading asn1crypto-1.5.1-py2.py3-none-any.whl (105 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 105.0/105.0 kB 3.8 MB/s eta 0:00:00
Downloading attrs-25.3.0-py3-none-any.whl (63 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.8/63.8 kB 2.6 MB/s eta 0:00:00
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 4.6 MB/s eta 0:00:00
Using cached typing_extensions-4.15.0-py3-none-any.whl (44 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Using cached pycparser-2.23-py3-none-any.whl (118 kB)
Building wheels for collected packages: Tailer, cryptography
Building wheel for Tailer (pyproject.toml) ... done
Created wheel for Tailer: filename=tailer-0.4.1-py3-none-any.whl size=5482 sha256=f378f2cd2f22439991bc7e4b13397e4960614e5c8e16c11ebf3d0ae055f6acc7
Stored in directory: /home/orangepi/.cache/pip/wheels/56/10/b3/9b55070a23f7689a4cde0d997e34884ee5d66a0255aa0d6a3f
Building wheel for cryptography (pyproject.toml) ... done
Created wheel for cryptography: filename=cryptography-45.0.7-cp312-abi3-linux_riscv64.whl size=4793837 sha256=155579580a3c01ebf61f1c8d7ac54cf636c6464dc90115af129ea42c1e75f7f8
Stored in directory: /home/orangepi/.cache/pip/wheels/d9/16/48/4d74a7b28728ea12bbc1a20756b30c343c3985c0099943146f
Successfully built Tailer cryptography
Installing collected packages: Tailer, pytz, pyserial, asn1crypto, typing-extensions, six, pyserial-asyncio-fast, pygments, pycparser, mdurl, attrs, python-dateutil, markdown-it-py, cffi, rich, cryptography, dlms_cosem, dsmr-parser
Successfully installed Tailer-0.4.1 asn1crypto-1.5.1 attrs-25.3.0 cffi-2.0.0 cryptography-45.0.7 dlms_cosem-21.3.2 dsmr-parser-1.4.3 markdown-it-py-4.0.0 mdurl-0.1.2 pycparser-2.23 pygments-2.19.2 pyserial-3.5 pyserial-asyncio-fast-0.16 python-dateutil-2.9.0.post0 pytz-2025.2 rich-14.1.0 six-1.17.0 typing-extensions-4.15.0
Enjoy !