mtansy / Home-Automation-DSL

0 stars 5 forks source link

Improvements #1

Open katherinemonroy opened 1 year ago

katherinemonroy commented 1 year ago

Here are a few questions and suggestions that could be added to the docs for this home automation DSL project:

Questions:

Suggestions:

Provide a few examples of standard home automation rules written in your DSL syntax. This will make the language more concrete for readers.

Explain the workflow for defining rules in your DSL, interpreting them, and sending commands to devices. A diagram could be helpful.

Explain how users will monitor automation rules and get notified if there are issues. Visibility into system behavior is essential.

I would also add a quickstart section that could list out steps one could take to quickly get started. I saw that when I went into the milestone folder, I got a more condensed list I could follow to get started -- I think it'd be nice to add to the main homepage of the repo as well.

mtansy commented 1 year ago

To address potential conflicts between rules in our smart home automation DSL, we plan on implementing a rule priority system and a conflict resolution mechanism. Each rule is assigned a priority level, which can be defined by the user when creating the rule. This priority level determines which rule takes precedence when conflicts arise. In cases where one rule turns off lights to save energy, but another rule turns them on when someone enters the room, the rule with the higher priority will take precedence. For instance, if the rule to turn on lights when someone enters the room has a higher priority than the energy-saving rule, the lights will be turned on as per the higher-priority rule. This way, users have control over which rules are more important in specific situations.

I think that a simulation mode is a great idea! We will definitely look into implementing a simulation mode like that so that users can test their rules before implementing them.

As for the suggestions, I believe these are all great ideas, thank you for sharing! We will be sure to review these over the next week and work on implementing some of them! :)

catherinemckay commented 1 year ago

Questions & Suggestions for peer review:

I think you guys have a great idea and goal for this project. Seems quite useful and applicable to may homes and lifestyles. I think the main place for improvement here is controlling conflict between different requests. I feel like you guys should incorporate rules or guidelines for the user o view before to make this software more user friendly. I see in the comment you made to Katherines suggestions above about rules having priority. This is a great idea that can help mitigate user error. I think you should include some kind of warning/pop up window that notifies the user of these rules prior. I would suggest, for the button that says "Turn ON/OFF smart plug ..." that you have a drop down option here for different smart appliances. Or was this intentional, as users may have different smart home appliances? So far, I like the idea and practicality of your project.

pelintp commented 1 year ago

UX/UI Question:

The "Home Automation" button is front and center, but all the blocks are for home automation already. Are there plans to add different types of blocks that might need separate categories?

UX/UI Suggestion:

Clear Purpose for UI Elements: If the "Home Automation" button doesn't lead to new features, it could be a bit confusing. It might be clearer if each button and section on the screen has a clear and different job to do. If you plan to add more features later, maybe let users know what's coming or why that button is important now.

Questions

  1. Can your system work with all smart homes, even if they use different kinds of tech?
  2. If someone's rules aren't working, how can they figure out what went wrong?
  3. What happens if two rules want to do opposite things at the same time?

Suggestions

Compatibility: Tool: Include a checker for device compatibility. Blocks: Create universal blocks for all smart home devices.

Troubleshooting: Practice Mode: Add a test feature to try rules without real effects. Logs: Provide simple logs for tracking what happens.

Rule Conflicts: Priority Settings: Allow users to prioritize rules. Conflict Helper: Introduce an alert system for when rules conflict, suggesting fixes. Adaptive Rules: Enable rules to adapt based on real-time conditions.

suparnaxpal commented 1 year ago

The project looks really cool, especially with how relevant the idea of optimizing energy consumption is. I like how you've included flexibility for the user to be able to create their own rules. Like my teammates have mentioned, the central focus for improving the project is how to deal with contradictions between different rules. Depending on how many users live in the household, how will you implement security measures so as to make sure a user can't override another user's rules? I know it wasn't exactly mentioned in your project, but do you think you'll expand Home Assistant so that multiple users living in the same household can create shared rules but also have their own? I think this could really elevate the project if completed!