Custom iot:1 protocol
Project description
#IOT:1
My custom protocol for communication between devices at home. It uses UPD and broadcast. Messages are json strings.
## Message body:
{
"protocol": "iot:1",
"node": "Rpi-lcd-1",
"chip_id": "RpiB",
"event": "lcd.content",
"parameters: [
"content": "-(=^.^)"
],
"response": '',
"targets": [
"nodemcu-lcd-40x4"
]
}
protocol: defines name, currently iot:1
node: friendly node name like light-room-big or screen-one-kitchen
chip_id: a unique device id
event: event name like light.on or display
parameters: array of parameters. like rows to display
response: used when responding to request, ie returning toilet state
targets: message targets node with this names. special keyword ALL for all nodes in network
## set node name or/and chip_id
Message.chip_id = 'miau'
Message.node_name = 'miau_too'
### Message()
Create new instance. It is automatically filled with chip_id and node_name if not set
### Message(string_message)
Creates message and fills with received data
input = """{"protocol": "iot:1", "node": "node_name", "chip_id": "aaa", "event": "channel.on", "parameters": {"channel": 0}, "response": "", "targets": ["node-north"]}"""
msg = factory.MessageFactory.create(input)
## functions
### set(dictionary)
msg = message.Message()
msg.set({
'event': 'event.test',
'parameters': {
'is_x': '1'
}
})
Fills message with params.
### send message
s.sendto(bytes(msg), address)
### get value
msg = message.Message()
msg.set({
'event': 'event.test',
'parameters': {
'is_x': '1'
}
})
print(msg['event'])
### AES encryptor
Uses AES-CBC with hmac signing. require: pip install pycryptodome
Cryptor takes four parameters:
def __init__(self, staticiv, ivkey, datakey, passphrase):
self.staticiv = staticiv
self.ivkey = ivkey
self.datakey = datakey
self.passphrase = passphrase
Usage:
from iot_message.cryptor.aes_sha1 import Cryptor as AES
Message.add_decoder(AES(
'abcdef2345678901', '2345678901abcdef', '0123456789abcdef', 'mypassphrase'
))
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
Built Distribution
File details
Details for the file iot_message-1.2.1.tar.gz
.
File metadata
- Download URL: iot_message-1.2.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 058bd111a04cf54b746d2ed2b8a5226afa3fc1e983ccd9306b96de884ce27d9e |
|
MD5 | 9a17a574e3028b48d645055074ddf603 |
|
BLAKE2b-256 | d4375683e0c93244085658ce793f52efce37c05552466006f1254f8fa3c8a049 |
File details
Details for the file iot_message-1.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: iot_message-1.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3bc7f206ac869789e27cfd49a9eeee8878109f4908c4c87a87194b4250b02aa |
|
MD5 | d622cba730d492ce70f29d139036ddf3 |
|
BLAKE2b-256 | ee110a6cf368fca9f15fb76139d3c910fc1023e87c6d7e503be9d0a3b3cd16ea |