Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Gas boiler data logging

Mon May 15, 2023 10:04 pm

Hello,
Anyone here logging a Viessmann Vitodens gas boiler data, please? The data can then be inserted in InfluxDB database and visualized with Grafana. Here is just an example.
38101247cf1dff459a9f056f6f14ba655d5c2a4c.jpeg
38101247cf1dff459a9f056f6f14ba655d5c2a4c.jpeg (148.77 KiB) Viewed 5134 times
I am soon to start logging but it seems to be a complex task with little information for beginners on the internet.
I understand I need PyViCare library to communicate with boiler's API.
But how do install PyViCare and make it inject various data into InfluxDB every 10 minutes?

If someone is interested in such statistics of their heating system, let us know.

Some basic information can be found here:
https://github.com/somm15/PyViCare
https://pypi.org/project/PyViCare/0.2.3/
https://blog.devgenius.io/viessmann-boi ... f66042663d
https://thesmarthomejourney.com/2021/05 ... assistant/
https://www.viessmann-community.com/t5/ ... d-p/234475 (in German)

MiscBits
Posts: 1749
Joined: Wed Jan 27, 2021 12:48 pm

Re: Gas boiler data logging

Thu May 18, 2023 10:16 am

I would start by installing the software (sorry no Pi handy to test the install).

At the top of the pypi page (latest version of the code is here) are the install instructions:

Code: Select all

pip install PyViCare
Then try to get the sample code on pypi running by creating the API key as per https://github.com/somm15/PyViCare#prerequisites

Once that's running it would be the time to look at Influx etc.

Note there is a Discord 'help' stream for this at https://discord.gg/aM3SqCD88f

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Fri May 19, 2023 2:00 pm

Thanks. I joined Discord, which I had never heard of before.
Anyway, now I am trying to start NAS on my Pi. After I am done with NAS (OMV 5), I will try to set up PyViCare.

User avatar
R61zt
Posts: 108
Joined: Fri Feb 01, 2013 3:55 pm

Re: Gas boiler data logging

Fri May 19, 2023 3:02 pm

There is a lot who do logging of electricity including an emonpi thing https://shop.openenergymonitor.com/energy-monitoring/
They might be rather interested in getting a look at what your gas boiler monitoring can see.

On my own, I got four temperature sensors to an arduino and got that to a local LCD display, but usb-serial to send it to a very ordinary text logging every ten seconds on a raspberry pi had been erratic. It would seem that there are inconsistencies in starting and maintaining a usb-serial ttyUSB0 so it may work for a day or an hour, then decide that it was sending to ttyUSB1 while the program was looking for ttyUSB0 and restarting it got error messages. I've also been getting "bus error" every time starting an i2c temperature/humidity sensor of a reputable brand. It worked for a month then never again.

At this time of year, my biggest saving on the gas boiler is from a policy decision of "gas is Normally OFF". I'll burn for three minutes if I need hot water for washing up, twelve minutes on bath day, and for the rest of the time the gas boiler is OFF. As in no 1kWh per day central heating pump, no control board, really OFF.

If we want a nil net carbon future then there is only one thing to do with the gas appliances. "TURN IT OFF, STUPID!"

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Wed May 31, 2023 5:30 pm

OK, I have found a website with what looks like a step-by-sterp guide for my gas boiler:
https://blog.devgenius.io/viessmann-boi ... f66042663d

It requires python, so I installed it, successfully, I think:

Code: Select all

sudo apt install python3-pip
Then I needed to install what I think is a library:

Code: Select all

sudo pip3 install PyViCare
And here is a long installation log with some warnings and errors, I'm afraid.
Here are some parts of the log:

Code: Select all

reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching '*.c' under directory 'src/_cffi_src'
  warning: no files found matching '*.h' under directory 'src/_cffi_src'
  no previously-included directories found matching 'docs/_build'
  warning: no previously-included files found matching 'vectors'
  warning: no previously-included files matching '*' found under directory 'vectors'
  warning: no previously-included files found matching 'src/rust/target'
  warning: no previously-included files matching '*' found under directory 'src/rust/target'
  warning: no previously-included files matching '*' found under directory '.github'
  warning: no previously-included files found matching 'release.py'
  warning: no previously-included files found matching '.readthedocs.yml'
  warning: no previously-included files found matching 'ci-constraints-requirements.txt'
  warning: no previously-included files found matching 'mypy.ini'
  adding license file 'LICENSE'
  adding license file 'LICENSE.APACHE'
  adding license file 'LICENSE.BSD'
  writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
  copying src/cryptography/py.typed -> build/lib.linux-armv7l-cpython-37/cryptography

Code: Select all

      =============================DEBUG ASSISTANCE=============================
      If you are seeing a compilation error please try the following steps to
      successfully install cryptography:
      1) Upgrade to the latest pip and try again. This will fix errors for most
         users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
      2) Read https://cryptography.io/en/latest/installation/ for specific
         instructions for your platform.
      3) Check our frequently asked questions for more information:
         https://cryptography.io/en/latest/faq/
      4) Ensure you have a recent Rust toolchain installed:
         https://cryptography.io/en/latest/installation/#rust

      Python: 3.7.3
      platform: Linux-5.10.103-v7l+-armv7l-with-debian-10.13
      pip: 18.1
      setuptools: 67.8.0
      setuptools_rust: 1.6.0
      rustc: n/a
      =============================DEBUG ASSISTANCE=============================

  error: can't find Rust compiler

  If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.

  To update pip, run:

      pip install --upgrade pip

  and then retry package installation.

  If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.

  This package requires Rust >=1.56.0.

  ----------------------------------------
  Failed building wheel for cryptography
  Running setup.py clean for cryptography
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ijm4cd8k/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" clean --all:
  /tmp/pip-build-env-2zi76eww/lib/python3.7/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*.
    config = read_configuration(filepath, True, ignore_option_errors, dist)
  running clean
  removing 'build/lib.linux-armv7l-cpython-37' (and everything under it)
  'build/bdist.linux-armv7l' does not exist -- can't clean it
  'build/scripts-3.7' does not exist -- can't clean it
  removing 'build'
  running clean_rust
  

Code: Select all

      =============================DEBUG ASSISTANCE=============================
      If you are seeing a compilation error please try the following steps to
      successfully install cryptography:
      1) Upgrade to the latest pip and try again. This will fix errors for most
         users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
      2) Read https://cryptography.io/en/latest/installation/ for specific
         instructions for your platform.
      3) Check our frequently asked questions for more information:
         https://cryptography.io/en/latest/faq/
      4) Ensure you have a recent Rust toolchain installed:
         https://cryptography.io/en/latest/installation/#rust

      Python: 3.7.3
      platform: Linux-5.10.103-v7l+-armv7l-with-debian-10.13
      pip: 18.1
      setuptools: 67.8.0
      setuptools_rust: 1.6.0
      rustc: n/a
      =============================DEBUG ASSISTANCE=============================

  error: can't find Rust compiler

  If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.

  To update pip, run:

      pip install --upgrade pip

  and then retry package installation.

  If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.

  This package requires Rust >=1.56.0.

  ----------------------------------------
  Failed cleaning build dir for cryptography
Failed to build cryptography
Installing collected packages: pycparser, cffi, cryptography, Authlib, PyViCare
  Running setup.py install for cryptography ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ijm4cd8k/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-iegbunqr/install-record.txt --single-version-externally-managed --compile:
    /tmp/pip-build-env-2zi76eww/lib/python3.7/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*.
      config = read_configuration(filepath, True, ignore_option_errors, dist)
    running install
    /tmp/pip-build-env-2zi76eww/lib/python3.7/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
    !!

            ********************************************************************************
            Please avoid running ``setup.py`` directly.
            Instead, use pypa/build, pypa/installer, pypa/build or
            other standards-based tools.

            See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
            ********************************************************************************

    !!
      self.initialize_options()
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-cpython-37
    creating build/lib.linux-armv7l-cpython-37/cryptography
    copying src/cryptography/utils.py -> build/lib.linux-armv7l-cpython-37/cryptography
    copying src/cryptography/fernet.py -> build/lib.linux-armv7l-cpython-37/cryptography
    copying src/cryptography/exceptions.py -> build/lib.linux-armv7l-cpython-37/cryptography
    copying src/cryptography/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography
    copying src/cryptography/__about__.py -> build/lib.linux-armv7l-cpython-37/cryptography
    creating build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/oid.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/ocsp.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/name.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/general_name.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/extensions.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/certificate_transparency.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/base.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    copying src/cryptography/x509/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/x509
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat
    copying src/cryptography/hazmat/_oid.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat
    copying src/cryptography/hazmat/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings
    copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends
    copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/twofactor
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/serialization
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/kdf
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/ciphers
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/types.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/primitives/asymmetric
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/openssl
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/backends/openssl
    running egg_info
    writing src/cryptography.egg-info/PKG-INFO
    writing dependency_links to src/cryptography.egg-info/dependency_links.txt
    writing requirements to src/cryptography.egg-info/requires.txt
    writing top-level names to src/cryptography.egg-info/top_level.txt
    reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching '*.c' under directory 'src/_cffi_src'
    warning: no files found matching '*.h' under directory 'src/_cffi_src'
    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files found matching 'vectors'
    warning: no previously-included files matching '*' found under directory 'vectors'
    warning: no previously-included files found matching 'src/rust/target'
    warning: no previously-included files matching '*' found under directory 'src/rust/target'
    warning: no previously-included files matching '*' found under directory '.github'
    warning: no previously-included files found matching 'release.py'
    warning: no previously-included files found matching '.readthedocs.yml'
    warning: no previously-included files found matching 'ci-constraints-requirements.txt'
    warning: no previously-included files found matching 'mypy.ini'
    adding license file 'LICENSE'
    adding license file 'LICENSE.APACHE'
    adding license file 'LICENSE.BSD'
    writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
    copying src/cryptography/py.typed -> build/lib.linux-armv7l-cpython-37/cryptography
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/__init__.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/_openssl.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/asn1.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/exceptions.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/pkcs7.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/x509.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust
    creating build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/dh.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    copying src/cryptography/hazmat/bindings/_rust/openssl/x448.pyi -> build/lib.linux-armv7l-cpython-37/cryptography/hazmat/bindings/_rust/openssl
    running build_ext
    running build_rust

Code: Select all

        =============================DEBUG ASSISTANCE=============================
        If you are seeing a compilation error please try the following steps to
        successfully install cryptography:
        1) Upgrade to the latest pip and try again. This will fix errors for most
           users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
        2) Read https://cryptography.io/en/latest/installation/ for specific
           instructions for your platform.
        3) Check our frequently asked questions for more information:
           https://cryptography.io/en/latest/faq/
        4) Ensure you have a recent Rust toolchain installed:
           https://cryptography.io/en/latest/installation/#rust

        Python: 3.7.3
        platform: Linux-5.10.103-v7l+-armv7l-with-debian-10.13
        pip: 18.1
        setuptools: 67.8.0
        setuptools_rust: 1.6.0
        rustc: n/a
        =============================DEBUG ASSISTANCE=============================

    error: can't find Rust compiler

    If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.

    To update pip, run:

        pip install --upgrade pip

    and then retry package installation.

    If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.

    This package requires Rust >=1.56.0.

    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-ijm4cd8k/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-iegbunqr/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-ijm4cd8k/cryptography/
Do you think the installation has been successful or not? How to check?
What to do now if It was not successful?

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Wed May 31, 2023 5:40 pm

By the way, see below, aren't they too old?

pi@RaspberryPi4B:~ $ pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

pi@RaspberryPi4B:~ $ python --version
Python 2.7.16

User avatar
DougieLawson
Posts: 42644
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK

Re: Gas boiler data logging

Thu Jun 01, 2023 8:11 am

Robinson74 wrote:
Wed May 31, 2023 5:40 pm
pi@RaspberryPi4B:~ $ python --version
Python 2.7.16
That's ancient. Python2 has gone end of life on 1st January 2020.

You MUST use python3 for all new python development.
Languages using left-hand whitespace for syntax are ridiculous

DMs sent on https://twitter.com/DougieLawson or LinkedIn will be answered next month.
Fake doctors - are all on my foes list.

The use of crystal balls and mind reading is prohibited.

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Thu Jun 01, 2023 8:17 am

Thanks.
How do I do that?
I'm on Retropie system (Buster).

BTW, I have only just installed these two:
sudo apt install python3-pip
sudo pip3 install PyViCare
I understand pip or PyViCare is not a problem but Python is.

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Thu Jun 01, 2023 11:23 am

For development, I would get another SD card (or similar) and use the latest RPiOS, you'll get the latest tools then. Also, you'll not mess up you RetroPi setup.

But on older setup like Buster, you use to start or develop python3 or IDLE3 or Thonny or Mu or VS Code selecting Python3.

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Thu Jun 01, 2023 11:58 am

From an article on a website I found out that my system probably also has Python3 but Python2 is default and necessary.
I should have also run "python3 --version"
It seems I must make it default.
Maybe following this guide will be enough:
https://raspberry-valley.azurewebsites. ... t-Version/
Also here: https://raspberrytips.com/change-defaul ... n-version/

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Thu Jun 01, 2023 2:53 pm

no don't make it default on Buster, then all python2 programs in the OS will try use python3 and might fail.
just launch with the python3 as mentioned a few times now, if doing it from the command line. (and as you have already, use pip3 to install modules)

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Thu Jun 01, 2023 4:52 pm

I've just checked and Python3 is also on board:

Code: Select all

pi@RaspberryPi4B:~ $ python3 --version
Python 3.7.3
bensimmo, what do you mean by "launch with the python3"? How to do that?
You mean this? /usr/bin/python3.7 PyViCare.py

I thought I would simply make a symlink of python to python3 but you are saying this approach is wrong.

Do you think I should somehow install PyViCare again? How to install it from under Python3, if needed?
How to update Python 3.7.3 to something more recent?

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Fri Jun 02, 2023 6:26 am

python3 PyViCare.py
Will launch PyViCare.py with python3

python PyViCare.py launches it with Python2
( on Buster.)

How are you running the program now?

Have you had a chat on their discord help for any problem

The pypi module site general info https://pypi.org/project/PyViCare/

Github and development, be sure to look on the issues there and also tick to look at old ones, often something might have been answered https://github.com/somm15/PyViCare

Thier help forum on discord https://discord.gg/aM3SqCD88f

That's once you figured out how python/python3 works on Buster.

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Fri Jun 02, 2023 6:47 am

A quick look for your error 'rust' no installing on github for the module and you get
https://github.com/somm15/PyViCare/issues/311
Which tells you what you might need to do with https://github.com/pyca/cryptography/issues/5753

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Fri Jun 02, 2023 7:46 am

Thanks.
I have not run it yet. It has just been installed. Nothing else so far.
I will dive into your links later today.

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Fri Jun 02, 2023 8:53 pm

The script pip3.10 is installed in '/home/pi/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warn ing, use --no-warn-script-location.
Successfully installed pip-23.1.2
Shall I?
How to add it to PATH?

sudo pip3 install PyViCare --prefer-binary seems to have done the trick:

Code: Select all

pi@RaspberryPi4B:~ $ sudo pip3 install PyViCare --prefer-binary
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting PyViCare
  Using cached https://files.pythonhosted.org/packages/eb/1b/e8a855ff8016e10340bb3f8fb864a40531b4727bda535997039b96a10770/PyViCare-2.28.1-py3-none-any.whl
Collecting Authlib>=1.2.0 (from PyViCare)
  Using cached https://files.pythonhosted.org/packages/45/f2/aa94b7aa199247a27eda41b92259cff2d96e257c9aded649aacd244672a4/Authlib-1.2.0-py2.py3-none-any.whl
Collecting cryptography>=3.2 (from Authlib>=1.2.0->PyViCare)
  Downloading https://www.piwheels.org/simple/cryptography/cryptography-40.0.1-cp37-cp37m-linux_armv7l.whl (1.5MB)
    100% |████████████████████████████████| 1.5MB 222kB/s
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.7/dist-packages (from cryptography>=3.2->Authlib>=1.2.0->PyViCare) (1.15.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.12->cryptography>=3.2->Authlib>=1.2.0->PyViCare) (2.21)
Installing collected packages: cryptography, Authlib, PyViCare
Successfully installed Authlib-1.2.0 PyViCare-2.28.1 cryptography-40.0.1
pi@RaspberryPi4B:~ $ python3 PyViCare.py
python3: can't open file 'PyViCare.py': [Errno 2] No such file or directory
pi@RaspberryPi4B:~ $ python PyViCare.py
python: can't open file 'PyViCare.py': [Errno 2] No such file or directory
But neither python nor python3 sees PyViCare.py file.

OK, it seems to be here: /usr/local/lib/python3.7/dist-packages/PyViCare/PyViCare.py

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Sat Jun 03, 2023 7:29 am

That's because it is a module, not a program you run directly.
The module gives you an easy way to access the API (a way of talking to
You need to write a program that imports the module and you then select the boiler info).
See the pypi/github pages for more info and an example program and how to get your credentials.

Perhaps some beginner tutorials on Python in the RaspberryPi learning section on raspberrypi.org will help you get a better understanding, they may even have ones that log data to online graphs etc.

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Sat Jun 03, 2023 8:35 am

Thanks. So there's much more learning for me than I thought.
I thought PyViCare was a ready-made program, not a module.
Perhaps it will be easier for me to use Home Assistant. My understanding is it has a Viessmann ViCare integration so perhaps there is no need for me to learn too much of Python programming:
https://www.home-assistant.io/integrations/vicare/

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Sat Jun 03, 2023 9:11 am

Robinson74 wrote:
Sat Jun 03, 2023 8:35 am
Thanks. So there's much more learning for me than I thought.
I thought PyViCare was a ready-made program, not a module.
Perhaps it will be easier for me to use Home Assistant. My understanding is it has a Viessmann ViCare integration so perhaps there is no need for me to learn too much of Python programming:
https://www.home-assistant.io/integrations/vicare/
I searched earlier for you to recommend it but couldn't find anything using Viess on the search of official and HACS. No idea why it wasn't picked up in search from within HomeAssistant.
A quick look and it uses PyViCare in the background for the API calls.

It's pretty easy to have a go and see if it is for you.
Grab and SD card, flash HomeAssistantOS to it, set it up, go to that page click on Add Integration (if it's not auto detected).
A quick look and it should link to the energy dashboard too, but may or may not need this. https://github.com/home-assistant/core/issues/88961 if it's not been fixed yet.

You can then control the device.
Although for now go to the pipy page and just copy/paste and follow the instruction to test it. You'll need the initial credentials in HA anyway.

redvli
Posts: 1280
Joined: Thu Sep 03, 2020 8:09 am

Re: Gas boiler data logging

Sat Jun 03, 2023 10:10 am

Robinson74 wrote:
Sat Jun 03, 2023 8:35 am
Thanks. So there's much more learning for me than I thought.
I thought PyViCare was a ready-made program, not a module.
Perhaps it will be easier for me to use Home Assistant. My understanding is it has a Viessmann ViCare integration so perhaps there is no need for me to learn too much of Python programming:
https://www.home-assistant.io/integrations/vicare/
If I read through this topic, it looks to me that installing HomeAssistant is a better choice. Even if it were just only for getting started and seeing results. You can always change to own python scripts and maybe you need that some time later if you have or create a device that isn't supported by homeautomation tools like Domoticz or HomeAssistant.

I have an old electric boiler that has no electronics, just mechanical (over)heat protection/regulation. So I added a temperature sensor to it and a 230V/10A power switch. I made some simple python script to extract the temperature from a custom OS on ESP32, but then I saw that this is all available at a much higher integration level with Tasmota (or ESPhome) so I put that on the ESP32 board. Then it is just clicking in Domoticz and add a control/decision loop in Domoticz events (graphical programming called blocky like Scratch on the Pi). Saves a large amount of energy.

I have HomeAssistant running in a virtual machine, but not really using it at the moment. I use Domoticz already much longer so it is a matter of taste and being used to. I have several Pis that run Domoticz, they all communicate with each other within Domoticz. One of them just does temperature monitoring outside/garden, it is then just a remote sensor available locally to the master Domoticz.

User avatar
bensimmo
Posts: 6317
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Gas boiler data logging

Sat Jun 03, 2023 10:29 am

I use Tasmotta too (for plugs) and ESPHome fo everything else, mainly as ESPHome is part of HomeAssistant and just works really well.
I do like the idea of a blocky interface though.

My Home Automation (or really logging and minor control and fun), started some years back with HomeAssistant, I didn't like it and was a pain to use, so I tried OpenHAB (yet another one) and it was ok, still a bit fumbly to use.
So dumped that after a modern HomeAssistant release and that then worked great for everything I use, quite glad i tried it again.
I'm not heavy into the full modding and making a picture of the house and true automation, Alexa and Google Home do a lot of the 'talk and ask questions side for me, so I don't use HA for that.

But for energy logging, I have some plugs with Tasmota on, sending data via it's MQTT setting and estimated gas usage for the boiler via a similar integration you will be using but for Bosch/Nefit boilers. Some of my plugs cannot use Tasmota so I rely on Tuya and Mersoss integrations and they sort of work.
Plus my smart meter is a UK one and ours are naff, so I have Bright tap into the data my smart meter that it sends and it did work for true electric and Gas usage but they seem to be having HA problems as noted in the HA plugin, Bright (I forget the true company name) app works great on my SMET1 meter, even if British Gas refuse to read it any more.

I have a friend that has a full setup of solar panels, battery, various meters plugged into the consumer unit for the mains all working nicely for them.

anyway, enough about my evolving setup.

Robinson74
Posts: 26
Joined: Sat May 06, 2023 10:38 pm

Re: Gas boiler data logging

Sat Jun 03, 2023 10:48 pm

bensimmo wrote:
Sat Jun 03, 2023 9:11 am
Grab and SD card, flash HomeAssistantOS to it, set it up, go to that page click on Add Integration (if it's not auto detected).
A quick look and it should link to the energy dashboard too, but may or may not need this. https://github.com/home-assistant/core/issues/88961 if it's not been fixed yet.
I followed your advice and flashed HA OS to an old SD card to run on RPi.
BTW, do you think I will be able to use the same HA account(?) when I grab a new fast SD card to flash HA OS to my target card?
Anyway, there has been a lot of progress for me. I have also installed an Android HA application on my phone and it immediately found my HA server. :)
I can read tens of my gas boiler parameters on my phone and it can also show some graphs.
The same on my computer (Firefox browser) but there is no scroll bar so I can't scroll down. :( A bug or something. OK, Firefox restart fixed it.

Return to “Automation, sensing and robotics”