Smanar / Domoticz-deCONZ

deCONZ plugin for Domoticz (Zigbee application)
GNU General Public License v3.0
36 stars 27 forks source link

Additional pages to remove need for Phoscon #70

Closed JayPearlman closed 3 years ago

JayPearlman commented 3 years ago

Hello @Smanar,

I wanted to get your thoughts and feedback on adding the below pages I've created to your plugin.

https://github.com/JayPearlman/Domoticz-deCONZ/tree/hardware_interface/frontend

The files can be copied directly in to domoticz/www/templates and then a new page will appear under the "Custom" top navigation to test them out.

The idea is that these pages provide an interface to the API and remove the reliance on Phoscon for adding devices. This is my first time ever working with AngularJS so I am open to all comments and concerns. I have tried to follow the existing practices of Domoticz and allow for additional functionality. Some of the built in translations will work and others will not.

Everything is tested as working correctly on my home system including joining new devices, renaming devices, and deleting devices.

Smanar commented 3 years ago

Ha nice, lot of work. But do I need last domoticz version to test it ? I m still on 4.11590 and I have that

tmp

Edit: It work on another system (windows)

Ok , so need to check why it don't work on raspberry on old version, IDK if it s normal ?

My first reaction was "not realy usefull we have same features on devices panel". My second was "Ha we have lot of more usefull information" My third was "So usefull" when I have see the "device data" button that give the complete json

I don't want when an user delete a device in the "device panel" it delete the device, because I can break script/automation, so it just remove from domoticz. But can be done with this page.

I think something to manage api key will be usefull too (like in the api_key.py file)

I reay like it, but BTW what is the problem with the old domoticz version ?

Smanar commented 3 years ago

Ok so I have made some test, it s realy cause of domoticz version. I have try to switch the www folder, not working, the api haven't changed, I don't understans why it don't work.

But it mean user that are on old domoticz version because have OS < Buster can't use it.

JayPearlman commented 3 years ago

Thanks for verifying the version issue. My plan was / is to download the old version and see if I could narrow down what is breaking and potentially solve it for the old versions. I am running latest stable domoticz on latest Raspbian.

I originally wanted these pages to be accessible only from the hardware tab. As this directly interacts with the hardware api and is lower level than domoticz. However, those extra pages can not be done via plugins, only hard coded.

I understand your concern about deletion. Perhaps we can address the power of the page with some warnings and extra check boxes. Like opt-in.

I also enjoyed your reaction list progression 👍

Smanar commented 3 years ago

Don't worry about deletion, I want to prevent that using the hardware tab, but no problem using your page, like you said it s lower level than domoticz.

I m trying to compare the file modification beetween domoticz version, to find a workaround, because it can be hard to make a version compatible with old and new version (unfortunately) but I don't know angular at all ^^

And yeah I know, you can do nothing in hardware page, I have already try to put the phoscon page, not possible.

But using your way is not a problem, if needed I can copy the 2 files in the folder at first plugin install (need to check for right access), or can put them somewhere else, they are not linked with the plugin.

Smanar commented 3 years ago

Ok so I give up on my side to find a way to make your code compatible on old and new version ^^. I will make a"poll" to try to check if there is so much users on older versions, but on my side I have some holiday soon, will migrate to last domoticz version I think.

Your code can be so usefull, for special config on some device for exemple.

Smanar commented 3 years ago

@JayPearlman Hello, so I have started to add a button to edit the config part in device (beetween the "log" and "rename" button.

But it seem angularJS is realy something new for me ^^. If you have some time at least to explain me how to start ? IDK if it s better to open a popup or a new page, the table need to be editable .....

JayPearlman commented 3 years ago

I've implemented your request/idea about a configuration section. That may help to show how I'm doing work inside a popup window. I plan to upload the new code tonight.

The way I approached it is to use the popup window as the interface. It gets confusing because there are different kinds of windows and each one uses completely different code methods. The best suggestion I would have is to review the different options I've implemented and see if it fits in one of those ways.

Smanar commented 3 years ago

@JayPearlman I have just see your code, sorry for late. So I have tryed to continue it, with adding a config icon only visible for sensor, it display a table with value, but I have some problem to make it editable, and use if ofc ^^

I m searching a "global" method if possible, if you can give me a way, optimised for your method ?

Edit: Have finally found the solution, PR submitted.

Smanar commented 3 years ago

@JayPearlman Still alive ?

Smanar commented 3 years ago

For information, I have put your modifications on the beta.

JayPearlman commented 3 years ago

Sorry for the very very late response. That's great to be in the beta.

I have not abandoned and plan to circle back around to integrating your editing parts.

Smanar commented 3 years ago

The code is still in beta, was the same I have make in PR on your fork (no change on the front end, I m realy shy with the JS) I install the front end only 1 time (and check for file size to be sure of the version) And never delete it

I think it s better than writing and deleting the file at every plugin start.

Smanar commented 3 years ago

I have put your code in the official branch. Thx again ^^