alexbain / lirc_web

Control LIRC from the web using NodeJS and lirc_node
125 stars 60 forks source link

lirc_web SIMULATE command, Macro "areas", Button "layouts", Schedules #14

Closed JimJamUrCode closed 8 years ago

JimJamUrCode commented 9 years ago

Macro areas: Defining 'areas' will help you organize the screen layout if you have equipment that you are controlling in multiple rooms. Also the size of the macro button has been reduced, this allows more macros to be on the screen at the same time.

Remote Layouts: On remote pages the buttons are in columns of 3, this allows you to arrange you lircd.conf file in a certain order to create certain types of layouts (i.e. the vol- button directly below the vol+ button). Also the size of the remote button has been reduced, this allows more remotes to be on the screen at the same time. Really cheap and easy solution for this, A layout builder would be cool though!

Schedules: You can now setup a schedule. After you set your timezone you can schedule events based on the day of the week, time, remote, and command. Do note that the server and the clients can be a little out of sync. The general idea of the timer is there, it does need to be tuned a little more.

Snapping: When selecting a remote or the view schedule button, the page snaps to the top so the remote is actually in view.

All but 2 tests pass, I believe the reason they are failing is because they are timing out. I have checked the commands in a browser window while the test is running and verified that all of the test should be passing if they are not timing out.

Test output: 14 passing (10s) 2 failing

1) lirc_web index action should return an HTML document in which all button elements of class command-link have an href of the form /remotes/:remote/:command: Error: timeout of 2000ms exceeded at null. (/home/pi/lirc_web/node_modules/mocha/lib/runnable.js:159:19) at Timer.listOnTimeout as ontimeout

2) lirc_web json api should return a list of all commands for a remote when /remotes/:remote.json is accessed: Error: timeout of 2000ms exceeded at null. (/home/pi/lirc_web/node_modules/mocha/lib/runnable.js:159:19) at Timer.listOnTimeout as ontimeout

I have some ideas for updating lirc_node as well, which will help make setting up the simulated events easier for users. Right now one must call some manual commands to lirc to gather the required information and then insert it into the config.json file to make a simulated button work.

alexbain commented 9 years ago

Thank you for putting in all this work! I'll try to look this over soon and add some comments.

JimJamUrCode commented 9 years ago

Hey, no problem, thanks for providing such a great starting point!

cfvrensbu commented 9 years ago

Dear All, how do I run this new functionality on my system?

JimJamUrCode commented 9 years ago

I would start by looking at the changes that happened in the config.json file. It will give you an idea on how the new features are integrated. You can nest items a little deeper now in the config file. Looking back, I need to update this code so it is easier to integrate for other users. Although if you are familiar with the code base figuring out how this works shouldn't be to far out. Still running this configuration... image1

Also built a groovylock extension to use the web app from the lock screen when connected to the local wifi: image1 2

cfvrensbu commented 9 years ago

So to get this new functionality, I should just run update and upgrade on the Pi, or should I re-install the Lirc_web interface?

cfvrensbu commented 9 years ago

Would you mind sharing the Groovylock application? How did you build that?

cfvrensbu commented 9 years ago

I have a problem that sometimes when using the button repeat function, such as Volume-Up, then it will not stop increasing the Volume, I guess this happens when connection is lost between the PI and my Smartphone. Is it possible to restrict any repeat function to say 5 presses at one time to avoid this kind of potentially damaging situation?

alexbain commented 9 years ago

Hi Bean,

That limit of 5 commands at a time before shutting off would be a good solution. Another option could be to issue repeated commands from the JavaScript app as long as the button is being held down - but only use the SEND_ONCE endpoint to prevent runaway conditions.

Feel free to take a stab at this and open a merge request.

On Fri, May 22, 2015 at 9:51 PM, Mr Bean notifications@github.com wrote:

I have a problem that sometimes when using the button repeat function, such as Volume-Up, then it will not stop increasing the Volume, I guess this happens when connection is lost between the PI and my Smartphone. Is it possible to restrict any repeat function to say 5 presses at one time to avoid this kind of potentially damaging situation?

Reply to this email directly or view it on GitHub: https://github.com/alexbain/lirc_web/pull/14#issuecomment-104842922

cfvrensbu commented 9 years ago

Thanx Alex, I shall give it a try. Has the code from JimJam been merged yet? I would love to run the smaller icons and columns for the buttons....

alexbain commented 9 years ago

No, not yet. Life has been keeping me away from these projects but I'm hoping to review and merge it soon.

On Thu, May 28, 2015 at 5:17 PM, Mr Bean notifications@github.com wrote:

Thanx Alex, I shall give it a try. Has the code from JimJam been merged yet? I would love to run the smaller icons and columns for the buttons....

Reply to this email directly or view it on GitHub: https://github.com/alexbain/lirc_web/pull/14#issuecomment-106639177

cfvrensbu commented 9 years ago

Hi Alex,

Thanks for the update, what would be the easiest way to integrate and run JimJam's code

Regards Corrie

Sent from my iPhone

On 29 May 2015, at 08:16, Alex Bain notifications@github.com wrote:

No, not yet. Life has been keeping me away from these projects but I'm hoping to review and merge it soon.

On Thu, May 28, 2015 at 5:17 PM, Mr Bean notifications@github.com wrote:

Thanx Alex, I shall give it a try. Has the code from JimJam been merged yet? I would love to run the smaller icons and columns for the buttons....

Reply to this email directly or view it on GitHub: https://github.com/alexbain/lirc_web/pull/14#issuecomment-106639177 — Reply to this email directly or view it on GitHub.

alexbain commented 9 years ago

@cfvrensbu - The easiest way would be to manually merge both branches into master on your local computer.

@JimJamUrCode - My apologies for the delay. I've finally had some time and took a look at this. Thanks for putting this together. Would you be able to rebase your commits into a single commit? In addition, this merge request needs a rebase to clean up the merge conflicts.

ghost commented 9 years ago

Guys, very nice and great project Many thanks for all the efforts put in there ! Looking forward JimJam changes to be merged into a new lirc_web master release

alexbain commented 8 years ago

@JimJamUrCode - Haven't heard from you, so I'm going to close this. Feel free to reopen a new merge request that merges cleanly with master and I'll re-review.

cfvrensbu commented 8 years ago

Hi Alex,

My apologies....got tied up with work and did not get around to playing with this. Are you still planning on merging all the modifications?

Regards Corrie

Sent from my iPhone

On 29 Dec 2015, at 06:47, Alex Bain notifications@github.com wrote:

Closed #14.

— Reply to this email directly or view it on GitHub.

alexbain commented 8 years ago

Hey Corrie - the merge request had some conflicts with master so I couldn't merge it directly. If you rebase your branch against master and open the merge request again, I'd like to get these changes into the project.