Skip to content

Commit

Permalink
Merge pull request #30 from TomFaulkner/cli
Browse files Browse the repository at this point in the history
add script, update setup.py, remove symlink, release 0.1.3
  • Loading branch information
TomFaulkner authored Jul 6, 2018
2 parents 063c7e5 + bae0f32 commit fe80efc
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 4 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,6 @@ venv.bak/

# mypy
.mypy_cache/

# editor configs and cache
.vscode
2 changes: 2 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
v0.1.0, 2018-03-06 -- Initial release.
v0.1.1, 2018-03-12 -- Fix neglected lib directory
v0.1.2, 2018-06-23 -- Fix issues with reading fan variables
v0.1.3, 2018-07-05 -- Add command line script (senseme_cli), improve setup.py
1 change: 0 additions & 1 deletion SenseMe
Submodule SenseMe deleted from b76c6c
Empty file added bin/__init__.py
Empty file.
49 changes: 49 additions & 0 deletions bin/senseme_cli
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/usr/bin/env python3
"""Haiku Home SenseMe CLI
fan x - set speed to x (0-7)
fan [on|off] - fan on/off
light x - set light brightness to x
light [on|off] - light on/off
whoosh [on|off] - whoosh mode on/off
"""

import os
import sys

from senseme import SenseMe

IP = os.environ.get('SENSEME_DEFAULT_FAN_IP')
NAME = os.environ.get('SENSEME_DEFAULT_FAN_NAME')

VALID_PARAMS = f"on off {' '.join([str(x) for x in range(17)])}".split()

if __name__ == "__main__":
device = SenseMe(ip=IP, name=NAME)
OPTIONS = "fan light whoosh".split()

if len(sys.argv) != 3 or sys.argv[1] not in OPTIONS or sys.argv[2] not in VALID_PARAMS:
print(f"Invalid parameter. Printing help.\n\n{__doc__}")
sys.exit(1)

try:
# intify 0-16, but leave on|off alone
number = int(sys.argv[2])
power_toggle = False
except ValueError:
on_or_off = True if sys.argv[2] == "on" else False
power_toggle = True

option = sys.argv[1]
if option == "fan" and power_toggle:
device.fan_powered_on = on_or_off
elif option == "fan":
device.speed = number
elif option == "light" and power_toggle:
device.light_powered_on = on_or_off
elif option == "light":
device.brightness = number
elif option == "whoosh":
device.whoosh = on_or_off
8 changes: 5 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python

from distutils.core import setup
from setuptools import setup

long_description = """HaikuHome SenseMe API for fans and lights.
Expand All @@ -12,19 +12,21 @@

setup(
name="SenseMe",
version="0.1.2",
version="0.1.3",
description="HaikuHome SenseMe API for fans and lights",
author="Tom Faulkner",
author_email="[email protected]",
url="https://github.com/TomFaulkner/SenseMe",
packages=["senseme", "senseme.lib"],
packages=["senseme", "senseme.lib", "bin"],
license="GPL3",
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Home Automation"
],
keywords="HaikuHome SenseMe fan light home automation bigassfans",
python_requires=">=3.6",
scripts=['bin/senseme_cli']
)

0 comments on commit fe80efc

Please sign in to comment.