You absolutely can install custom plug-ins to your system without using HACS.
But yes, first you will need to have a valid .js file somewhere on your local system.
I do my editing on my windows pc using notepad++. Then when done I move it to HA.
Depending on if you want to remove the existing plug-in or keep it while you do your testing determines what you do next.
if you don’t care about the existing one and want to remove it then remove it using HACS. Then reboot your system. Then clear your browser cache. I usually clear the cache by using ctrl-F2 in Chrome but there are times when it required to do a “hard clear” by going into dev mode in the browser (F12) then right click on the refresh button and hard clear the cache there.
once you do that then you can install your plugin to the www/ folder. I put mine in www/lovelace/ (using a path like www/lovelace/some_plugin_file.js).
then in your lovelace resources you reference the plugin:
- url: /local/lovelace/fan-percent-button-row-2.js
type: module
once you restart (and clear the cache again for good measure) the old plugin will be gone and you should be using the one you installed.
if you want to keep both then you will need to do a couple of extra things.
first, both plugins can’t be called the same thing (obviously) so you need to change the name of the plugin in the plugin code.
here is an example from some of the testing I do on my own plugins.
I change the references to the plugin at the top and bottom:
class CustomFanPercentRow2 extends Polymer.Element {
.
.
.
.
.
customElements.define('fan-percent-button-row-2', CustomFanPercentRow2);
then save the file so it matches the reference in the bottom line of code above.
write the correct resource reference exactly as above, again restart, clear the cache, etc and it should work.
this example uses a fairly simple plugin that only has one file that constitutes the plugin. for more complex ones I’m not sure how those may work but you need to basically do the same thing but in that case I would put all associated files in a sub-folder - www/lovelace/some_complex_plugin/the_plugin_file.js. - then add the other files to the same folder.
Hopefully I’ve helped and explained it clearly…