Skip to main content

Library/utility to help provision various IoT devices.

Project description

aioiotprov

A library/utility to provision IoT devices

PyPI version fury.io MIT license GITHUB-BADGE

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

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

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 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 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 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 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 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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioiotprov-0.0.6.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

aioiotprov-0.0.6-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file aioiotprov-0.0.6.tar.gz.

File metadata

  • Download URL: aioiotprov-0.0.6.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for aioiotprov-0.0.6.tar.gz
Algorithm Hash digest
SHA256 6b976aa7e7e7f9b38e309260250968104e475bd07da54580d0710ccc2b83b9db
MD5 f31d7d47322dc3982c8e4df162b65158
BLAKE2b-256 b60afbccb3bf2d30a6e613968b8aaad07e3a5a20b9adaf3b7da1e63ace8b250f

See more details on using hashes here.

Provenance

File details

Details for the file aioiotprov-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: aioiotprov-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 25.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for aioiotprov-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 78fea47ca6dc96e99232c6cd7a73f968506fadebabeb6230034576b7fc385fbc
MD5 58b61a554a4deead390f5f7938e15720
BLAKE2b-256 f86d00a9da3cf001cc2b16ac5c3c6cdf3171474aa454655c19e0d04984cc2afc

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page