summaryrefslogtreecommitdiff
path: root/python-aioiotprov.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-aioiotprov.spec')
-rw-r--r--python-aioiotprov.spec444
1 files changed, 444 insertions, 0 deletions
diff --git a/python-aioiotprov.spec b/python-aioiotprov.spec
new file mode 100644
index 0000000..1f66100
--- /dev/null
+++ b/python-aioiotprov.spec
@@ -0,0 +1,444 @@
+%global _empty_manifest_terminate_build 0
+Name: python-aioiotprov
+Version: 0.0.8
+Release: 1
+Summary: Library/utility to help provision various IoT devices.
+License: MIT
+URL: http://github.com/frawau/aioiotprov
+Source0: https://files.pythonhosted.org/packages/c5/1e/8ddbd869bb82b652400f751bb60b2e025759c3a377d47243dd0bcd6df07a/aioiotprov-0.0.8.tar.gz
+BuildArch: noarch
+
+Requires: python3-aiohttp
+
+%description
+# aioiotprov
+
+A library/utility to provision IoT devices
+
+[![PyPI version fury.io](https://badge.fury.io/py/aioiotprov.svg)](https://pypi.python.org/pypi/aioiotprov)
+[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-licen)
+[![GITHUB-BADGE](https://github.com/frawau/aioiotprov/workflows/black/badge.svg)](https://github.com/psf/black)
+
+This is early day. Currently it can provision TP-Link smartplugs, Broadlink IR blasters, Sonoff switches running
+the Tasmota firmware, Shelly devices and E-Trix power monitors, Xiaomi Yeelights (Possibly other Xiaomi too)
+
+This uses nmcli or wpa_cli to control and configure WIFI access. This means this will work only with
+Linux, and then again not all. It is working on a RaspberryPi running Debian Stretch (No NetworkManager) and works on a laptop ruunning Ubuntu 18.10 to 20.04
+
+When using nmcli, it is possible to use a connected WiFi adapter, this has not yet been tested with wpa_cli
+
+
+# Installation
+
+We are on PyPi so
+
+ pip3 install aioiotprov
+
+
+# Running
+
+You can just run it by doing
+
+ python3 -m aioiotprov "My SSID" "My Secret Key"
+
+If you want to set user, password and for sonoff, MQTT, do something like
+
+ python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
+ -o "sonoff::mqtt==on||user=mqttuser||password=mqttpass||host=somehost||port=1883||client=DVES_XXXXXX||topic=sonoff-XXXXXX||full topic=blabla/%prefix%/%topic%/"
+
+For Shellies,
+
+ python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
+ -o "shelly::mqtt==on||user==mqttuser||password==mqttpass||host==somehost||port==1883"
+
+For Tasmota,
+
+ python3 -m aioiotprov -d -u user -p passwd -o 'tasmota::mqtt==on||template=={"NAME":"Sonoff T1 3CH","GPIO":[17,255,255,255,23,22,18,19,21,56,0,0,0],"FLAG":0,"BASE":30}||host==somehost||user==mqttuser||password==mqttpasswd'
+ -- SSID KEY
+
+
+Setting option will only works with plugins that can handle those. Use '::' after name of the plugin. Use '==' to set value
+and use '||' to separate options
+
+## Plugins
+
+### broadlink
+
+This is a plugin to provision [Broadlink](http://www.ibroadlink.com/) devices, like the A1 sensor or the RM4 Mini IR blaster.
+
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### e-trix
+
+This is a plugin to provision [E-Trix](https://creativepowerthai.com/intro/) electrix metering devices.
+
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### shelly
+
+This is a plugin to provision [Shelly](https://shelly.cloud/) devices.
+
+If you set the user and the password, the device will be secured with those.
+
+The plugin supports the following options:
+
+ mqtt: on or off Use MQTT or not
+ host: mqtt host URI (with port if needed) (only if mqtt=='on'
+ user: mqtt username
+ password: mqtt password
+
+
+### tasmota
+
+This is a plugin to provision devices running the [Tasmota](https://tasmota.github.io/docs/) software.
+
+If you set the user and the password, the device will be secured with those.
+
+The plugin supports the following options:
+
+ module: The index of the module to use (e.g. 29 is for Sonoff T1 2CH)
+ template: A device template. See the Tasmota documentation for details.
+ mqtt: on or off Use MQTT or not
+ host: mqtt host (only if mqtt=='on'
+ user: mqtt username
+ password: mqtt password
+ port: mqtt port
+ client: see tasmota documentation for details
+ topic: define the device unique id for MQTT
+ full topic: : full topic e.g. mystuff/%prefix%/%topic%
+
+ For 'client', 'topic' and 'full topic' the string '{mac}' in the value will be replaced by
+ the last 6 hexadigits of the MAC address in lowercase format.
+
+### tp-link
+
+This is a plugin to provision [TP-Link](https://www.kasasmart.com/us/products/smart-plugs) smart plugs devices. It may work with other smart home devices, but this has not been tested.
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### yeelight
+
+This plugin is based on the protocol description and the code from [OpenMiHome](https://github.com/OpenMiHome/mihome-binary-protocol)
+
+This plugin provision [Xiaomi Yeelight](https://www.yeelight.com/).
+
+Upon successful provisioning, the token, used to encrypt subsequent communications, is returned.
+
+By default, the key will be saved in the file ~/.aioyeelight. It can then be used with [aioyeelight](ttps://github.com/frawau/aioyeelight).
+If you do not wish to persist keys, use the nopersist option.
+
+Note:
+ The plugin accepts the option 'owner' but this does not seem to have any effect.
+
+# How it works
+
+Mostly each plugin knows what SSID to look for. If one of the needed SSID is found, aioiotprov will connect
+to the SSID and hand over provisioning duties to the plugin.
+
+
+
+
+%package -n python3-aioiotprov
+Summary: Library/utility to help provision various IoT devices.
+Provides: python-aioiotprov
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+%description -n python3-aioiotprov
+# aioiotprov
+
+A library/utility to provision IoT devices
+
+[![PyPI version fury.io](https://badge.fury.io/py/aioiotprov.svg)](https://pypi.python.org/pypi/aioiotprov)
+[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-licen)
+[![GITHUB-BADGE](https://github.com/frawau/aioiotprov/workflows/black/badge.svg)](https://github.com/psf/black)
+
+This is early day. Currently it can provision TP-Link smartplugs, Broadlink IR blasters, Sonoff switches running
+the Tasmota firmware, Shelly devices and E-Trix power monitors, Xiaomi Yeelights (Possibly other Xiaomi too)
+
+This uses nmcli or wpa_cli to control and configure WIFI access. This means this will work only with
+Linux, and then again not all. It is working on a RaspberryPi running Debian Stretch (No NetworkManager) and works on a laptop ruunning Ubuntu 18.10 to 20.04
+
+When using nmcli, it is possible to use a connected WiFi adapter, this has not yet been tested with wpa_cli
+
+
+# Installation
+
+We are on PyPi so
+
+ pip3 install aioiotprov
+
+
+# Running
+
+You can just run it by doing
+
+ python3 -m aioiotprov "My SSID" "My Secret Key"
+
+If you want to set user, password and for sonoff, MQTT, do something like
+
+ python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
+ -o "sonoff::mqtt==on||user=mqttuser||password=mqttpass||host=somehost||port=1883||client=DVES_XXXXXX||topic=sonoff-XXXXXX||full topic=blabla/%prefix%/%topic%/"
+
+For Shellies,
+
+ python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
+ -o "shelly::mqtt==on||user==mqttuser||password==mqttpass||host==somehost||port==1883"
+
+For Tasmota,
+
+ python3 -m aioiotprov -d -u user -p passwd -o 'tasmota::mqtt==on||template=={"NAME":"Sonoff T1 3CH","GPIO":[17,255,255,255,23,22,18,19,21,56,0,0,0],"FLAG":0,"BASE":30}||host==somehost||user==mqttuser||password==mqttpasswd'
+ -- SSID KEY
+
+
+Setting option will only works with plugins that can handle those. Use '::' after name of the plugin. Use '==' to set value
+and use '||' to separate options
+
+## Plugins
+
+### broadlink
+
+This is a plugin to provision [Broadlink](http://www.ibroadlink.com/) devices, like the A1 sensor or the RM4 Mini IR blaster.
+
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### e-trix
+
+This is a plugin to provision [E-Trix](https://creativepowerthai.com/intro/) electrix metering devices.
+
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### shelly
+
+This is a plugin to provision [Shelly](https://shelly.cloud/) devices.
+
+If you set the user and the password, the device will be secured with those.
+
+The plugin supports the following options:
+
+ mqtt: on or off Use MQTT or not
+ host: mqtt host URI (with port if needed) (only if mqtt=='on'
+ user: mqtt username
+ password: mqtt password
+
+
+### tasmota
+
+This is a plugin to provision devices running the [Tasmota](https://tasmota.github.io/docs/) software.
+
+If you set the user and the password, the device will be secured with those.
+
+The plugin supports the following options:
+
+ module: The index of the module to use (e.g. 29 is for Sonoff T1 2CH)
+ template: A device template. See the Tasmota documentation for details.
+ mqtt: on or off Use MQTT or not
+ host: mqtt host (only if mqtt=='on'
+ user: mqtt username
+ password: mqtt password
+ port: mqtt port
+ client: see tasmota documentation for details
+ topic: define the device unique id for MQTT
+ full topic: : full topic e.g. mystuff/%prefix%/%topic%
+
+ For 'client', 'topic' and 'full topic' the string '{mac}' in the value will be replaced by
+ the last 6 hexadigits of the MAC address in lowercase format.
+
+### tp-link
+
+This is a plugin to provision [TP-Link](https://www.kasasmart.com/us/products/smart-plugs) smart plugs devices. It may work with other smart home devices, but this has not been tested.
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### yeelight
+
+This plugin is based on the protocol description and the code from [OpenMiHome](https://github.com/OpenMiHome/mihome-binary-protocol)
+
+This plugin provision [Xiaomi Yeelight](https://www.yeelight.com/).
+
+Upon successful provisioning, the token, used to encrypt subsequent communications, is returned.
+
+By default, the key will be saved in the file ~/.aioyeelight. It can then be used with [aioyeelight](ttps://github.com/frawau/aioyeelight).
+If you do not wish to persist keys, use the nopersist option.
+
+Note:
+ The plugin accepts the option 'owner' but this does not seem to have any effect.
+
+# How it works
+
+Mostly each plugin knows what SSID to look for. If one of the needed SSID is found, aioiotprov will connect
+to the SSID and hand over provisioning duties to the plugin.
+
+
+
+
+%package help
+Summary: Development documents and examples for aioiotprov
+Provides: python3-aioiotprov-doc
+%description help
+# aioiotprov
+
+A library/utility to provision IoT devices
+
+[![PyPI version fury.io](https://badge.fury.io/py/aioiotprov.svg)](https://pypi.python.org/pypi/aioiotprov)
+[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-licen)
+[![GITHUB-BADGE](https://github.com/frawau/aioiotprov/workflows/black/badge.svg)](https://github.com/psf/black)
+
+This is early day. Currently it can provision TP-Link smartplugs, Broadlink IR blasters, Sonoff switches running
+the Tasmota firmware, Shelly devices and E-Trix power monitors, Xiaomi Yeelights (Possibly other Xiaomi too)
+
+This uses nmcli or wpa_cli to control and configure WIFI access. This means this will work only with
+Linux, and then again not all. It is working on a RaspberryPi running Debian Stretch (No NetworkManager) and works on a laptop ruunning Ubuntu 18.10 to 20.04
+
+When using nmcli, it is possible to use a connected WiFi adapter, this has not yet been tested with wpa_cli
+
+
+# Installation
+
+We are on PyPi so
+
+ pip3 install aioiotprov
+
+
+# Running
+
+You can just run it by doing
+
+ python3 -m aioiotprov "My SSID" "My Secret Key"
+
+If you want to set user, password and for sonoff, MQTT, do something like
+
+ python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
+ -o "sonoff::mqtt==on||user=mqttuser||password=mqttpass||host=somehost||port=1883||client=DVES_XXXXXX||topic=sonoff-XXXXXX||full topic=blabla/%prefix%/%topic%/"
+
+For Shellies,
+
+ python3 -m aioiotprov -u user -p password "My SSID" "My Secret Key" \
+ -o "shelly::mqtt==on||user==mqttuser||password==mqttpass||host==somehost||port==1883"
+
+For Tasmota,
+
+ python3 -m aioiotprov -d -u user -p passwd -o 'tasmota::mqtt==on||template=={"NAME":"Sonoff T1 3CH","GPIO":[17,255,255,255,23,22,18,19,21,56,0,0,0],"FLAG":0,"BASE":30}||host==somehost||user==mqttuser||password==mqttpasswd'
+ -- SSID KEY
+
+
+Setting option will only works with plugins that can handle those. Use '::' after name of the plugin. Use '==' to set value
+and use '||' to separate options
+
+## Plugins
+
+### broadlink
+
+This is a plugin to provision [Broadlink](http://www.ibroadlink.com/) devices, like the A1 sensor or the RM4 Mini IR blaster.
+
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### e-trix
+
+This is a plugin to provision [E-Trix](https://creativepowerthai.com/intro/) electrix metering devices.
+
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### shelly
+
+This is a plugin to provision [Shelly](https://shelly.cloud/) devices.
+
+If you set the user and the password, the device will be secured with those.
+
+The plugin supports the following options:
+
+ mqtt: on or off Use MQTT or not
+ host: mqtt host URI (with port if needed) (only if mqtt=='on'
+ user: mqtt username
+ password: mqtt password
+
+
+### tasmota
+
+This is a plugin to provision devices running the [Tasmota](https://tasmota.github.io/docs/) software.
+
+If you set the user and the password, the device will be secured with those.
+
+The plugin supports the following options:
+
+ module: The index of the module to use (e.g. 29 is for Sonoff T1 2CH)
+ template: A device template. See the Tasmota documentation for details.
+ mqtt: on or off Use MQTT or not
+ host: mqtt host (only if mqtt=='on'
+ user: mqtt username
+ password: mqtt password
+ port: mqtt port
+ client: see tasmota documentation for details
+ topic: define the device unique id for MQTT
+ full topic: : full topic e.g. mystuff/%prefix%/%topic%
+
+ For 'client', 'topic' and 'full topic' the string '{mac}' in the value will be replaced by
+ the last 6 hexadigits of the MAC address in lowercase format.
+
+### tp-link
+
+This is a plugin to provision [TP-Link](https://www.kasasmart.com/us/products/smart-plugs) smart plugs devices. It may work with other smart home devices, but this has not been tested.
+The device cannot be secured (no user/password setting) nor is any option available for this plugin.
+
+### yeelight
+
+This plugin is based on the protocol description and the code from [OpenMiHome](https://github.com/OpenMiHome/mihome-binary-protocol)
+
+This plugin provision [Xiaomi Yeelight](https://www.yeelight.com/).
+
+Upon successful provisioning, the token, used to encrypt subsequent communications, is returned.
+
+By default, the key will be saved in the file ~/.aioyeelight. It can then be used with [aioyeelight](ttps://github.com/frawau/aioyeelight).
+If you do not wish to persist keys, use the nopersist option.
+
+Note:
+ The plugin accepts the option 'owner' but this does not seem to have any effect.
+
+# How it works
+
+Mostly each plugin knows what SSID to look for. If one of the needed SSID is found, aioiotprov will connect
+to the SSID and hand over provisioning duties to the plugin.
+
+
+
+
+%prep
+%autosetup -n aioiotprov-0.0.8
+
+%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-aioiotprov -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu Feb 23 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.8-1
+- Package Spec generated