Added boastful README

This commit is contained in:
Jono Targett 2026-03-18 15:51:32 +10:30
parent e682106f10
commit 7be46bcc52

View File

@ -0,0 +1,60 @@
# MQTT Device Manager & Web UI
![alt text](./docs/dashboard.png)
## 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
```