developer69K/python-openzwave
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>python-openzwave — python-openzwave 0.4.9 documentation</title> <link rel="stylesheet" href="_static/classic.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="libopenzwave module" href="libopenzwave.html" /> <link rel="prev" title="Welcome to python-openzwave’s documentation!" href="index.html" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="libopenzwave.html" title="libopenzwave module" accesskey="N">next</a> |</li> <li class="right" > <a href="index.html" title="Welcome to python-openzwave’s documentation!" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">python-openzwave 0.4.9 documentation</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <a class="reference external image-reference" href="https://travis-ci.org/OpenZWave/python-openzwave"><img alt="Travis status" src="https://travis-ci.org/OpenZWave/python-openzwave.svg?branch=master" /></a> <a class="reference external image-reference" href="https://circleci.com/gh/OpenZWave/python-openzwave"><img alt="Circle status" src="https://circleci.com/gh/OpenZWave/python-openzwave.png?style=shield" /></a> <a class="reference external image-reference" href="https://ci.appveyor.com/project/bibi21000/python-openzwave"><img alt="Appveyor status" src="https://ci.appveyor.com/api/projects/status/2ogl8tx7o3pqphc9?svg=true" /></a> <a class="reference external image-reference" href="https://pypi.python.org/pypi/python_openzwave"><img alt="Pypi format" src="https://img.shields.io/pypi/format/python_openzwave.svg" /></a> <a class="reference external image-reference" href="http://openzwave.github.io/python-openzwave/index.html"><img alt="Documentation" src="https://img.shields.io/badge/Documentation-ok-brightgreen.svg?style=flat" /></a> <div class="section" id="python-openzwave"> <h1>python-openzwave<a class="headerlink" href="#python-openzwave" title="Permalink to this headline">¶</a></h1> <p>python-openzwave is a python wrapper for the openzwave c++ library : <a class="reference external" href="https://github.com/OpenZWave/open-zwave">https://github.com/OpenZWave/open-zwave</a></p> <blockquote> <div><ul class="simple"> <li>full manager implementation with options</li> <li>an API to map the ZWave network in Python objects</li> <li>a command line manager to manage / debug your ZWave network</li> <li>a full-event webapp example : flask + socket.io + jquery</li> <li>a suite of tests</li> <li>many examples</li> <li><a class="reference external" href="http://openzwave.github.io/python-openzwave/index.html">Full documentation</a></li> </ul> </div></blockquote> <div class="section" id="python-openzwave-0-4-x-is-here"> <h2>python-openzwave 0.4.x is here !!!<a class="headerlink" href="#python-openzwave-0-4-x-is-here" title="Permalink to this headline">¶</a></h2> <ul> <li><p class="first">New installation process via pip</p> </li> <li><p class="first">First, you need some build tools and libs. On ubuntu, you should use :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo apt-get install --force-yes -y make libudev-dev g++ libyaml-dev </pre></div> </div> </div></blockquote> </li> <li><p class="first">Make your virtualenv and activate it :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>virtualenv --python<span class="o">=</span>python3 venv3 <span class="nb">source</span> venv3/bin/activate </pre></div> </div> </div></blockquote> </li> <li><p class="first">Install the default flavor :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pip install python_openzwave </pre></div> </div> </div></blockquote> </li> <li><p class="first">The previous command try to install python_openzwave with the flavor ‘shared’. If it can’t find a precompiled library of openzwave, it will use the flavor ‘embed’ with sources downloaded from <a class="reference external" href="https://github.com/OpenZWave/python-openzwave/tree/master/archives">https://github.com/OpenZWave/python-openzwave/tree/master/archives</a>. You can change this using flavor option. There is a bug in the package dependencies and flavors on some systems. You may need to install dependencies manualy :</p> </li> </ul> <blockquote> <div><ul> <li><p class="first">on python 2.7 :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pip install cython wheel six <span class="o">(</span>venvX<span class="o">)</span> pip install <span class="s1">'Louie>=1.1'</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">on python 3 :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pip install cython wheel six <span class="o">(</span>venvX<span class="o">)</span> pip install <span class="s1">'PyDispatcher>=2.0.5'</span> </pre></div> </div> </div></blockquote> </li> </ul> </div></blockquote> <ul> <li><p class="first">Choose your flavor :</p> <blockquote> <div><ul class="simple"> <li>embed : the default one. Download sources from <a class="reference external" href="https://github.com/OpenZWave/python-openzwave/tree/master/archives">https://github.com/OpenZWave/python-openzwave/tree/master/archives</a> and build them. Python_openzwave is statically build using a cythonized version of libopenzwave. No need to install cython.</li> <li>shared : if you have install openzwave as module manually, you can link python_openzwave to it.</li> <li>git : download sources from openzwave github and link statically to it.</li> <li>embed_shared : download sources from <a class="reference external" href="https://github.com/OpenZWave/python-openzwave/tree/master/archives">https://github.com/OpenZWave/python-openzwave/tree/master/archives</a>, build and install as module on the system. Python_openzwave use it. Need root access to install openzwave libs.</li> <li>git_shared : download sources from openzwave github, build and install them as module on the system. Python_openzwave use it. Need root access to install openzwave libs.</li> <li>ozwdev and ozwdev_shared : use the dev branch of openzwave on github.</li> <li>dev : for python_openzwave developers. Look for openzwave sources in a local folder specified by the LOCAL_OPENZWAVE environment variable (defaults to ‘openzwave’).</li> </ul> </div></blockquote> </li> <li><p class="first">Install it :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pip install python_openzwave --no-deps --install-option<span class="o">=</span><span class="s2">"--flavor=git"</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">You can update to the last version of openzwave using the git flavor :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pip uninstall -y python_openzwave <span class="o">(</span>venvX<span class="o">)</span> pip install python_openzwave --no-cache-dir --no-deps --install-option<span class="o">=</span><span class="s2">"--flavor=git"</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">At last, you can launch pyozw_check to test your installation :</p> <blockquote> <div><p>If no usb stick is connected to the machine, launch :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pyozw_check </pre></div> </div> </div></blockquote> <p>If you’ve one, use it for advanced checks :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pyozw_check -i -d /dev/ttyUSB0 </pre></div> </div> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>------------------------------------------------------------------------------- Import libs Try to import libopenzwave Try to import libopenzwave.PyLogLevels Try to get options Try to get manager Try to get python_openzwave version <span class="m">0</span>.4.0.27 Try to get python_openzwave full version python-openzwave version <span class="m">0</span>.4.0.27 <span class="o">(</span>dev / Apr <span class="m">18</span> <span class="m">2017</span> - <span class="m">23</span>:22:26<span class="o">)</span> Try to get openzwave version <span class="m">1</span>.4.2501 Try to get default config path /etc/openzwave/ Try to import openzwave <span class="o">(</span>API<span class="o">)</span> ------------------------------------------------------------------------------- Intialize device /dev/ttyUSB0 Try to get options Try to get manager <span class="m">2017</span>-04-12 <span class="m">16</span>:41:29.329 Always, OpenZwave Version <span class="m">1</span>.4.2497 Starting Up Try to add watcher ... <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, *************************************************************************** <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, ********************* Cumulative Network Statistics ********************* <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, *** General <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Driver run time: . . . <span class="m">0</span> days, <span class="m">0</span> hours, <span class="m">1</span> minutes <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Frames processed: . . . . . . . . . . . . . . . . . . . . <span class="m">27</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Total messages successfully received: . . . . . . . . . . <span class="m">27</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Total Messages successfully sent: . . . . . . . . . . . . <span class="m">19</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, ACKs received from controller: . . . . . . . . . . . . . <span class="m">19</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, *** Errors <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Unsolicited messages received <span class="k">while</span> waiting <span class="k">for</span> ACK: . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Reads aborted due to timeouts: . . . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Bad checksum errors: . . . . . . . . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, CANs received from controller: . . . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, NAKs received from controller: . . . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Out of frame data flow errors: . . . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Messages retransmitted: . . . . . . . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, Messages dropped and not delivered: . . . . . . . . . . . <span class="m">0</span> <span class="m">2017</span>-04-12 <span class="m">16</span>:44:05.880 Always, *************************************************************************** <span class="m">2017</span>-04-12 <span class="m">16</span>:44:07.887 Info, mgr, Driver <span class="k">for</span> controller /dev/ttyUSB0 removed Try to remove watcher Try to destroy manager Try to destroy options </pre></div> </div> </div></blockquote> <p>You can list the nodes on your network using :</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>venvX<span class="o">)</span> pyozw_check -l -d /dev/ttyUSB0 -t <span class="m">60</span> </pre></div> </div> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>------------------------------------------------------------------------------- Define options <span class="k">for</span> device /dev/ttyUSB0 Start network Wait <span class="k">for</span> network <span class="o">(</span>30s<span class="o">)</span> Network is ready ------------------------------------------------------------------------------- Controller capabilities : <span class="o">{</span><span class="s1">'primaryController'</span>, <span class="s1">'staticUpdateController'</span><span class="o">}</span> Controller node capabilities : <span class="o">{</span><span class="s1">'listening'</span>, <span class="s1">'primaryController'</span>, <span class="s1">'staticUpdateController'</span>, <span class="s1">'beaming'</span><span class="o">}</span> Nodes in network : <span class="m">4</span> Driver statistics : <span class="o">{</span><span class="s1">'noack'</span>: <span class="m">6</span>, <span class="s1">'routedbusy'</span>: <span class="m">0</span>, <span class="s1">'readCnt'</span>: <span class="m">115</span>, <span class="s1">'ACKWaiting'</span>: <span class="m">0</span>, <span class="s1">'badChecksum'</span>: <span class="m">0</span>, <span class="s1">'broadcastReadCnt'</span>: <span class="m">0</span>, <span class="s1">'NAKCnt'</span>: <span class="m">0</span>, <span class="s1">'broadcastWriteCnt'</span>: <span class="m">9</span>, <span class="s1">'dropped'</span>: <span class="m">0</span>, <span class="s1">'CANCnt'</span>: <span class="m">0</span>, <span class="s1">'callbacks'</span>: <span class="m">0</span>, <span class="s1">'OOFCnt'</span>: <span class="m">0</span>, <span class="s1">'readAborts'</span>: <span class="m">0</span>, <span class="s1">'badroutes'</span>: <span class="m">0</span>, <span class="s1">'SOFCnt'</span>: <span class="m">115</span>, <span class="s1">'netbusy'</span>: <span class="m">0</span>, <span class="s1">'writeCnt'</span>: <span class="m">49</span>, <span class="s1">'nondelivery'</span>: <span class="m">0</span>, <span class="s1">'ACKCnt'</span>: <span class="m">49</span>, <span class="s1">'retries'</span>: <span class="m">0</span><span class="o">}</span> ------------------------------------------------------------ <span class="m">1</span> - Name : <span class="o">(</span> Location : <span class="o">)</span> <span class="m">1</span> - Ready : True / Awake : True / Failed : False <span class="m">1</span> - Manufacturer : Aeotec <span class="o">(</span> id : 0x0086 <span class="o">)</span> <span class="m">1</span> - Product : DSA02203 Z-Stick S2 <span class="o">(</span> id : 0x0001 / <span class="nb">type</span> : 0x0002 <span class="o">)</span> <span class="m">1</span> - Version : <span class="m">3</span> / Secured : False / Zwave+ : False <span class="m">1</span> - Command classes : <span class="o">{</span><span class="s1">'COMMAND_CLASS_NO_OPERATION'</span>, <span class="s1">'COMMAND_CLASS_BASIC'</span><span class="o">}</span> <span class="m">1</span> - Capabilities : <span class="o">{</span><span class="s1">'staticUpdateController'</span>, <span class="s1">'listening'</span>, <span class="s1">'primaryController'</span>, <span class="s1">'beaming'</span><span class="o">}</span> <span class="m">1</span> - Neigbors : <span class="o">{</span><span class="m">4</span><span class="o">}</span> / Power level : None <span class="m">1</span> - Is sleeping : False / Can wake-up : False / Battery level : None ... ------------------------------------------------------------ <span class="m">4</span> - Name : <span class="o">(</span> Location : <span class="o">)</span> <span class="m">4</span> - Ready : True / Awake : True / Failed : False <span class="m">4</span> - Manufacturer : GreenWave <span class="o">(</span> id : 0x0099 <span class="o">)</span> <span class="m">4</span> - Product : PowerNode <span class="m">6</span> port <span class="o">(</span> id : 0x0004 / <span class="nb">type</span> : 0x0003 <span class="o">)</span> <span class="m">4</span> - Version : <span class="m">4</span> / Secured : False / Zwave+ : False <span class="m">4</span> - Command classes : <span class="o">{</span><span class="s1">'COMMAND_CLASS_BASIC'</span>, <span class="s1">'COMMAND_CLASS_CONFIGURATION'</span>, <span class="s1">'COMMAND_CLASS_SWITCH_BINARY'</span>, <span class="s1">'COMMAND_CLASS_VERSION'</span>, <span class="s1">'COMMAND_CLASS_CRC_16_ENCAP'</span>, <span class="s1">'COMMAND_CLASS_MANUFACTURER_SPECIFIC'</span>, <span class="s1">'COMMAND_CLASS_ASSOCIATION'</span>, <span class="s1">'COMMAND_CLASS_MULTI_INSTANCE/CHANNEL'</span>, <span class="s1">'COMMAND_CLASS_METER'</span>, <span class="s1">'COMMAND_CLASS_PROTECTION'</span>, <span class="s1">'COMMAND_CLASS_NO_OPERATION'</span>, <span class="s1">'COMMAND_CLASS_SWITCH_ALL'</span><span class="o">}</span> <span class="m">4</span> - Capabilities : <span class="o">{</span><span class="s1">'listening'</span>, <span class="s1">'routing'</span>, <span class="s1">'beaming'</span><span class="o">}</span> <span class="m">4</span> - Neigbors : <span class="o">{</span><span class="m">1</span><span class="o">}</span> / Power level : None <span class="m">4</span> - Is sleeping : False / Can wake-up : False / Battery level : None ... </pre></div> </div> </div></blockquote> </div></blockquote> </li> </ul> <blockquote> <div><ul> <li><p class="first">The old manager is now available via the pyozw_shell command. You need to install module “urwid>=1.1.1” with pip before using it.</p> </li> <li><p class="first">libopenzwave and openzwave python modules are packaged in the python_openzwave. So developers needs to update their install_requires (it works fine with pyozw_manager). They can use the following code to update softly :</p> <blockquote> <div><div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">pyozw_version</span><span class="o">=</span><span class="s1">'0.4.1'</span> <span class="k">def</span> <span class="nf">install_requires</span><span class="p">():</span> <span class="k">try</span><span class="p">:</span> <span class="kn">import</span> <span class="nn">python_openzwave</span> <span class="k">return</span> <span class="p">[</span><span class="s1">'python_openzwave==</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">pyozw_version</span><span class="p">]</span> <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span> <span class="k">pass</span> <span class="k">try</span><span class="p">:</span> <span class="kn">import</span> <span class="nn">libopenzwave</span> <span class="k">return</span> <span class="p">[</span><span class="s1">'openzwave==</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">pyozw_version</span><span class="p">]</span> <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span> <span class="k">pass</span> <span class="k">return</span> <span class="p">[</span><span class="s1">'python_openzwave == </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">pyozw_version</span><span class="p">]</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">If you already have an 0.3.x version installed, you should update your installation as usual. Don’t install it with pip as it can break your installation (maybe not if you don’t remove old modules)</p> </li> <li><p class="first">Support for windows, macosx, … is not tested. Feel free to report bug and patches. We can try to support these plateforms. Don’t have Windows at home so I can’t help. Same for mac.</p> </li> <li><p class="first">Old installation process is deprecated and reserved for python-openzwave-developers and alternatives machines.</p> </li> <li><p class="first">Please report your successful installations here : <a class="reference external" href="https://github.com/OpenZWave/python-openzwave/issues/73">https://github.com/OpenZWave/python-openzwave/issues/73</a></p> </li> </ul> </div></blockquote> </div> <div class="section" id="support"> <h2>Support<a class="headerlink" href="#support" title="Permalink to this headline">¶</a></h2> <p>You can ask for support on the google group : <a class="reference external" href="http://groups.google.com/d/forum/python-openzwave-discuss">http://groups.google.com/d/forum/python-openzwave-discuss</a>.</p> <p>Please don’t ask for support in github issues or by email.</p> </div> <div class="section" id="pull-requests"> <h2>Pull requests<a class="headerlink" href="#pull-requests" title="Permalink to this headline">¶</a></h2> <p>Please read DEVEL documentation before submitting pull request. A lot of project tasks are done automatically or with makefile, so they must be done in a certain place or in a special order.</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h3><a href="index.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">python-openzwave</a><ul> <li><a class="reference internal" href="#python-openzwave-0-4-x-is-here">python-openzwave 0.4.x is here !!!</a></li> <li><a class="reference internal" href="#support">Support</a></li> <li><a class="reference internal" href="#pull-requests">Pull requests</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="index.html" title="previous chapter">Welcome to python-openzwave’s documentation!</a></p> <h4>Next topic</h4> <p class="topless"><a href="libopenzwave.html" title="next chapter">libopenzwave module</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="_sources/README.rst.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="libopenzwave.html" title="libopenzwave module" >next</a> |</li> <li class="right" > <a href="index.html" title="Welcome to python-openzwave’s documentation!" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="index.html">python-openzwave 0.4.9 documentation</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2012,2013,2014,2015, bibi21000. Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.7. </div> </body> </html>
Languages
- Python 51.6%
- JavaScript 40.5%
- Makefile 2.9%
- HTML 2.9%
- CSS 2.1%
- C 0.0%