mpzinke / smartcurtain Goto Github PK
View Code? Open in Web Editor NEWHome automation curtain project
License: MIT License
Home automation curtain project
License: MIT License
Can you kindly share some photos?
With changes of file structure & software architecture (and improvements in my own programming ability), clean up and adjust the Hub: Manager scripts to work & function better than previous version.
With (finally) the addition of Endstops and Encoders in the code, the 3D models for mounting them must also be updated.
With the release of the auto-updating ability, the feature lacks the ability to run scripts that are possibly required for updating.
As a curtain user,
I want my hub to find nodes on my network and set the IP of the Hub,
So that I do not need to set static IPs for my hub and nodes.
Can you kindly share some photos?
As a SmartCurtain user,
I want to add Bearer Token security,
So that others cannot use my app without authorization.
As a curtain hub programmer,
I want to be able to tell a curtain what percentage open I want the curtain to be,
So that I do not have to worry about calculations and states of the curtain when developing additional functionalities.
As a curtain node user,
I want a way to update the curtain node's information, get information, and activate events,
So that I can prevent hardware damage, have it communicate more dynamically, and operate more simplistically (from a higher level).
The communication between Node and Hub is currently very limited. This will add more actions for the node, to improve data and operations flows.
NodeQuery
Add ability to uninstall Hub features from Raspberry Pi (or other Linux device)
The motor currently determines location based on endstops & stepping. It also needs an encoder for manual or alternative (to stepping) movement tracking.
When a node receives an event, if the node’s stored location differs from its hardware determined location, the curtain resets with auto correct. EG, if the stored location is 0%, there is a close end stop, and the closed end stop does not read closed before movement, then the curtain will go to closed before moving to the desired location.
The curtain will sometimes be positioned differently than where the software thinks it is (eg there is no encoder and the curtain is moved manually to or from an end stop). This spike adds the node the ability to determine if it needs to move to redetermine its actual location so that it can more accurately move to its desired location.
This requires an endstop.
If
Possible feature that is not yet confirmed to be desired. Allow integration with Home Assistant.
As a front end user,
I want to receive HTTPErrors from the backend in the form of a JSON,
So that my front end can receive consistent data formats.
If the curtain is already at the desired location according to hardware or its self state, have it ignore the any further steps in the Movement::activate function.
Currently, even if the curtain is already in its desired position, the Movement::activate function proceeds through all of its steps. Having the curtain check whether it already is at its desired location for each of the conditions in the decision tree (if-else statements) complicates their logic. To have it done initially helps to simplify the logic flow.
Check if hardware/software determined location is desired location. If it is, branch out of logic flow and do nothing. If "tricking" the curtain to move to another location is necessary (EG no hardware and the curtain has been manually moved), the curtain location can be set in the activation JSON. Hardware is assumed to always be correct (IE if an endstop is triggered, then that takes location precedence over JSON received values).
When an event that duplicates a movement (EG Close, Close OR Open, Open) occurs, an Exception should be thrown if the curtain is not smart and is safe to prevent a damaging action. This exception throw does not prevent the HTTP request that triggers the action.
Create an event to open curtain. Create another event to open the opened curtain.
Hub/Event/Damage
Reverse the logic of the if statement and scope the send request expression to be within it.
As a Maintainer,
I want Curtain Event and location to be expressed in an integer percentage form,
So that movement and communication development can be uniform and simplified.
The JSON communication to activate the Node is being updated to allow additional features. With this update, relative positioning is a feature (EG "I want the curtain to move this percentage open") so that the Hub does not necessarily have to know the exact length of the curtain.
NodeQuery
When the curtain is not activated for several days, the node has to be reset (ie unplugged and replugged).
The curtain that has this issue is the one where the Mac Address is changed using the esp_wifi_set_mac
function. The other curtain that does not use the esp_wifi_set_mac
function does not have this issue. The network statically assigns all IPs.
esp_wifi_set_mac
function could provide useful.Complete pages for Web UI to create future events, edit/delete future events, & change options.
If an event fails to activate add functionality for activation packet to resend
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.