diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pyblnet.spec | 290 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 292 insertions, 0 deletions
@@ -0,0 +1 @@ +/PyBLNET-0.9.1.tar.gz diff --git a/python-pyblnet.spec b/python-pyblnet.spec new file mode 100644 index 0000000..39ab7df --- /dev/null +++ b/python-pyblnet.spec @@ -0,0 +1,290 @@ +%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.nju.edu.cn/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 +[](https://travis-ci.com/nielstron/pyblnet) +[](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 +[](https://travis-ci.com/nielstron/pyblnet) +[](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 +[](https://travis-ci.com/nielstron/pyblnet) +[](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 +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.9.1-1 +- Package Spec generated @@ -0,0 +1 @@ +3daae3b50a9c9027e13ba1cab826b71a PyBLNET-0.9.1.tar.gz |