Dev Journal: November 10th 2018

Well, I haven't gotten far into this. I suspect this will be a bit of a fringe priority for me. But, I have thought a bit more about the project.

As suggested originally, I think that I will be trying to build the individual pieces elsewhere first, off in a more homebrew project. Before I was thinking more about running two projects side by side and refactoring the code from one into the other. But, the more I think on it, the more I think it will be a slow slog starting off as a homebrew project and then morphing into a separate project later.

There are a few things driving this. Firstly, the amount of time and effort I've spent so far. Close to nothing beside thinking. And while that is valuable, until I can turn it into a more consistent and effective form of actually completing something, I need some more reasonable goals. And maintaining two projects, even if just in private repos initially, doesn't fit the bill. I need to make some traction in one area first.

The next reason is reality. One of the things which took some steam out was reading the requirements for publishing an app to the Nest store. The policy is fair enough. It is there to protect the users and to protect the brand image. And that means there are requirements around not just simple things like handling errors, but also handling status changes in a timely fashion and being forced to support certain features as well as effectively imposing a data retention policy. Like I said, nothing bad or absurd. In fact, quite the opposite.

But, it also means a lot of burden on me upfront.

And lastly, my primary environment. I don't yet know what the final product will look like. But, I do know what the side project will likely look like. And that, is probably a Node JS application. The beating heart of what I plan for differentiation can be broken into two categories, smart automation and a lightweight cross platform UI I can blast to multiple screens easily. That means an always on server. And right now, the only 2 PC in my house meeting that are both running Linux (both have valid Windows licenses in the BIOS, so longer term there is flexibility). Furthermore, one is already the server for my Magic Mirror implementation.

Node JS would allow me to serve up HTML to clients meeting the requirement for a lightweight UI. It runs on my Linux environment. But, could also be coded on my Windows environment or in a VM so I could do the initial dev work on my actual dev PC. Basically, the best of all worlds for what I'm doing right now.

HTML and CSS also make for a rather easy toolset for rapid UI prototyping. One thing my personal apps general lack is any decent UI. So, I'm hoping this will change that.

I need to look into a few things first. Like data storage. SQLite is my preference, but I've never checked if I can make that work in Node. But then, SQLite works on everything and Node works with everything. Not that I would be surprised to find that this is the exception to the rule... confirmed, there is an npm module for SQLite to use with Node.

Oh, and a bonus reason for not doing them concurrently... Nest is not currently accepting any new submissions as they are apparently currently upgrading their APIs.

Anyway, first step will be an app that runs on a timer, probably, given Nest's requirements, every minute. It will log out everything I can think of to a database. Current temperature, target temperature, outside temperature, humidity, whether the fan is on, whether the heat or cooling is on.

Once the data is there, I'll use it to create a graph of a week's worth of data.

That is will be step 1.

Comments

Popular Posts