Difference between revisions of "SmartPlug Help File"

From OpenCircuits
Jump to navigation Jump to search
(26 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
   
 
   
  
Help file for smart plug application ( Ver4 )
+
Help file for smart plug application ( Program now Ver5 ).
  
  
Line 9: Line 9:
 
*Works with multiple smartplugs.
 
*Works with multiple smartplugs.
 
*Provides on, off, timing, and  energy recording functions from a graphical user interface ( gui )
 
*Provides on, off, timing, and  energy recording functions from a graphical user interface ( gui )
*Supports graphing of data.
+
*Supports graphing of data.  Currently power and energy over time.  Multiple devices on one graph.
 
*Supports csv output of data.
 
*Supports csv output of data.
 
*Saves data to a sql lite database that you can use any way you wish.
 
*Saves data to a sql lite database that you can use any way you wish.
Line 16: Line 16:
 
= Two Applications =  
 
= Two Applications =  
  
This program is actually 2 main programs ( I may merge them later ). The first program is for control of the smartplugs and capture of data, the second for the graphing and processing of the data.  The main routines may be run by respectively running: smart_plug.py graph_smart_plug.py
+
This program is actually 2 main programs. The first program is for control of the smartplugs and capture of data, the second for the graphing and processing of the data.  The main routines may be run by respectively running: smart_plug.py graph_smart_plug.py I think ( but have not tested ) they may be run at the same time.
  
 +
= Download and Install =
  
= Download and Install =
+
There is really no install program.  Currently the application is intended for those who have at least a little familiarity with Python coding and can just insert the downloaded code into their development environment and run it. Code at '''[https://github.com/russ-hensel/smart_plug/tree/master russ-hensel/Smart_plug Application ]''' For most of you it will not run due to dependency problems.  You will need to add them.  Pretty much read the error messages and install the missing code.  I use Anaconda Spyder so my preferred tool is conda ( conda install pyHS100 ).  If conda does not work or you do not use it use pip.  pyHS100, a library for smart plugs is pretty likely to be missing ( pip install pyHS100) .  Depending on your installation there may be more.
 +
 
 +
Much of the application is configurable through the parameter.py file, but the default should give you an application that runs, including a default database.  You probably will not be able to talk to your smartplugs, because the parameters do need to be told what and where ( tcpip address ) they are.
 +
 
 +
So to tell the application about your plugs.  You should know the address of each plug.  If not you might want to use an application like advanced ip scanner ( google it ).  The smartplug gives up very little information on my scans, but run the scan with the plug plugged in and out, and the address that appears ( or disappears ) it the address of your device.
 +
 
 +
The section of parameters.py that locates the device looks like this:
  
There is really no install programCurrently the application is intended for those who have at least a little faimiarity with Python coding and can just insert the downloaded code into their development environment and run itFor most of you it will not run due to dependency problemsYou will need to add themPretty much read the error messages and install the missing code.  I use Anaconda Spyder so my preferred tool is conda ( conda install xxxx ).  If conda does not work or you do not use it use pip.  pyHS100, a library for smart plugs is pretty likely to be missing.  Depending on your installation there may be more.
+
        self.device_list      = [
 +
                { "name": "device_1",  "tcpip": "192.168.0.209", "more": None, "gui_label": None, "gui_combo": None  },
 +
                { "name": "device_2", "tcpip": "192.168.0.209", "more": None, "gui_label": None, "gui_combo": None },
 +
                { "name": "device_3",  "tcpip": "192.168.0.209", "more": None, "gui_label": None, "gui_combo": None },
 +
                                  ]
 +
it is a list of dictionariesThe entry above is for 3 devices ( but I only have one, so the tcpip address is repeated ) For now only worry about the tcpip address and the name for the device; put in as many devices as you wish to control.
  
= First Use of the SmartPlug Application =
+
With the edited parameter file saved, restart the application.  You should be able to "talk" to your devices.  Not working?  Double check or email me.
  
        The application is set up with a default database, but it need some information
+
In the future I may try to add some autodetect features.  There is a routine to discover the plugs in the pyHS100 library, but it does not work for me.
        on your devices.
 
  
 +
= How To:... =
 +
== General ==
 +
*Edit the parameter file:  Use the application button <Edit Parms> ( after configuring for your editor ) or any text editor suitable for Python ( no tabs ) on the file parameters.py.  See also: The section below, [[Configuration Files For Python]] and [[SmartPlug GUI Images]]
 +
*View the log:  Use the application button ( after configuring for your editor ) or any text editor on the file smart_plug.py_log. This is the default file name, it can be changed in parameters.py.
 +
*Create a new empty database:  There is a button on the graphing application.  First set the file name ( including full path ) to a non existent file.
 +
*Backup the database: Just make a copy of the database.  It is all in one file, but you can make multiple databases.
 +
*Add a new device or change device data: edit the parameter file, device_list.
 +
*Record data/Monitor Plug: Press the <Record On> button, to stop  <Record Off> or close the application.  See also: [[SmartPlug GUI Images]].
 +
*Set a timer:  See also: [[SmartPlug GUI Images]]
 +
*See status/info on a smart plu:  Of what, work in progress.
 +
*Make a graph: Use the graphing application ... see section below. See also: [[SmartPlug GUI Images]].
  
        .........
+
*Install: see section above.
 +
*Debug:  see section below.
 +
*Change Parameters: Same as edit the parameter file.
 +
*Retrieve data from plug: On the GUI, but not implemented.
 +
*Quick Restart of the application:  As perhaps after a parameter change. Use the <Restart> button. See also: [[SmartPlug GUI Images]]
 +
*Turn plug on/off
 +
*Use your preferred text editor. In the parameter file, see below.
 +
== Graphing (Application) ==
 +
*Save graph as .png file
 +
*Zoom in on part of the graph
 +
*Change the zero point ( time ) for the graph -- see parameters.py
 +
*Move the graph lines around within the graph frame
 +
*Choose what data to graph
 +
*Change the units on the time scale of the graph -- see parameters.py
 +
*Change the max and minimum values on the graph -- see parameters.py or zoom the graph
 +
*Export a csv file: See also: [[SmartPlug GUI Images]]
  
 
=  How to Use the Parameter File =  
 
=  How to Use the Parameter File =  
 
+
See: [[Configuration Files For Python]]
 
You need a text editor sutiable for .py files to manage the parameter file ( parameters.py )
 
You need a text editor sutiable for .py files to manage the parameter file ( parameters.py )
 
This includes most text editors.  I particularity like:
 
This includes most text editors.  I particularity like:
  
    notepad++
+
*notepad++
    geany
+
*geany
  
You can also use the editor that comes in many python development environments, the simples of
+
You can also use the editor that comes in many python development environments, the simplest of
 
which may be Idle.  But there are many many others.  If you are reading this you probably have
 
which may be Idle.  But there are many many others.  If you are reading this you probably have
 
some experience.
 
some experience.
  
    A couple of gotchas to watch out for.
+
Once you configure an editor in parameters.py you can edit from the <Edit Parms> in the GUI ( see below )
        * Python cares about capitalization, use the capitalization indicated in the default
 
          files and the example code.
 
        * Python also cares a lot about how lines are indented.  Do not change the indentation from
 
          the sample files, and always indent using spaces ( not tabs. most text editors will use spaces
 
          automatically for .py files, even if you use the tab key )
 
  
    First time editing of the parameters.py file
+
When editing there are couple of gotchas to watch out for.
 +
* Python cares about capitalization, use the capitalization indicated in the default files and the example code.
 +
* Python also cares a lot about how lines are indented.  Do not change the indentation from the sample files, and always indent using spaces ( not tabs. most text editors will use spaces automatically for .py files, even if you use the tab key )
  
        Use your chosen text editor to open the file parameters
+
Editing of the parameters.py file
  
specify in parameters.py with
+
*Edit so the program finds your devices.
    self.ex_editor          =  r"D:\apps\Notepad++\notepad++.exe"  # use r" or the backslashes will not work, or you can use forward slashes instead they may be wrong
+
**See above in Download and Install
    but they work.
+
*Enable your favorite editor to work with the application.
 +
**self.ex_editor          =  r"D:\apps\Notepad++\notepad++.exe"  # use r" or the backslashes will not work, or you can use forward slashes instead they may be wrong but they work.
 +
*Lots of other settings:
 +
**Read the comments in parameters.py and change as desired.  If a setting does not work let me know.
 +
*If you mess up.
 +
**Re download and get back to the original file.
  
 
= Working With Database Files =  
 
= Working With Database Files =  
Line 73: Line 112:
  
  
= The GUI =  
+
= The GUI =
  
 
+
see: [[SmartPlug GUI Images]]
= General =
 
 
 
 
 
 
 
 
 
= System Buttons =
 
 
 
                    * The edit functions work only after you have configured parameters.py for your systems text editor
 
<Edit Log>          >Open the application python log file using the system editor specified in parameters.py file
 
<Edit Parms>        >Open the application parameters.py file using the system editor, after the file has been modified
 
                    the system can be quickly restarted using the Restart button.
 
 
 
 
 
<Restart>          >Quickly restarts the system after the parameters.py file is changed or any time you want to restart the system
 
                    from its current defaults
 
  
 
= Debugging =  
 
= Debugging =  
  
 +
There are several application outputs that may be useful for debugging.
  
        Watch the console for error messages and in particular look for modules that may be missing ( I do not provide these, pip or conda should install them )
+
* Watch the GUI
 
+
* Check the Python console.
 +
* Look at the python log file ( use the GUI button <Edit Log> ( specify your editor in parameters.py first ) or use your editor on the default name of the log file ...\smart_plug\smart_plug.py_log.
  
 +
Most issues will probably be missing libraries, parameters.py issues, or just bugs in my code (email me ).
  
 +
<!-----------
  
  
Line 124: Line 152:
 
     it.  The user interface often shows the SQL which is quite a bit easier to read than it is to write.
 
     it.  The user interface often shows the SQL which is quite a bit easier to read than it is to write.
 
     It may give you useful feedback on what the system is doing.
 
     It may give you useful feedback on what the system is doing.
 +
 +
this cannot bee seen
 +
------------->
 +
 +
= Links =
 +
 +
*[[Python Control of Smart Plugs]] main page for this project
 +
 +
*[[Category:Python_SmartPlug]] category page for this project
  
  
 
[[Category:Python SmartPlug]] [[category:Python]]
 
[[Category:Python SmartPlug]] [[category:Python]]

Revision as of 06:44, 19 September 2019

This is the Help "file" for the Python Application whose main page is: *Python Control of Smart Plugs - OpenCircuits


Help file for smart plug application ( Program now Ver5 ).


Application Features

  • Works with multiple smartplugs.
  • Provides on, off, timing, and energy recording functions from a graphical user interface ( gui )
  • Supports graphing of data. Currently power and energy over time. Multiple devices on one graph.
  • Supports csv output of data.
  • Saves data to a sql lite database that you can use any way you wish.
  • Highly configurable.

Two Applications

This program is actually 2 main programs. The first program is for control of the smartplugs and capture of data, the second for the graphing and processing of the data. The main routines may be run by respectively running: smart_plug.py graph_smart_plug.py I think ( but have not tested ) they may be run at the same time.

Download and Install

There is really no install program. Currently the application is intended for those who have at least a little familiarity with Python coding and can just insert the downloaded code into their development environment and run it. Code at russ-hensel/Smart_plug Application For most of you it will not run due to dependency problems. You will need to add them. Pretty much read the error messages and install the missing code. I use Anaconda Spyder so my preferred tool is conda ( conda install pyHS100 ). If conda does not work or you do not use it use pip. pyHS100, a library for smart plugs is pretty likely to be missing ( pip install pyHS100) . Depending on your installation there may be more.

Much of the application is configurable through the parameter.py file, but the default should give you an application that runs, including a default database. You probably will not be able to talk to your smartplugs, because the parameters do need to be told what and where ( tcpip address ) they are.

So to tell the application about your plugs. You should know the address of each plug. If not you might want to use an application like advanced ip scanner ( google it ). The smartplug gives up very little information on my scans, but run the scan with the plug plugged in and out, and the address that appears ( or disappears ) it the address of your device.

The section of parameters.py that locates the device looks like this:

       self.device_list       =  [
               { "name": "device_1",  "tcpip": "192.168.0.209", "more": None, "gui_label": None, "gui_combo": None  },
               { "name": "device_2",  "tcpip": "192.168.0.209", "more": None, "gui_label": None, "gui_combo": None  },
               { "name": "device_3",  "tcpip": "192.168.0.209", "more": None, "gui_label": None, "gui_combo": None  },
                                 ]

it is a list of dictionaries. The entry above is for 3 devices ( but I only have one, so the tcpip address is repeated ) For now only worry about the tcpip address and the name for the device; put in as many devices as you wish to control.

With the edited parameter file saved, restart the application. You should be able to "talk" to your devices. Not working? Double check or email me.

In the future I may try to add some autodetect features. There is a routine to discover the plugs in the pyHS100 library, but it does not work for me.

How To:...

General

  • Edit the parameter file: Use the application button <Edit Parms> ( after configuring for your editor ) or any text editor suitable for Python ( no tabs ) on the file parameters.py. See also: The section below, Configuration Files For Python and SmartPlug GUI Images
  • View the log: Use the application button ( after configuring for your editor ) or any text editor on the file smart_plug.py_log. This is the default file name, it can be changed in parameters.py.
  • Create a new empty database: There is a button on the graphing application. First set the file name ( including full path ) to a non existent file.
  • Backup the database: Just make a copy of the database. It is all in one file, but you can make multiple databases.
  • Add a new device or change device data: edit the parameter file, device_list.
  • Record data/Monitor Plug: Press the <Record On> button, to stop <Record Off> or close the application. See also: SmartPlug GUI Images.
  • Set a timer: See also: SmartPlug GUI Images
  • See status/info on a smart plu: Of what, work in progress.
  • Make a graph: Use the graphing application ... see section below. See also: SmartPlug GUI Images.
  • Install: see section above.
  • Debug: see section below.
  • Change Parameters: Same as edit the parameter file.
  • Retrieve data from plug: On the GUI, but not implemented.
  • Quick Restart of the application: As perhaps after a parameter change. Use the <Restart> button. See also: SmartPlug GUI Images
  • Turn plug on/off
  • Use your preferred text editor. In the parameter file, see below.

Graphing (Application)

  • Save graph as .png file
  • Zoom in on part of the graph
  • Change the zero point ( time ) for the graph -- see parameters.py
  • Move the graph lines around within the graph frame
  • Choose what data to graph
  • Change the units on the time scale of the graph -- see parameters.py
  • Change the max and minimum values on the graph -- see parameters.py or zoom the graph
  • Export a csv file: See also: SmartPlug GUI Images

How to Use the Parameter File

See: Configuration Files For Python You need a text editor sutiable for .py files to manage the parameter file ( parameters.py ) This includes most text editors. I particularity like:

  • notepad++
  • geany

You can also use the editor that comes in many python development environments, the simplest of which may be Idle. But there are many many others. If you are reading this you probably have some experience.

Once you configure an editor in parameters.py you can edit from the <Edit Parms> in the GUI ( see below )

When editing there are couple of gotchas to watch out for.

  • Python cares about capitalization, use the capitalization indicated in the default files and the example code.
  • Python also cares a lot about how lines are indented. Do not change the indentation from the sample files, and always indent using spaces ( not tabs. most text editors will use spaces automatically for .py files, even if you use the tab key )

Editing of the parameters.py file

  • Edit so the program finds your devices.
    • See above in Download and Install
  • Enable your favorite editor to work with the application.
    • self.ex_editor = r"D:\apps\Notepad++\notepad++.exe" # use r" or the backslashes will not work, or you can use forward slashes instead they may be wrong but they work.
  • Lots of other settings:
    • Read the comments in parameters.py and change as desired. If a setting does not work let me know.
  • If you mess up.
    • Re download and get back to the original file.

Working With Database Files

  • Create a directory for your data and database -- application comes with defaults


  • Run database definition routine button wf1
      You need to name a database, application will default
      You also need your sample file input, start with the one from
      the step above.
      look at output.......



The GUI

see: SmartPlug GUI Images

Debugging

There are several application outputs that may be useful for debugging.

  • Watch the GUI
  • Check the Python console.
  • Look at the python log file ( use the GUI button <Edit Log> ( specify your editor in parameters.py first ) or use your editor on the default name of the log file ...\smart_plug\smart_plug.py_log.

Most issues will probably be missing libraries, parameters.py issues, or just bugs in my code (email me ).


Links

  • category page for this project