Same Goal... #92

Closed
opened 2022-07-05 01:38:49 +02:00 by blacklight · 0 comments
Owner

Created by: kdschlosser

I noticed that you opened an issue in the python-openzwave repo and I did some reading about your project. While I was reading I realized that my opinions are not much different then yours with respect to the current Home Automation hot plate. I am using the term Home Automation in the loosest way because this is not an accurate description of what most available software actually does. the term that fits better is Smart Home. There is nothing automatic about having to pick up a phone or tablet to press a button to turn the lights on or speaking a command to turn the lights on. and your software seems better suited to actually be called a Home Automation control software. I have not yet tested your software but your description of it seems to be in line with that.

I have written an object oriented thread safe version of python-openzwave that has the functionality you asked about, I would have to go back and look but I do not believe that the current release supports what you are wanting to do. The large majority of python-openzwave has been rewritten to solve a plethora of problems, some examples of the problems are.. thread safety, network locking, incorrect data from the devices and really poor performance. I also expanded the functionality some examples are association groups, device support, devices having more then a single control point, this last one is the most important. It builds the classes for the devices dynamically adding only code that is relevant. using the library in an application is a snap to do. the library code can be extended to include application code without having to override anything. no monkey patching necessary!. This functionality allows an application to use it's normal structure for devices without having to create or hold reference to any other objects. an applications representation of a device would get constructed at the same time the library builds a python representation of the device. Another feature is a complete new build system and that new system is able to compile python-openzwave much much faster. a 5 minute build time is now 45 seconds on my workstation (6 cores @ 3.5ghz). Performance of the library has increased quite a bit. When starting the pytyhon-openzwave a 20 device network would take over 2 minutes to load. with my changes it takes 0.9 seconds to load the data needed to show the user a representation of the device and 15 seconds until all 20 devices were fully loaded and can be controlled. If you are interested in checking it out let me know. I do not have the code available on github I would have to send it to you some other way.

You might want to take a look at a project I am the administrator of called EventGhost (EG). You may or may not have heard of it, EG has been around since 2005. I do not know of any other open source automation software that is as old and is still being developed. It only runs on Windows at the moment, This is one of the things I am wanting to change but I have not been able to locate someone that knows Python and also proficient with writing code to access the API for Linux type OS's. The time it is going to take me to learn and also code the changes would be fairly long. Someone that has the knowledge can get it done in a fraction of the time.

EG was originally written to run on a Windows XP machine, and resources were not so plentiful back then. Single core machines with 256mb of memory and sub 128gb HDD's were common. EG has a low CPU/memory/disk footprint, using 45mb ram (with the GUI), 76mb disk and fractions of a percent of the CPU. It uses and event/action type of system that is really easy to use. It also has real time python scripting support that is able to have data that persists between script runs. There could be some things you see that spark some ideas for ya.

let me know if you are interested in the zwave library I wrote.

*Created by: kdschlosser* I noticed that you opened an issue in the python-openzwave repo and I did some reading about your project. While I was reading I realized that my opinions are not much different then yours with respect to the current Home Automation hot plate. I am using the term Home Automation in the loosest way because this is not an accurate description of what most available software actually does. the term that fits better is Smart Home. There is nothing automatic about having to pick up a phone or tablet to press a button to turn the lights on or speaking a command to turn the lights on. and your software seems better suited to actually be called a Home Automation control software. I have not yet tested your software but your description of it seems to be in line with that. I have written an object oriented thread safe version of python-openzwave that has the functionality you asked about, I would have to go back and look but I do not believe that the current release supports what you are wanting to do. The large majority of python-openzwave has been rewritten to solve a plethora of problems, some examples of the problems are.. thread safety, network locking, incorrect data from the devices and really poor performance. I also expanded the functionality some examples are association groups, device support, devices having more then a single control point, this last one is the most important. It builds the classes for the devices dynamically adding only code that is relevant. using the library in an application is a snap to do. the library code can be extended to include application code without having to override anything. no monkey patching necessary!. This functionality allows an application to use it's normal structure for devices without having to create or hold reference to any other objects. an applications representation of a device would get constructed at the same time the library builds a python representation of the device. Another feature is a complete new build system and that new system is able to compile python-openzwave much much faster. a 5 minute build time is now 45 seconds on my workstation (6 cores @ 3.5ghz). Performance of the library has increased quite a bit. When starting the pytyhon-openzwave a 20 device network would take over 2 minutes to load. with my changes it takes 0.9 seconds to load the data needed to show the user a representation of the device and 15 seconds until all 20 devices were fully loaded and can be controlled. If you are interested in checking it out let me know. I do not have the code available on github I would have to send it to you some other way. You might want to take a look at a project I am the administrator of called EventGhost (EG). You may or may not have heard of it, EG has been around since 2005. I do not know of any other open source automation software that is as old and is still being developed. It only runs on Windows at the moment, This is one of the things I am wanting to change but I have not been able to locate someone that knows Python and also proficient with writing code to access the API for Linux type OS's. The time it is going to take me to learn and also code the changes would be fairly long. Someone that has the knowledge can get it done in a fraction of the time. EG was originally written to run on a Windows XP machine, and resources were not so plentiful back then. Single core machines with 256mb of memory and sub 128gb HDD's were common. EG has a low CPU/memory/disk footprint, using 45mb ram (with the GUI), 76mb disk and fractions of a percent of the CPU. It uses and event/action type of system that is really easy to use. It also has real time python scripting support that is able to have data that persists between script runs. There could be some things you see that spark some ideas for ya. let me know if you are interested in the zwave library I wrote.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: platypush/platypush#92
No description provided.