Skip to main content

VPM is a lightweight opensource home management system

Project description

vpm

Virtual Property Manager (VPM) is the open source smart home operating system the world deserves. Lightweight, cross platform, command line application that builds a COBie and IFC compliant model of your home, manages preventative maintenance tasks and logs, and organizes your home’s documents.

Design Principles:

  1. Data Sovereignty: You control your home's data in perpetuity.
  2. Portability: Conform to open standards with easy import and export.
  3. Interoperability: Do core functions well, and integrate with other services. No walled gardens.
  4. Unenshitifiable: Product design must make it impossible to enshitify.

Problem Statement

  1. Homeowners are not professional property managers. They don't know what needs to be done to proactively maintain their home so that everything works, they minimize maintenance costs, and keep it in good condition.
  2. Home maintenance information online is generic and often caveated. Most homeowners don't have the expertise to be confident they are appropriately interpreting and applying the general advice.
  3. Homeowners have to develop their own information management and task management systems for their homes.
  4. Tasks that would be quick for a professional property manager with experience and relationships, such as identifying what trade is needed to fix a problem, getting and assessing bids (including benchmarking to general market costs), and hiring a contractor they trust are much harder for homeowners who only need contractor service intermittently.
  5. Smart home technology adds a layer of complexity and fragility to a home, rather than making homes more robust and self maintaining.

Roadmap

  1. Home Model Management
  2. Task Managment
  3. Task Management App Integration
  4. Apple reminders
  5. Google to do
  6. MS ToDo
  7. Any.Do
  8. Smart Device Management Platforms Integrations
  9. Google Home
  10. Apple HomeKit

Documentation

vpm

Creates config file if it doesn't exists. Runs before every command

Usage:

$ vpm [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • version: Prints the application's version number.
  • home
  • room
  • element
  • task
  • part
  • db

vpm version

Prints the application's version number.

Usage:

$ vpm version [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm home

Usage:

$ vpm home [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • add: Adds a home to the local database
  • get: Get home information
  • update: Update home information
  • delete: Delete home

vpm home add

Adds a home to the local database

Usage:

$ vpm home add [OPTIONS]

Options:

  • --name TEXT: [required]
  • --address TEXT: [required]
  • --description TEXT
  • --help: Show this message and exit.

vpm home get

Get home information

Usage:

$ vpm home get [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm home update

Update home information

Usage:

$ vpm home update [OPTIONS]

Options:

  • --name TEXT
  • --address TEXT
  • --help: Show this message and exit.

vpm home delete

Delete home

Usage:

$ vpm home delete [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm room

Usage:

$ vpm room [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • add
  • all
  • get-by-name
  • update
  • delete

vpm room add

Usage:

$ vpm room add [OPTIONS]

Options:

  • --name TEXT: [required]
  • --level INTEGER: [default: 0]
  • --description TEXT
  • --help: Show this message and exit.

vpm room all

Usage:

$ vpm room all [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm room get-by-name

Usage:

$ vpm room get-by-name [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm room update

Usage:

$ vpm room update [OPTIONS]

Options:

  • --name TEXT
  • --help: Show this message and exit.

vpm room delete

Usage:

$ vpm room delete [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm element

Usage:

$ vpm element [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • add: Adds a new element to the local database.
  • get: Get element information
  • all: Get all elements
  • update: Update element information
  • delete: Delete an element

vpm element add

Adds a new element to the local database.

Usage:

$ vpm element add [OPTIONS]

Options:

  • --room-name TEXT: [required]
  • --name TEXT: [required]
  • --description TEXT
  • --brand TEXT
  • --model TEXT
  • --model-number TEXT
  • --manual-url TEXT
  • --manufacture-url TEXT
  • --install-date [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
  • --cost FLOAT
  • --currency TEXT: [default: USD]
  • --help: Show this message and exit.

vpm element get

Get element information

Usage:

$ vpm element get [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm element all

Get all elements

Usage:

$ vpm element all [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm element update

Update element information

Usage:

$ vpm element update [OPTIONS]

Options:

  • --name TEXT: [required]
  • --new-name TEXT
  • --description TEXT
  • --help: Show this message and exit.

vpm element delete

Delete an element

Usage:

$ vpm element delete [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm task

Usage:

$ vpm task [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • add: Adds a new task to the local database.
  • get: Get task information
  • update: Update task information
  • delete: Delete a task
  • complete: Mark a task as complete

vpm task add

Adds a new task to the local database.

Usage:

$ vpm task add [OPTIONS]

Options:

  • --name TEXT: [required]
  • --type TEXT: Type of task (MAINTENANCE, REPAIR, REPLACE, INSPECT) [default: MAINTENANCE]
  • --description TEXT
  • --due-date [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
  • --interval INTEGER: Interval for recurring task
  • --interval-unit TEXT: Unit for interval (days, weeks, months, years)
  • --priority INTEGER
  • --help: Show this message and exit.

vpm task get

Get task information

Usage:

$ vpm task get [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm task update

Update task information

Usage:

$ vpm task update [OPTIONS]

Options:

  • --name TEXT: [required]
  • --new-name TEXT
  • --type TEXT: Type of task (MAINTENANCE, REPAIR, REPLACE, INSPECT)
  • --description TEXT
  • --due-date [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
  • --priority INTEGER
  • --help: Show this message and exit.

vpm task delete

Delete a task

Usage:

$ vpm task delete [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm task complete

Mark a task as complete

Usage:

$ vpm task complete [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm part

Usage:

$ vpm part [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • add: Adds a new part to the local database.
  • get: Get part information
  • update: Update part information
  • delete: Delete a part

vpm part add

Adds a new part to the local database.

Usage:

$ vpm part add [OPTIONS]

Options:

  • --name TEXT: [required]
  • --description TEXT: [required]
  • --manufacturer TEXT
  • --model-number TEXT
  • --serial-number TEXT
  • --help: Show this message and exit.

vpm part get

Get part information

Usage:

$ vpm part get [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm part update

Update part information

Usage:

$ vpm part update [OPTIONS]

Options:

  • --name TEXT: [required]
  • --new-name TEXT
  • --description TEXT
  • --manufacturer TEXT
  • --model-number TEXT
  • --serial-number TEXT
  • --help: Show this message and exit.

vpm part delete

Delete a part

Usage:

$ vpm part delete [OPTIONS]

Options:

  • --name TEXT: [required]
  • --help: Show this message and exit.

vpm db

Usage:

$ vpm db [OPTIONS] COMMAND [ARGS]...

Options:

  • --help: Show this message and exit.

Commands:

  • create: Initializes the database and creates all...
  • info: Prints the database engine configuration...
  • schemas: Prints the schemas in the database.
  • tables: Prints the tables in the database.
  • columns: Prints the columns of a table.

vpm db create

Initializes the database and creates all necessary tables.

Usage:

$ vpm db create [OPTIONS]

Options:

  • --overwrite
  • --help: Show this message and exit.

vpm db info

Prints the database engine configuration (including URL).

Usage:

$ vpm db info [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm db schemas

Prints the schemas in the database.

Usage:

$ vpm db schemas [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm db tables

Prints the tables in the database.

Usage:

$ vpm db tables [OPTIONS]

Options:

  • --help: Show this message and exit.

vpm db columns

Prints the columns of a table.

Usage:

$ vpm db columns [OPTIONS] TABLE

Arguments:

  • TABLE: [required]

Options:

  • --help: Show this message and exit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vpm_cli-0.1.1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vpm_cli-0.1.1-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file vpm_cli-0.1.1.tar.gz.

File metadata

  • Download URL: vpm_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for vpm_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5c9bd22a5cbed3294e60923d6c6eb859c7530573e4d92da292219734fbb8bdbb
MD5 671c87f65986d1c6beafe2267d72db4a
BLAKE2b-256 1478673dac7c5db4013ccb77a35fceecb40db5ca8c6a9df58127199c750e102f

See more details on using hashes here.

File details

Details for the file vpm_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: vpm_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for vpm_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bdf263a80b85a5a8f07445707c14557d484e2341dea41eb54d37b5373328b7f7
MD5 5f77bbe967b540dd90f4beb18ea54f41
BLAKE2b-256 d1f512fc20bb4c38d8ee406417e70b80d053cc9964b79ed0559f8f404a6d3c16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page