Skip to main content

Simple Wappsto Python user-interface to Wappsto IoT

Project description

Wappsto IoT

python Test Status Lint Status Coverage

The wappstoiot module provide a simple python interface to wappsto.com for easy prototyping.

Prerequisites

A wappsto.com Account, that the unit can connect to.

The wappsto module requires a set of certificates for authentication. The certificates can be downloaded from wappsto.com, or with the build-in CLI tool: python3 -m wappstoiot. The certificates provides the unit with the secure connection to wappsto.com.

To read more about how the Wappsto IoT inner workings, go here.

The Basics

To understand how to use Wappsto IoT, there is some terms that need to be known.

  • Control
    • Change request value.
  • Report
    • The current value.
  • Refresh
    • Value Update request.
  • Delete
    • inform that a delete have happened.
  • network -> device -> value
    • ...

Getting Started

Installation using pip

The wappsto module can be installed using PIP (Python Package Index) as follows:

$ pip install -U wappstoiot

Working examples of usage can be found in the example folder.

The needed certificates can be downloaded with: python -m wappstoiot --path echo Where path is the path to the config-folder, given in the following code example.

There is also a Wapp avaliable called: IoT Certificate Manager on wappsto, that given you a GUI to do the same and more.

Echo example

The following explains the example code found in echo.py.

wappstoiot.config(
    config_Folder="echo"
)
network = wappstoiot.createNetwork(
    name="echo",
)
device = network.createDevice(
    name="EchoDevice"
)
value = device.createValue(
    name="Moeller",
    permission=wappstoiot.PermissionType.READWRITE,
    value_template=wappstoiot.ValueTemplate.STRING
)
value.onControl(
    callback=lambda obj, new_value: obj.report(new_value)
)
value.onRefresh(
    callback=lambda obj: obj.report(f"{obj.data} Refreshed!")
)
try:
    while True:
        time.sleep(0.5)
except KeyboardInterrupt:
    pass
finally:
    wappstoiot.close()

License

This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.

v0.6.6 (Jun 22 2023)

Added

  • Code Stub.

Changed

  • Now inform which characters are illegal in the given name.

Fixed

  • The getReportTimestamp & getControlTimestamp now ensures the return is None or of type datetime.

v0.6.5 (Feb 28 2023)

Fixed

  • Report & Control now generate a timestamp in UTC time.

v0.6.4 (Feb 27 2023)

Added

  • onControlCancel
  • onReportCancel

Fixed

  • Check on the argument count on callbacks on adding them.
  • Now the on-function returns the callback it was given.
  • Should now covert the timestamp correctly.
  • Fix an issue where it could not close the socket.

Changed

  • Updated the wappstoiot.ValueTemplate to version 0.0.3

v0.6.3 (May 5 2022)

Fixed

  • Fixed a issue with the control method, there it broke if it got out of sink with the report.
  • getReportData now returns the Report data instead of control.
  • Fixed a issue that prevented in report/control values with old timestamps.

v0.6.2 (Mar 10 2022)

Fixed

  • Now pathlib.Path can also be used for the config config_folder input.
  • Fixed a issue where it always where asking for the value.
  • Fixed a issue where it did not create the need states, if the device existed.
  • Fixed a issue where it will fail om the smallest schema change.

Changed

  • Naming policy are now enforced. Have to be set, and may only contain: ALPHA/DIGIT/" . "/" ~ "/"(space)"/" - "/" _ "
  • Breaking Change! - Changes the 'ValueTypes' to 'ValueTemplates', which are a more meaningful name. The createValue input 'value_type', have also change to 'value_template'
  • Enforce the parameter-name for multiple inputs in the create-methods.

v0.6.1 (Feb 21 2022)

Changed

  • Updated the ValueTypes to use the Default template values v0.0.1.

v0.6.0 (Jan 31 2022)

Added

  • Ping-pong option in the config-method.
  • fast_send option in the config-method.

Fixed

  • Fix some issues that only happen on first time run.
  • Fix a issue where if config was not called, the config-folder was not set to current folder.
  • Fix a issue where offline storage, did not allow the program to stop, if there was still data to be send.
  • Fix a issue with the way the certificates was created the right way, and is also claimed.

v0.5.5 (Dec 21 2021)

Fixed

  • Fix a issue that prevented wappstoiot in creating a new value.

v0.5.4 (Dec 21 2021)

Added

  • New Default Value-Types. (CO2, Humidity & Pressure Pascal).

Changed

  • The createValue, are now split into 5. createValue that uses the predefined ValueType given, and 1 for each base value types, for when a custom is needed.
  • permission is now required.
  • onControl, onReport, getControlData & getReportData provides a float if the value was set to be a number.

Fixed

  • offline_Storage warnings now fixed.
  • A issue where the type-value inside value where not set.
  • A issue where the step was set to a int, not a float.
  • wappstoiot.onStatus should not be working correctly.

v0.5.3 (Dec 9, 2021)

Added

  • Groove Examples for Raspberry Pi.
  • Checks of naming, so it reuses the object based on the name. (Naming are mandatory now.)
  • wappstoiot.config have been added to handle all the configs.
  • wappstoiot.createNetwork have been added to streamline the flow.
  • value.getReportTimestamp(), value.getControlTimestamp() have been added to make the timestamp for the last given value accessible.
  • value.getControlData() have been added to make the control data accessible.

Removed

  • Remove the Module ids. (The Names are now the unique identifier.)
  • Remove Rich dependency.

Changed

  • The names & naming convention to fix the other Wappsto Libraries.
  • All the connections & general configs are moved from the Network, to wappstoiot.
  • value.data have been changed to value.getReportData()

Fixed

  • Fix the naming to fit the naming convention.

v0.5.2 (Nov 25, 2021)

Added

  • HTTP Proxy support. (Pulls #259, #353)

Fixed

  • Make WappstoIoT python3.6 compatible.
  • Fix a Path issue that make the code not able to find the certificates in ipython.

v0.5.1 (Nov 23, 2021)

Added

  • Pip release.

Fixed

  • Fix the name to fit the naming convention.

v0.5.0 (September 20, 2021)

Added

  • First Release.

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

wappstoiot-0.6.6.tar.gz (46.9 kB view hashes)

Uploaded Source

Built Distribution

wappstoiot-0.6.6-py3-none-any.whl (58.9 kB view hashes)

Uploaded Python 3

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