summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-18 03:40:42 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-18 03:40:42 +0000
commit3b8ebe418192434c72ded955327e669cd6eec1ff (patch)
tree33f79452c29682b18bdb8888382c067ab1b9bbb5
parentfc2720d33d95efd7e1375d45a8db576d9ad0c011 (diff)
automatic import of python-pychonet
-rw-r--r--.gitignore1
-rw-r--r--python-pychonet.spec576
-rw-r--r--sources1
3 files changed, 578 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..4b839dd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pychonet-2.3.13.tar.gz
diff --git a/python-pychonet.spec b/python-pychonet.spec
new file mode 100644
index 0000000..86d01b3
--- /dev/null
+++ b/python-pychonet.spec
@@ -0,0 +1,576 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pychonet
+Version: 2.3.13
+Release: 1
+Summary: A library for interfacing via the ECHONETlite protocol.
+License: LICENSE.txt
+URL: http://pypi.python.org/pypi/pychonet/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1b/15/190d3b17c6bd8e2c4f68478b4dce61afbb74bb248ed4b5c6196461e9a6de/pychonet-2.3.13.tar.gz
+BuildArch: noarch
+
+
+%description
+# Pychonet
+
+[![GitHub Release][releases-shield]][releases]
+[![License][license-shield]](LICENSE)
+![Project Maintenance][maintenance-shield]
+
+
+A library for interfacing with the ECHONETlite protocol as commonly used in Japan.
+Useful for interfacing to many interesting devices such as HVACs,
+electric car chargers, rice cookers (not joking), and solar systems
+that support ECHONETLite.
+
+The current functionality is limited to a few ECHONETLite classes, notably HVAC
+but it can easily be extended to any ECHONETlite classes required.
+
+The basic boilerplate EchoNetInstance class can be used to provide
+raw connectivity to any compatible device but it is up to the developer
+to create useful classes. Any ECHONETlite class additions to the library are welcome.
+
+Version 2.0.0 of this libray was rebuilt to use asyncio for better compatability with home assistant.
+
+
+It is designed to work with Python 3.9.5+
+
+## Instructions
+
+Simplest way to install is to use pip:
+
+```
+pip install pychonet
+```
+
+## Basic usage
+
+### Create the ECHONETLite listener service on port 3610:
+```python
+from pychonet.lib.udpserver import UDPServer
+from pychonet import Factory
+from pychonet import ECHONETAPIClient as api
+from pychonet import HomeAirConditioner
+from pychonet import EchonetInstance
+udp = UDPServer()
+loop = asyncio.get_event_loop()
+udp.run("0.0.0.0", 3610, loop=loop)
+server = api(server=udp)
+```
+
+### Discover a list of ECHONETlite instances on a particular server:
+```python
+await server.discover('192.168.1.6')
+```
+
+
+### Populate the propertymap for a particular ECHONETLite instance:
+```python
+await server.getAllPropertyMaps('192.168.1.6', 1, 48, 1)
+```
+### Create a ECHONETLite device using the Factory:
+
+Paramaters include the port listener, and EOJGC, EOJCC, and EOJCI codes.
+```python
+aircon = Factory("192.168.1.6",server, 1, 48, 1)
+```
+
+### OR, create a specific ECHONETLite instance using built in objects:
+```python
+aircon = HomeAirConditioner("192.168.1.6", server)
+```
+
+### Turn HVAC on or off:
+```python
+await aircon.on()
+await aircon.off()
+await aircon.getOperationalStatus()
+{'status': 'off'}
+```
+
+### Set or Get a HVACs target temperature:
+```python
+await aircon.setOperationalTemperature(25)
+await aircon.getOperationalTemperature()
+{'set_temperature': 25}
+```
+
+### Set or Get a HVACs mode of operation:
+```python
+supported modes = 'auto', 'cool', 'heat', 'dry', 'fan_only', 'other'
+
+await aircon.setMode('cool')
+await aircon.getMode()
+{'mode': 'cool'}
+```
+### Set or Get a HVACs fan speed:
+
+Note - your HVAC may not support all fan speeds.
+```python
+supported modes = 'auto', 'minimum', 'low', 'medium-Low', 'medium', 'medium-high', 'high', 'very high', 'max'
+
+await aircon.setFanSpeed('medium-high')
+await aircon.getFanSpeed()
+{'fan_speed': 'medium-high'}
+```
+### Get HVAC attributes at once (Note, the property map must be populated):
+```python
+await aircon.update()
+{'status': 'On', 'set_temperature': 25, 'fan_speed': 'medium-high', 'room_temperature': 25, 'mode': 'cooling'}
+```
+
+### OR grab a specific attribute at once (Note, the property map must be populated):
+```python
+await aircon.update(0x80)
+```
+
+## Using this library with Home Assistant
+
+NOTE: For Home Assistant users there is a dedicated repo that can be installed via HACS that can provide custom components for discovered ECHONETlite devices such as Mitsubishi airconditioners:
+(https://github.com/scottyphillips/echonetlite_homeassistant)
+
+'example_async.py' gives you a boilerplate asyncio program that will discover your ECHONETLite instance and return information about supported services.
+
+## Hall of Fame
+Big Thanks to Naoki Sawada for many excellent updates to enable push notifications via multicast.
+どうもありがとうございます !
+
+Thanks to Jason Nader for all the quality of life updates to the codebase and doco.
+
+Thanks to khcnz (Karl Chaffey) and gvs for helping refector the old code
+and contributing to testing.
+
+Thanks to Dick Swart, Masaki Tagawa, Paul, khcnz, Kolodnerd, Leonunix, and Alfie Gerner
+for each contributing code updates to this library.
+
+Thanks to Jeffro Carr who inspired me to write my own native Python ECHONET
+library for Home Assistant.
+
+Thanks to Futomi Hatano for open sourcing a well-documented ECHONET Lite
+library in Node JS.
+(https://github.com/futomi/node-echonet-lite)
+
+## References for ECHONET specifications
+
+- [ECHONET Lite Specification, Version 1.13](https://echonet.jp/spec_v113_lite_en/)
+ - [Part 2 ECHONET Lite Communications Middleware Specifications](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/ECHONET_lite_V1_13_en/ECHONET-Lite_Ver.1.13(02)_E.pdf)
+- [APPENDIX, Detailed Requirements for ECHONET Device objects, Release Q](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/Release/Release_Q/Appendix_Release_Q_E.pdf)
+
+## License
+
+This application is licensed under an MIT license, refer to LICENSE-MIT for details.
+
+Portions of 'ECHONET Lite Device Emulator' (Copyright 2020 Kanagawa Institute of Technology)
+have been used in this application. This code was licensed under the MIT licence.
+
+The UDP code is based on 'aio-udp-server' (Copyright 2021 Dmitriy Bashkirtsev)
+This code is licenced under the GPL licence.
+(https://github.com/bashkirtsevich-llc/aioudp)
+
+Слава Україні! 🇺🇦
+
+***
+[pychonet]: https://github.com/scottyphillips/pychonet
+[releases-shield]: https://img.shields.io/github/release/scottyphillips/pychonet.svg?style=for-the-badge
+[releases]: https://github.com/scottyphillips/pychonet/releases
+[license-shield]:https://img.shields.io/github/license/scottyphillips/pychonet?style=for-the-badge
+[buymecoffee]: https://www.buymeacoffee.com/RgKWqyt?style=for-the-badge
+[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge
+[maintenance-shield]: https://img.shields.io/badge/Maintainer-Scott%20Phillips-blue?style=for-the-badge
+
+
+
+
+%package -n python3-pychonet
+Summary: A library for interfacing via the ECHONETlite protocol.
+Provides: python-pychonet
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pychonet
+# Pychonet
+
+[![GitHub Release][releases-shield]][releases]
+[![License][license-shield]](LICENSE)
+![Project Maintenance][maintenance-shield]
+
+
+A library for interfacing with the ECHONETlite protocol as commonly used in Japan.
+Useful for interfacing to many interesting devices such as HVACs,
+electric car chargers, rice cookers (not joking), and solar systems
+that support ECHONETLite.
+
+The current functionality is limited to a few ECHONETLite classes, notably HVAC
+but it can easily be extended to any ECHONETlite classes required.
+
+The basic boilerplate EchoNetInstance class can be used to provide
+raw connectivity to any compatible device but it is up to the developer
+to create useful classes. Any ECHONETlite class additions to the library are welcome.
+
+Version 2.0.0 of this libray was rebuilt to use asyncio for better compatability with home assistant.
+
+
+It is designed to work with Python 3.9.5+
+
+## Instructions
+
+Simplest way to install is to use pip:
+
+```
+pip install pychonet
+```
+
+## Basic usage
+
+### Create the ECHONETLite listener service on port 3610:
+```python
+from pychonet.lib.udpserver import UDPServer
+from pychonet import Factory
+from pychonet import ECHONETAPIClient as api
+from pychonet import HomeAirConditioner
+from pychonet import EchonetInstance
+udp = UDPServer()
+loop = asyncio.get_event_loop()
+udp.run("0.0.0.0", 3610, loop=loop)
+server = api(server=udp)
+```
+
+### Discover a list of ECHONETlite instances on a particular server:
+```python
+await server.discover('192.168.1.6')
+```
+
+
+### Populate the propertymap for a particular ECHONETLite instance:
+```python
+await server.getAllPropertyMaps('192.168.1.6', 1, 48, 1)
+```
+### Create a ECHONETLite device using the Factory:
+
+Paramaters include the port listener, and EOJGC, EOJCC, and EOJCI codes.
+```python
+aircon = Factory("192.168.1.6",server, 1, 48, 1)
+```
+
+### OR, create a specific ECHONETLite instance using built in objects:
+```python
+aircon = HomeAirConditioner("192.168.1.6", server)
+```
+
+### Turn HVAC on or off:
+```python
+await aircon.on()
+await aircon.off()
+await aircon.getOperationalStatus()
+{'status': 'off'}
+```
+
+### Set or Get a HVACs target temperature:
+```python
+await aircon.setOperationalTemperature(25)
+await aircon.getOperationalTemperature()
+{'set_temperature': 25}
+```
+
+### Set or Get a HVACs mode of operation:
+```python
+supported modes = 'auto', 'cool', 'heat', 'dry', 'fan_only', 'other'
+
+await aircon.setMode('cool')
+await aircon.getMode()
+{'mode': 'cool'}
+```
+### Set or Get a HVACs fan speed:
+
+Note - your HVAC may not support all fan speeds.
+```python
+supported modes = 'auto', 'minimum', 'low', 'medium-Low', 'medium', 'medium-high', 'high', 'very high', 'max'
+
+await aircon.setFanSpeed('medium-high')
+await aircon.getFanSpeed()
+{'fan_speed': 'medium-high'}
+```
+### Get HVAC attributes at once (Note, the property map must be populated):
+```python
+await aircon.update()
+{'status': 'On', 'set_temperature': 25, 'fan_speed': 'medium-high', 'room_temperature': 25, 'mode': 'cooling'}
+```
+
+### OR grab a specific attribute at once (Note, the property map must be populated):
+```python
+await aircon.update(0x80)
+```
+
+## Using this library with Home Assistant
+
+NOTE: For Home Assistant users there is a dedicated repo that can be installed via HACS that can provide custom components for discovered ECHONETlite devices such as Mitsubishi airconditioners:
+(https://github.com/scottyphillips/echonetlite_homeassistant)
+
+'example_async.py' gives you a boilerplate asyncio program that will discover your ECHONETLite instance and return information about supported services.
+
+## Hall of Fame
+Big Thanks to Naoki Sawada for many excellent updates to enable push notifications via multicast.
+どうもありがとうございます !
+
+Thanks to Jason Nader for all the quality of life updates to the codebase and doco.
+
+Thanks to khcnz (Karl Chaffey) and gvs for helping refector the old code
+and contributing to testing.
+
+Thanks to Dick Swart, Masaki Tagawa, Paul, khcnz, Kolodnerd, Leonunix, and Alfie Gerner
+for each contributing code updates to this library.
+
+Thanks to Jeffro Carr who inspired me to write my own native Python ECHONET
+library for Home Assistant.
+
+Thanks to Futomi Hatano for open sourcing a well-documented ECHONET Lite
+library in Node JS.
+(https://github.com/futomi/node-echonet-lite)
+
+## References for ECHONET specifications
+
+- [ECHONET Lite Specification, Version 1.13](https://echonet.jp/spec_v113_lite_en/)
+ - [Part 2 ECHONET Lite Communications Middleware Specifications](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/ECHONET_lite_V1_13_en/ECHONET-Lite_Ver.1.13(02)_E.pdf)
+- [APPENDIX, Detailed Requirements for ECHONET Device objects, Release Q](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/Release/Release_Q/Appendix_Release_Q_E.pdf)
+
+## License
+
+This application is licensed under an MIT license, refer to LICENSE-MIT for details.
+
+Portions of 'ECHONET Lite Device Emulator' (Copyright 2020 Kanagawa Institute of Technology)
+have been used in this application. This code was licensed under the MIT licence.
+
+The UDP code is based on 'aio-udp-server' (Copyright 2021 Dmitriy Bashkirtsev)
+This code is licenced under the GPL licence.
+(https://github.com/bashkirtsevich-llc/aioudp)
+
+Слава Україні! 🇺🇦
+
+***
+[pychonet]: https://github.com/scottyphillips/pychonet
+[releases-shield]: https://img.shields.io/github/release/scottyphillips/pychonet.svg?style=for-the-badge
+[releases]: https://github.com/scottyphillips/pychonet/releases
+[license-shield]:https://img.shields.io/github/license/scottyphillips/pychonet?style=for-the-badge
+[buymecoffee]: https://www.buymeacoffee.com/RgKWqyt?style=for-the-badge
+[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge
+[maintenance-shield]: https://img.shields.io/badge/Maintainer-Scott%20Phillips-blue?style=for-the-badge
+
+
+
+
+%package help
+Summary: Development documents and examples for pychonet
+Provides: python3-pychonet-doc
+%description help
+# Pychonet
+
+[![GitHub Release][releases-shield]][releases]
+[![License][license-shield]](LICENSE)
+![Project Maintenance][maintenance-shield]
+
+
+A library for interfacing with the ECHONETlite protocol as commonly used in Japan.
+Useful for interfacing to many interesting devices such as HVACs,
+electric car chargers, rice cookers (not joking), and solar systems
+that support ECHONETLite.
+
+The current functionality is limited to a few ECHONETLite classes, notably HVAC
+but it can easily be extended to any ECHONETlite classes required.
+
+The basic boilerplate EchoNetInstance class can be used to provide
+raw connectivity to any compatible device but it is up to the developer
+to create useful classes. Any ECHONETlite class additions to the library are welcome.
+
+Version 2.0.0 of this libray was rebuilt to use asyncio for better compatability with home assistant.
+
+
+It is designed to work with Python 3.9.5+
+
+## Instructions
+
+Simplest way to install is to use pip:
+
+```
+pip install pychonet
+```
+
+## Basic usage
+
+### Create the ECHONETLite listener service on port 3610:
+```python
+from pychonet.lib.udpserver import UDPServer
+from pychonet import Factory
+from pychonet import ECHONETAPIClient as api
+from pychonet import HomeAirConditioner
+from pychonet import EchonetInstance
+udp = UDPServer()
+loop = asyncio.get_event_loop()
+udp.run("0.0.0.0", 3610, loop=loop)
+server = api(server=udp)
+```
+
+### Discover a list of ECHONETlite instances on a particular server:
+```python
+await server.discover('192.168.1.6')
+```
+
+
+### Populate the propertymap for a particular ECHONETLite instance:
+```python
+await server.getAllPropertyMaps('192.168.1.6', 1, 48, 1)
+```
+### Create a ECHONETLite device using the Factory:
+
+Paramaters include the port listener, and EOJGC, EOJCC, and EOJCI codes.
+```python
+aircon = Factory("192.168.1.6",server, 1, 48, 1)
+```
+
+### OR, create a specific ECHONETLite instance using built in objects:
+```python
+aircon = HomeAirConditioner("192.168.1.6", server)
+```
+
+### Turn HVAC on or off:
+```python
+await aircon.on()
+await aircon.off()
+await aircon.getOperationalStatus()
+{'status': 'off'}
+```
+
+### Set or Get a HVACs target temperature:
+```python
+await aircon.setOperationalTemperature(25)
+await aircon.getOperationalTemperature()
+{'set_temperature': 25}
+```
+
+### Set or Get a HVACs mode of operation:
+```python
+supported modes = 'auto', 'cool', 'heat', 'dry', 'fan_only', 'other'
+
+await aircon.setMode('cool')
+await aircon.getMode()
+{'mode': 'cool'}
+```
+### Set or Get a HVACs fan speed:
+
+Note - your HVAC may not support all fan speeds.
+```python
+supported modes = 'auto', 'minimum', 'low', 'medium-Low', 'medium', 'medium-high', 'high', 'very high', 'max'
+
+await aircon.setFanSpeed('medium-high')
+await aircon.getFanSpeed()
+{'fan_speed': 'medium-high'}
+```
+### Get HVAC attributes at once (Note, the property map must be populated):
+```python
+await aircon.update()
+{'status': 'On', 'set_temperature': 25, 'fan_speed': 'medium-high', 'room_temperature': 25, 'mode': 'cooling'}
+```
+
+### OR grab a specific attribute at once (Note, the property map must be populated):
+```python
+await aircon.update(0x80)
+```
+
+## Using this library with Home Assistant
+
+NOTE: For Home Assistant users there is a dedicated repo that can be installed via HACS that can provide custom components for discovered ECHONETlite devices such as Mitsubishi airconditioners:
+(https://github.com/scottyphillips/echonetlite_homeassistant)
+
+'example_async.py' gives you a boilerplate asyncio program that will discover your ECHONETLite instance and return information about supported services.
+
+## Hall of Fame
+Big Thanks to Naoki Sawada for many excellent updates to enable push notifications via multicast.
+どうもありがとうございます !
+
+Thanks to Jason Nader for all the quality of life updates to the codebase and doco.
+
+Thanks to khcnz (Karl Chaffey) and gvs for helping refector the old code
+and contributing to testing.
+
+Thanks to Dick Swart, Masaki Tagawa, Paul, khcnz, Kolodnerd, Leonunix, and Alfie Gerner
+for each contributing code updates to this library.
+
+Thanks to Jeffro Carr who inspired me to write my own native Python ECHONET
+library for Home Assistant.
+
+Thanks to Futomi Hatano for open sourcing a well-documented ECHONET Lite
+library in Node JS.
+(https://github.com/futomi/node-echonet-lite)
+
+## References for ECHONET specifications
+
+- [ECHONET Lite Specification, Version 1.13](https://echonet.jp/spec_v113_lite_en/)
+ - [Part 2 ECHONET Lite Communications Middleware Specifications](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/ECHONET_lite_V1_13_en/ECHONET-Lite_Ver.1.13(02)_E.pdf)
+- [APPENDIX, Detailed Requirements for ECHONET Device objects, Release Q](https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/Release/Release_Q/Appendix_Release_Q_E.pdf)
+
+## License
+
+This application is licensed under an MIT license, refer to LICENSE-MIT for details.
+
+Portions of 'ECHONET Lite Device Emulator' (Copyright 2020 Kanagawa Institute of Technology)
+have been used in this application. This code was licensed under the MIT licence.
+
+The UDP code is based on 'aio-udp-server' (Copyright 2021 Dmitriy Bashkirtsev)
+This code is licenced under the GPL licence.
+(https://github.com/bashkirtsevich-llc/aioudp)
+
+Слава Україні! 🇺🇦
+
+***
+[pychonet]: https://github.com/scottyphillips/pychonet
+[releases-shield]: https://img.shields.io/github/release/scottyphillips/pychonet.svg?style=for-the-badge
+[releases]: https://github.com/scottyphillips/pychonet/releases
+[license-shield]:https://img.shields.io/github/license/scottyphillips/pychonet?style=for-the-badge
+[buymecoffee]: https://www.buymeacoffee.com/RgKWqyt?style=for-the-badge
+[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge
+[maintenance-shield]: https://img.shields.io/badge/Maintainer-Scott%20Phillips-blue?style=for-the-badge
+
+
+
+
+%prep
+%autosetup -n pychonet-2.3.13
+
+%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-pychonet -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 2.3.13-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..483fc72
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+b365ab9e6f430b511c60b9cb688d0721 pychonet-2.3.13.tar.gz