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

Add simple state machine upload to hexanode #217

Open
ghost opened this issue Jan 6, 2014 · 6 comments
Open

Add simple state machine upload to hexanode #217

ghost opened this issue Jan 6, 2014 · 6 comments
Assignees
Milestone

Comments

@ghost
Copy link

ghost commented Jan 6, 2014

We should add some simple default state machines that can be uploaded to devices (e.g. Plug+) from the Hexanode interface. Useful machine for the first attempt would be

  • standy killer: turn off socket if measured consumption is less than $w Watt for $t time
  • simple timetable based on/off switching for plugs
  • master/slave for plugs?
@ghost ghost assigned sbirnbach Jan 30, 2014
@LongHairedHacker LongHairedHacker added this to the 2015-04 milestone Feb 19, 2015
@LongHairedHacker
Copy link
Member

Already working in 5ec11bf, but only for the old statemachine.

Current worflow in 5ec11bf:

  • User selects a statemachine template
  • User adjusts the template parameters (devices involved, thresholds, timeouts ...) in a form
  • A single statemachine is created from the template, compiled and uploaded to the selected devices. Statemachines previously uploaded to those devices are overwritten.

Planned Workflow for the new frontend:

  • User has a list of statemachines currently running on his devices
  • User can chose to add a new statemachine or edit a previously added statemachine
  • User adjusts the template parameters (devices involved, thresholds, timeouts ...) in a form
  • All statemachines are checked for write conflicts. User can select a resolution scheme where neccessary
  • Statemachines are (re)compiled and (re)uploaded if needed

Stuff to be done for the new statemachine:

  • Rewrite the statemachine builder for the new statemachine
  • Add statemachine configurations to the devicetree
  • Rewrite current frontend to use the new statemachinebuilder and devicetree
  • Implement a detection for write conflicts
  • Implement a new fronent using angular schema forms
  • Display already uploaded statemachines in frontend
  • Add support for devices lists
  • Implement editing uploaded statemachines
  • Implement deleting uploaded statemachines
  • Switch backend validation of statemachine configs to tv4.js
  • Find resolution schemes for write conflicts that can be applied automatically using behaviours
  • Implement user interface for resolving conflicts

@LongHairedHacker
Copy link
Member

First working version of the new backend with the old gui: 2f27a5a

@LongHairedHacker
Copy link
Member

First version with the new angular forms based frontend and statemachine display: 9e5e233

@LongHairedHacker
Copy link
Member

First draft for devicelist support has been added in 219f5bd

@LongHairedHacker
Copy link
Member

Editing and deleting statemachines added in 21c456e

Resolution for write conflicts is not going to happen.
A simple scheme which prompts the user to delete one of the machines will be implemented instead.

  • Implement dialog for deleting conflicting machines

@LongHairedHacker
Copy link
Member

Dialog for deleting has been implemented in 0b8b47c.
That's it for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants