An open API service indexing awesome lists of open source software.

https://github.com/veracioux/siau-devconf

An MBED C++ code generator for smart home devices
https://github.com/veracioux/siau-devconf

cli cmake cpp json linux mbed mbed-os mqtt qttest

Last synced: about 2 months ago
JSON representation

An MBED C++ code generator for smart home devices

Awesome Lists containing this project

README

        

# Smart home device configurator





Here's how to use it:

- Fill out a few JSON files with a basic device description
- Generate template C++ code in an mbed workspace
- Implement some C++ functions
- Compile and download to the microcontroller

**Features:**

- JSON files can be used by both the smart device and the smart home system
- this is provided by the library `devlib`
- Uses the MQTT protocol
- you only have to implement the device features
- Uses Mbed OS 6
- Tested on Nucleo F746ZG

All of this is provided by the `devconf` program. Below you can find
instructions on how to build it.

**Note:** tested on Linux only.

## Documentation

The complete documentation can be found [here](https://siau-devconf.rtfd.io).

## Dependencies

- CMake >= 3.10
- Qt >= 5.9
- qt5-mqtt
- make
- python3, docutils (to build the manual)

**Optional:**

- [mbed-cli](https://pypi.org/project/mbed-cli/) if you want to generate an mbed workspace automatically

## Build

Run the following commands:

git clone --recurse-submodules 'https://github.com/veracioux/siau-devconf'
make

This will create the program `devconf` and the man page in `_build/`
Alternatively, you can call:

make app

and

make man

to build them separately.

**NOTE:** `devconf` built this way must be called only from the project root
directory, otherwise it won't work correctly.

You can also compile the program directly from `src/CMakeLists.txt`.

## Installation

To install `devconf` on your system run:

make install PREFIX=

**NOTE:** `` **must be an absolute path. This is essential!**

If you just run `make install` without giving the `PREFIX` variable, the program
shall be installed under `/usr/local`. In that case you will need root
permissions.