diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-homie4.spec | 382 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 384 insertions, 0 deletions
@@ -0,0 +1 @@ +/Homie4-0.4.0.tar.gz diff --git a/python-homie4.spec b/python-homie4.spec new file mode 100644 index 0000000..fa2f4b3 --- /dev/null +++ b/python-homie4.spec @@ -0,0 +1,382 @@ +%global _empty_manifest_terminate_build 0 +Name: python-Homie4 +Version: 0.4.0 +Release: 1 +Summary: Homie 4.0.0 Implementation +License: MIT License +URL: https://github.com/mjcumming/homie4 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d4/eb/382681ed89dc1832b2efaf34c46a40ba0fc04f3c26caa3ac9f1f88c2c657/Homie4-0.4.0.tar.gz +BuildArch: noarch + +Requires: python3-paho-mqtt + +%description +<p align="center"> + <a href="https://github.com/mjcumming/homie4"> + <img width=100% src="assets/Works%20with%20Homie.png"> + </a> +</p> + + +# Homie + +Python 3 implementation of Homie 4.0.0 + +Class based system to easily add Homie 4.0.0 support to devices. + +Supports the Meta, Statistics, and Firmware extensions + +Includes ready to use common devices such as switch, dimmer, contact, thermostat, boolean, etc. + +**Install** + +~~~~ +pip install Homie4 +~~~~ + +Note: On Raspbian use + +~~~~ +pip3 install Homie4 +~~~~ + +**Temperature Probe Example** + +Creates a temperature device using a AM2302 sensor. + +~~~~python +import Adafruit_DHT +import time + +from homie.device_temperature import Device_Temperature + +mqtt_settings = { + 'MQTT_BROKER' : 'OpenHAB', + 'MQTT_PORT' : 1883, +} + +try: + + temperature_device = Device_Temperature(device_id="temperature-sensor-1",name = "Temperature_Sensor 1",mqtt_settings=mqtt_settings) + sensor = Adafruit_DHT.AM2302 + pin = 4 + + + while True: + humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) + print(temperature) + temperature_device.update_temperature(temperature) + time.sleep(5) + +except (KeyboardInterrupt, SystemExit): + print("Quitting.") +~~~~ + + +**Dimmer Example** + +To create a dimmer device requires that a set_dimmer method be provided. When creating a device, all that is required is to provide the MQTT settings. All other requirements of the Homie specification are automatically handled. + +```python +import time + +from homie.device_dimmer import Device_Dimmer + +mqtt_settings = { + 'MQTT_BROKER' : 'QueenMQTT', + 'MQTT_PORT' : 1883, +} + +class My_Dimmer(Device_Dimmer): + + def set_dimmer(self,percent): + print('Received MQTT message to set the dimmer to {}. Must replace this method'.format(percent)) + super().set_dimmer(percent) + +try: + + dimmer = My_Dimmer(name = 'Test Dimmer',mqtt_settings=mqtt_settings) + + while True: + dimmer.update_dimmer(0) + time.sleep(5) + dimmer.update_dimmer(50) + time.sleep(5) + dimmer.update_dimmer(100) + time.sleep(5) + +except (KeyboardInterrupt, SystemExit): + print("Quitting.") + + +```` + + + +If creating multiple homie devices, you can specify Homie to only use one MQTT connection. This can be an issue on devices with limited resources. For MQTT_SETTINGS add MQTT_SHARE_CLIENT: True. + + +%package -n python3-Homie4 +Summary: Homie 4.0.0 Implementation +Provides: python-Homie4 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-Homie4 +<p align="center"> + <a href="https://github.com/mjcumming/homie4"> + <img width=100% src="assets/Works%20with%20Homie.png"> + </a> +</p> + + +# Homie + +Python 3 implementation of Homie 4.0.0 + +Class based system to easily add Homie 4.0.0 support to devices. + +Supports the Meta, Statistics, and Firmware extensions + +Includes ready to use common devices such as switch, dimmer, contact, thermostat, boolean, etc. + +**Install** + +~~~~ +pip install Homie4 +~~~~ + +Note: On Raspbian use + +~~~~ +pip3 install Homie4 +~~~~ + +**Temperature Probe Example** + +Creates a temperature device using a AM2302 sensor. + +~~~~python +import Adafruit_DHT +import time + +from homie.device_temperature import Device_Temperature + +mqtt_settings = { + 'MQTT_BROKER' : 'OpenHAB', + 'MQTT_PORT' : 1883, +} + +try: + + temperature_device = Device_Temperature(device_id="temperature-sensor-1",name = "Temperature_Sensor 1",mqtt_settings=mqtt_settings) + sensor = Adafruit_DHT.AM2302 + pin = 4 + + + while True: + humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) + print(temperature) + temperature_device.update_temperature(temperature) + time.sleep(5) + +except (KeyboardInterrupt, SystemExit): + print("Quitting.") +~~~~ + + +**Dimmer Example** + +To create a dimmer device requires that a set_dimmer method be provided. When creating a device, all that is required is to provide the MQTT settings. All other requirements of the Homie specification are automatically handled. + +```python +import time + +from homie.device_dimmer import Device_Dimmer + +mqtt_settings = { + 'MQTT_BROKER' : 'QueenMQTT', + 'MQTT_PORT' : 1883, +} + +class My_Dimmer(Device_Dimmer): + + def set_dimmer(self,percent): + print('Received MQTT message to set the dimmer to {}. Must replace this method'.format(percent)) + super().set_dimmer(percent) + +try: + + dimmer = My_Dimmer(name = 'Test Dimmer',mqtt_settings=mqtt_settings) + + while True: + dimmer.update_dimmer(0) + time.sleep(5) + dimmer.update_dimmer(50) + time.sleep(5) + dimmer.update_dimmer(100) + time.sleep(5) + +except (KeyboardInterrupt, SystemExit): + print("Quitting.") + + +```` + + + +If creating multiple homie devices, you can specify Homie to only use one MQTT connection. This can be an issue on devices with limited resources. For MQTT_SETTINGS add MQTT_SHARE_CLIENT: True. + + +%package help +Summary: Development documents and examples for Homie4 +Provides: python3-Homie4-doc +%description help +<p align="center"> + <a href="https://github.com/mjcumming/homie4"> + <img width=100% src="assets/Works%20with%20Homie.png"> + </a> +</p> + + +# Homie + +Python 3 implementation of Homie 4.0.0 + +Class based system to easily add Homie 4.0.0 support to devices. + +Supports the Meta, Statistics, and Firmware extensions + +Includes ready to use common devices such as switch, dimmer, contact, thermostat, boolean, etc. + +**Install** + +~~~~ +pip install Homie4 +~~~~ + +Note: On Raspbian use + +~~~~ +pip3 install Homie4 +~~~~ + +**Temperature Probe Example** + +Creates a temperature device using a AM2302 sensor. + +~~~~python +import Adafruit_DHT +import time + +from homie.device_temperature import Device_Temperature + +mqtt_settings = { + 'MQTT_BROKER' : 'OpenHAB', + 'MQTT_PORT' : 1883, +} + +try: + + temperature_device = Device_Temperature(device_id="temperature-sensor-1",name = "Temperature_Sensor 1",mqtt_settings=mqtt_settings) + sensor = Adafruit_DHT.AM2302 + pin = 4 + + + while True: + humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) + print(temperature) + temperature_device.update_temperature(temperature) + time.sleep(5) + +except (KeyboardInterrupt, SystemExit): + print("Quitting.") +~~~~ + + +**Dimmer Example** + +To create a dimmer device requires that a set_dimmer method be provided. When creating a device, all that is required is to provide the MQTT settings. All other requirements of the Homie specification are automatically handled. + +```python +import time + +from homie.device_dimmer import Device_Dimmer + +mqtt_settings = { + 'MQTT_BROKER' : 'QueenMQTT', + 'MQTT_PORT' : 1883, +} + +class My_Dimmer(Device_Dimmer): + + def set_dimmer(self,percent): + print('Received MQTT message to set the dimmer to {}. Must replace this method'.format(percent)) + super().set_dimmer(percent) + +try: + + dimmer = My_Dimmer(name = 'Test Dimmer',mqtt_settings=mqtt_settings) + + while True: + dimmer.update_dimmer(0) + time.sleep(5) + dimmer.update_dimmer(50) + time.sleep(5) + dimmer.update_dimmer(100) + time.sleep(5) + +except (KeyboardInterrupt, SystemExit): + print("Quitting.") + + +```` + + + +If creating multiple homie devices, you can specify Homie to only use one MQTT connection. This can be an issue on devices with limited resources. For MQTT_SETTINGS add MQTT_SHARE_CLIENT: True. + + +%prep +%autosetup -n Homie4-0.4.0 + +%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-Homie4 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.0-1 +- Package Spec generated @@ -0,0 +1 @@ +3ef8938f5b741a083422bc25d06cb580 Homie4-0.4.0.tar.gz |