Yodiwo Wisper
Overview
This code is split into 2 main sections:
- mNodeCore: main code that generates the mNode base package
- Plugins: contains Plugin sample code which showcases the Plugin API
Both open under a single Visual Studio (2015) solution.
mNodeCore
It includes all necessary dependencies to build a complete mNode package that:
- is identical to the mNode package downloaded as a package from Yodiwo
- can autonomously connect to the Yodiwo cloud
- can be detected by the Yodiwo Wisper Remote Control Android app
- can present, manage and install Plugins which are published at the Yodiwo Package Manager
Through use of Plugins, mNode can:
- aggregate and terminate different connectivity protocols (such as Bluetooth, Z-Wave, Zigbee, LoRa, etc)
- expose IP-unaware protocols to the Cloud
- bridge full-scale 3rd party ecosystems such as OpenHab
The built Node is also configurable to act as a local Fog Gateway providing automatic and manual local analytics, inter-mNode discovery and remote management.
Build
Just run build from Visual Studio. The Yodiwo.mNode project will create a ready-to-execute build for Windows or Linux under Mono (version 4.2+ is suggested)
Plugins
The included sample Plugins code is meant to showcase writing and embedding a Plugin for mNode. Currently the included plugins are:
- PInvoke: allows using C code via a simple C# to C message exchange mechanism with message queues
- Serial Port: exposes a serial port as input and output Things on Cyan
- Flic.io: integrates with Flic bluetooth buttons and exposes each paired button as a separate Thing. Verified on Raspberry Pi 2⁄3 with Flic.io’s hci library
- ZWave: integrates with Razberry Z-Wave bridge for Raspberry Pi 2⁄3
- CPP: allows native C++11/C development without needing any custom C# glue code
After the Plugin is built, it must be placed in a new folder under /mNodeCore/mNode/bin/Release/Plugins/
This folder must have the same name as the Plugin’s UID in its manifest.json
file:
[..]
"PUID": "Yodiwo.mNode.Plugins.TestPlugin",
[..]
It is advised that Release mode is used, since the referenced DLLs include in the solution have also been built this way.
When running mNode, the new Plugin will be identified and initialized; its registered Things will be sent to the cloud to be used in Apps in the Cyan Workflow Editor.