EasyGlobalSync

From Let's Control It
Jump to: navigation, search

WIP.gif

Beware.jpg

Information on this page is based on preliminary development. Beware that functionality may be incomplete, not fully tested and subject to change. It may even be removed in future releases if it turns out be unstable or based on erroneous interpretation of the operation of third-party technology. At this stage, we provide the information to support development and testing.

Experimental GlobalSync feature

Introduction

If you're running some standalone ESP unit's, it could be handy to have some basic communication between ESP units. An example scenario could be an ESP temperature sensor that works in combination with a remote ESP unit that controls a relay based on the remote temperature reading.

So we've build a simple UDP network messaging mechanism to make some sensor readings global to all connected ESP units. So it does not depend on MQTT brokers or any other form of centralized control.

Preparations for global sync

For many reasons and specifically for communication between ESP units, each ESP should have a unique Unit number. Numbering has to be between 1 and 31. This needs to be configured under ESP Easy "config" menu:

ESPEasyGlobalSync0.png

As it uses UDP as the network protocol, this must also be enabled first on all units that will participate in this scenario. You need to select a UDP port number that does not conflict with other UDP ports in use like 514 for syslog.

We have chosen the port 65500 in our test environment. All units need to be set to the same port number. After this UDP config has been set, reboot all units and check the main page on all units. Every ESP unit should list all other units within approx. 1 minute. This is a basic requirement for global sync.

Global sync is disabled by default, so it should be enabled under "Tools/Advanced" menu on all participating units.

ESPEasyGlobalSync1.png

Verify UDP communication

When all systems are rebooted, just wait for a minute and see it the node list contains all units that should participate. Check the main page node list:

ESPEasyGlobalSync2.png

Configure tasks as global

This is a per task setting. The task number chosen will be the same on all other units so this may take some reconfiguration if its in use on some remote units. Once a task is set for global sync and the submit button is pressed, it will send a special config message to all remote units. Remote units that have no existing task configuration for this tasknumber will automatically create the local task configuration. There no specific manual action needed on remote units. Remote units must be active to get this config. You can repeat this step if needed, just by opening the task and hit submit again without changes.

Data will be send to all units using UDP unicast messaging when a task is run. So if you have set a Dallas temperature sensor to read each 60 seconds, it will also update all remote units every 60 seconds.

How to use?

On remote ESP units, this task can be used like any other as if the sensor was actually connected. So you can display this on a LCD display or use the "level control" task to control a gpio based on remote values.