Skip to content

Instantly share code, notes, and snippets.

@jnewland
Last active January 2, 2016 05:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jnewland/9d75c44b93530115f381 to your computer and use it in GitHub Desktop.
Save jnewland/9d75c44b93530115f381 to your computer and use it in GitHub Desktop.
python-openzwave repl
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
This file is part of **python-openzwave** project https://github.com/OpenZWave/python-openzwave.
:platform: Unix, Windows, MacOS X
:sinopsis: openzwave wrapper
.. moduleauthor:: bibi21000 aka Sébastien GALLET <bibi21000@gmail.com>
License : GPL(v3)
**python-openzwave** is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
**python-openzwave** is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with python-openzwave. If not, see http://www.gnu.org/licenses.
"""
import logging
import sys, os
#logging.getLogger('openzwave').addHandler(logging.NullHandler())
#logging.basicConfig(level=logging.DEBUG)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('openzwave')
import openzwave
from openzwave.node import ZWaveNode
from openzwave.value import ZWaveValue
from openzwave.scene import ZWaveScene
from openzwave.controller import ZWaveController
from openzwave.network import ZWaveNetwork
from openzwave.option import ZWaveOption
import time
from louie import dispatcher, All
device="/dev/ttyUSB0"
log="None"
sniff=300.0
for arg in sys.argv:
if arg.startswith("--device"):
temp,device = arg.split("=")
elif arg.startswith("--log"):
temp,log = arg.split("=")
elif arg.startswith("--sniff"):
temp,sniff = arg.split("=")
sniff = float(sniff)
elif arg.startswith("--help"):
print("help : ")
print(" --device=/dev/yourdevice ")
print(" --log=Info|Debug")
#Define some manager options
options = ZWaveOption(device, \
config_path="../openzwave/config", \
user_path=".", cmd_line="")
options.set_log_file("OZW_Log.log")
options.set_append_log_file(False)
options.set_console_output(False)
options.set_save_log_level('Debug')
options.set_logging(True)
options.lock()
def louie_network_started(network):
print("Hello from network : I'm started : homeid %0.8x - %d nodes were found." % \
(network.home_id, network.nodes_count))
print "Waiting for network to become ready."
def louie_network_failed(network):
print("Hello from network : can't load :(.")
def louie_network_ready(network):
print("Hello from network : I'm ready : %d nodes were found." % network.nodes_count)
print("Hello from network : my controller is : %s" % network.controller)
print("Have fun!. Try this: >>> network")
import code
#Create a network object
network = ZWaveNetwork(options, autostart=False)
#We connect to the louie dispatcher
dispatcher.connect(louie_network_started, ZWaveNetwork.SIGNAL_NETWORK_STARTED)
dispatcher.connect(louie_network_failed, ZWaveNetwork.SIGNAL_NETWORK_FAILED)
dispatcher.connect(louie_network_ready, ZWaveNetwork.SIGNAL_NETWORK_READY)
network.start()
time.sleep(1.0)
#Wait for the network.
for i in range(0,900):
if network.state>=network.STATE_READY:
code.interact(local=locals())
break
else:
time.sleep(1.0)
sys.stdout.write(".")
sys.stdout.flush()
print "Stopping network..."
network.stop()
print "Bye"
~
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment