diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-aioiotprov.spec | 444 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 446 insertions, 0 deletions
@@ -0,0 +1 @@ +/aioiotprov-0.0.8.tar.gz 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 + +[](https://pypi.python.org/pypi/aioiotprov) +[](https://lbesson.mit-licen) +[](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 + +[](https://pypi.python.org/pypi/aioiotprov) +[](https://lbesson.mit-licen) +[](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 + +[](https://pypi.python.org/pypi/aioiotprov) +[](https://lbesson.mit-licen) +[](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 @@ -0,0 +1 @@ +75ebdec3451ac9564f0c67b23e470969 aioiotprov-0.0.8.tar.gz |