Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Device groups #7790

Merged
merged 14 commits into from Feb 25, 2020
Merged

Device groups #7790

merged 14 commits into from Feb 25, 2020

Conversation

pcdiem
Copy link
Contributor

@pcdiem pcdiem commented Feb 25, 2020

Description:

The device groups module provides a framework to allow multiple devices to be in a group with values such as power, light color/temperature/brightness, PWM values, sensor values, etc. shared with other devices in the group. For example, with multiple light modules in a device group, the light settings can be changed on one module and the settings will automatically be changed on the other light modules. Dimmer switch modules could be in a device group with light modules and the dimmer switch could control the power, brightness and colors of all the lights in the group. Multiple dimmer switches could be in a device group to form a 3-way/4-way dimmer switch.

UDP multicasts, followed by UDP unicasts if necessary, are used to send updates to all devices so updates are fast. There is no need for an MQTT server but all the devices in a group must be on the same IP network.

To include device groups support in the build, define USE_DEVICE_GROUPS in your user_config_override. This adds 3.5K to the code size. All devices in a group must be running firmware with device group support and have device groups enabled.

Checklist:

  • The pull request is done against the latest dev branch
  • Only relevant files were touched
  • Only one feature/fix was added per PR.
  • The code change is tested and works on core 2.6.1
  • The code change pass travis tests. Your PR cannot be merged unless tests pass
  • I accept the CLA.

@arendst arendst merged commit 8f5c05d into arendst:development Feb 25, 2020
@arendst
Copy link
Owner

arendst commented Feb 25, 2020

Currently compilation fails when no emulation is selected.

Investigating...

arendst added a commit that referenced this pull request Feb 25, 2020
Fix compilation when no emulation is selected (#7790)
arendst added a commit that referenced this pull request Feb 25, 2020
Add commands ``SetOption85 0/1`` and ``DevGroupShare`` supporting UDP Group command using ``GroupTopic`` without MQTT by Paul Diem (#7790)
@pcdiem
Copy link
Contributor Author

pcdiem commented Feb 25, 2020

Thank you for your work.

@pcdiem
Copy link
Contributor Author

pcdiem commented Feb 25, 2020

I wasn't sure where the doc (Device_Groups.md) should live. Probably not the root directory. Maybe the wiki?

@arendst
Copy link
Owner

arendst commented Feb 25, 2020

Yes it should be on the new wiki to be found here https://tasmota.github.io/docs/#/Home

@pcdiem
Copy link
Contributor Author

pcdiem commented Feb 25, 2020

I could use some guidance on where in the wiki you'd like the device groups documentation. Also, under what category should I put the DevGroupShare command? Maybe Control or Management?

@arendst
Copy link
Owner

arendst commented Feb 25, 2020

@blakadder could you guide Paul in the right direction?

@blakadder
Copy link
Collaborator

good question.... Off the cuff, I'd say Control.

@pcdiem
Copy link
Contributor Author

pcdiem commented Feb 25, 2020

Thoughts on where to include Device_Groups.md? It documents the concept and usage. I also added a section on the API for other that want to add support to other modules.

@blakadder
Copy link
Collaborator

just leave it in the repo and i'll integrate it in the menu once its in a stable release

@pcdiem pcdiem deleted the device-groups branch April 5, 2020 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants