Added boastful README
This commit is contained in:
parent
e682106f10
commit
7be46bcc52
60
README.md
60
README.md
@ -0,0 +1,60 @@
|
|||||||
|
# MQTT Device Manager & Web UI
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Device interface via [MQTT: The Standard for IoT Messaging](mqtt.org)
|
||||||
|
> _It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth._
|
||||||
|
- Device properties are automatically discovered & subscribed from MQTT topic structure
|
||||||
|
- Commands annotated with [JSON Schema](https://json-schema.org/)
|
||||||
|
- Input is validated according to schema with [python-jsonschema](https://python-jsonschema.readthedocs.io/en/stable/validate/)
|
||||||
|
- Schema is passed directly to the frontend for form generation with [JSONForms](JSONForms)
|
||||||
|
- Reactive Vue frontend
|
||||||
|
- Fast, realtime updates due to pub/sub architecture
|
||||||
|
- Property search by name, name fragment or value
|
||||||
|
- Flash effect on property update
|
||||||
|
- Frontend schema validation for commands with human readable error messages
|
||||||
|
|
||||||
|
## Example command implementation
|
||||||
|
```python
|
||||||
|
@command(
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"measRate": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 50,
|
||||||
|
"maximum": 60000,
|
||||||
|
"description": "Measurement period in milliseconds",
|
||||||
|
"default": 1000,
|
||||||
|
},
|
||||||
|
"navRate": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 127,
|
||||||
|
"description": "Number of measurement cycles per navigation solution",
|
||||||
|
"default": 1
|
||||||
|
},
|
||||||
|
"timeRef": {
|
||||||
|
"type": "integer",
|
||||||
|
"enum": [0, 1],
|
||||||
|
"description": "Time reference (0=UTC, 1=GPS)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"required": ["measRate", "navRate", "timeRef"],
|
||||||
|
"additionalProperties": False,
|
||||||
|
},
|
||||||
|
description="Reconfigure the rate properties for the UBX device.",
|
||||||
|
)
|
||||||
|
async def configure_rate(self, args):
|
||||||
|
message = pyubx2.UBXMessage(
|
||||||
|
"CFG",
|
||||||
|
"CFG-RATE",
|
||||||
|
pyubx2.ubxtypes_core.SET,
|
||||||
|
measRate=args["measRate"],
|
||||||
|
navRate=args["navRate"],
|
||||||
|
timeRef=args["timeRef"],
|
||||||
|
)
|
||||||
|
num_bytes = await self.serial_port.write_async(message.serialize())
|
||||||
|
return num_bytes
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue
Block a user