Skip to content
/ mataho Public

Command line interface to interact with a local Tahoma box

License

Notifications You must be signed in to change notification settings

Coko7/mataho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 mataho

build

A rust command line tool that allows you to interact with your local Tahoma box. This is a port of the cli from my somfy-home-controller project.

New features have been added:

  • Fuzzy matching for device labels
  • Group management
  • Executing an action on a group of devices

🛠️ Setup

Create a config file at $HOME/.config/mataho/config.toml:

hostname = "https://gateway-XXXX-XXXX-XXXX"
port = 8443
api_token = "PUT_YOUR_SUPER_SECRET_TOKEN_HERE"

NOTE: If you want to use a different path for the configuration direction, you can do so by setting the $MATAHO_CONFIG env variable.

You must keep the filename as config.toml though.

🐚 Usage

Typing mataho help will print the documentation:

coko7@example:~$ mataho help
Interact with your Tahoma box in the terminal

Usage: mataho [OPTIONS] <COMMAND>

Commands:
  list   Print the list of known local devices [aliases: ls]
  info   Get information about a particular device (id, label, supported actions, etc.)
  exec   Execute a Tahoma action on a single device [aliases: ex]
  group  Create and manage groups of devices [aliases: grp]
  help   Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...  Increase logging verbosity
  -q, --quiet...    Decrease logging verbosity
  -h, --help        Print help

Display local devices:

coko7@example:~$ mataho ls
+----------+-----------------+----------------+
| ID       | Label           | Type           |
+----------+-----------------+----------------+
| 00000001 | Front gate      | sliding gate   |
+----------+-----------------+----------------+
| 00000002 | Garage          | garage opener  |
+----------+-----------------+----------------+
| 00000003 | Coko's room     | roller shutter |
+----------+-----------------+----------------+

Execute a command/action on a particular device (fuzzy matching is used to find the device):

coko7@example:~$ mataho ex coko open
Executing `open` on `Coko's room`...

Action arguments are supported as well:

coko7@example:~$ mataho exec coco setClosureAndLinearSpeed 20 lowspeed
Executing `setClosureAndLinearSpeed` on `Coko's room`...

Manage groups:

coko7@example:~$ mataho grp -h
Create and manage groups of devices

Usage: mataho group [OPTIONS] <COMMAND>

Commands:
  list    List all groups [aliases: ls]
  create  Create a new group
  delete  Delete a group
  join    Add a device to an existing group
  leave   Remove a device from an exiting group
  exec    Execute a Tahoma action on a group of devices [aliases: ex]
  help    Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...  Increase logging verbosity
  -q, --quiet...    Decrease logging verbosity
  -h, --help        Print help

📚 Resources