Dev Journal: December 21st 2018 - First Setback Of Sorts
Looks like RabbitMQ's support for JavaScript is Node based primarily. There appear to be some experimental approaches without Node, but they would muddy up my solution more than I want. So, I needed a work around. I have a quick and dirty one in place at the moment. And, I now have the client retrieving data from the server using that work around.
Right now, the hack is to have the Plug-ins remember the last thing they sent (which all of the ones I'm interested from the client side were already doing). And I just request that data by Plug-in name and pass it through.
What I might do is make a dedicated Plug-In which listens on all topics on the known Exchanges and caches the last message on each combination of Exchange/Topic and then handles echoing that back when a client requests it. It will lessen the burden on each new plug-in.
But, I'm already super excited about how well this is rolling along. It is super basic at the moment. I have one page which allows me to toggle my primary Nest API query plugin and allowed me to enable the new camera plugin I made. Then, I have 2 div tags which are calling my hacky method to get data. Then they display the latest results on the screen. Basically, for my needs I'm missing room based light controls and some simple controls for things like weather, date and time and maybe a news feed and static text.
I even largely decided how I want to handle UI.
Basically, I plan on having two layout controls which can be nested within each other for horizontal and vertical layout, and then the other controls can also be placed inside of these. Add in some direct control for height/width and you get a fairly simple to configure UI which you can make work on different devices. Which is key to my rooms based approach.
One of my big problems with Magic Mirror was, when using it for smart home monitoring, the screen gets cluttered and a given configuration only ends up looking good on a single display. I don't run the same resolution across all of my devices. I have a cheap tablet in one room. A 1080p monitor in my office. A laptop with a different resolution from the other three. My phone. And so on. And I'm thinking that something like an old iPod Touch or an old Windows Phone device could control lights in the stair well.
For now, what's next is setting up room configurations and loading them out dynamically. In short, making it so that the system can read a configuration from the DB, send it to the UI and render the known plug-ins accordingly.
After that, it I'll probably be looking into getting openHab2 running in Docker with persistence, exposing the REST service, and building some plug-ins to talk to that as well to drive the Hue lights.
At that point I'll have my personal minimum viable product.
Beyond that weather, background images and screensaver like functionality will probably be what comes after that.
Then, the longer term is what happens to the project. There will be some refactoring. There are a lot of bits I still need to flesh out. True plug-in/module support. Deciding if browser based is where I want this to finish (probably the case) and so on.
Right now, the hack is to have the Plug-ins remember the last thing they sent (which all of the ones I'm interested from the client side were already doing). And I just request that data by Plug-in name and pass it through.
What I might do is make a dedicated Plug-In which listens on all topics on the known Exchanges and caches the last message on each combination of Exchange/Topic and then handles echoing that back when a client requests it. It will lessen the burden on each new plug-in.
But, I'm already super excited about how well this is rolling along. It is super basic at the moment. I have one page which allows me to toggle my primary Nest API query plugin and allowed me to enable the new camera plugin I made. Then, I have 2 div tags which are calling my hacky method to get data. Then they display the latest results on the screen. Basically, for my needs I'm missing room based light controls and some simple controls for things like weather, date and time and maybe a news feed and static text.
I even largely decided how I want to handle UI.
Basically, I plan on having two layout controls which can be nested within each other for horizontal and vertical layout, and then the other controls can also be placed inside of these. Add in some direct control for height/width and you get a fairly simple to configure UI which you can make work on different devices. Which is key to my rooms based approach.
One of my big problems with Magic Mirror was, when using it for smart home monitoring, the screen gets cluttered and a given configuration only ends up looking good on a single display. I don't run the same resolution across all of my devices. I have a cheap tablet in one room. A 1080p monitor in my office. A laptop with a different resolution from the other three. My phone. And so on. And I'm thinking that something like an old iPod Touch or an old Windows Phone device could control lights in the stair well.
For now, what's next is setting up room configurations and loading them out dynamically. In short, making it so that the system can read a configuration from the DB, send it to the UI and render the known plug-ins accordingly.
After that, it I'll probably be looking into getting openHab2 running in Docker with persistence, exposing the REST service, and building some plug-ins to talk to that as well to drive the Hue lights.
At that point I'll have my personal minimum viable product.
Beyond that weather, background images and screensaver like functionality will probably be what comes after that.
Then, the longer term is what happens to the project. There will be some refactoring. There are a lot of bits I still need to flesh out. True plug-in/module support. Deciding if browser based is where I want this to finish (probably the case) and so on.
Comments
Post a Comment