Aliot-py is the python implementation of the Aliot library, an IOT library made to work with the ALIVEIoT ecosystem (see https://alivecode.ca/iot)
Project description
ALIOT-PY: The python implementation of the Aliot library!
What is Aliot?
Before everything else, aliot is a fancy websocket written in python that aims to facilitate iot focused exchanges between a server and a client
Installation
- create a python virtual environment
- run the command
py -m venv venv
- run the command
- add aliot in a folder in your project (replace $FOLDER in the command by the name of your folder)
- run the command
pip install ./$FOLDER
Creating my first Aliot program
- create an object ObjConnecte
Creating an endpoint (or, like we call it here, a protocol)
-
Create a function that takes some parameters
# my function will take money ($) and give cookies for every 2$ received def give_cookies_for_money(money: int): return {"cookies": money // 2}
-
Register your function as a protocol by decorating it with the
on_recv
decorator in your ObjConnecte that you created for your project and pass the id of your protocol in the argument of the decorator# here, I chose that my function will be protocol 34 @my_iot.on_recv(action_id=34) def give_cookies_for_money(money: int): return {"cookies": money // 2}
-
As of now, my function
give_cookies_for_money
doesn't return anything to the server, if I want to send back my cookies, I have to ways:- use the function
my_iot.send()
@my_iot.on_recv(action_id=34) def give_cookies_for_money(money: int): my_iot.send({"cookies": money // 2})
- set the convenience parameter
send_result
to True in the decorator
@my_iot.on_recv(action_id=34, send_result=True) def give_cookies_for_money(money: int): return {"cookies": money // 2}
- You're all set! Now repeat and enjoy! 🎉
- use the function
Order of execution (once run()
is called)
- obj.on_start()
- On receive:
- [ interceptor.intercept_recv() ]
- decoder.decode_event(event: dict) -> AliotEvent
- controller.handle_event(event: AliotEvent) -> None
- decoder.decode_data(data: dict) -> T
- On send:
- encoder.encode_data(data: Any) -> dict
- encode.encode_event()
- obj.__send_event() -> None
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aliot-py-1.0.6.tar.gz
.
File metadata
- Download URL: aliot-py-1.0.6.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8a1e5308a0fb97b397e5c76dbacc8649d91ffeec5d6ac709d16a59fe5235a73 |
|
MD5 | 051ccbe6b73654ff4bc396309032d499 |
|
BLAKE2b-256 | 7230600daa4cdde580c69e2824e93547aa2bce09ac3603ea770de1ae16003690 |
File details
Details for the file aliot_py-1.0.6-py3-none-any.whl
.
File metadata
- Download URL: aliot_py-1.0.6-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ed79282e28047ef41f5d84795bd4c6a2955d16600503ebdba8c15d0d002b631 |
|
MD5 | a97baf25f770dc3218bedf13a20cfb2f |
|
BLAKE2b-256 | 3cbc9cda9d462e392b497811aad56c2eaba4af90b3533240244ef7175120e67b |