semvec/pypi-packages huggingface dataset:
devicehive-webconfig 1.0.2
DeviceHive Python web configurator
License: Apache License 2.0
Requires Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
Keywords: iot cloud m2m gateway embedded devicehive configurator web ui

|License|

Devicehive python web configurator
==================================

This is proxy package for
`devicehive-python <https://github.com/devicehive/devicehive-python>`__
that provides simple web interface to configure connection.

Installation
------------

.. code:: bash

    pip install devicehive-webconfig

Usage
-----

Basics
~~~~~~

| Web interface based on python HttpServer and implements Devicehive
  connection in separated thread.
| It takes *Handler* class as argument like original *Devicehive* class.
| Only difference that extended *Handler* class from this repository
  must used.
| Server could be runned in non-blocking mode, so main thread is free to
  use.
| Example:

.. code:: python

    import time
    import json

    from devicehive_webconfig import Server, Handler


    class ExampleHandler(Handler):
        _device = None

        def handle_connect(self):
            self._device = self.api.put_device(self._device_id)
            super(ExampleHandler, self).handle_connect()

        def send(self, data):
            self._device.send_notification(data)


    if __name__ == '__main__':
        server = Server(ExampleHandler, is_blocking=False)
        server.start()

        print('Go to http://127.0.0.1:8000/ and configure your connection.')
        while not server.dh_status.connected:
            # Wait till DH connection is ready
            time.sleep(.001)

        for i in range(10):
            server.deviceHive.handler.send('notification #{}'.format(i))

Additional *Handler* arguments can be passed as *args* and *kwargs*

Advanced
~~~~~~~~

This library was designed to be easily extended. Additional routes,
controllers, templates and static files can be added. There is an
`example <examples/extended_web>`__ that shows how this can be done.

.. |License| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
   :target: LICENSE