I too much rather use my voice to control my devices. As a tinkerer, the fun is in the build for me. More so than the use but I did build it with the expectation of having wall tablets. I got a few from work and I wanted to place one in the kitchen in the hallway upstairs, but your exact thought goes through my mind a lot. Technically I have not used these for what I designed it all for. all of my time has gone into building the dashboard. I do keep it up on my computer throughout the day because I use the motion sensors to track my children while I work. I guess that is one thing that I get out of the dashboard that you can't get out of voice which is unprompted feedback about the sensors in the home. Thank you for your kind input
Look, his post does not pass my sniff test… or the posts this user has made on other social media platforms, but if you are comfortable installing their container on your network… to beta test a dashboard. Its your network and your rules, please do not let me stand in your way.
I am a little less skeptical. @jeamajoal posted about his dashboard a few months back.
Update: As with any custom code, it is prudent to be cautious before running unknown code on one’s home network.
I appreciate the calm and kind words.
While I agree with Sid’s overall point that things on the internet can be malicious or just immature and unsafe, I don’t agree with the way he chose to express it.
I’ve done everything I can to be transparent about who I am and what my purpose is. This repo is directly tied to me. It connects back to my personal and business pages and represents me professionally. Recruiters look at it. I’ve poured 20 years of experience into this personal project.
I understand skepticism. In fact, I support healthy skepticism. What I don’t support is uninformed skepticism delivered with ill intent, especially when it crosses into statements that feel defamatory.
I also think Sid, and anyone who responds that way, could benefit from taking a step back and reflecting. Why did I really want to say this? What am I reacting to? How would I feel if someone said this about my work while I was building it? Is there something deeper behind why I feel the need to respond this way? Could I have communicated the same concern in a more constructive way?
That said @sidjohn1(or anyone else) I would love to be able to win you over. I would also love to hear how you overcame this kind of skepticism to build trust with people that use your code early on.
@eelton , Thank you for your feedback. Made some dramatic improvements in usability.
JVS Home Control — February 2026 Update
A sizable round of improvements just landed.
What's New
Drag-and-Drop Room Ordering (#51)
Rooms on the Home screen can now be reordered by dragging. No more assigning order numbers to every device — just tap the pencil icon and move things around.
Auto-Add New Devices (#52)
Devices discovered through Maker API are now automatically added to the global availability list. No more hunting through Global Settings every time you pair something new.
Save as Default by Device Type (#53)
Configure one device the way you want it — visible metrics, commands, control icons, visibility — then hit Save as Default to apply those settings across every device of the same Hubitat driver type. Zooz motion sensors stay grouped separately from Ring contact sensors, Chromecast TVs from virtual switches, and so on. Future devices of the same type inherit the defaults automatically.
SVG Icon Click Fix (#54)
Clicking the center icon on toggle controls now correctly triggers the action. Previously only the outer ring responded.
Position Slider for Shades (#55)
Shade and blind devices now show a Position Slider label instead of the confusing "Brightness Slider" label.
Panel Clone with Full Device Options (#56)
Cloning a panel now carries over all device-level settings — commands, metrics, control icons, and visibility. New panels start fully configured instead of requiring device-by-device setup. New installs also ship with sensible preset defaults out of the box.
Updated README with Screenshots (#63)
The project README now has a visual gallery showing off different themes and layouts.
Docker Promoted in Docs (#65)
Docker is now the recommended install method and is featured prominently before the one-line install script. See the Docker Guide to get started.
Additional Fixes
-
Metric card icons now scale correctly with the icon size setting
-
Preset panel backgrounds load properly on new installs (no more falling back to BlueSmoke)
-
Layout settings (masonry/grid mode, column count, row height) now auto-save like every other setting — the manual Save button is gone
-
Expanded Home dashboard metrics to support smoke, carbon monoxide, water, and presence sensors
-
Improved device type inference for multi-capability sensors
Updating
Choose one of the following update methods.
Option A: Using Docker Compose (recommended if you cloned the repo)
This method only works if you run it in the folder that contains the docker-compose.yml / compose.yml file.
1) Clone (or update) the repository
git clone <REPO_URL>
cd <REPO_FOLDER>
2) Pull the latest image and recreate the container
docker compose pull && docker compose up -d --force-recreate
Troubleshooting
If you see:
jvshomecontrol Skipped - No image to ...
You are likely not in the repository directory containing the Compose file.
Fix:
cd <REPO_FOLDER>
Then rerun the compose command.
Option B: Docker Desktop (GUI method)
Use this if you prefer Docker Desktop and don’t want to use Compose.
- In Docker Desktop, remove the container
jvshomecontrol - Remove the image
jeamajoal/jvshomecontrol:latest - Do NOT remove the
jvs-datavolume (this keeps your data) - Recreate the container using:
docker run -d \
-p 80:80 -p 443:443 \
-v jvs-data:/app/server/data \
--name jvshomecontrol \
--restart unless-stopped \
jeamajoal/jvshomecontrol:latest
Option C: Pure Docker Command Line (no Compose, no Docker Desktop)
Use this if you want to update entirely from the terminal.
1) Stop and remove the existing container
docker stop jvshomecontrol
docker rm jvshomecontrol
2) Pull the latest image
docker pull jeamajoal/jvshomecontrol:latest
3) Start a new container (keeps existing data)
docker run -d \
-p 80:80 -p 443:443 \
-v jvs-data:/app/server/data \
--name jvshomecontrol \
--restart unless-stopped \
jeamajoal/jvshomecontrol:latest
Notes
- The
jvs-datavolume preserves your configuration and data across updates. - Option A is easiest long-term if you cloned the repo.
- Option C is best if you want a pure CLI workflow.
It sounds like you've made some great improvements.
Unfortunately, when I try "docker compose pull," I get:
jvshomecontrol Skipped - No image to be pulled
The instructions were expecting you to be in the repository where the docker yaml exists. That's in the repository. So to use this you can either get clone the repository, change directory into the repository you just cloned and then run the command.
Alternatively, you can use docker desktop to remove the container and remove the image, but leave the data volume and then run the docker run command from the repository instructions or the JVS Home Control — Local Smart Home Dashboard page.
docker run -d -p 80:80 -p 443:443 -v jvs-data:/app/server/data --name jvshomecontrol --restart unless-stopped jeamajoal/jvshomecontrol:latest