Skip to content
FanOfHue edited this page Dec 24, 2018 · 14 revisions

SmartNodeRules

Independent Smart Nodes that can act as a standalone unit or be part of a wired or wireless network of nodes. Works without a centralized Home Automation controller, hub, bridge or cloud service.

Use the same web based gui to create simple rules and easy button control on multiple platforms.

SmartNodeRules has been inspired by the Rule engine of the ESP Easy project on LetsControlIt.com that uses simple rules to control stuff locally or through the network and offers peer-to-peer networking based on a UDP network protocol. Everything is based on local or networked events that trigger actions.

Core features:

  • Platform independent low footprint communication and control
  • Simple UDP broadcast Message Bus using plain text messages without a central message broker for sensor data and events
  • Nodes can publish, catch and process messages using a simple rule engine that acts on incoming events
  • Target specific messages can be auto-confirmed by peer nodes for mission critical messages
  • All nodes offer basic webgui controls to control local stuff or trigger local or network events
  • Nodes optionaly maintain a simple webgui to show a complete node list for easy navigation between nodes
  • Code should be compact, based on KISS and YAGNI to leave space for you own creative work

Message format:

There's no complex network packet structure. Just plain text messages using topics like MQTT does:

  • Outdoor/Temperatue=8.5
  • Outdoor/Lux=23000
  • Bedroom/LightState=1

Everything should be considered as an event. Events can update webgui's to show things like temperature but events can also trigger actions on remote nodes that have a rule set on this particular event.

The syntax is up to you as user, but there are a few reserved topics:

  • MSGBUS/Hostname=
  • MSGBUS/Refresh

Each implementation consist of a few required building blocks:

  • Rules Engine with command interpreter
  • Tiny webserver
  • MessageBus for exchanging events

List of available source code prototypes:

Sample rules

Clone this wiki locally
You can’t perform that action at this time.