%global _empty_manifest_terminate_build 0 Name: python-PyBLNET Version: 0.9.1 Release: 1 Summary: Automate wireless communication to UVR1611 via BL-NET License: MIT URL: https://github.com/nielstron/pyblnet/ Source0: https://mirrors.aliyun.com/pypi/web/packages/e0/7f/819e14753b8894331a1abb5bd40a80fd0c8d1e0ee4d4f9032f1248edab61/PyBLNET-0.9.1.tar.gz BuildArch: noarch Requires: python3-htmldom Requires: python3-requests %description # PyBLNET - a very basic python BL-NET bridge [![Build Status](https://travis-ci.com/nielstron/pyblnet.svg?branch=master)](https://travis-ci.com/nielstron/pyblnet) [![Coverage Status](https://coveralls.io/repos/github/nielstron/pyblnet/badge.svg?branch=master)](https://coveralls.io/github/nielstron/pyblnet?branch=master) A package that connects to the BL-NET that is connected itself to a UVR1611 device by Technische Alternative. It is able to read digital and analog values as well as to set switches to ON/OFF/AUTO. Documentation on the modules and their methods can be found with the methods and modules themselves. Two interfaces to BLNet exist and both are supported: - Webinterface - Class BLnetWeb - BLNet-Direct protocol [1] - Class BLNETDirect However, as of now, there is no testing on the BLNet-Direct protocol *of any kind*, so enabling it is discouraged until the interface is fixed. Parsing the data via the web interface is the preferred way of accessing the BLNet for now. The class BLNET is a wrapper around the two classes. When initializing the class, the two interfaces can be activated/deactivated. BLNetDirect provides 'analog', 'digital', 'speed', 'energy', 'power', whereas BLnetWeb supports 'analog' and 'digital' only. If both are active, BLNetDirect has priority. Setting switches and reading their manual/auto state is only possible via the BLNetWeb interface. ### Usage ```python from pyblnet import test_blnet, BLNET, BLNETWeb, BLNETDirect ip = '192.168.178.10' # Check if there is a blnet at given address test_blnet(ip) # -> True/False # Convenient high level interface blnet = BLNET(ip, password='pass', timeout=5) # Control a switch by its ID blnet.turn_on(10) blnet.turn_auto(10) blnet.turn_off(10) # Fetch data (contains all available data using enabled interfaces) print(blnet.fetch()) # The low level modules are also available # note that the direct use of these modules is discouraged though # Fetch the latest data via web interface # Note that manual log in and log out are required # when not using the with statement with BLNETWeb(ip, password='pass', timeout=5) as blnet_session: print(blnet_session.read_analog_values()) print(blnet_session.read_digital_values()) # For publishing values blnet_session.set_digital_value('10', 'AUS') # Note that without explicit log out, # the BLNET will block any further web access for the next 150s # this is handled automatically when using the with statement # Fetch data via the Protocol developed by TA blnet = BLNETDirect(ip) # Fetching the latest data print(blnet.get_latest()) # Still inofficial because unexplicably failing often print(blnet._get_data(1)) ``` [1] https://www.haus-terra.at/heizung/download/Schnittstelle/Schnittstelle_PC_Bootloader.pdf %package -n python3-PyBLNET Summary: Automate wireless communication to UVR1611 via BL-NET Provides: python-PyBLNET BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-PyBLNET # PyBLNET - a very basic python BL-NET bridge [![Build Status](https://travis-ci.com/nielstron/pyblnet.svg?branch=master)](https://travis-ci.com/nielstron/pyblnet) [![Coverage Status](https://coveralls.io/repos/github/nielstron/pyblnet/badge.svg?branch=master)](https://coveralls.io/github/nielstron/pyblnet?branch=master) A package that connects to the BL-NET that is connected itself to a UVR1611 device by Technische Alternative. It is able to read digital and analog values as well as to set switches to ON/OFF/AUTO. Documentation on the modules and their methods can be found with the methods and modules themselves. Two interfaces to BLNet exist and both are supported: - Webinterface - Class BLnetWeb - BLNet-Direct protocol [1] - Class BLNETDirect However, as of now, there is no testing on the BLNet-Direct protocol *of any kind*, so enabling it is discouraged until the interface is fixed. Parsing the data via the web interface is the preferred way of accessing the BLNet for now. The class BLNET is a wrapper around the two classes. When initializing the class, the two interfaces can be activated/deactivated. BLNetDirect provides 'analog', 'digital', 'speed', 'energy', 'power', whereas BLnetWeb supports 'analog' and 'digital' only. If both are active, BLNetDirect has priority. Setting switches and reading their manual/auto state is only possible via the BLNetWeb interface. ### Usage ```python from pyblnet import test_blnet, BLNET, BLNETWeb, BLNETDirect ip = '192.168.178.10' # Check if there is a blnet at given address test_blnet(ip) # -> True/False # Convenient high level interface blnet = BLNET(ip, password='pass', timeout=5) # Control a switch by its ID blnet.turn_on(10) blnet.turn_auto(10) blnet.turn_off(10) # Fetch data (contains all available data using enabled interfaces) print(blnet.fetch()) # The low level modules are also available # note that the direct use of these modules is discouraged though # Fetch the latest data via web interface # Note that manual log in and log out are required # when not using the with statement with BLNETWeb(ip, password='pass', timeout=5) as blnet_session: print(blnet_session.read_analog_values()) print(blnet_session.read_digital_values()) # For publishing values blnet_session.set_digital_value('10', 'AUS') # Note that without explicit log out, # the BLNET will block any further web access for the next 150s # this is handled automatically when using the with statement # Fetch data via the Protocol developed by TA blnet = BLNETDirect(ip) # Fetching the latest data print(blnet.get_latest()) # Still inofficial because unexplicably failing often print(blnet._get_data(1)) ``` [1] https://www.haus-terra.at/heizung/download/Schnittstelle/Schnittstelle_PC_Bootloader.pdf %package help Summary: Development documents and examples for PyBLNET Provides: python3-PyBLNET-doc %description help # PyBLNET - a very basic python BL-NET bridge [![Build Status](https://travis-ci.com/nielstron/pyblnet.svg?branch=master)](https://travis-ci.com/nielstron/pyblnet) [![Coverage Status](https://coveralls.io/repos/github/nielstron/pyblnet/badge.svg?branch=master)](https://coveralls.io/github/nielstron/pyblnet?branch=master) A package that connects to the BL-NET that is connected itself to a UVR1611 device by Technische Alternative. It is able to read digital and analog values as well as to set switches to ON/OFF/AUTO. Documentation on the modules and their methods can be found with the methods and modules themselves. Two interfaces to BLNet exist and both are supported: - Webinterface - Class BLnetWeb - BLNet-Direct protocol [1] - Class BLNETDirect However, as of now, there is no testing on the BLNet-Direct protocol *of any kind*, so enabling it is discouraged until the interface is fixed. Parsing the data via the web interface is the preferred way of accessing the BLNet for now. The class BLNET is a wrapper around the two classes. When initializing the class, the two interfaces can be activated/deactivated. BLNetDirect provides 'analog', 'digital', 'speed', 'energy', 'power', whereas BLnetWeb supports 'analog' and 'digital' only. If both are active, BLNetDirect has priority. Setting switches and reading their manual/auto state is only possible via the BLNetWeb interface. ### Usage ```python from pyblnet import test_blnet, BLNET, BLNETWeb, BLNETDirect ip = '192.168.178.10' # Check if there is a blnet at given address test_blnet(ip) # -> True/False # Convenient high level interface blnet = BLNET(ip, password='pass', timeout=5) # Control a switch by its ID blnet.turn_on(10) blnet.turn_auto(10) blnet.turn_off(10) # Fetch data (contains all available data using enabled interfaces) print(blnet.fetch()) # The low level modules are also available # note that the direct use of these modules is discouraged though # Fetch the latest data via web interface # Note that manual log in and log out are required # when not using the with statement with BLNETWeb(ip, password='pass', timeout=5) as blnet_session: print(blnet_session.read_analog_values()) print(blnet_session.read_digital_values()) # For publishing values blnet_session.set_digital_value('10', 'AUS') # Note that without explicit log out, # the BLNET will block any further web access for the next 150s # this is handled automatically when using the with statement # Fetch data via the Protocol developed by TA blnet = BLNETDirect(ip) # Fetching the latest data print(blnet.get_latest()) # Still inofficial because unexplicably failing often print(blnet._get_data(1)) ``` [1] https://www.haus-terra.at/heizung/download/Schnittstelle/Schnittstelle_PC_Bootloader.pdf %prep %autosetup -n PyBLNET-0.9.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-PyBLNET -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 0.9.1-1 - Package Spec generated