ambient-weather's People
ambient-weather's Issues
Save state to local storage
Save the state to local storage, so it will won't reset when offline.
Cycle Color
The colors that are saved should be able to cycle through as a sort of preview.
Setup server
Basic server should be setup on the ESP8266.
It should be accessed via .local
domain.
Read and Update Colors
Colors need to be saved off and be able to be loaded up again.
Right now, apply / cancel don't matter, so this should also give those functionality.
Save requests made offline or that failed
Requests that fail (not from user error), or that would be made when offline (or off local network) should be saved off to try again later.
Pull weather information
Find a weather API that can be used to get basic weather info.
Need to be able to get
- Current condition
- Temperature
- Forecast
- Metric / US
Create mock backend
It feels impractical to have an ESP running to build out the client functionality.
Can probably just use OpenAPI to create mock backend, that will give us a general idea.
Add Jest
Currently no tests really exist.
Some should be added, and Jest should be used.
Save off settings
The settings need to be saved off when updated.
This will also include adding a save and cancel button.
Light LEDs based on weather
Probably will periodically get the weather, and set the light to the color set for that weather type.
Maybe add an endpoint to manually update the weather.
Changing color should be a nice fade.
Convert to TypeScript
TypeScript will be nicer to use.
This also includes adding TSLint.
Use WiFiManager to connect to WiFi
The ESP will need to connect to the WiFi. This should be done using WiFiManager to make this a nice process.
Alert sever weather
To try out push notifications, we could make it so if there is currently severe weather, a notification is sent to the user.
Save settings
Settings need to be saved to the ESP.
Settings will be
- Location (postal code probably)
- Units
- Hostname
Wire up LED strip
Find a multicolored LED strip, and wire it up to the ESP8266.
It can just have any color as proof it works.
Manually set color
It should be possible to manually set the color that the light will show.
Not sure yet if this should be able to use any color, or just one that was saved off (or both).
Error handle requests better
Right now the errors with the requests in the sagas are just logged. They should probably do something like dispatch START_UPDATE_THING which makes a copy of what's to be updated, and END_UPDATE_THING removes the old on success (ERROR_UPDATE_THING on fail).
Minify like nothing else
The dashboard should fit on the ESP8266. After the main functionality is done, optimizations should be made (in the code, or build process) to keep it small.
Might need to look at using Preact.
Might be able to package it as gzipped files.
Could be helpful to add something to warn when getting close to 1mb limit.
Use Bazel
Using Bazel as a build tool might be fun.
It would be neat to get on the edge of JS stuff, and if the Arduino code is done in C++ it might be able to build both.
Preview Color
Before a color is saved off, it should be able to be previewed with the light.
Display weather
The weather tab should show the weather for the given location.
The placekitten should be an actual icon.
The forecast should be current hour plus four hours, with what the color will be as the dot. The line should be what the current color is.
The mock backend can randomly generate weather.
Spiff up layout
The layout is mostly what it should be like.
Some things to change
- Padding around the page contents
- Breakpoints on smaller screen
- Vertical vs horizontal layout
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.